mirror of
https://github.com/sqlalchemy/sqlalchemy.git
synced 2026-05-28 03:26:01 -04:00
add support to link to changelogs and pullrequests
This commit is contained in:
Vendored
+38
-18
@@ -143,29 +143,39 @@ class ChangeLogDirective(EnvDirective, Directive):
|
||||
topsection.append(nodes.Text("no release date"))
|
||||
return topsection
|
||||
|
||||
|
||||
def _render_rec(self, rec, section, cat, append_sec):
|
||||
para = rec['node'].deepcopy()
|
||||
|
||||
#targetid = "%s-%d" % (self.type_, self.env.new_serialno(self.type_))
|
||||
#targetnode = nodes.target('', '', ids=[targetid])
|
||||
#para.insert(0, targetnode)
|
||||
|
||||
insert_ticket = nodes.paragraph('')
|
||||
para.append(insert_ticket)
|
||||
|
||||
for i, ticket in enumerate(rec['tickets']):
|
||||
if i > 0:
|
||||
insert_ticket.append(nodes.Text(", ", ", "))
|
||||
else:
|
||||
insert_ticket.append(nodes.Text(" ", " "))
|
||||
refuri = self.env.config.changelog_render_ticket
|
||||
if refuri is not None:
|
||||
refuri = refuri % ticket
|
||||
insert_ticket.append(
|
||||
nodes.reference('', '',
|
||||
nodes.Text("#%s" % ticket, "#%s" % ticket),
|
||||
refuri=refuri
|
||||
)
|
||||
)
|
||||
else:
|
||||
insert_ticket.append(
|
||||
nodes.Text("#%s" % ticket, "#%s" % ticket)
|
||||
)
|
||||
i = 0
|
||||
for collection, render, prefix in (
|
||||
(rec['tickets'], self.env.config.changelog_render_ticket, "#%s"),
|
||||
(rec['pullreq'], self.env.config.changelog_render_pullreq,
|
||||
"pull request %s"),
|
||||
(rec['changeset'], self.env.config.changelog_render_changeset, "r%s"),
|
||||
):
|
||||
for refname in collection:
|
||||
if i > 0:
|
||||
insert_ticket.append(nodes.Text(", ", ", "))
|
||||
else:
|
||||
insert_ticket.append(nodes.Text(" ", " "))
|
||||
i += 1
|
||||
if render is not None:
|
||||
refuri = render % refname
|
||||
node = nodes.reference('', '',
|
||||
nodes.Text(prefix % refname, prefix % refname),
|
||||
refuri=refuri
|
||||
)
|
||||
else:
|
||||
node = nodes.Text(prefix % refname, prefix % refname)
|
||||
insert_ticket.append(node)
|
||||
|
||||
if rec['tags']:
|
||||
tag_node = nodes.strong('',
|
||||
@@ -199,6 +209,8 @@ class ChangeDirective(EnvDirective, Directive):
|
||||
rec = {
|
||||
'tags': set(_comma_list(content.get('tags', ''))).difference(['']),
|
||||
'tickets': set(_comma_list(content.get('tickets', ''))).difference(['']),
|
||||
'pullreq': set(_comma_list(content.get('pullreq', ''))).difference(['']),
|
||||
'changeset': set(_comma_list(content.get('changeset', ''))).difference(['']),
|
||||
'node': p,
|
||||
'type': self.type_,
|
||||
"title": content.get("title", None)
|
||||
@@ -227,3 +239,11 @@ def setup(app):
|
||||
None,
|
||||
'env'
|
||||
)
|
||||
app.add_config_value("changelog_render_pullreq",
|
||||
None,
|
||||
'env'
|
||||
)
|
||||
app.add_config_value("changelog_render_changeset",
|
||||
None,
|
||||
'env'
|
||||
)
|
||||
|
||||
Vendored
+3
-1
@@ -60,8 +60,10 @@ changelog_sections = ["general", "orm", "orm declarative", "orm querying", \
|
||||
# tags to sort on inside of sections
|
||||
changelog_inner_tag_sort = ["feature", "bug", "moved", "changed", "removed"]
|
||||
|
||||
# how to render a ticket link
|
||||
# how to render changelog links
|
||||
changelog_render_ticket = "http://www.sqlalchemy.org/trac/ticket/%s"
|
||||
changelog_render_pullreq = "https://bitbucket.org/sqlalchemy/sqlalchemy/pull-request/%s"
|
||||
changelog_render_changeset = "http://www.sqlalchemy.org/trac/changeset/%s"
|
||||
|
||||
|
||||
# The encoding of source files.
|
||||
|
||||
Reference in New Issue
Block a user