Skip to content

Commit 841b619

Browse files
committed
Changelogs are now generated automatically during building process
1 parent 39dbddf commit 841b619

File tree

2 files changed

+51
-15
lines changed

2 files changed

+51
-15
lines changed

diff.py

Lines changed: 41 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -12,6 +12,7 @@
1212

1313
from __future__ import print_function, with_statement
1414

15+
import os
1516
import os.path as osp
1617
import re
1718
import shutil
@@ -128,10 +129,27 @@ def diff_package_dicts(dict1, dict2):
128129
text += package.to_wiki()
129130
text += '\r\n'
130131
return text
132+
131133

132-
133-
def compare_package_indexes(version1, version2, rootdir=None):
134+
def find_closer_version(version1):
135+
"""Find version which is the closest to `version`"""
136+
builddir = osp.join(get_basedir(version1), 'build')
137+
func = lambda name: re.match(r'WinPython-([0-9\.]*)\.txt', name)
138+
versions = [func(name).groups()[0]
139+
for name in os.listdir(builddir) if func(name)]
140+
try:
141+
index = versions.index(version1)
142+
except ValueError:
143+
raise ValueError("Unknown version %s" % version1)
144+
if index == 0:
145+
raise ValueError("No version prior to %s" % version1)
146+
return versions[index-1]
147+
148+
149+
def compare_package_indexes(version2, version1=None, rootdir=None):
134150
"""Compare two package index Wiki pages"""
151+
if version1 is None:
152+
version1 = find_closer_version(version2)
135153
text = '\r\n'.join(["== History of changes for WinPython %s ==" % version2,
136154
"", "The following changes were made to WinPython "\
137155
"distribution since version %s." % version1, "", ""])
@@ -147,10 +165,18 @@ def compare_package_indexes(version1, version2, rootdir=None):
147165
return text
148166

149167

150-
def write_changelog(version1, version2, rootdir=None):
168+
def _copy_all_changelogs(version, basedir):
169+
basever = '.'.join(version.split('.')[:2])
170+
for name in os.listdir(CHANGELOGS_DIR):
171+
if re.match(r'WinPython-%s([0-9\.]*)\.txt' % basever, name):
172+
shutil.copyfile(osp.join(CHANGELOGS_DIR, name),
173+
osp.join(basedir, 'build', name))
174+
175+
def write_changelog(version2, version1=None, rootdir=None):
151176
"""Write changelog between version1 and version2 of WinPython"""
152-
text = compare_package_indexes(version1, version2, rootdir=rootdir)
153-
basedir = get_basedir(version1, rootdir=rootdir)
177+
text = compare_package_indexes(version2, version1, rootdir=rootdir)
178+
basedir = get_basedir(version2, rootdir=rootdir)
179+
_copy_all_changelogs(version2, basedir)
154180
fname = osp.join(basedir, 'build', 'WinPython-%s_History.txt' % version2)
155181
with open(fname, 'wb') as fdesc:
156182
fdesc.write(text)
@@ -172,15 +198,17 @@ def test_parse_package_index_wiki(version, rootdir=None):
172198
print('')
173199

174200

175-
def test_compare(basedir, version1, version2):
176-
print(compare_package_indexes(basedir, version1, version2))
201+
def test_compare(basedir, version2, version1):
202+
print(compare_package_indexes(basedir, version2, version1))
177203

178204

179205
if __name__ == '__main__':
180206
# test_parse_package_index_wiki('2.7.3.3')
181-
# print(compare_package_indexes('2.7.3.1', '2.7.3.3'))
182-
# write_changelog('2.7.4.0', '2.7.4.1')
183-
write_changelog('2.7.4.1', '2.7.5.0')
184-
# write_changelog('3.3.0.0beta1', '3.3.0.0beta2')
185-
# write_changelog('3.3.1.0', '3.3.1.1')
186-
write_changelog('3.3.1.1', '3.3.2.0')
207+
# print(compare_package_indexes('2.7.3.3', '2.7.3.1'))
208+
# write_changelog('2.7.4.1', '2.7.4.0')
209+
# write_changelog('2.7.5.0', '2.7.4.1')
210+
write_changelog('2.7.5.1')#, '2.7.5.0')
211+
# write_changelog('3.3.0.0beta2', '3.3.0.0beta1')
212+
# write_changelog('3.3.1.1', '3.3.1.0')
213+
# write_changelog('3.3.2.0', '3.3.1.1')
214+
# write_changelog('3.3.2.1', '3.3.2.0')

make.py

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -23,6 +23,7 @@
2323

2424
# Local imports
2525
from winpython import wppm, utils
26+
import diff
2627

2728

2829
CHANGELOGS_DIR = osp.join(osp.dirname(__file__), 'changelogs')
@@ -616,11 +617,18 @@ def make(self, remove_existing=True):
616617
self._print_done()
617618

618619
# Writing package index
620+
self._print("Writing package index")
619621
fname = osp.join(self.winpydir, os.pardir,
620622
'WinPython-%s.txt' % self.winpyver)
621623
open(fname, 'w').write(self.package_index_wiki)
622624
# Copy to winpython/changelogs
623625
shutil.copyfile(fname, osp.join(CHANGELOGS_DIR, osp.basename(fname)))
626+
self._print_done()
627+
628+
# Writing changelog
629+
self._print("Writing changelog")
630+
diff.write_changelog(self.winpyver)
631+
self._print_done()
624632

625633

626634
def rebuild_winpython(basedir=None, verbose=False):
@@ -714,5 +722,5 @@ def make_all(build_number, release_level, pyver,
714722

715723

716724
if __name__ == '__main__':
717-
make_all(0, '', pyver='2.7')#, simulation=True)
718-
make_all(0, '', pyver='3.3')#, simulation=True)
725+
make_all(1, '', pyver='2.7', simulation=True)
726+
make_all(1, '', pyver='3.3', simulation=True)

0 commit comments

Comments
 (0)