mirror of
https://github.com/aiogram/aiogram.git
synced 2025-12-08 17:13:56 +00:00
Add bump_versions.py script (#338)
* Add bump_versions.py script * Fix pipeline
This commit is contained in:
parent
e4198fb1f2
commit
28382ebf5f
10 changed files with 763 additions and 157 deletions
1
.apiversion
Normal file
1
.apiversion
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
4.8
|
||||||
4
.github/workflows/docs.yml
vendored
4
.github/workflows/docs.yml
vendored
|
|
@ -23,6 +23,10 @@ jobs:
|
||||||
poetry install
|
poetry install
|
||||||
mkdir -p reports
|
mkdir -p reports
|
||||||
|
|
||||||
|
- name: Bump versions
|
||||||
|
run: |
|
||||||
|
make bump
|
||||||
|
|
||||||
- name: Lint code
|
- name: Lint code
|
||||||
run: |
|
run: |
|
||||||
make flake8-report
|
make flake8-report
|
||||||
|
|
|
||||||
2
.github/workflows/tests.yml
vendored
2
.github/workflows/tests.yml
vendored
|
|
@ -37,7 +37,7 @@ jobs:
|
||||||
|
|
||||||
- name: Lint code
|
- name: Lint code
|
||||||
run: |
|
run: |
|
||||||
poetry run flake8 aiogram test
|
poetry run flake8 aiogram
|
||||||
poetry run mypy aiogram
|
poetry run mypy aiogram
|
||||||
|
|
||||||
- name: Run tests
|
- name: Run tests
|
||||||
|
|
|
||||||
12
Makefile
12
Makefile
|
|
@ -76,12 +76,14 @@ isort:
|
||||||
black:
|
black:
|
||||||
$(py) black aiogram tests
|
$(py) black aiogram tests
|
||||||
|
|
||||||
|
.PHONY: flake8
|
||||||
flake8:
|
flake8:
|
||||||
$(py) flake8 aiogram test
|
$(py) flake8 aiogram
|
||||||
|
|
||||||
|
.PHONY: flake8-report
|
||||||
flake8-report:
|
flake8-report:
|
||||||
mkdir -p $(reports_dir)/flake8
|
mkdir -p $(reports_dir)/flake8
|
||||||
$(py) flake8 --format=html --htmldir=$(reports_dir)/flake8 aiogram test
|
$(py) flake8 --format=html --htmldir=$(reports_dir)/flake8 aiogram
|
||||||
|
|
||||||
.PHONY: mypy
|
.PHONY: mypy
|
||||||
mypy:
|
mypy:
|
||||||
|
|
@ -142,3 +144,9 @@ build: clean flake8-report mypy-report test-coverage docs docs-copy-reports
|
||||||
mkdir -p site/simple
|
mkdir -p site/simple
|
||||||
poetry build
|
poetry build
|
||||||
mv dist site/simple/aiogram
|
mv dist site/simple/aiogram
|
||||||
|
|
||||||
|
|
||||||
|
.PHONY: bump
|
||||||
|
bump:
|
||||||
|
poetry version $(args)
|
||||||
|
$(python) scripts/bump_versions.py
|
||||||
|
|
|
||||||
|
|
@ -1,5 +1,3 @@
|
||||||
from pkg_resources import get_distribution
|
|
||||||
|
|
||||||
from .api import methods, types
|
from .api import methods, types
|
||||||
from .api.client import session
|
from .api.client import session
|
||||||
from .api.client.bot import Bot
|
from .api.client.bot import Bot
|
||||||
|
|
@ -30,5 +28,5 @@ __all__ = (
|
||||||
"handler",
|
"handler",
|
||||||
)
|
)
|
||||||
|
|
||||||
__version__ = get_distribution(dist=__package__).version
|
__version__ = "3.0.0a4"
|
||||||
__api_version__ = "4.8"
|
__api_version__ = "4.8"
|
||||||
|
|
|
||||||
1
docs/_package_version.md
Normal file
1
docs/_package_version.md
Normal file
|
|
@ -0,0 +1 @@
|
||||||
|
3.0.0a4
|
||||||
|
|
@ -1,6 +1,6 @@
|
||||||
# Overview
|
# Overview
|
||||||
|
|
||||||
Documentation for version 3.0 [WIP] [^1]
|
Documentation for version {!_package_version.md!} [WIP] [^1]
|
||||||
|
|
||||||
[](https://opensource.org/licenses/MIT)
|
[](https://opensource.org/licenses/MIT)
|
||||||
[](https://pypi.python.org/pypi/aiogram)
|
[](https://pypi.python.org/pypi/aiogram)
|
||||||
|
|
|
||||||
833
poetry.lock
generated
833
poetry.lock
generated
File diff suppressed because it is too large
Load diff
|
|
@ -68,6 +68,7 @@ aiohttp-socks = "^0.3.4"
|
||||||
pre-commit = "^2.3.0"
|
pre-commit = "^2.3.0"
|
||||||
packaging = "^20.3"
|
packaging = "^20.3"
|
||||||
typing-extensions = "^3.7.4"
|
typing-extensions = "^3.7.4"
|
||||||
|
poetry = "^1.0.5"
|
||||||
|
|
||||||
[tool.poetry.extras]
|
[tool.poetry.extras]
|
||||||
fast = ["uvloop"]
|
fast = ["uvloop"]
|
||||||
|
|
|
||||||
60
scripts/bump_versions.py
Normal file
60
scripts/bump_versions.py
Normal file
|
|
@ -0,0 +1,60 @@
|
||||||
|
import re
|
||||||
|
from pathlib import Path
|
||||||
|
|
||||||
|
from poetry.factory import Factory
|
||||||
|
from poetry.masonry.metadata import Metadata
|
||||||
|
|
||||||
|
BASE_PATTERN = r'({variable} = ")[a-z0-9.+]+(")'
|
||||||
|
PACKAGE_VERSION = re.compile(BASE_PATTERN.format(variable="__version__"))
|
||||||
|
API_VERSION = re.compile(BASE_PATTERN.format(variable="__api_version__"))
|
||||||
|
|
||||||
|
|
||||||
|
def get_package_version() -> str:
|
||||||
|
poetry_instance = Factory().create_poetry(Path.cwd())
|
||||||
|
meta: Metadata = Metadata.from_package(poetry_instance.package)
|
||||||
|
return meta.version
|
||||||
|
|
||||||
|
|
||||||
|
def get_telegram_api_version() -> str:
|
||||||
|
path = Path.cwd() / ".apiversion"
|
||||||
|
version = path.read_text().strip()
|
||||||
|
return version
|
||||||
|
|
||||||
|
|
||||||
|
def replace_line(content: str, pattern: re.Pattern, new_value: str) -> str:
|
||||||
|
return pattern.sub(f"\\g<1>{new_value}\\g<2>", content)
|
||||||
|
|
||||||
|
|
||||||
|
def write_package_meta(package_version: str, api_version: str) -> None:
|
||||||
|
path = Path.cwd() / "aiogram" / "__init__.py"
|
||||||
|
content = path.read_text()
|
||||||
|
|
||||||
|
content = replace_line(content, PACKAGE_VERSION, package_version)
|
||||||
|
content = replace_line(content, API_VERSION, api_version)
|
||||||
|
|
||||||
|
print(f"Write {path}")
|
||||||
|
path.write_text(content)
|
||||||
|
|
||||||
|
|
||||||
|
def write_docs_meta(package_version: str, api_version: str) -> None:
|
||||||
|
api_meta = Path.cwd() / "docs" / "_api_version.md"
|
||||||
|
package_meta = Path.cwd() / "docs" / "_package_version.md"
|
||||||
|
|
||||||
|
print(f"Write {api_meta}")
|
||||||
|
api_meta.write_text(api_version + "\n")
|
||||||
|
print(f"Write {package_meta}")
|
||||||
|
package_meta.write_text(package_version + "\n")
|
||||||
|
|
||||||
|
|
||||||
|
def main():
|
||||||
|
package_version = get_package_version()
|
||||||
|
api_version = get_telegram_api_version()
|
||||||
|
|
||||||
|
print(f"Package version: {package_version}")
|
||||||
|
print(f"Telegram Bot API version: {api_version}")
|
||||||
|
write_package_meta(package_version=package_version, api_version=api_version)
|
||||||
|
write_docs_meta(package_version=package_version, api_version=api_version)
|
||||||
|
|
||||||
|
|
||||||
|
if __name__ == "__main__":
|
||||||
|
main()
|
||||||
Loading…
Add table
Add a link
Reference in a new issue