mirror of
https://github.com/kovidgoyal/calibre.git
synced 2025-07-08 18:54:09 -04:00
Special case the 0.6.0 release in the Changelog
This commit is contained in:
parent
d0e1fa2d90
commit
d43fcc768f
@ -1,7 +1,7 @@
|
|||||||
'''
|
'''
|
||||||
Trac Macro to generate an end use Changelog from the svn logs.
|
Trac Macro to generate an end use Changelog from the svn logs.
|
||||||
'''
|
'''
|
||||||
import re, collections, time
|
import re, collections, time, os
|
||||||
|
|
||||||
from bzrlib import log as blog, branch
|
from bzrlib import log as blog, branch
|
||||||
|
|
||||||
@ -12,48 +12,55 @@ from trac.wiki.macros import WikiMacroBase
|
|||||||
from trac.util import Markup
|
from trac.util import Markup
|
||||||
|
|
||||||
|
|
||||||
BZR_PATH = '/var/bzr/code/calibre/trunk'
|
BZR_PATH = '/usr/local/calibre'
|
||||||
|
|
||||||
class ChangelogFormatter(blog.LogFormatter):
|
class ChangelogFormatter(blog.LogFormatter):
|
||||||
|
|
||||||
supports_tags = True
|
supports_tags = True
|
||||||
supports_merge_revisions = False
|
supports_merge_revisions = False
|
||||||
|
_show_advice = False
|
||||||
|
|
||||||
def __init__(self, num_of_versions=20):
|
def __init__(self, num_of_versions=20):
|
||||||
self.num_of_versions = num_of_versions
|
self.num_of_versions = num_of_versions
|
||||||
self.messages = collections.deque()
|
self.messages = collections.deque()
|
||||||
self.entries = []
|
self.entries = []
|
||||||
self.current_entry = None
|
self.current_entry = None
|
||||||
|
|
||||||
def log_revision(self, r):
|
def log_revision(self, r):
|
||||||
if len(self.entries) > self.num_of_versions-1:
|
if len(self.entries) > self.num_of_versions-1:
|
||||||
return
|
return
|
||||||
msg = r.rev.message
|
msg = r.rev.message
|
||||||
match = re.match(r'version\s+(\d+\.\d+.\d+)', msg)
|
match = re.match(r'version\s+(\d+\.\d+.\d+)', msg)
|
||||||
|
|
||||||
if match:
|
if match:
|
||||||
if self.current_entry is not None:
|
if self.current_entry is not None:
|
||||||
self.entries.append((self.current_entry, set(self.messages)))
|
self.entries.append((self.current_entry, set(self.messages)))
|
||||||
timestamp = r.rev.timezone + r.rev.timestamp
|
timestamp = r.rev.timezone + r.rev.timestamp
|
||||||
self.current_entry = match.group(1) + time.strftime(' (%d %b, %Y)', time.gmtime(timestamp))
|
self.current_entry = match.group(1) + time.strftime(' (%d %b, %Y)', time.gmtime(timestamp))
|
||||||
self.messages = collections.deque()
|
self.messages = collections.deque()
|
||||||
|
|
||||||
else:
|
else:
|
||||||
if re.search(r'[a-zA-Z]', msg) and len(msg.strip()) > 5:
|
if re.search(r'[a-zA-Z]', msg) and len(msg.strip()) > 5:
|
||||||
if 'translation' not in msg and not msg.startswith('IGN'):
|
if 'translation' not in msg and not msg.startswith('IGN'):
|
||||||
self.messages.append(msg.strip())
|
self.messages.append(msg.strip())
|
||||||
|
|
||||||
def to_wiki_txt(self):
|
def to_wiki_txt(self):
|
||||||
txt = ['= Changelog =\n[[PageOutline]]']
|
txt = ['= Changelog =\n[[PageOutline]]']
|
||||||
for entry in self.entries:
|
for entry in self.entries:
|
||||||
txt.append(u'----\n== Version '+entry[0]+' ==')
|
txt.append(u'----\n== Version '+entry[0]+' ==')
|
||||||
for msg in entry[1]:
|
if entry[0] == '0.6.0':
|
||||||
txt.append(u' * ' + msg)
|
txt.append(u'For a list of new features in 0.6.0 see http://calibre.kovidgoyal.net/new_in_6')
|
||||||
|
else:
|
||||||
|
for msg in entry[1]:
|
||||||
|
txt.append(u' * ' + msg)
|
||||||
|
|
||||||
return u'\n'.join(txt)
|
return u'\n'.join(txt)
|
||||||
|
|
||||||
def bzr_log_to_txt():
|
def bzr_log_to_txt():
|
||||||
b = branch.Branch.open(BZR_PATH)
|
path = BZR_PATH
|
||||||
|
if not os.path.exists(path):
|
||||||
|
path = '/home/kovid/work/calibre'
|
||||||
|
b = branch.Branch.open(path)
|
||||||
lf = ChangelogFormatter()
|
lf = ChangelogFormatter()
|
||||||
blog.show_log(b, lf)
|
blog.show_log(b, lf)
|
||||||
return lf.to_wiki_txt()
|
return lf.to_wiki_txt()
|
||||||
@ -68,6 +75,6 @@ class ChangeLogMacro(WikiMacroBase):
|
|||||||
|
|
||||||
|
|
||||||
if __name__ == '__main__':
|
if __name__ == '__main__':
|
||||||
print bzr_log_to_txt()
|
print bzr_log_to_txt().encode('utf-8')
|
||||||
|
|
||||||
|
|
||||||
|
Loading…
x
Reference in New Issue
Block a user