Jack, can you put up a pull request? I'm internally debating whether we want 
the auto TS-XXXX linkage or not, so I think it would be good to have a PR on 
which to discuss it. Thanks.
 

    On Friday, January 6, 2017 10:39 AM, Jack Bates <6ny...@nottheoilrig.com> 
wrote:
 

 Thanks for fixing this Jean Baptiste!
I'd like to maintain the custom autolinker,
would you mind if I restored that code and applied the fix below?
After this fix, it works with Docutils 1.3 and 1.2.
I realize it would've been much better if I'd had this ready at the 
beginning of the week ...

--- a/doc/conf.py
+++ b/doc/conf.py
@@ -166,9 +166,11 @@ pygments_style = 'sphinx'
  nitpicky=1

  # Autolink issue references
+# See Customizing the Parser in the docutils.parsers.rst module.

  from docutils import nodes
  from docutils.parsers.rst import states
+from docutils.utils import punctuation_chars
  from docutils.utils import unescape

  # Customize parser.inliner in the only way that Sphinx supports.
@@ -180,9 +182,34 @@ from docutils.utils import unescape

  BaseInliner = states.Inliner
  class Inliner(BaseInliner):
+  if hasattr(states.Inliner, 'init_customizations'):
+    def init_customizations(self, settings):
+      self.__class__ = BaseInliner
+      BaseInliner.init_customizations(self, settings)
+      self.__class__ = Inliner
+
+      # Copied from states.Inliner.init_customizations().
+      if settings.character_level_inline_markup:
+        self.start_string_prefix = u'(^|(?<!\x00))'
+        self.end_string_suffix = u''
+      else:
+        self.start_string_prefix = (u'(^|(?<=\\s|[%s%s]))' %
+                                    (punctuation_chars.openers,
+                                    punctuation_chars.delimiters))
+        self.end_string_suffix = (u'($|(?=\\s|[\x00%s%s%s]))' %
+                                  (punctuation_chars.closing_delimiters,
+                                  punctuation_chars.delimiters,
+                                  punctuation_chars.closers))
+
+      self.init()
+  else:
      def __init__(self):
        BaseInliner.__init__(self)
+      self.init()

+  # Called from __init__() in Docutils < 1.3, otherwise from
+  # init_customizations(), which was added in Docutils 1.3.
+  def init(self):
      issue_pattern = re.compile(u'''
        {start_string_prefix}
        TS-\d+

On 04/01/17 08:08 AM, Jean Baptiste Favre wrote:
> Hello,
> I've updated my PR on github.
> We can now manage both Jira issues with ":ts:jira:`XXXX`" syntax, as
> well as github issues with ":ts:github:`XXXX`" syntax.
>
> Now, Trafficserver build succeed with doctuils 0.13.1.
> Please note that I did not test yet build against docutils 0.12.
> I'll in the coming days (docutils 0.12 is in Debian stable only).
>
> Cheers,
> Jean Baptiste
>
>
> On 03/01/2017 15:11, Jean Baptiste Favre wrote:
>> Hello Alan,
>> Thanks for the info.
>> I had a look in traffic_server.py, but to quick to notice about :ts:cv: :-/
>>
>> given the Jira to Github transition announced by Brian at the end of
>> decembre, I only suggest we use :ts:issue:, more generic, instead on
>> :ts:jira:
>>
>> I'll update my pull request accordingly.
>>
>> Cheers,
>> Jean Baptiste Favre
>>
>> On 03/01/2017 15:07, Alan Carroll wrote:
>>> Please take a look at doc/ext/traffic-server.py (which I would think you've 
>>> done, if you did this patch). There are already :ts: roles defined (e.g. 
>>> :ts:cv: for configuration variables). Something like :ts:jira:`3612` might 
>>> be a good choice. I think the goal of this patch was so that normal usage 
>>> of "TS-3612" would get converted to a JIRA link, which may be a step too 
>>> far.
>>>
>>>    On Tuesday, January 3, 2017 4:32 AM, Jean Baptiste Favre 
>>><webmas...@jbfavre.org> wrote:
>>>
>>>
>>>  Hello,
>>> I've had a discussion on docutils mailing list about this issue.
>>>
>>> Short story: we currently use docutils Inliner monkey patching which is
>>> likely to break things whenever docutils changes its API.
>>> This change happenned in 0.13.0
>>>
>>> A more stable way of building ATS doc would be to use classic docutils
>>> roles, ie writing TS issues like ":TS: XXXX" instead of "(TS-XXXX)"and
>>> define a custom role which is supported, whereas our current way of
>>> monkey patching docutils Inliner isn't.
>>>
>>> I managed to build trafficserver against docutils 0.13.1, but this
>>> require a patch for both trafficserver & docutils.
>>> Discussion is still ongoing to know wether the new behaviour is buggy or
>>> not, and wether docutils patch should be included in next release or not.
>>>
>>> In the mean time, I'll work on implementing the docutils custom role.
>>> I'll open a github PR as soon as the doc refacto is completed.
>>>
>>> Trafficserver is about to be removed from Debian within 2 weeks (stable
>>> freeze is coming and Trafficserver build currently fails because of the
>>> doc) and I'm not sure docutils will be updated until then.
>>>
>>> Cheers,
>>> Jean Baptiste
>>>
>>>> The exception I get comes from code introduced 2 years and half ago
>>>> (commit 8ec35f2c7).
>>>>
>>>> Python docutils 0.13.1, which entrered Debian unstable on 2016-12-11,
>>>> breaks this piece of code.
>>>>
>>>> Trafficserver entered Debian unstable on 2016-11-29, which means build
>>>> was OK.
>>>>
>>>> I can't find any commit modifying doc/conf.py since the one you
>>>> mentionned which fix anything.
>>>>
>>>> Cheers,
>>>> Jean Baptiste Favre
>>


   

Reply via email to