1
1
import contextlib
2
2
import re
3
+ import subprocess
3
4
import sys
4
5
from pathlib import Path
6
+ from typing import Any
5
7
6
8
if __name__ == "__main__" and not __package__ :
7
9
file = Path (__file__ ).resolve ()
@@ -25,6 +27,16 @@ def replace_in_file(filename: Path, pattern: "re.Pattern[str]", to: str) -> None
25
27
filename .write_text (new )
26
28
27
29
30
+ def run (title : str , * args : Any , ** kwargs : Any ) -> None :
31
+ try :
32
+ print (f"running { title } " )
33
+ subprocess .run (* args , ** kwargs )
34
+ except (SystemExit , KeyboardInterrupt ):
35
+ raise
36
+ except BaseException as e :
37
+ print (f"{ title } failed: { e } " , file = sys .stderr )
38
+
39
+
28
40
def main () -> None :
29
41
version = get_version ()
30
42
version_files = list (Path ("packages" ).rglob ("__version__.py" ))
@@ -36,13 +48,20 @@ def main() -> None:
36
48
rf"\g<1>{ version or '' } \g<3>" ,
37
49
)
38
50
39
- replace_in_file (
40
- Path ("package.json" ),
41
- re .compile (
42
- r"""(\"version\"\s*:\s*['"])([0-9]+\.[0-9]+\.[0-9]+.*)(['"])""" ,
43
- re .MULTILINE ,
44
- ),
45
- rf"\g<1>{ version or '' } \g<3>" ,
51
+ # replace_in_file(
52
+ # Path("package.json"),
53
+ # re.compile(
54
+ # r"""(\"version\"\s*:\s*['"])([0-9]+\.[0-9]+\.[0-9]+.*)(['"])""",
55
+ # re.MULTILINE,
56
+ # ),
57
+ # rf"\g<1>{version or ''}\g<3>",
58
+ # )
59
+
60
+ run (
61
+ "npm version" ,
62
+ f"npm --no-git-tag-version version { version } " ,
63
+ shell = True ,
64
+ timeout = 600 ,
46
65
)
47
66
48
67
pyproject_files = list (Path ("packages" ).rglob ("pyproject.toml" ))
0 commit comments