Will do.
On 06/01/17 11:04 AM, Alan Carroll wrote:
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