def update_version(self, log): version_path = "mechanize/_version.py" template = """\ "%(text)s" __version__ = %(tuple)s """ old_text = release.read_file_from_env(self._in_source_repo, version_path) old_version = old_text.splitlines()[0].strip(' "') assert old_version == str(self._release_version), \ (old_version, str(self._release_version)) def version_text(version): return template % { "text": str(version), "tuple": repr(tuple(version.tuple[:-1])) } assert old_text == version_text(release.parse_version(old_version)), \ (old_text, version_text(release.parse_version(old_version))) self._in_source_repo.cmd( cmd_env.write_file_cmd( version_path, version_text(self._release_version.next_version()))) self._in_source_repo.cmd( ["git", "commit", "-m", "Update version", version_path])
def _set_next_release_version(self): self._previous_version, self._release_version = \ self._get_next_release_version() if self._tag_name is not None: self._release_version = release.parse_version(self._tag_name) self._source_distributions = self._get_source_distributions( self._release_version)
def check_not_installed(env, python): bogus_version = release.parse_version("0.0.0") try: check_version_equals(env, bogus_version, python) except WrongVersionError, exc: if exc.version is not None: raise
def update_version(self, log): version_path = "mechanize/_version.py" template = """\ "%(text)s" __version__ = %(tuple)s """ old_text = release.read_file_from_env(self._in_source_repo, version_path) old_version = old_text.splitlines()[0].strip(' "') assert old_version == str(self._release_version), \ (old_version, str(self._release_version)) def version_text(version): return template % {"text": str(version), "tuple": repr(tuple(version.tuple[:-1]))} assert old_text == version_text(release.parse_version(old_version)), \ (old_text, version_text(release.parse_version(old_version))) self._in_source_repo.cmd(cmd_env.write_file_cmd( version_path, version_text(self._release_version.next_version()))) self._in_source_repo.cmd(["git", "commit", "-m", "Update version", version_path])
def _get_next_release_version(self): # --pretend / git not installed most_recent, next = "dummy version", "dummy version" try: tags = release.get_cmd_stdout(self._in_source_repo, ["git", "tag", "-l"]).split() except cmd_env.CommandFailedError: pass else: versions = [release.parse_version(tag) for tag in tags] if versions: most_recent = max(versions) next = most_recent.next_version() return most_recent, next
def __init__(self, env, git_repository_path, release_area, mirror_path, build_tools_repo_path=None, run_in_repository=False, tag_name=None, test_uri=None): self._release_area = release_area self._release_dir = release_dir = os.path.join(release_area, "release") self._opt_dir = os.path.join(release_dir, "opt") self._bin_dir = os.path.join(self._opt_dir, "bin") AddToPathEnv = release.make_env_maker(add_to_path_cmd) self._env = AddToPathEnv(release.GitPagerWrapper(env), self._bin_dir) self._source_repo_path = git_repository_path self._in_source_repo = release.CwdEnv(self._env, self._source_repo_path) self._previous_version, self._release_version = \ self._get_next_release_version() if tag_name is not None: self._release_version = release.parse_version(tag_name) self._source_distributions = self._get_source_distributions( self._release_version) self._clone_path = os.path.join(release_dir, "clone") self._in_clone = release.CwdEnv(self._env, self._clone_path) if run_in_repository: self._in_repo = self._in_source_repo self._repo_path = self._source_repo_path else: self._in_repo = self._in_clone self._repo_path = self._clone_path self._docs_dir = os.path.join(self._repo_path, "docs") self._in_docs_dir = release.CwdEnv(self._env, self._docs_dir) self._in_release_dir = release.CwdEnv(self._env, self._release_dir) self._build_tools_path = build_tools_repo_path if self._build_tools_path is not None: self._website_source_path = os.path.join(self._build_tools_path, "website") self._mirror_path = mirror_path self._in_mirror = release.CwdEnv(self._env, self._mirror_path) self._css_validator_path = "css_validator" self._test_uri = test_uri self._test_deps_dir = os.path.join(release_dir, "test_deps") self._easy_install_test_dir = os.path.join(release_dir, "easy_install_test") self._in_easy_install_dir = release.CwdEnv(self._env, self._easy_install_test_dir) # prevent anything other than functional test dependencies being on # sys.path due to cwd or PYTHONPATH self._easy_install_env = clean_environ_env( release.CwdEnv(env, self._test_deps_dir)) self._zope_testbrowser_dir = os.path.join(release_dir, "zope_testbrowser_test")
def _get_next_tag_from_repo(self): # Dry run or no tags next_ = "dummy" try: tag_lines = release.get_cmd_stdout( self._env, ["git", "show-ref", "--tags"]) tags = [] for line in tag_lines.splitlines(): tag = line.split()[1].split("refs/tags/")[1] tags.append(tag) except cmd_env.CommandFailedError: pass else: versions = [release.parse_version(t) for t in tags] if len(versions) != 0: most_recent = max(versions) next_ = str(most_recent.next_version()) return next_
def _get_next_tag_from_repo(self): # Dry run or no tags next_ = "dummy" try: tag_lines = release.get_cmd_stdout(self._env, ["git", "show-ref", "--tags"]) tags = [] for line in tag_lines.splitlines(): tag = line.split()[1].split("refs/tags/")[1] tags.append(tag) except cmd_env.CommandFailedError: pass else: versions = [release.parse_version(t) for t in tags] if len(versions) != 0: most_recent = max(versions) next_ = str(most_recent.next_version()) return next_