def _fix_versions_notes(setup): ver, date, lines = _parse_last_release(setup) setup_ver = setup.VER source_file = os.path.join(setup.DIR, setup.PY_SRC) source_ver = _get_py_source_version(setup) setup_file = 'setup.py' release_file = setup.RELEASE_FILE changelog_file = 'debian/changelog' changelog_ver, _, cl_lines = release.parse_deb_changelog(changelog_file) STRING_GROUP = '["\']([^"\']+)["\']' EQ = '\s*=\s*' if ver != setup.VER: _maybe_update_file(setup_file, setup_ver, release_file, ver, ver, r'^VER' + EQ + STRING_GROUP) if ver != changelog_ver or _ver_lines_different(lines, cl_lines): setup.VER = ver if ver == changelog_ver: del_lines = len(cl_lines) + 5 else: del_lines = 0 new_text = '\n'.join(release.out_debian_changelog(setup, lines)) _maybe_update_file(changelog_file, changelog_ver, release_file, ver, new_text, None, del_lines) if ver != source_ver: _maybe_update_file(source_file, source_ver, release_file, ver, ver, r'^\s*__version__' + EQ + STRING_GROUP)
def get_and_verify_versions(setup): """Get the version and make sure all versions are synched.""" setup_ver = setup.VER source_ver = _get_py_source_version(setup) rel_ver, _, _ = _parse_last_release(setup) changelog_ver, _, _ = release.parse_deb_changelog( 'debian/changelog') if (setup_ver != source_ver or setup_ver != rel_ver or setup_ver != changelog_ver): print '** Local setup versions don\'t agree' print '** setup.py = %r' % setup_ver print '** %s/%s = %r' % (setup.DIR, setup.PY_SRC, source_ver) print '** %s = %r' % (setup.RELEASE_FILE, rel_ver) print '** %s = %r' % ('debian/changelog', changelog_ver) raise PyBdistException('Setup versions don\'t agree') print ' Local setup versions agree' return setup_ver