mirror of
https://github.com/ClickHouse/ClickHouse.git
synced 2024-09-20 08:40:50 +00:00
Fix release.py typing issue
This commit is contained in:
parent
da71dbe040
commit
4fc5bb7a63
@ -11,7 +11,7 @@ On another hand, PyGithub is used for convenient getting commit's status from AP
|
||||
|
||||
|
||||
from contextlib import contextmanager
|
||||
from typing import List, Optional
|
||||
from typing import Any, Iterator, List, Literal, Optional
|
||||
import argparse
|
||||
import logging
|
||||
import subprocess
|
||||
@ -48,7 +48,7 @@ class Repo:
|
||||
return self._url
|
||||
|
||||
@url.setter
|
||||
def url(self, protocol: str):
|
||||
def url(self, protocol: str) -> None:
|
||||
if protocol == "ssh":
|
||||
self._url = f"git@github.com:{self}.git"
|
||||
elif protocol == "https":
|
||||
@ -68,17 +68,23 @@ class Release:
|
||||
CMAKE_PATH = get_abs_path(FILE_WITH_VERSION_PATH)
|
||||
CONTRIBUTORS_PATH = get_abs_path(GENERATED_CONTRIBUTORS)
|
||||
|
||||
def __init__(self, repo: Repo, release_commit: str, release_type: str):
|
||||
def __init__(
|
||||
self,
|
||||
repo: Repo,
|
||||
release_commit: str,
|
||||
release_type: Literal["major", "minor", "patch"],
|
||||
):
|
||||
self.repo = repo
|
||||
self._release_commit = ""
|
||||
self.release_commit = release_commit
|
||||
assert release_type in self.BIG + self.SMALL
|
||||
self.release_type = release_type
|
||||
self._git = git
|
||||
self._version = get_version_from_repo(git=self._git)
|
||||
self._release_branch = ""
|
||||
self._rollback_stack = [] # type: List[str]
|
||||
|
||||
def run(self, cmd: str, cwd: Optional[str] = None, **kwargs) -> str:
|
||||
def run(self, cmd: str, cwd: Optional[str] = None, **kwargs: Any) -> str:
|
||||
cwd_text = ""
|
||||
if cwd:
|
||||
cwd_text = f" (CWD='{cwd}')"
|
||||
@ -153,7 +159,9 @@ class Release:
|
||||
|
||||
self.check_commit_release_ready()
|
||||
|
||||
def do(self, check_dirty: bool, check_branch: bool, with_release_branch: bool):
|
||||
def do(
|
||||
self, check_dirty: bool, check_branch: bool, with_release_branch: bool
|
||||
) -> None:
|
||||
self.check_prerequisites()
|
||||
|
||||
if check_dirty:
|
||||
@ -310,7 +318,7 @@ class Release:
|
||||
return self._version
|
||||
|
||||
@version.setter
|
||||
def version(self, version: ClickHouseVersion):
|
||||
def version(self, version: ClickHouseVersion) -> None:
|
||||
if not isinstance(version, ClickHouseVersion):
|
||||
raise ValueError(f"version must be ClickHouseVersion, not {type(version)}")
|
||||
self._version = version
|
||||
@ -320,7 +328,7 @@ class Release:
|
||||
return self._release_branch
|
||||
|
||||
@release_branch.setter
|
||||
def release_branch(self, branch: str):
|
||||
def release_branch(self, branch: str) -> None:
|
||||
self._release_branch = release_branch(branch)
|
||||
|
||||
@property
|
||||
@ -328,7 +336,7 @@ class Release:
|
||||
return self._release_commit
|
||||
|
||||
@release_commit.setter
|
||||
def release_commit(self, release_commit: str):
|
||||
def release_commit(self, release_commit: str) -> None:
|
||||
self._release_commit = commit(release_commit)
|
||||
|
||||
@contextmanager
|
||||
@ -367,7 +375,7 @@ class Release:
|
||||
yield
|
||||
|
||||
@contextmanager
|
||||
def _bump_testing_version(self, helper_branch: str):
|
||||
def _bump_testing_version(self, helper_branch: str) -> Iterator[None]:
|
||||
self.read_version()
|
||||
self.version = self.version.update(self.release_type)
|
||||
self.version.with_description(VersionType.TESTING)
|
||||
@ -387,7 +395,7 @@ class Release:
|
||||
yield
|
||||
|
||||
@contextmanager
|
||||
def _checkout(self, ref: str, with_checkout_back: bool = False):
|
||||
def _checkout(self, ref: str, with_checkout_back: bool = False) -> Iterator[None]:
|
||||
orig_ref = self._git.branch or self._git.sha
|
||||
need_rollback = False
|
||||
if ref not in (self._git.branch, self._git.sha):
|
||||
@ -406,7 +414,7 @@ class Release:
|
||||
self.run(rollback_cmd)
|
||||
|
||||
@contextmanager
|
||||
def _create_branch(self, name: str, start_point: str = ""):
|
||||
def _create_branch(self, name: str, start_point: str = "") -> Iterator[None]:
|
||||
self.run(f"git branch {name} {start_point}")
|
||||
rollback_cmd = f"git branch -D {name}"
|
||||
self._rollback_stack.append(rollback_cmd)
|
||||
@ -418,7 +426,7 @@ class Release:
|
||||
raise
|
||||
|
||||
@contextmanager
|
||||
def _create_gh_label(self, label: str, color_hex: str):
|
||||
def _create_gh_label(self, label: str, color_hex: str) -> Iterator[None]:
|
||||
# API call, https://docs.github.com/en/rest/reference/issues#create-a-label
|
||||
self.run(
|
||||
f"gh api repos/{self.repo}/labels -f name={label} -f color={color_hex}"
|
||||
@ -433,7 +441,7 @@ class Release:
|
||||
raise
|
||||
|
||||
@contextmanager
|
||||
def _create_gh_release(self, as_prerelease: bool):
|
||||
def _create_gh_release(self, as_prerelease: bool) -> Iterator[None]:
|
||||
with self._create_tag():
|
||||
# Preserve tag if version is changed
|
||||
tag = self.version.describe
|
||||
@ -468,7 +476,9 @@ class Release:
|
||||
raise
|
||||
|
||||
@contextmanager
|
||||
def _push(self, ref: str, with_rollback_on_fail: bool = True, remote_ref: str = ""):
|
||||
def _push(
|
||||
self, ref: str, with_rollback_on_fail: bool = True, remote_ref: str = ""
|
||||
) -> Iterator[None]:
|
||||
if remote_ref == "":
|
||||
remote_ref = ref
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user