From c4ddf7e987b2a0592817d86ad8b5e1323a5d33db Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Thu, 14 May 2026 18:17:31 +0500 Subject: [PATCH 01/20] ci(semantic-release): #67: add configs for semantic-release --- release.config.cjs | 47 ++++++++++++++++++++++++++++++++++++++++++++++ release.rules.cjs | 29 ++++++++++++++++++++++++++++ 2 files changed, 76 insertions(+) create mode 100644 release.config.cjs create mode 100644 release.rules.cjs diff --git a/release.config.cjs b/release.config.cjs new file mode 100644 index 0000000..f0f084b --- /dev/null +++ b/release.config.cjs @@ -0,0 +1,47 @@ +'use strict'; + +const { RELEASE_RULES, CHANGELOG_TYPES } = require('./release.rules.cjs'); + +module.exports = { + branches: [ + { name: 'master' }, + { name: 'release/*', prerelease: 'rc' }, + { name: 'develop', prerelease: 'alpha' }, + ], + + plugins: [ + [ + '@semantic-release/commit-analyzer', + { + preset: 'conventionalcommits', + releaseRules: RELEASE_RULES, + }, + ], + [ + '@semantic-release/release-notes-generator', + { + preset: 'conventionalcommits', + presetConfig: { types: CHANGELOG_TYPES }, + }, + ], + [ + '@semantic-release/changelog', + { changelogFile: 'CHANGELOG.md' }, + ], + [ + 'semantic-release-pypi', + { pypiPublish: true }, + ], + [ + '@semantic-release/git', + { + assets: ['CHANGELOG.md', 'pyproject.toml'], + message: + 'chore(release): ${nextRelease.version}\n\n' + + 'Automatically generated by semantic-release\n\n' + + 'skip-checks: true', + }, + ], + '@semantic-release/github', + ], +}; diff --git a/release.rules.cjs b/release.rules.cjs new file mode 100644 index 0000000..bc34afb --- /dev/null +++ b/release.rules.cjs @@ -0,0 +1,29 @@ +'use strict'; + +const RELEASE_RULES = [ + { type: 'feat', release: 'minor' }, + { type: 'fix', release: 'patch' }, + { type: 'docs', release: 'patch' }, + { type: 'refactor', release: 'patch' }, + { type: 'chore', release: false }, + { type: 'ci', release: false }, + { type: 'style', release: false }, + { type: 'test', release: false }, + { type: 'build', release: false }, + { type: 'config', release: false }, +]; + +const CHANGELOG_TYPES = [ + { type: 'feat', section: 'Features', hidden: false }, + { type: 'fix', section: 'Bug Fixes', hidden: false }, + { type: 'docs', section: 'Documentation', hidden: false }, + { type: 'refactor', section: 'Refactoring', hidden: false }, + { type: 'build', section: 'Build System', hidden: true }, + { type: 'chore', section: 'Chores', hidden: true }, + { type: 'ci', section: 'CI', hidden: true }, + { type: 'style', section: 'Style', hidden: true }, + { type: 'test', section: 'Tests', hidden: true }, + { type: 'config', section: 'Config', hidden: true }, +]; + +module.exports = { RELEASE_RULES, CHANGELOG_TYPES }; \ No newline at end of file From 594cd97d824d5b264cfaf105fb96a4cf294cac39 Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Thu, 14 May 2026 18:31:19 +0500 Subject: [PATCH 02/20] ci(semantic-release): #67: disable python-semantic-release --- pyproject.toml | 46 ---------------------------------------------- 1 file changed, 46 deletions(-) diff --git a/pyproject.toml b/pyproject.toml index 8452d4b..5100f7e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -55,9 +55,6 @@ pytest = "^7.4.0" pytest-cov = "^7.0.0" ruff = "^0.13.2" -[tool.poetry.group.semantic-release.dependencies] -python-semantic-release = "^10.4.1" - [build-system] requires = ["poetry>=1.8.3"] build-backend = "poetry.masonry.api" @@ -75,46 +72,3 @@ omit = [ [tool.coverage.report] show_missing = true - -[tool.semantic_release] -version_toml = ["pyproject.toml:tool.poetry.version"] -build_command = "poetry build" -allow_zero_version = true -commit_parser = "conventional" -commit_message = "{version}\n\nAutomatically generated by python-semantic-release\n\nskip-checks: true" - -[tool.semantic_release.commit_parser_options] -minor_tags = ["feat"] -patch_tags = ["fix", "docs"] -parse_squash_commits = true -ignore_merge_commits = true -allowed_tags = ['feat', 'fix', 'build', 'chore', 'ci', 'docs', 'style', 'refactor', 'test', 'config'] - -[tool.semantic_release.changelog] -exclude_commit_patterns = [ - '''chore(?:\([^)]*?\))?: .+''', - '''ci(?:\([^)]*?\))?: .+''', - '''style(?:\([^)]*?\))?: .+''', - '''test(?:\([^)]*?\))?: .+''', - '''build\((?!deps\): .+)''', - '''Initial [Cc]ommit.*''', - '''.*tweaks.*''', - '''^[^:]+\(semantic-release\):.*''', - '''.*try.*''', - '''docs(readme): bring test coverage up to date''', -] - -[tool.semantic_release.branches.master] -match = "master" -prerelease = false - -[tool.semantic_release.branches.prereleases] -match = "^(release)/.+" -prerelease = true -prerelease_token = "rc" - -[tool.semantic_release.branches.alpha] -match = "^(feat|fix|docs)/.+" -prerelease = true -prerelease_token = "alpha" - From dbf7597df4c789278ec1436fc607537e3504626d Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Tue, 19 May 2026 14:25:44 +0500 Subject: [PATCH 03/20] ci(semantic-release): #67: rewrite workflow of versioning --- .github/workflows/publish-release.yml | 33 +++++++++++++++++---------- 1 file changed, 21 insertions(+), 12 deletions(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 6936630..adcd446 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -5,6 +5,7 @@ on: branches: - master - 'release/*' + - develop permissions: contents: write @@ -80,17 +81,25 @@ jobs: virtualenvs-create: true virtualenvs-in-project: true - - name: Semantic Version Release - id: release - uses: python-semantic-release/python-semantic-release@v8.3.0 + - name: Set up Node.js + uses: actions/setup-node@v6 with: - github_token: ${{ secrets.GITHUB_TOKEN }} - git_committer_name: "github-actions" - git_committer_email: "actions@users.noreply.github.com" + node-version: 24.15.0 - - name: Upload to GitHub Release Assets - uses: python-semantic-release/publish-action@v10.4.1 - if: steps.release.outputs.released == 'true' - with: - github_token: ${{ secrets.GITHUB_TOKEN }} - tag: ${{ steps.release.outputs.tag }} \ No newline at end of file + - name: Install semantic-release and plugins + run: | + npm install \ + semantic-release@25.0.3 \ + @semantic-release/commit-analyzer@13.0.1 \ + @semantic-release/release-notes-generator@14.1.1 \ + @semantic-release/changelog@6.0.3 \ + @semantic-release/git@10.0.1 \ + @semantic-release/github@12.0.8 \ + semantic-release-pypi@5.3.0 \ + conventional-changelog-conventionalcommits@9.3.1 + + - name: Semantic Version Release + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + run: | + semantic-release --dry-run \ No newline at end of file From 8ee93e4e3093f6ce8f72441605f566294caa1397 Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Tue, 19 May 2026 14:26:04 +0500 Subject: [PATCH 04/20] ci(semantic-release): #67: add feature branch config for testing --- .github/workflows/publish-release.yml | 20 +++++++++++--------- release.config.cjs | 2 +- 2 files changed, 12 insertions(+), 10 deletions(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index adcd446..5c5e6ee 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -5,22 +5,24 @@ on: branches: - master - 'release/*' - - develop + - feature/#67-rewrite-release-workflow permissions: contents: write jobs: - linting-and-testing: - name: Linting and Testing - uses: ./.github/workflows/lint-and-test.yml - permissions: - packages: read - contents: write + # linting-and-testing: + # name: Linting and Testing + # uses: ./.github/workflows/lint-and-test.yml + # permissions: + # packages: read + # contents: write + # test-job: + # name: Test job with no dependencies release: name: Create and Publish Release - needs: linting-and-testing + # needs: linting-and-testing runs-on: ubuntu-latest concurrency: group: ${{ github.workflow }}-release-${{ github.ref_name }} @@ -102,4 +104,4 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - semantic-release --dry-run \ No newline at end of file + npx semantic-release --dry-run \ No newline at end of file diff --git a/release.config.cjs b/release.config.cjs index f0f084b..5cf6b3a 100644 --- a/release.config.cjs +++ b/release.config.cjs @@ -6,7 +6,7 @@ module.exports = { branches: [ { name: 'master' }, { name: 'release/*', prerelease: 'rc' }, - { name: 'develop', prerelease: 'alpha' }, + { name: 'feature/#67-rewrite-release-workflow', prerelease: 'alpha' }, ], plugins: [ From 3167acbd85488726577f150af163006c1bc5d98a Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Tue, 19 May 2026 14:47:57 +0500 Subject: [PATCH 05/20] ci(semantic-release): #67: add exec plugin for versioning poetry release instead of pypi --- .github/workflows/publish-release.yml | 1 + release.config.cjs | 10 ++++++---- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 5c5e6ee..4fb2147 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -92,6 +92,7 @@ jobs: run: | npm install \ semantic-release@25.0.3 \ + @semantic-release/exec@7.1.0 \ @semantic-release/commit-analyzer@13.0.1 \ @semantic-release/release-notes-generator@14.1.1 \ @semantic-release/changelog@6.0.3 \ diff --git a/release.config.cjs b/release.config.cjs index 5cf6b3a..3a38782 100644 --- a/release.config.cjs +++ b/release.config.cjs @@ -28,10 +28,6 @@ module.exports = { '@semantic-release/changelog', { changelogFile: 'CHANGELOG.md' }, ], - [ - 'semantic-release-pypi', - { pypiPublish: true }, - ], [ '@semantic-release/git', { @@ -42,6 +38,12 @@ module.exports = { 'skip-checks: true', }, ], + [ + '@semantic-release/exec', + { + prepareCmd: 'poetry version ${nextRelease.version}', + } + ], '@semantic-release/github', ], }; From af484035fcd048a251032556f4160813d1a0c9bd Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Tue, 19 May 2026 14:50:01 +0500 Subject: [PATCH 06/20] ci(semantic-release): #67: revert test config --- .github/workflows/publish-release.yml | 18 ++++++++---------- release.config.cjs | 2 +- 2 files changed, 9 insertions(+), 11 deletions(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 4fb2147..1c452d1 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -5,24 +5,22 @@ on: branches: - master - 'release/*' - - feature/#67-rewrite-release-workflow + - develop permissions: contents: write jobs: - # linting-and-testing: - # name: Linting and Testing - # uses: ./.github/workflows/lint-and-test.yml - # permissions: - # packages: read - # contents: write - # test-job: - # name: Test job with no dependencies + linting-and-testing: + name: Linting and Testing + uses: ./.github/workflows/lint-and-test.yml + permissions: + packages: read + contents: write release: name: Create and Publish Release - # needs: linting-and-testing + needs: linting-and-testing runs-on: ubuntu-latest concurrency: group: ${{ github.workflow }}-release-${{ github.ref_name }} diff --git a/release.config.cjs b/release.config.cjs index 3a38782..154f124 100644 --- a/release.config.cjs +++ b/release.config.cjs @@ -6,7 +6,7 @@ module.exports = { branches: [ { name: 'master' }, { name: 'release/*', prerelease: 'rc' }, - { name: 'feature/#67-rewrite-release-workflow', prerelease: 'alpha' }, + { name: 'develop', prerelease: 'alpha' }, ], plugins: [ From 3891081d746dd33ae8a31ca77374d3ef043be7ce Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Tue, 19 May 2026 15:48:00 +0500 Subject: [PATCH 07/20] ci(semantic-release): #67: add builded files to giyhub releases --- release.config.cjs | 13 ++++++++----- release.rules.cjs | 22 ++++++++++------------ 2 files changed, 18 insertions(+), 17 deletions(-) diff --git a/release.config.cjs b/release.config.cjs index 154f124..6d46df7 100644 --- a/release.config.cjs +++ b/release.config.cjs @@ -1,5 +1,3 @@ -'use strict'; - const { RELEASE_RULES, CHANGELOG_TYPES } = require('./release.rules.cjs'); module.exports = { @@ -28,6 +26,12 @@ module.exports = { '@semantic-release/changelog', { changelogFile: 'CHANGELOG.md' }, ], + [ + '@semantic-release/exec', + { + prepareCmd: 'poetry version ${nextRelease.version} && poetry build', + } + ], [ '@semantic-release/git', { @@ -39,11 +43,10 @@ module.exports = { }, ], [ - '@semantic-release/exec', + '@semantic-release/github', { - prepareCmd: 'poetry version ${nextRelease.version}', + assets: [{ path: 'dist/*' }], } ], - '@semantic-release/github', ], }; diff --git a/release.rules.cjs b/release.rules.cjs index bc34afb..cb36200 100644 --- a/release.rules.cjs +++ b/release.rules.cjs @@ -1,5 +1,3 @@ -'use strict'; - const RELEASE_RULES = [ { type: 'feat', release: 'minor' }, { type: 'fix', release: 'patch' }, @@ -14,16 +12,16 @@ const RELEASE_RULES = [ ]; const CHANGELOG_TYPES = [ - { type: 'feat', section: 'Features', hidden: false }, - { type: 'fix', section: 'Bug Fixes', hidden: false }, - { type: 'docs', section: 'Documentation', hidden: false }, - { type: 'refactor', section: 'Refactoring', hidden: false }, - { type: 'build', section: 'Build System', hidden: true }, - { type: 'chore', section: 'Chores', hidden: true }, - { type: 'ci', section: 'CI', hidden: true }, - { type: 'style', section: 'Style', hidden: true }, - { type: 'test', section: 'Tests', hidden: true }, - { type: 'config', section: 'Config', hidden: true }, + { type: 'feat', section: 'Features', hidden: false }, + { type: 'fix', section: 'Bug Fixes', hidden: false }, + { type: 'docs', section: 'Documentation', hidden: false }, + { type: 'refactor', section: 'Refactoring', hidden: false }, + { type: 'build', hidden: true }, + { type: 'chore', hidden: true }, + { type: 'ci', hidden: true }, + { type: 'style', hidden: true }, + { type: 'test', hidden: true }, + { type: 'config', hidden: true }, ]; module.exports = { RELEASE_RULES, CHANGELOG_TYPES }; \ No newline at end of file From 8f0b9227deaae8dfd8ddb7e314fd85aadf53754a Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Tue, 19 May 2026 17:09:57 +0500 Subject: [PATCH 08/20] ci(semantic-release): #67: add backmerge plugin --- .github/workflows/publish-release.yml | 3 ++- release.config.cjs | 11 +++++++++++ 2 files changed, 13 insertions(+), 1 deletion(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index 1c452d1..c7774dd 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -97,7 +97,8 @@ jobs: @semantic-release/git@10.0.1 \ @semantic-release/github@12.0.8 \ semantic-release-pypi@5.3.0 \ - conventional-changelog-conventionalcommits@9.3.1 + conventional-changelog-conventionalcommits@9.3.1 \ + @saithodev/semantic-release-backmerge@4.0.1 - name: Semantic Version Release env: diff --git a/release.config.cjs b/release.config.cjs index 6d46df7..ba31ae6 100644 --- a/release.config.cjs +++ b/release.config.cjs @@ -48,5 +48,16 @@ module.exports = { assets: [{ path: 'dist/*' }], } ], + [ + '@kilianpaquier/semantic-release-backmerge', + { + targets: + [ + { from: 'master', to: 'develop' }, + { from: 'release/*', to: 'develop' }, + ], + backmergeStrategy: 'merge', + }, + ], ], }; From 09cb41a3f470d988c91d7e40e6f94b662aa56628 Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Tue, 19 May 2026 17:10:36 +0500 Subject: [PATCH 09/20] chore(semantic-release): #67: add commentaries for semantic-release config --- release.config.cjs | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/release.config.cjs b/release.config.cjs index ba31ae6..f42ed05 100644 --- a/release.config.cjs +++ b/release.config.cjs @@ -1,38 +1,46 @@ const { RELEASE_RULES, CHANGELOG_TYPES } = require('./release.rules.cjs'); module.exports = { + // You can find out more about the configuration of this file here https://semantic-release.gitbook.io/semantic-release/usage/configuration branches: [ { name: 'master' }, { name: 'release/*', prerelease: 'rc' }, { name: 'develop', prerelease: 'alpha' }, ], - + // Plugins https://semantic-release.gitbook.io/semantic-release/extending/plugins-list plugins: [ [ + // Analyzes commits and determines which release version should be released. '@semantic-release/commit-analyzer', { preset: 'conventionalcommits', + // Define the commits that will increase the release version releaseRules: RELEASE_RULES, }, ], [ + // Add release notes '@semantic-release/release-notes-generator', { preset: 'conventionalcommits', + // Define the commits that will be described in the release notes presetConfig: { types: CHANGELOG_TYPES }, }, ], [ + // Writing release notes to a changelog '@semantic-release/changelog', { changelogFile: 'CHANGELOG.md' }, ], [ + // Bumping version in pyproject.toml and build .whl '@semantic-release/exec', { prepareCmd: 'poetry version ${nextRelease.version} && poetry build', } ], [ + // Plugin for commits changes '@semantic-release/git', { assets: ['CHANGELOG.md', 'pyproject.toml'], @@ -43,16 +51,19 @@ module.exports = { }, ], [ + // Release to Github with builded files '@semantic-release/github', { assets: [{ path: 'dist/*' }], } ], [ + // Merging changes from actions in master and release/ to develop '@kilianpaquier/semantic-release-backmerge', { targets: [ + // If the develop branch has a protected rule, you need to configure an App Token or personal token so that semantic-release can push to develop { from: 'master', to: 'develop' }, { from: 'release/*', to: 'develop' }, ], From c7f57a2a7ae3c7f635b6943159fa7e828dc19f8b Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Tue, 19 May 2026 17:11:47 +0500 Subject: [PATCH 10/20] docs(contributing): #67: describe how releases are happens --- CONTRIBUTING.md | 58 +++++++++++++++++++++++++++++++++++++++++++++++-- 1 file changed, 56 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 699be79..6f3311f 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,7 +4,9 @@ To contribute to the c2pie package development, you can use one of the following ### General principles -πŸ”Έ Use Conventional Commits (e.g., `feat:`, `fix:`, `style(ruff):`, `ci:`). +πŸ”Έ Use Conventional Commits (e.g., `feat:`, `fix:`, `style(ruff):`, `ci:`). + +πŸ”Έ Use [Git Flow](https://nvie.com/posts/a-successful-git-branching-model/) branches names (e.g., `feature/`, `fix/`, `release/`). πŸ”Έ Run `Lint and Format` task before committing. @@ -89,4 +91,56 @@ ruff check . --fix The latter option is also available via the VC Code task `Lint and Format` -
\ No newline at end of file +
+ +## Release Process + +Releases are fully automated via [semantic-release](https://semantic-release.gitbook.io/). No manual version bumping or tagging is needed. + +### Release triggers + +A release is created automatically on push to `master`, `release/*`, or `develop` if there are commits with a release-triggering type (`feat`, `fix`, `docs`, `refactor`) since the last release. + +### Version tags + +``` +develop β†’ 1.4.0-alpha.1, 1.4.0-alpha.2, ... +release/1.4.0 β†’ 1.4.0-rc.1, 1.4.0-rc.2, ... +master β†’ 1.4.0 +``` + +### Preparing a release + +1. Create a `release/X.Y.0` branch from `develop`. + +2. Only bug fixes and release-related commits are made on this branch. Each push generates a new RC: `1.4.0-rc.1`, `1.4.0-rc.2`, etc. + +3. When the release is ready, merge into `master` via PR. The stable release `1.4.0` is created automatically on merge. + +### Preparing a alpha release + +1. Create a `feature/*` or `fix/*` branch from `develop`. +> Note: naming of branch will be with number of issue and name of issue (e.g. `feature/#67-add-feature`). + +2. Make the changes. + +3. When changes are made, merge into `develop`. The alpha release `1.4.0-alpha.1` is created automatically on merge. + +### Version bump + +| Commit type | Bump | Example | +|---|---|---| +| `fix` | patch | `1.4.0 β†’ 1.4.1` | +| `feat` | minor | `1.4.0 β†’ 1.5.0` | +| `feat!` / `BREAKING CHANGE` | major | `1.4.0 β†’ 2.0.0` | + +### Backmerge + +After every release on `master` or `release/*`, semantic-release automatically merges the release commit back into `develop`. This keeps `develop` in sync with the latest released version and ensures that the release commit (with updated `CHANGELOG.md` and `pyproject.toml`) is not lost. + +| Release on | Merged back into | +|---|---| +| `master` | `develop` | +| `release/*` | `develop` | + +> Note: Backmerged commit to the `develop` branch has the `[skip ci]` tag, so a new alpha release from the `develop` branch will not be created. \ No newline at end of file From 92ad4b32d0d536707c33313ff5d0a8f7bb330e7b Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Tue, 19 May 2026 17:16:33 +0500 Subject: [PATCH 11/20] ci(semantic-release): #67: delete dry-run from action --- .github/workflows/publish-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index c7774dd..aaa787f 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -104,4 +104,4 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - npx semantic-release --dry-run \ No newline at end of file + npx semantic-release \ No newline at end of file From 4bf59efe67425fcbfdb2dc9ffa02a73eb1234304 Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Tue, 19 May 2026 17:18:12 +0500 Subject: [PATCH 12/20] chore(poetry): #67: lock poetry dependencies --- poetry.lock | 720 +--------------------------------------------------- 1 file changed, 11 insertions(+), 709 deletions(-) diff --git a/poetry.lock b/poetry.lock index 72cc315..e02b87b 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,16 +1,4 @@ -# This file is automatically @generated by Poetry 2.4.1 and should not be changed by hand. - -[[package]] -name = "annotated-types" -version = "0.7.0" -description = "Reusable constraint types to use with typing.Annotated" -optional = false -python-versions = ">=3.8" -groups = ["semantic-release"] -files = [ - {file = "annotated_types-0.7.0-py3-none-any.whl", hash = "sha256:1f02e8b43a8fbbc3f3e0d4f0f4bfc8131bcb4eebe8849b8e5c773f3a1c582a53"}, - {file = "annotated_types-0.7.0.tar.gz", hash = "sha256:aff07c09a53a08bc8cfccb9c85b05f1aa9a2a6f23728d790723543408344ce89"}, -] +# This file is automatically @generated by Poetry 2.3.4 and should not be changed by hand. [[package]] name = "cbor2" @@ -72,7 +60,7 @@ version = "2026.4.22" description = "Python package for providing Mozilla's CA Bundle." optional = false python-versions = ">=3.7" -groups = ["main", "semantic-release"] +groups = ["main"] files = [ {file = "certifi-2026.4.22-py3-none-any.whl", hash = "sha256:3cb2210c8f88ba2318d29b0388d1023c8492ff72ecdde4ebdaddbb13a31b1c4a"}, {file = "certifi-2026.4.22.tar.gz", hash = "sha256:8d455352a37b71bf76a79caa83a3d6c25afee4a385d632127b6afb3963f1c580"}, @@ -181,7 +169,7 @@ version = "3.4.7" description = "The Real First Universal Charset Detector. Open, modern and actively maintained alternative to Chardet." optional = false python-versions = ">=3.7" -groups = ["main", "semantic-release"] +groups = ["main"] files = [ {file = "charset_normalizer-3.4.7-cp310-cp310-macosx_10_9_universal2.whl", hash = "sha256:cdd68a1fb318e290a2077696b7eb7a21a49163c455979c639bf5a5dcdc46617d"}, {file = "charset_normalizer-3.4.7-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:e17b8d5d6a8c47c85e68ca8379def1303fd360c3e22093a807cd34a71cd082b8"}, @@ -314,54 +302,18 @@ files = [ {file = "charset_normalizer-3.4.7.tar.gz", hash = "sha256:ae89db9e5f98a11a4bf50407d4363e7b09b31e55bc117b4f7d80aab97ba009e5"}, ] -[[package]] -name = "click" -version = "8.1.8" -description = "Composable command line interface toolkit" -optional = false -python-versions = ">=3.7" -groups = ["semantic-release"] -files = [ - {file = "click-8.1.8-py3-none-any.whl", hash = "sha256:63c132bbbed01578a06712a2d1f497bb62d9c1c0d329b7903a866228027263b2"}, - {file = "click-8.1.8.tar.gz", hash = "sha256:ed53c9d8990d83c2a27deae68e4ee337473f6330c040a31d4225c9574d16096a"}, -] - -[package.dependencies] -colorama = {version = "*", markers = "platform_system == \"Windows\""} - -[[package]] -name = "click-option-group" -version = "0.5.9" -description = "Option groups missing in Click" -optional = false -python-versions = ">=3.7" -groups = ["semantic-release"] -files = [ - {file = "click_option_group-0.5.9-py3-none-any.whl", hash = "sha256:ad2599248bd373e2e19bec5407967c3eec1d0d4fc4a5e77b08a0481e75991080"}, - {file = "click_option_group-0.5.9.tar.gz", hash = "sha256:f94ed2bc4cf69052e0f29592bd1e771a1789bd7bfc482dd0bc482134aff95823"}, -] - -[package.dependencies] -click = ">=7.0" - -[package.extras] -dev = ["pre-commit", "pytest"] -docs = ["m2r2", "pallets-sphinx-themes", "sphinx"] -test = ["pytest"] -test-cov = ["pytest", "pytest-cov"] - [[package]] name = "colorama" version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -groups = ["dev", "semantic-release"] +groups = ["dev"] +markers = "sys_platform == \"win32\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, {file = "colorama-0.4.6.tar.gz", hash = "sha256:08695f5cb7ed6e0531a20572697297273c47b8cae5a63ffc6d6ed5c201be6e44"}, ] -markers = {dev = "sys_platform == \"win32\"", semantic-release = "platform_system == \"Windows\""} [[package]] name = "coverage" @@ -551,36 +503,6 @@ typing-extensions = {version = ">=4.13.2", markers = "python_full_version < \"3. [package.extras] ssh = ["bcrypt (>=3.1.5)"] -[[package]] -name = "deprecated" -version = "1.3.1" -description = "Python @deprecated decorator to deprecate old python classes, functions or methods." -optional = false -python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,>=2.7" -groups = ["semantic-release"] -files = [ - {file = "deprecated-1.3.1-py2.py3-none-any.whl", hash = "sha256:597bfef186b6f60181535a29fbe44865ce137a5079f295b479886c82729d5f3f"}, - {file = "deprecated-1.3.1.tar.gz", hash = "sha256:b1b50e0ff0c1fddaa5708a2c6b0a6588bb09b892825ab2b214ac9ea9d92a5223"}, -] - -[package.dependencies] -wrapt = ">=1.10,<3" - -[package.extras] -dev = ["PyTest", "PyTest-Cov", "bump2version (<1)", "setuptools ; python_version >= \"3.12\"", "tox"] - -[[package]] -name = "dotty-dict" -version = "1.3.1" -description = "Dictionary wrapper for quick access to deeply nested keys." -optional = false -python-versions = ">=3.5,<4.0" -groups = ["semantic-release"] -files = [ - {file = "dotty_dict-1.3.1-py3-none-any.whl", hash = "sha256:5022d234d9922f13aa711b4950372a06a6d64cb6d6db9ba43d0ba133ebfce31f"}, - {file = "dotty_dict-1.3.1.tar.gz", hash = "sha256:4b016e03b8ae265539757a53eba24b9bfda506fb94fbce0bee843c6f05541a15"}, -] - [[package]] name = "exceptiongroup" version = "1.3.1" @@ -600,47 +522,13 @@ typing-extensions = {version = ">=4.6.0", markers = "python_version < \"3.13\""} [package.extras] test = ["pytest (>=6)"] -[[package]] -name = "gitdb" -version = "4.0.12" -description = "Git Object Database" -optional = false -python-versions = ">=3.7" -groups = ["semantic-release"] -files = [ - {file = "gitdb-4.0.12-py3-none-any.whl", hash = "sha256:67073e15955400952c6565cc3e707c554a4eea2e428946f7a4c162fab9bd9bcf"}, - {file = "gitdb-4.0.12.tar.gz", hash = "sha256:5ef71f855d191a3326fcfbc0d5da835f26b13fbcba60c32c21091c349ffdb571"}, -] - -[package.dependencies] -smmap = ">=3.0.1,<6" - -[[package]] -name = "gitpython" -version = "3.1.50" -description = "GitPython is a Python library used to interact with Git repositories" -optional = false -python-versions = ">=3.7" -groups = ["semantic-release"] -files = [ - {file = "gitpython-3.1.50-py3-none-any.whl", hash = "sha256:d352abe2908d07355014abdd21ddf798c2a961469239afec4962e9da884858f9"}, - {file = "gitpython-3.1.50.tar.gz", hash = "sha256:80da2d12504d52e1f998772dc5baf6e553f8d2fcfe1fcc226c9d9a2ee3372dcc"}, -] - -[package.dependencies] -gitdb = ">=4.0.1,<5" - -[package.extras] -doc = ["sphinx (>=7.4.7,<8)", "sphinx-autodoc-typehints", "sphinx_rtd_theme"] -test = ["coverage[toml]", "ddt (>=1.1.1,!=1.4.3)", "mock ; python_version < \"3.8\"", "mypy (==1.18.2) ; python_version >= \"3.9\"", "pre-commit", "pytest (>=7.3.1)", "pytest-cov", "pytest-instafail", "pytest-mock", "pytest-sugar", "typing-extensions ; python_version < \"3.11\""] - [[package]] name = "idna" version = "3.15" description = "Internationalized Domain Names in Applications (IDNA)" optional = false python-versions = ">=3.8" -groups = ["main", "semantic-release"] +groups = ["main"] files = [ {file = "idna-3.15-py3-none-any.whl", hash = "sha256:048adeaf8c2d788c40fee287673ccaa74c24ffd8dcf09ffa555a2fbb59f10ac8"}, {file = "idna-3.15.tar.gz", hash = "sha256:ca962446ea538f7092a95e057da437618e886f4d349216d2b1e294abfdb65fdc"}, @@ -649,26 +537,6 @@ files = [ [package.extras] all = ["mypy (>=1.11.2)", "pytest (>=8.3.2)", "ruff (>=0.6.2)"] -[[package]] -name = "importlib-resources" -version = "6.5.2" -description = "Read resources from Python packages" -optional = false -python-versions = ">=3.9" -groups = ["semantic-release"] -files = [ - {file = "importlib_resources-6.5.2-py3-none-any.whl", hash = "sha256:789cfdc3ed28c78b67a06acb8126751ced69a3d5f79c095a98298cd8a760ccec"}, - {file = "importlib_resources-6.5.2.tar.gz", hash = "sha256:185f87adef5bcc288449d98fb4fba07cea78bc036455dd44c5fc4a2fe78fed2c"}, -] - -[package.extras] -check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\""] -cover = ["pytest-cov"] -doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-lint"] -enabler = ["pytest-enabler (>=2.2)"] -test = ["jaraco.test (>=5.4)", "pytest (>=6,!=8.1.*)", "zipp (>=3.17)"] -type = ["pytest-mypy"] - [[package]] name = "iniconfig" version = "2.3.0" @@ -681,159 +549,6 @@ files = [ {file = "iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730"}, ] -[[package]] -name = "jinja2" -version = "3.1.6" -description = "A very fast and expressive template engine." -optional = false -python-versions = ">=3.7" -groups = ["semantic-release"] -files = [ - {file = "jinja2-3.1.6-py3-none-any.whl", hash = "sha256:85ece4451f492d0c13c5dd7c13a64681a86afae63a5f347908daf103ce6d2f67"}, - {file = "jinja2-3.1.6.tar.gz", hash = "sha256:0137fb05990d35f1275a587e9aee6d56da821fc83491a0fb838183be43f66d6d"}, -] - -[package.dependencies] -MarkupSafe = ">=2.0" - -[package.extras] -i18n = ["Babel (>=2.7)"] - -[[package]] -name = "markdown-it-py" -version = "4.2.0" -description = "Python port of markdown-it. Markdown parsing, done right!" -optional = false -python-versions = ">=3.10" -groups = ["semantic-release"] -files = [ - {file = "markdown_it_py-4.2.0-py3-none-any.whl", hash = "sha256:9f7ebbcd14fe59494226453aed97c1070d83f8d24b6fc3a3bcf9a38092641c4a"}, - {file = "markdown_it_py-4.2.0.tar.gz", hash = "sha256:04a21681d6fbb623de53f6f364d352309d4094dd4194040a10fd51833e418d49"}, -] - -[package.dependencies] -mdurl = ">=0.1,<1.0" - -[package.extras] -benchmarking = ["psutil", "pytest", "pytest-benchmark"] -compare = ["commonmark (>=0.9,<1.0)", "markdown (>=3.4,<4.0)", "markdown-it-pyrs", "mistletoe (>=1.0,<2.0)", "mistune (>=3.0,<4.0)", "panflute (>=2.3,<3.0)"] -linkify = ["linkify-it-py (>=1,<3)"] -plugins = ["mdit-py-plugins (>=0.5.0)"] -profiling = ["gprof2dot"] -rtd = ["ipykernel", "jupyter_sphinx", "mdit-py-plugins (>=0.5.0)", "myst-parser", "pyyaml", "sphinx", "sphinx-book-theme (>=1.0,<2.0)", "sphinx-copybutton", "sphinx-design"] -testing = ["coverage", "pytest", "pytest-cov", "pytest-regressions", "pytest-timeout", "requests"] - -[[package]] -name = "markupsafe" -version = "3.0.3" -description = "Safely add untrusted strings to HTML/XML markup." -optional = false -python-versions = ">=3.9" -groups = ["semantic-release"] -files = [ - {file = "markupsafe-3.0.3-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:2f981d352f04553a7171b8e44369f2af4055f888dfb147d55e42d29e29e74559"}, - {file = "markupsafe-3.0.3-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:e1c1493fb6e50ab01d20a22826e57520f1284df32f2d8601fdd90b6304601419"}, - {file = "markupsafe-3.0.3-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1ba88449deb3de88bd40044603fafffb7bc2b055d626a330323a9ed736661695"}, - {file = "markupsafe-3.0.3-cp310-cp310-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:f42d0984e947b8adf7dd6dde396e720934d12c506ce84eea8476409563607591"}, - {file = "markupsafe-3.0.3-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:c0c0b3ade1c0b13b936d7970b1d37a57acde9199dc2aecc4c336773e1d86049c"}, - {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:0303439a41979d9e74d18ff5e2dd8c43ed6c6001fd40e5bf2e43f7bd9bbc523f"}, - {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d2ee202e79d8ed691ceebae8e0486bd9a2cd4794cec4824e1c99b6f5009502f6"}, - {file = "markupsafe-3.0.3-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:177b5253b2834fe3678cb4a5f0059808258584c559193998be2601324fdeafb1"}, - {file = "markupsafe-3.0.3-cp310-cp310-win32.whl", hash = "sha256:2a15a08b17dd94c53a1da0438822d70ebcd13f8c3a95abe3a9ef9f11a94830aa"}, - {file = "markupsafe-3.0.3-cp310-cp310-win_amd64.whl", hash = "sha256:c4ffb7ebf07cfe8931028e3e4c85f0357459a3f9f9490886198848f4fa002ec8"}, - {file = "markupsafe-3.0.3-cp310-cp310-win_arm64.whl", hash = "sha256:e2103a929dfa2fcaf9bb4e7c091983a49c9ac3b19c9061b6d5427dd7d14d81a1"}, - {file = "markupsafe-3.0.3-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:1cc7ea17a6824959616c525620e387f6dd30fec8cb44f649e31712db02123dad"}, - {file = "markupsafe-3.0.3-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4bd4cd07944443f5a265608cc6aab442e4f74dff8088b0dfc8238647b8f6ae9a"}, - {file = "markupsafe-3.0.3-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:6b5420a1d9450023228968e7e6a9ce57f65d148ab56d2313fcd589eee96a7a50"}, - {file = "markupsafe-3.0.3-cp311-cp311-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:0bf2a864d67e76e5c9a34dc26ec616a66b9888e25e7b9460e1c76d3293bd9dbf"}, - {file = "markupsafe-3.0.3-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:bc51efed119bc9cfdf792cdeaa4d67e8f6fcccab66ed4bfdd6bde3e59bfcbb2f"}, - {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:068f375c472b3e7acbe2d5318dea141359e6900156b5b2ba06a30b169086b91a"}, - {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:7be7b61bb172e1ed687f1754f8e7484f1c8019780f6f6b0786e76bb01c2ae115"}, - {file = "markupsafe-3.0.3-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:f9e130248f4462aaa8e2552d547f36ddadbeaa573879158d721bbd33dfe4743a"}, - {file = "markupsafe-3.0.3-cp311-cp311-win32.whl", hash = "sha256:0db14f5dafddbb6d9208827849fad01f1a2609380add406671a26386cdf15a19"}, - {file = "markupsafe-3.0.3-cp311-cp311-win_amd64.whl", hash = "sha256:de8a88e63464af587c950061a5e6a67d3632e36df62b986892331d4620a35c01"}, - {file = "markupsafe-3.0.3-cp311-cp311-win_arm64.whl", hash = "sha256:3b562dd9e9ea93f13d53989d23a7e775fdfd1066c33494ff43f5418bc8c58a5c"}, - {file = "markupsafe-3.0.3-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:d53197da72cc091b024dd97249dfc7794d6a56530370992a5e1a08983ad9230e"}, - {file = "markupsafe-3.0.3-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:1872df69a4de6aead3491198eaf13810b565bdbeec3ae2dc8780f14458ec73ce"}, - {file = "markupsafe-3.0.3-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3a7e8ae81ae39e62a41ec302f972ba6ae23a5c5396c8e60113e9066ef893da0d"}, - {file = "markupsafe-3.0.3-cp312-cp312-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:d6dd0be5b5b189d31db7cda48b91d7e0a9795f31430b7f271219ab30f1d3ac9d"}, - {file = "markupsafe-3.0.3-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:94c6f0bb423f739146aec64595853541634bde58b2135f27f61c1ffd1cd4d16a"}, - {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:be8813b57049a7dc738189df53d69395eba14fb99345e0a5994914a3864c8a4b"}, - {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:83891d0e9fb81a825d9a6d61e3f07550ca70a076484292a70fde82c4b807286f"}, - {file = "markupsafe-3.0.3-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:77f0643abe7495da77fb436f50f8dab76dbc6e5fd25d39589a0f1fe6548bfa2b"}, - {file = "markupsafe-3.0.3-cp312-cp312-win32.whl", hash = "sha256:d88b440e37a16e651bda4c7c2b930eb586fd15ca7406cb39e211fcff3bf3017d"}, - {file = "markupsafe-3.0.3-cp312-cp312-win_amd64.whl", hash = "sha256:26a5784ded40c9e318cfc2bdb30fe164bdb8665ded9cd64d500a34fb42067b1c"}, - {file = "markupsafe-3.0.3-cp312-cp312-win_arm64.whl", hash = "sha256:35add3b638a5d900e807944a078b51922212fb3dedb01633a8defc4b01a3c85f"}, - {file = "markupsafe-3.0.3-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:e1cf1972137e83c5d4c136c43ced9ac51d0e124706ee1c8aa8532c1287fa8795"}, - {file = "markupsafe-3.0.3-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:116bb52f642a37c115f517494ea5feb03889e04df47eeff5b130b1808ce7c219"}, - {file = "markupsafe-3.0.3-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:133a43e73a802c5562be9bbcd03d090aa5a1fe899db609c29e8c8d815c5f6de6"}, - {file = "markupsafe-3.0.3-cp313-cp313-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:ccfcd093f13f0f0b7fdd0f198b90053bf7b2f02a3927a30e63f3ccc9df56b676"}, - {file = "markupsafe-3.0.3-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:509fa21c6deb7a7a273d629cf5ec029bc209d1a51178615ddf718f5918992ab9"}, - {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:a4afe79fb3de0b7097d81da19090f4df4f8d3a2b3adaa8764138aac2e44f3af1"}, - {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:795e7751525cae078558e679d646ae45574b47ed6e7771863fcc079a6171a0fc"}, - {file = "markupsafe-3.0.3-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:8485f406a96febb5140bfeca44a73e3ce5116b2501ac54fe953e488fb1d03b12"}, - {file = "markupsafe-3.0.3-cp313-cp313-win32.whl", hash = "sha256:bdd37121970bfd8be76c5fb069c7751683bdf373db1ed6c010162b2a130248ed"}, - {file = "markupsafe-3.0.3-cp313-cp313-win_amd64.whl", hash = "sha256:9a1abfdc021a164803f4d485104931fb8f8c1efd55bc6b748d2f5774e78b62c5"}, - {file = "markupsafe-3.0.3-cp313-cp313-win_arm64.whl", hash = "sha256:7e68f88e5b8799aa49c85cd116c932a1ac15caaa3f5db09087854d218359e485"}, - {file = "markupsafe-3.0.3-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:218551f6df4868a8d527e3062d0fb968682fe92054e89978594c28e642c43a73"}, - {file = "markupsafe-3.0.3-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:3524b778fe5cfb3452a09d31e7b5adefeea8c5be1d43c4f810ba09f2ceb29d37"}, - {file = "markupsafe-3.0.3-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:4e885a3d1efa2eadc93c894a21770e4bc67899e3543680313b09f139e149ab19"}, - {file = "markupsafe-3.0.3-cp313-cp313t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:8709b08f4a89aa7586de0aadc8da56180242ee0ada3999749b183aa23df95025"}, - {file = "markupsafe-3.0.3-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:b8512a91625c9b3da6f127803b166b629725e68af71f8184ae7e7d54686a56d6"}, - {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:9b79b7a16f7fedff2495d684f2b59b0457c3b493778c9eed31111be64d58279f"}, - {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:12c63dfb4a98206f045aa9563db46507995f7ef6d83b2f68eda65c307c6829eb"}, - {file = "markupsafe-3.0.3-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:8f71bc33915be5186016f675cd83a1e08523649b0e33efdb898db577ef5bb009"}, - {file = "markupsafe-3.0.3-cp313-cp313t-win32.whl", hash = "sha256:69c0b73548bc525c8cb9a251cddf1931d1db4d2258e9599c28c07ef3580ef354"}, - {file = "markupsafe-3.0.3-cp313-cp313t-win_amd64.whl", hash = "sha256:1b4b79e8ebf6b55351f0d91fe80f893b4743f104bff22e90697db1590e47a218"}, - {file = "markupsafe-3.0.3-cp313-cp313t-win_arm64.whl", hash = "sha256:ad2cf8aa28b8c020ab2fc8287b0f823d0a7d8630784c31e9ee5edea20f406287"}, - {file = "markupsafe-3.0.3-cp314-cp314-macosx_10_13_x86_64.whl", hash = "sha256:eaa9599de571d72e2daf60164784109f19978b327a3910d3e9de8c97b5b70cfe"}, - {file = "markupsafe-3.0.3-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:c47a551199eb8eb2121d4f0f15ae0f923d31350ab9280078d1e5f12b249e0026"}, - {file = "markupsafe-3.0.3-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f34c41761022dd093b4b6896d4810782ffbabe30f2d443ff5f083e0cbbb8c737"}, - {file = "markupsafe-3.0.3-cp314-cp314-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:457a69a9577064c05a97c41f4e65148652db078a3a509039e64d3467b9e7ef97"}, - {file = "markupsafe-3.0.3-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:e8afc3f2ccfa24215f8cb28dcf43f0113ac3c37c2f0f0806d8c70e4228c5cf4d"}, - {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:ec15a59cf5af7be74194f7ab02d0f59a62bdcf1a537677ce67a2537c9b87fcda"}, - {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:0eb9ff8191e8498cca014656ae6b8d61f39da5f95b488805da4bb029cccbfbaf"}, - {file = "markupsafe-3.0.3-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:2713baf880df847f2bece4230d4d094280f4e67b1e813eec43b4c0e144a34ffe"}, - {file = "markupsafe-3.0.3-cp314-cp314-win32.whl", hash = "sha256:729586769a26dbceff69f7a7dbbf59ab6572b99d94576a5592625d5b411576b9"}, - {file = "markupsafe-3.0.3-cp314-cp314-win_amd64.whl", hash = "sha256:bdc919ead48f234740ad807933cdf545180bfbe9342c2bb451556db2ed958581"}, - {file = "markupsafe-3.0.3-cp314-cp314-win_arm64.whl", hash = "sha256:5a7d5dc5140555cf21a6fefbdbf8723f06fcd2f63ef108f2854de715e4422cb4"}, - {file = "markupsafe-3.0.3-cp314-cp314t-macosx_10_13_x86_64.whl", hash = "sha256:1353ef0c1b138e1907ae78e2f6c63ff67501122006b0f9abad68fda5f4ffc6ab"}, - {file = "markupsafe-3.0.3-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:1085e7fbddd3be5f89cc898938f42c0b3c711fdcb37d75221de2666af647c175"}, - {file = "markupsafe-3.0.3-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:1b52b4fb9df4eb9ae465f8d0c228a00624de2334f216f178a995ccdcf82c4634"}, - {file = "markupsafe-3.0.3-cp314-cp314t-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:fed51ac40f757d41b7c48425901843666a6677e3e8eb0abcff09e4ba6e664f50"}, - {file = "markupsafe-3.0.3-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f190daf01f13c72eac4efd5c430a8de82489d9cff23c364c3ea822545032993e"}, - {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:e56b7d45a839a697b5eb268c82a71bd8c7f6c94d6fd50c3d577fa39a9f1409f5"}, - {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:f3e98bb3798ead92273dc0e5fd0f31ade220f59a266ffd8a4f6065e0a3ce0523"}, - {file = "markupsafe-3.0.3-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:5678211cb9333a6468fb8d8be0305520aa073f50d17f089b5b4b477ea6e67fdc"}, - {file = "markupsafe-3.0.3-cp314-cp314t-win32.whl", hash = "sha256:915c04ba3851909ce68ccc2b8e2cd691618c4dc4c4232fb7982bca3f41fd8c3d"}, - {file = "markupsafe-3.0.3-cp314-cp314t-win_amd64.whl", hash = "sha256:4faffd047e07c38848ce017e8725090413cd80cbc23d86e55c587bf979e579c9"}, - {file = "markupsafe-3.0.3-cp314-cp314t-win_arm64.whl", hash = "sha256:32001d6a8fc98c8cb5c947787c5d08b0a50663d139f1305bac5885d98d9b40fa"}, - {file = "markupsafe-3.0.3-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:15d939a21d546304880945ca1ecb8a039db6b4dc49b2c5a400387cdae6a62e26"}, - {file = "markupsafe-3.0.3-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:f71a396b3bf33ecaa1626c255855702aca4d3d9fea5e051b41ac59a9c1c41edc"}, - {file = "markupsafe-3.0.3-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:0f4b68347f8c5eab4a13419215bdfd7f8c9b19f2b25520968adfad23eb0ce60c"}, - {file = "markupsafe-3.0.3-cp39-cp39-manylinux2014_x86_64.manylinux_2_17_x86_64.manylinux_2_28_x86_64.whl", hash = "sha256:e8fc20152abba6b83724d7ff268c249fa196d8259ff481f3b1476383f8f24e42"}, - {file = "markupsafe-3.0.3-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:949b8d66bc381ee8b007cd945914c721d9aba8e27f71959d750a46f7c282b20b"}, - {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:3537e01efc9d4dccdf77221fb1cb3b8e1a38d5428920e0657ce299b20324d758"}, - {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:591ae9f2a647529ca990bc681daebdd52c8791ff06c2bfa05b65163e28102ef2"}, - {file = "markupsafe-3.0.3-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:a320721ab5a1aba0a233739394eb907f8c8da5c98c9181d1161e77a0c8e36f2d"}, - {file = "markupsafe-3.0.3-cp39-cp39-win32.whl", hash = "sha256:df2449253ef108a379b8b5d6b43f4b1a8e81a061d6537becd5582fba5f9196d7"}, - {file = "markupsafe-3.0.3-cp39-cp39-win_amd64.whl", hash = "sha256:7c3fb7d25180895632e5d3148dbdc29ea38ccb7fd210aa27acbd1201a1902c6e"}, - {file = "markupsafe-3.0.3-cp39-cp39-win_arm64.whl", hash = "sha256:38664109c14ffc9e7437e86b4dceb442b0096dfe3541d7864d9cbe1da4cf36c8"}, - {file = "markupsafe-3.0.3.tar.gz", hash = "sha256:722695808f4b6457b320fdc131280796bdceb04ab50fe1795cd540799ebe1698"}, -] - -[[package]] -name = "mdurl" -version = "0.1.2" -description = "Markdown URL utilities" -optional = false -python-versions = ">=3.7" -groups = ["semantic-release"] -files = [ - {file = "mdurl-0.1.2-py3-none-any.whl", hash = "sha256:84008a41e51615a49fc9966191ff91509e3c40b939176e643fd50a5c2196b8f8"}, - {file = "mdurl-0.1.2.tar.gz", hash = "sha256:bb413d29f5eea38f31dd4754dd7377d4465116fb207585f97bf925588687c1ba"}, -] - [[package]] name = "packaging" version = "26.2" @@ -902,176 +617,6 @@ files = [ {file = "pycparser-3.0.tar.gz", hash = "sha256:600f49d217304a5902ac3c37e1281c9fe94e4d0489de643a9504c5cdfdfc6b29"}, ] -[[package]] -name = "pydantic" -version = "2.13.4" -description = "Data validation using Python type hints" -optional = false -python-versions = ">=3.9" -groups = ["semantic-release"] -files = [ - {file = "pydantic-2.13.4-py3-none-any.whl", hash = "sha256:45a282cde31d808236fd7ea9d919b128653c8b38b393d1c4ab335c62924d9aba"}, - {file = "pydantic-2.13.4.tar.gz", hash = "sha256:c40756b57adaa8b1efeeced5c196f3f3b7c435f90e84ea7f443901bec8099ef6"}, -] - -[package.dependencies] -annotated-types = ">=0.6.0" -pydantic-core = "2.46.4" -typing-extensions = ">=4.14.1" -typing-inspection = ">=0.4.2" - -[package.extras] -email = ["email-validator (>=2.0.0)"] -timezone = ["tzdata ; python_version >= \"3.9\" and platform_system == \"Windows\""] - -[[package]] -name = "pydantic-core" -version = "2.46.4" -description = "Core functionality for Pydantic validation and serialization" -optional = false -python-versions = ">=3.9" -groups = ["semantic-release"] -files = [ - {file = "pydantic_core-2.46.4-cp310-cp310-macosx_10_12_x86_64.whl", hash = "sha256:a396dcc17e5a0b164dbe026896245a4fa9ff402edca1dff0be3d53a517f74de4"}, - {file = "pydantic_core-2.46.4-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:da4b951fe36dc7c3a1ccb4e3cd1747c3542b8c9ceede8fc86cae054e764485f5"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:bb63e0198ca18aad131c089b9204c23079c3afa95487e561f4c522d519e55aba"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:f47286a97f0bc9b8859519809077b91b2cefe4ae47fcbf5e466a009c1c5d742b"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:905a0ed8ea6f2d61c1738835f99b699348d7857379083e5fc497fa0c967a407c"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:ea793e075b70290d89d8142074262885d3f7da19634845135751bd6344f73b50"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:395aebd9183f9d112f569aeb5b2214d1a10a33bec8456447f7fbdfa51d38d4cd"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_31_riscv64.whl", hash = "sha256:b078afbc25f3a1436c7a1d2cd3e322497ee99615ba97c563566fdf46aff1ee01"}, - {file = "pydantic_core-2.46.4-cp310-cp310-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:f747929cf940cddb5b3668a390056ddd5ba2e5010615ea2dcf4f9c4f3ab8791d"}, - {file = "pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_aarch64.whl", hash = "sha256:daa27d92c36f24388fe3ad306b174781c747627f134452e4f128ea00ce1fe8c4"}, - {file = "pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_armv7l.whl", hash = "sha256:19e51f073cd3df251856a8a4189fbdf1de4012c3ebacfb1884f94f1eb406079f"}, - {file = "pydantic_core-2.46.4-cp310-cp310-musllinux_1_1_x86_64.whl", hash = "sha256:c1747f85cee84c26985853c6f3d9bd3e75da5212912443fa111c113b9c246f39"}, - {file = "pydantic_core-2.46.4-cp310-cp310-win32.whl", hash = "sha256:2f84c03c8607173d16b5a854ec68a2f9079ae03237a54fb506d13af47e1d018d"}, - {file = "pydantic_core-2.46.4-cp310-cp310-win_amd64.whl", hash = "sha256:8358a950c8909158e3df31538a7e4edc2d7265a7c54b47f0864d9e5bae9dcebf"}, - {file = "pydantic_core-2.46.4-cp311-cp311-macosx_10_12_x86_64.whl", hash = "sha256:0e96592440881c74a213e5ad528e2b24d3d4f940de2766bed9010ab1d9e51594"}, - {file = "pydantic_core-2.46.4-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:e0d65b8c354be7fb5f720c3caa8bc940bc2d20ce749c8e06135f07f8ed95dd7c"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:7bfb192b3f4b9e8a89b6277b6ce787564f62cfd272055f6e685726b111dc7826"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:9037063db01f09b09e237c282b6792bd4da634b5402c4e7f0c61effed7701a04"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:fc010ab034c8c7452522748bf937df58020d256ccae0874463d1f4d01758af8e"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:8c5dac79fa1614d1e06ca695109c6105923bd9c7d1d6c918d4e637b7e6b32fd3"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:f9fa868638bf362d3d138ea55829cefb3d5f4b0d7f142234382a15e2485dbec4"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_31_riscv64.whl", hash = "sha256:17299feefe090f2caa5b8e37222bb5f663e4935a8bfa6931d4102e5df1a9f398"}, - {file = "pydantic_core-2.46.4-cp311-cp311-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4c63ebc82684aa89d9a3bcbd13d515b3be44250dc68dd3bd81526c1cb31286c3"}, - {file = "pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_aarch64.whl", hash = "sha256:aaa2a54443eff1950ba5ddc6b6ccda0d9c84a364276a62f969bdf2a390650848"}, - {file = "pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_armv7l.whl", hash = "sha256:18e5ceec2ab67e6d5f1a9085e5a24c9c4e2ac4545730bfe668680bca05e555f3"}, - {file = "pydantic_core-2.46.4-cp311-cp311-musllinux_1_1_x86_64.whl", hash = "sha256:a0f62d0a58f4e7da165457e995725421e0064f2255d8eccebc49f41bbc23b109"}, - {file = "pydantic_core-2.46.4-cp311-cp311-win32.whl", hash = "sha256:041bde0a48fd37cf71cab1c9d56d3e8625a3793fef1f7dd232b3ff37e978ecda"}, - {file = "pydantic_core-2.46.4-cp311-cp311-win_amd64.whl", hash = "sha256:6f2eeda33a839975441c86a4119e1383c50b47faf0cbb5176985565c6bb02c33"}, - {file = "pydantic_core-2.46.4-cp311-cp311-win_arm64.whl", hash = "sha256:14f4c5d6db102bd796a627bbb3a17b4cf4574b9ae861d8b7c9a9661c6dd3362d"}, - {file = "pydantic_core-2.46.4-cp312-cp312-macosx_10_12_x86_64.whl", hash = "sha256:3245406455a5d98187ec35530fd772b1d799b26667980872c8d4614991e2c4a2"}, - {file = "pydantic_core-2.46.4-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:962ccbab7b642487b1d8b7df90ef677e03134cf1fd8880bf698649b22a69371f"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:8233f2947cf85404441fd7e0085f53b10c93e0ee78611099b5c7237e36aacbf7"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:3a233125ac121aa3ffba9a2b59edfc4a985a76092dc8279586ab4b71390875e7"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:5b712b53160b79a5850310b912a5ef8e57e56947c8ad690c227f5c9d7e561712"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:9401557acd873c3a7f3eb9383edef8ac4968f9510e340f4808d427e75667e7b4"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:926c9541b14b12b1681dca8a0b75feb510b06c6341b70a8e500c2fdcff837cce"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_31_riscv64.whl", hash = "sha256:56cb4851bcaf3d117eddcef4fe66afd750a50274b0da8e22be256d10e5611987"}, - {file = "pydantic_core-2.46.4-cp312-cp312-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:c68fcd102d71ea85c5b2dfac3f4f8476eff42a9e078fd5faefff6d145063536b"}, - {file = "pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_aarch64.whl", hash = "sha256:b2f69dec1725e79a012d920df1707de5caf7ed5e08f3be4435e25803efc47458"}, - {file = "pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_armv7l.whl", hash = "sha256:8d0820e8192167f80d88d64038e609c31452eeca865b4e1d9950a27a4609b00b"}, - {file = "pydantic_core-2.46.4-cp312-cp312-musllinux_1_1_x86_64.whl", hash = "sha256:fbdb89b3e1c94a30cc5edfce477c6e6a5dc4d8f84665b455c27582f211a1c72c"}, - {file = "pydantic_core-2.46.4-cp312-cp312-win32.whl", hash = "sha256:9aa768456404a8bf48a4406685ac2bec8e72b62c69313734fa3b73cf33b3a894"}, - {file = "pydantic_core-2.46.4-cp312-cp312-win_amd64.whl", hash = "sha256:e9c26f834c65f5752f3f06cb08cb86a913ceb7274d0db6e267808a708b46bc89"}, - {file = "pydantic_core-2.46.4-cp312-cp312-win_arm64.whl", hash = "sha256:4fc73cb559bdb54b1134a706a2802a4cddd27a0633f5abb7e53056268751ac6a"}, - {file = "pydantic_core-2.46.4-cp313-cp313-macosx_10_12_x86_64.whl", hash = "sha256:5d5902252db0d3cedf8d4a1bc68f70eeb430f7e4c7104c8c476753519b423008"}, - {file = "pydantic_core-2.46.4-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:c94f0688e7b8d0a67abf40e57a7eaaecd17cc9586706a31b76c031f63df052b4"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:f027324c56cd5406ca49c124b0db10e56c69064fec039acc571c29020cc87c76"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:e739fee756ba1010f8bcccb534252e85a35fe45ae92c295a06059ce58b74ccd3"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:9d56801be94b86a9da183e5f3766e6310752b99ff647e38b09a9500d88e46e76"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:2412e734dcb48da14d4e4006b82b46b74f2518b8a26ee7e58c6844a6cd6d03c4"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:9551187363ffc0de2a00b2e47c25aeaeb1020b69b668762966df15fc5659dd5a"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_31_riscv64.whl", hash = "sha256:0186750b482eefa11d7f435892b09c5c606193ef3375bcf94aa00ae6bfb66262"}, - {file = "pydantic_core-2.46.4-cp313-cp313-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:5855698a4856556d86e8e6cd8434bc3ac0314ee8e12089ae0e143f64c6256e4e"}, - {file = "pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_aarch64.whl", hash = "sha256:cbaf13819775b7f769bf4a1f066cb6df7a28d4480081a589828ef190226881cd"}, - {file = "pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_armv7l.whl", hash = "sha256:633147d34cf4550417f12e2b1a0383973bdf5cdfde212cb09e9a581cf10820be"}, - {file = "pydantic_core-2.46.4-cp313-cp313-musllinux_1_1_x86_64.whl", hash = "sha256:82cf5301172168103724d49a1444d3378cb20cdee30b116a1bd6031236298a5d"}, - {file = "pydantic_core-2.46.4-cp313-cp313-win32.whl", hash = "sha256:9fa8ae11da9e2b3126c6426f147e0fba88d96d65921799bb30c6abd1cb2c97fb"}, - {file = "pydantic_core-2.46.4-cp313-cp313-win_amd64.whl", hash = "sha256:6b3ace8194b0e5204818c92802dcdca7fc6d88aabbb799d7c795540d9cd6d292"}, - {file = "pydantic_core-2.46.4-cp313-cp313-win_arm64.whl", hash = "sha256:184c081504d17f1c1066e430e117142b2c77d9448a97f7b65c6ac9fd9aee238d"}, - {file = "pydantic_core-2.46.4-cp314-cp314-macosx_10_12_x86_64.whl", hash = "sha256:428e04521a40150c85216fc8b85e8d39fece235a9cf5e383761238c7fa9b96fb"}, - {file = "pydantic_core-2.46.4-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:23ace664830ee0bfe014a0c7bc248b1f7f25ed7ad103852c317624a1083af462"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ce5c1d2a8b27468f433ca974829c44060b8097eedc39933e3c206a90ee49c4a9"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:7283d57845ecf5a163403eb0702dfc220cc4fbdd18919cb5ccea4f95ee1cdab4"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:8daafc69c93ee8a0204506a3b6b30f586ef54028f52aeeeb5c4cfc5184fd5914"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:cd2213145bcc2ba85884d0ac63d222fece9209678f77b9b4d76f054c561adb28"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7a5f930472650a82629163023e630d160863fce524c616f4e5186e5de9d9a49b"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_31_riscv64.whl", hash = "sha256:c1b3f518abeca3aa13c712fd202306e145abf59a18b094a6bafb2d2bbf59192c"}, - {file = "pydantic_core-2.46.4-cp314-cp314-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:1a7dd0b3ee80d90150e3495a3a13ac34dbcbfd4f012996a6a1d8900e91b5c0fb"}, - {file = "pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_aarch64.whl", hash = "sha256:3fb702cd90b0446a3a1c5e470bfa0dd23c0233b676a9099ddcc964fa6ca13898"}, - {file = "pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_armv7l.whl", hash = "sha256:b8458003118a712e66286df6a707db01c52c0f52f7db8e4a38f0da1d3b94fc4e"}, - {file = "pydantic_core-2.46.4-cp314-cp314-musllinux_1_1_x86_64.whl", hash = "sha256:372429a130e469c9cd698925ce5fc50940b7a1336b0d82038e63d5bbc4edc519"}, - {file = "pydantic_core-2.46.4-cp314-cp314-win32.whl", hash = "sha256:85bb3611ff1802f3ee7fdd7dbff26b56f343fb432d57a4728fdd49b6ef35e2f4"}, - {file = "pydantic_core-2.46.4-cp314-cp314-win_amd64.whl", hash = "sha256:811ff8e9c313ab425368bcbb36e5c4ebd7108c2bbf4e4089cfbb0b01eff63fac"}, - {file = "pydantic_core-2.46.4-cp314-cp314-win_arm64.whl", hash = "sha256:bfec22eab3c8cc2ceec0248aec886624116dc079afa027ecc8ad4a7e62010f8a"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-macosx_10_12_x86_64.whl", hash = "sha256:af8244b2bef6aaad6d92cda81372de7f8c8d36c9f0c3ea36e827c60e7d9467a0"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:5a4330cdbc57162e4b3aa303f588ba752257694c9c9be3e7ebb11b4aca659b5d"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:29c61fc04a3d840155ff08e475a04809278972fe6aef51e2720554e96367e34b"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:c50f2528cf200c5eed56faf3f4e22fcd5f38c157a8b78576e6ba3168ec35f000"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:0cbe8b01f948de4286c74cdd6c667aceb38f5c1e26f0693b3983d9d74887c65e"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:617d7e2ca7dcb8c5cf6bcb8c59b8832c94b36196bbf1cbd1bfb56ed341905edd"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:7027560ee92211647d0d34e3f7cd6f50da56399d26a9c8ad0da286d3869a53f3"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_31_riscv64.whl", hash = "sha256:f99626688942fb746e545232e7726926f3be91b5975f8b55327665fafda991c7"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:fc3e9034a63de20e15e8ade85358bc6efc614008cab72898b4b4952bea0509ff"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_aarch64.whl", hash = "sha256:97e7cf2be5c77b7d1a9713a05605d49460d02c6078d38d8bef3cbe323c548424"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_armv7l.whl", hash = "sha256:3bf92c5d0e00fefaab325a4d27828fe6b6e2a21848686b5b60d2d9eeb09d76c6"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-musllinux_1_1_x86_64.whl", hash = "sha256:3ecbc122d18468d06ca279dc26a8c2e2d5acb10943bb35e36ae92096dc3b5565"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-win32.whl", hash = "sha256:e846ae7835bf0703ae43f534ab79a867146dadd59dc9ca5c8b53d5c8f7c9ef02"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-win_amd64.whl", hash = "sha256:2108ba5c1c1eca18030634489dc544844144ee36357f2f9f780b93e7ddbb44b5"}, - {file = "pydantic_core-2.46.4-cp314-cp314t-win_arm64.whl", hash = "sha256:4fcbe087dbc2068af7eda3aa87634eba216dbda64d1ae73c8684b621d33f6596"}, - {file = "pydantic_core-2.46.4-cp39-cp39-macosx_10_12_x86_64.whl", hash = "sha256:fd8b3d9fd264be37976686c7f65cd52a83f5e84f4bfd2adf9c1d469676bbb6ae"}, - {file = "pydantic_core-2.46.4-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:9f444c499b3eefd3a92e348059471ea0c3a6e303d9c1cec09fa748fd9f895201"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:3447661d99f75a3683a4cf5c87da72f2161964611864dbbeac7fbb118bb4bfc0"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:8b9bab013d1c7a79d3501ff86d0bc9c31bf587db4551677b96bec07df78c6b15"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:d995260fdf4e1db774581b4900e0f832abe3c7c84996726bbc161b19c8f29e76"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:f13a646d65d09fbf1bc6b3a9635d30095c8e7e5cc419ff35ecc563c5fd04cd49"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:432c179df7874eeb73307aad2df0755e1ae0efa61ff0ea89b93e194411ae3928"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_31_riscv64.whl", hash = "sha256:e68b7a074f65a2fd746c52a7ce6142ab7006074ac269ace0c25cd8ba171f8066"}, - {file = "pydantic_core-2.46.4-cp39-cp39-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:4a05d69cba51d852c5c3e92758653245a50c0b646ced0cf05bd793ed592839d6"}, - {file = "pydantic_core-2.46.4-cp39-cp39-musllinux_1_1_aarch64.whl", hash = "sha256:228ee9bae8bef5b1e97ec58302f80357c37199e0d0a99174e138d28e6957b9d9"}, - {file = "pydantic_core-2.46.4-cp39-cp39-musllinux_1_1_armv7l.whl", hash = "sha256:10e17cbb10a330363733efc4d7c4d0dd827ac0909b8f6a6542298fed1ea62f29"}, - {file = "pydantic_core-2.46.4-cp39-cp39-musllinux_1_1_x86_64.whl", hash = "sha256:91a06d2e259ecfbd8c901d70c3c507900458498142b3026a296b7de4d1322cc9"}, - {file = "pydantic_core-2.46.4-cp39-cp39-win32.whl", hash = "sha256:d80ee3d731373b24cebbc10d689ca4ee1875caf0d5703a245db18efd4dd37fc1"}, - {file = "pydantic_core-2.46.4-cp39-cp39-win_amd64.whl", hash = "sha256:3be77f45df024d789a672ae34f8b06fb346c4f9f46ea714956660ea4862e89ac"}, - {file = "pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_10_12_x86_64.whl", hash = "sha256:14d4edf427bdcf950a8a02d7cb44a08614388dd6e1bdcbf4f67504fa7887da9c"}, - {file = "pydantic_core-2.46.4-graalpy311-graalpy242_311_native-macosx_11_0_arm64.whl", hash = "sha256:0ce40cd7b21210e99342afafbd4d0f76d784eb5b1d60f3bdc566be4983c6c73b"}, - {file = "pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:90884113d8b48f760e9587002789ddd741e76ab9f89518cd1e43b1f1a52ec44b"}, - {file = "pydantic_core-2.46.4-graalpy311-graalpy242_311_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:66ce7632c22d837c95301830e111ad0128a32b8207533b60896a96c4915192ea"}, - {file = "pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_10_12_x86_64.whl", hash = "sha256:1d8ba486450b14f3b1d63bc521d410ec7565e52f887b9fb671791886436a42f7"}, - {file = "pydantic_core-2.46.4-graalpy312-graalpy250_312_native-macosx_11_0_arm64.whl", hash = "sha256:3009f12e4e90b7f88b4f9adb1b0c4a3d58fe7820f3238c190047209d148026df"}, - {file = "pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ad785e92e6dc634c21555edc8bd6b64957ab844541bcb96a1366c202951ae526"}, - {file = "pydantic_core-2.46.4-graalpy312-graalpy250_312_native-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:00c603d540afdd6b80eb39f078f33ebd46211f02f33e34a32d9f053bba711de0"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_10_12_x86_64.whl", hash = "sha256:0c563b08bca408dc7f65f700633d8442fffb2421fc47b8101377e9fd65051ff0"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-macosx_11_0_arm64.whl", hash = "sha256:db06ffe51636ffe9ca531fe9023dd64bdd794be8754cb5df57c5498ae5b518a7"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:133878133d271ade3d41d1bfb2a45ec38dbdbda40bc065921c6b04e4630127e2"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:9bc519fbf2b7578398853d815009ae5e4d4603d12f4e3f91da8c06852d3da3e9"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_aarch64.whl", hash = "sha256:c7a7bd4e39e8e4c12c39cd480356842b6a8a06e41b23a55a5e3e191718838ddf"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_armv7l.whl", hash = "sha256:d396ec2b979760aaf3218e76c24e65bd0aca24983298653b3a9d7a45f9e47b30"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-musllinux_1_1_x86_64.whl", hash = "sha256:86e1a4418c6cd97d60c95c71164158eaf7324fae7b0923264016baa993eba6fc"}, - {file = "pydantic_core-2.46.4-pp311-pypy311_pp73-win_amd64.whl", hash = "sha256:d51026d73fcfd93610abc7b27789c26b313920fcfb20e27462d74a7f8b06e983"}, - {file = "pydantic_core-2.46.4.tar.gz", hash = "sha256:62f875393d7f270851f20523dd2e29f082bcc82292d66db2b64ea71f64b6e1c1"}, -] - -[package.dependencies] -typing-extensions = ">=4.14.1" - -[[package]] -name = "pygments" -version = "2.20.0" -description = "Pygments is a syntax highlighting package written in Python." -optional = false -python-versions = ">=3.9" -groups = ["semantic-release"] -files = [ - {file = "pygments-2.20.0-py3-none-any.whl", hash = "sha256:81a9e26dd42fd28a23a2d169d86d7ac03b46e2f8b59ed4698fb4785f946d0176"}, - {file = "pygments-2.20.0.tar.gz", hash = "sha256:6757cd03768053ff99f3039c1a36d6c0aa0b263438fcab17520b30a303a82b5f"}, -] - -[package.extras] -windows-terminal = ["colorama (>=0.4.6)"] - [[package]] name = "pypdf" version = "6.11.0" @@ -1139,61 +684,6 @@ pytest = ">=7" [package.extras] testing = ["process-tests", "pytest-xdist", "virtualenv"] -[[package]] -name = "python-gitlab" -version = "6.5.0" -description = "The python wrapper for the GitLab REST and GraphQL APIs." -optional = false -python-versions = ">=3.9.0" -groups = ["semantic-release"] -files = [ - {file = "python_gitlab-6.5.0-py3-none-any.whl", hash = "sha256:494e1e8e5edd15286eaf7c286f3a06652688f1ee20a49e2a0218ddc5cc475e32"}, - {file = "python_gitlab-6.5.0.tar.gz", hash = "sha256:97553652d94b02de343e9ca92782239aa2b5f6594c5482331a9490d9d5e8737d"}, -] - -[package.dependencies] -requests = ">=2.32.0" -requests-toolbelt = ">=1.0.0" - -[package.extras] -autocompletion = ["argcomplete (>=1.10.0,<3)"] -graphql = ["gql[httpx] (>=3.5.0,<4)"] -yaml = ["PyYaml (>=6.0.1)"] - -[[package]] -name = "python-semantic-release" -version = "10.5.3" -description = "Automatic Semantic Versioning for Python projects" -optional = false -python-versions = "~=3.8" -groups = ["semantic-release"] -files = [ - {file = "python_semantic_release-10.5.3-py3-none-any.whl", hash = "sha256:1be0e07c36fa1f1ec9da4f438c1f6bbd7bc10eb0d6ac0089b0643103708c2823"}, - {file = "python_semantic_release-10.5.3.tar.gz", hash = "sha256:de4da78635fa666e5774caaca2be32063cae72431eb75e2ac23b9f2dfd190785"}, -] - -[package.dependencies] -click = ">=8.1.0,<8.2.0" -click-option-group = ">=0.5,<1.0" -Deprecated = ">=1.2,<2.0" -dotty-dict = ">=1.3,<2.0" -gitpython = ">=3.0,<4.0" -importlib-resources = ">=6.0,<7.0" -jinja2 = ">=3.1,<4.0" -pydantic = ">=2.0,<3.0" -python-gitlab = ">=4.0.0,<7.0.0" -requests = ">=2.25,<3.0" -rich = ">=14.0,<15.0" -shellingham = ">=1.5,<2.0" -tomlkit = ">=0.13.0,<0.14.0" - -[package.extras] -build = ["build (>=1.2,<2.0)", "tomlkit (>=0.13.0,<0.14.0)"] -dev = ["pre-commit (>=4.3,<5.0)", "ruff (==0.6.1)", "tox (>=4.11,<5.0)"] -docs = ["Sphinx (>=7.4,<8.0)", "furo (>=2025.9,<2026.0)", "sphinx-autobuild (==2024.2.4)", "sphinxcontrib-apidoc (==0.6.0)"] -mypy = ["mypy (==1.16.1)", "types-Deprecated (>=1.2,<2.0)", "types-pyyaml (>=6.0,<7.0)", "types-requests (>=2.32.0,<2.33.0)"] -test = ["coverage[toml] (>=7.0,<8.0)", "filelock (>=3.15,<4.0)", "flatdict (>=4.0,<5.0)", "freezegun (>=1.5,<2.0)", "pytest (>=8.3,<9.0)", "pytest-clarity (>=1.0,<2.0)", "pytest-cov (>=5.0.0,<8.0.0)", "pytest-env (>=1.0,<2.0)", "pytest-lazy-fixtures (>=1.4,<2.0)", "pytest-mock (>=3.0,<4.0)", "pytest-order (>=1.3,<2.0)", "pytest-pretty (>=1.2,<2.0)", "pytest-xdist (>=3.0,<4.0)", "pyyaml (>=6.0,<7.0)", "requests-mock (>=1.10,<2.0)", "responses (>=0.25.0,<0.26.0)"] - [[package]] name = "pytz" version = "2024.2" @@ -1212,7 +702,7 @@ version = "2.34.1" description = "Python HTTP for Humans." optional = false python-versions = ">=3.10" -groups = ["main", "semantic-release"] +groups = ["main"] files = [ {file = "requests-2.34.1-py3-none-any.whl", hash = "sha256:bf38a3ff993960d3dd819c08862c40b3c703306eb7c744fcd9f4ddbb95b548f0"}, {file = "requests-2.34.1.tar.gz", hash = "sha256:0fc5669f2b69704449fe1552360bd2a73a54512dfd03e65529157f1513322beb"}, @@ -1228,40 +718,6 @@ urllib3 = ">=1.26,<3" socks = ["PySocks (>=1.5.6,!=1.5.7)"] use-chardet-on-py3 = ["chardet (>=3.0.2,<8)"] -[[package]] -name = "requests-toolbelt" -version = "1.0.0" -description = "A utility belt for advanced users of python-requests" -optional = false -python-versions = ">=2.7, !=3.0.*, !=3.1.*, !=3.2.*, !=3.3.*" -groups = ["semantic-release"] -files = [ - {file = "requests-toolbelt-1.0.0.tar.gz", hash = "sha256:7681a0a3d047012b5bdc0ee37d7f8f07ebe76ab08caeccfc3921ce23c88d5bc6"}, - {file = "requests_toolbelt-1.0.0-py2.py3-none-any.whl", hash = "sha256:cccfdd665f0a24fcf4726e690f65639d272bb0637b9b92dfd91a5568ccf6bd06"}, -] - -[package.dependencies] -requests = ">=2.0.1,<3.0.0" - -[[package]] -name = "rich" -version = "14.3.4" -description = "Render rich text, tables, progress bars, syntax highlighting, markdown and more to the terminal" -optional = false -python-versions = ">=3.8.0" -groups = ["semantic-release"] -files = [ - {file = "rich-14.3.4-py3-none-any.whl", hash = "sha256:07e7adb4690f68864777b1450859253bed81a99a31ac321ac1817b2313558952"}, - {file = "rich-14.3.4.tar.gz", hash = "sha256:817e02727f2b25b40ef56f5aa2217f400c8489f79ca8f46ea2b70dd5e14558a9"}, -] - -[package.dependencies] -markdown-it-py = ">=2.2.0" -pygments = ">=2.13.0,<3.0.0" - -[package.extras] -jupyter = ["ipywidgets (>=7.5.1,<9)"] - [[package]] name = "ruff" version = "0.13.3" @@ -1291,30 +747,6 @@ files = [ {file = "ruff-0.13.3.tar.gz", hash = "sha256:5b0ba0db740eefdfbcce4299f49e9eaefc643d4d007749d77d047c2bab19908e"}, ] -[[package]] -name = "shellingham" -version = "1.5.4" -description = "Tool to Detect Surrounding Shell" -optional = false -python-versions = ">=3.7" -groups = ["semantic-release"] -files = [ - {file = "shellingham-1.5.4-py2.py3-none-any.whl", hash = "sha256:7ecfff8f2fd72616f7481040475a65b2bf8af90a56c89140852d1120324e8686"}, - {file = "shellingham-1.5.4.tar.gz", hash = "sha256:8dbca0739d487e5bd35ab3ca4b36e11c4078f3a234bfce294b0a0291363404de"}, -] - -[[package]] -name = "smmap" -version = "5.0.3" -description = "A pure Python implementation of a sliding window memory map manager" -optional = false -python-versions = ">=3.7" -groups = ["semantic-release"] -files = [ - {file = "smmap-5.0.3-py3-none-any.whl", hash = "sha256:c106e05d5a61449cf6ba9a1e650227ecfb141590d2a98412103ff35d89fc7b2f"}, - {file = "smmap-5.0.3.tar.gz", hash = "sha256:4d9debb8b99007ae47165abc08670bd74cb74b5227dda7f643eccc4e9eb5642c"}, -] - [[package]] name = "tomli" version = "2.4.1" @@ -1373,45 +805,18 @@ files = [ {file = "tomli-2.4.1.tar.gz", hash = "sha256:7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f"}, ] -[[package]] -name = "tomlkit" -version = "0.13.3" -description = "Style preserving TOML library" -optional = false -python-versions = ">=3.8" -groups = ["semantic-release"] -files = [ - {file = "tomlkit-0.13.3-py3-none-any.whl", hash = "sha256:c89c649d79ee40629a9fda55f8ace8c6a1b42deb912b2a8fd8d942ddadb606b0"}, - {file = "tomlkit-0.13.3.tar.gz", hash = "sha256:430cf247ee57df2b94ee3fbe588e71d362a941ebb545dec29b53961d61add2a1"}, -] - [[package]] name = "typing-extensions" version = "4.15.0" description = "Backported and Experimental Type Hints for Python 3.9+" optional = false python-versions = ">=3.9" -groups = ["main", "dev", "semantic-release"] +groups = ["main", "dev"] +markers = "python_version == \"3.10\"" files = [ {file = "typing_extensions-4.15.0-py3-none-any.whl", hash = "sha256:f0fa19c6845758ab08074a0cfa8b7aecb71c999ca73d62883bc25cc018c4e548"}, {file = "typing_extensions-4.15.0.tar.gz", hash = "sha256:0cea48d173cc12fa28ecabc3b837ea3cf6f38c6d1136f85cbaaf598984861466"}, ] -markers = {main = "python_version == \"3.10\"", dev = "python_version == \"3.10\""} - -[[package]] -name = "typing-inspection" -version = "0.4.2" -description = "Runtime typing introspection tools" -optional = false -python-versions = ">=3.9" -groups = ["semantic-release"] -files = [ - {file = "typing_inspection-0.4.2-py3-none-any.whl", hash = "sha256:4ed1cacbdc298c220f1bd249ed5287caa16f34d44ef4e9c3d0cbad5b521545e7"}, - {file = "typing_inspection-0.4.2.tar.gz", hash = "sha256:ba561c48a67c5958007083d386c3295464928b01faa735ab8547c5692e87f464"}, -] - -[package.dependencies] -typing-extensions = ">=4.12.0" [[package]] name = "urllib3" @@ -1419,7 +824,7 @@ version = "2.7.0" description = "HTTP library with thread-safe connection pooling, file post, and more." optional = false python-versions = ">=3.10" -groups = ["main", "semantic-release"] +groups = ["main"] files = [ {file = "urllib3-2.7.0-py3-none-any.whl", hash = "sha256:9fb4c81ebbb1ce9531cce37674bbc6f1360472bc18ca9a553ede278ef7276897"}, {file = "urllib3-2.7.0.tar.gz", hash = "sha256:231e0ec3b63ceb14667c67be60f2f2c40a518cb38b03af60abc813da26505f4c"}, @@ -1431,110 +836,7 @@ h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] -[[package]] -name = "wrapt" -version = "2.1.2" -description = "Module for decorators, wrappers and monkey patching." -optional = false -python-versions = ">=3.9" -groups = ["semantic-release"] -files = [ - {file = "wrapt-2.1.2-cp310-cp310-macosx_10_9_x86_64.whl", hash = "sha256:4b7a86d99a14f76facb269dc148590c01aaf47584071809a70da30555228158c"}, - {file = "wrapt-2.1.2-cp310-cp310-macosx_11_0_arm64.whl", hash = "sha256:a819e39017f95bf7aede768f75915635aa8f671f2993c036991b8d3bfe8dbb6f"}, - {file = "wrapt-2.1.2-cp310-cp310-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:5681123e60aed0e64c7d44f72bbf8b4ce45f79d81467e2c4c728629f5baf06eb"}, - {file = "wrapt-2.1.2-cp310-cp310-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:2b8b28e97a44d21836259739ae76284e180b18abbb4dcfdff07a415cf1016c3e"}, - {file = "wrapt-2.1.2-cp310-cp310-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:cef91c95a50596fcdc31397eb6955476f82ae8a3f5a8eabdc13611b60ee380ba"}, - {file = "wrapt-2.1.2-cp310-cp310-musllinux_1_2_aarch64.whl", hash = "sha256:dad63212b168de8569b1c512f4eac4b57f2c6934b30df32d6ee9534a79f1493f"}, - {file = "wrapt-2.1.2-cp310-cp310-musllinux_1_2_riscv64.whl", hash = "sha256:d307aa6888d5efab2c1cde09843d48c843990be13069003184b67d426d145394"}, - {file = "wrapt-2.1.2-cp310-cp310-musllinux_1_2_x86_64.whl", hash = "sha256:c87cf3f0c85e27b3ac7d9ad95da166bf8739ca215a8b171e8404a2d739897a45"}, - {file = "wrapt-2.1.2-cp310-cp310-win32.whl", hash = "sha256:d1c5fea4f9fe3762e2b905fdd67df51e4be7a73b7674957af2d2ade71a5c075d"}, - {file = "wrapt-2.1.2-cp310-cp310-win_amd64.whl", hash = "sha256:d8f7740e1af13dff2684e4d56fe604a7e04d6c94e737a60568d8d4238b9a0c71"}, - {file = "wrapt-2.1.2-cp310-cp310-win_arm64.whl", hash = "sha256:1c6cc827c00dc839350155f316f1f8b4b0c370f52b6a19e782e2bda89600c7dc"}, - {file = "wrapt-2.1.2-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:96159a0ee2b0277d44201c3b5be479a9979cf154e8c82fa5df49586a8e7679bb"}, - {file = "wrapt-2.1.2-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:98ba61833a77b747901e9012072f038795de7fc77849f1faa965464f3f87ff2d"}, - {file = "wrapt-2.1.2-cp311-cp311-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:767c0dbbe76cae2a60dd2b235ac0c87c9cccf4898aef8062e57bead46b5f6894"}, - {file = "wrapt-2.1.2-cp311-cp311-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:9c691a6bc752c0cc4711cc0c00896fcd0f116abc253609ef64ef930032821842"}, - {file = "wrapt-2.1.2-cp311-cp311-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f3b7d73012ea75aee5844de58c88f44cf62d0d62711e39da5a82824a7c4626a8"}, - {file = "wrapt-2.1.2-cp311-cp311-musllinux_1_2_aarch64.whl", hash = "sha256:577dff354e7acd9d411eaf4bfe76b724c89c89c8fc9b7e127ee28c5f7bcb25b6"}, - {file = "wrapt-2.1.2-cp311-cp311-musllinux_1_2_riscv64.whl", hash = "sha256:3d7b6fd105f8b24e5bd23ccf41cb1d1099796524bcc6f7fbb8fe576c44befbc9"}, - {file = "wrapt-2.1.2-cp311-cp311-musllinux_1_2_x86_64.whl", hash = "sha256:866abdbf4612e0b34764922ef8b1c5668867610a718d3053d59e24a5e5fcfc15"}, - {file = "wrapt-2.1.2-cp311-cp311-win32.whl", hash = "sha256:5a0a0a3a882393095573344075189eb2d566e0fd205a2b6414e9997b1b800a8b"}, - {file = "wrapt-2.1.2-cp311-cp311-win_amd64.whl", hash = "sha256:64a07a71d2730ba56f11d1a4b91f7817dc79bc134c11516b75d1921a7c6fcda1"}, - {file = "wrapt-2.1.2-cp311-cp311-win_arm64.whl", hash = "sha256:b89f095fe98bc12107f82a9f7d570dc83a0870291aeb6b1d7a7d35575f55d98a"}, - {file = "wrapt-2.1.2-cp312-cp312-macosx_10_13_x86_64.whl", hash = "sha256:ff2aad9c4cda28a8f0653fc2d487596458c2a3f475e56ba02909e950a9efa6a9"}, - {file = "wrapt-2.1.2-cp312-cp312-macosx_11_0_arm64.whl", hash = "sha256:6433ea84e1cfacf32021d2a4ee909554ade7fd392caa6f7c13f1f4bf7b8e8748"}, - {file = "wrapt-2.1.2-cp312-cp312-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:c20b757c268d30d6215916a5fa8461048d023865d888e437fab451139cad6c8e"}, - {file = "wrapt-2.1.2-cp312-cp312-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:79847b83eb38e70d93dc392c7c5b587efe65b3e7afcc167aa8abd5d60e8761c8"}, - {file = "wrapt-2.1.2-cp312-cp312-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:f8fba1bae256186a83d1875b2b1f4e2d1242e8fac0f58ec0d7e41b26967b965c"}, - {file = "wrapt-2.1.2-cp312-cp312-musllinux_1_2_aarch64.whl", hash = "sha256:e3d3b35eedcf5f7d022291ecd7533321c4775f7b9cd0050a31a68499ba45757c"}, - {file = "wrapt-2.1.2-cp312-cp312-musllinux_1_2_riscv64.whl", hash = "sha256:6f2c5390460de57fa9582bc8a1b7a6c86e1a41dfad74c5225fc07044c15cc8d1"}, - {file = "wrapt-2.1.2-cp312-cp312-musllinux_1_2_x86_64.whl", hash = "sha256:7dfa9f2cf65d027b951d05c662cc99ee3bd01f6e4691ed39848a7a5fffc902b2"}, - {file = "wrapt-2.1.2-cp312-cp312-win32.whl", hash = "sha256:eba8155747eb2cae4a0b913d9ebd12a1db4d860fc4c829d7578c7b989bd3f2f0"}, - {file = "wrapt-2.1.2-cp312-cp312-win_amd64.whl", hash = "sha256:1c51c738d7d9faa0b3601708e7e2eda9bf779e1b601dce6c77411f2a1b324a63"}, - {file = "wrapt-2.1.2-cp312-cp312-win_arm64.whl", hash = "sha256:c8e46ae8e4032792eb2f677dbd0d557170a8e5524d22acc55199f43efedd39bf"}, - {file = "wrapt-2.1.2-cp313-cp313-macosx_10_13_x86_64.whl", hash = "sha256:787fd6f4d67befa6fe2abdffcbd3de2d82dfc6fb8a6d850407c53332709d030b"}, - {file = "wrapt-2.1.2-cp313-cp313-macosx_11_0_arm64.whl", hash = "sha256:4bdf26e03e6d0da3f0e9422fd36bcebf7bc0eeb55fdf9c727a09abc6b9fe472e"}, - {file = "wrapt-2.1.2-cp313-cp313-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:bbac24d879aa22998e87f6b3f481a5216311e7d53c7db87f189a7a0266dafffb"}, - {file = "wrapt-2.1.2-cp313-cp313-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:16997dfb9d67addc2e3f41b62a104341e80cac52f91110dece393923c0ebd5ca"}, - {file = "wrapt-2.1.2-cp313-cp313-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:162e4e2ba7542da9027821cb6e7c5e068d64f9a10b5f15512ea28e954893a267"}, - {file = "wrapt-2.1.2-cp313-cp313-musllinux_1_2_aarch64.whl", hash = "sha256:f29c827a8d9936ac320746747a016c4bc66ef639f5cd0d32df24f5eacbf9c69f"}, - {file = "wrapt-2.1.2-cp313-cp313-musllinux_1_2_riscv64.whl", hash = "sha256:a9dd9813825f7ecb018c17fd147a01845eb330254dff86d3b5816f20f4d6aaf8"}, - {file = "wrapt-2.1.2-cp313-cp313-musllinux_1_2_x86_64.whl", hash = "sha256:6f8dbdd3719e534860d6a78526aafc220e0241f981367018c2875178cf83a413"}, - {file = "wrapt-2.1.2-cp313-cp313-win32.whl", hash = "sha256:5c35b5d82b16a3bc6e0a04349b606a0582bc29f573786aebe98e0c159bc48db6"}, - {file = "wrapt-2.1.2-cp313-cp313-win_amd64.whl", hash = "sha256:f8bc1c264d8d1cf5b3560a87bbdd31131573eb25f9f9447bb6252b8d4c44a3a1"}, - {file = "wrapt-2.1.2-cp313-cp313-win_arm64.whl", hash = "sha256:3beb22f674550d5634642c645aba4c72a2c66fb185ae1aebe1e955fae5a13baf"}, - {file = "wrapt-2.1.2-cp313-cp313t-macosx_10_13_x86_64.whl", hash = "sha256:0fc04bc8664a8bc4c8e00b37b5355cffca2535209fba1abb09ae2b7c76ddf82b"}, - {file = "wrapt-2.1.2-cp313-cp313t-macosx_11_0_arm64.whl", hash = "sha256:a9b9d50c9af998875a1482a038eb05755dfd6fe303a313f6a940bb53a83c3f18"}, - {file = "wrapt-2.1.2-cp313-cp313t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:2d3ff4f0024dd224290c0eabf0240f1bfc1f26363431505fb1b0283d3b08f11d"}, - {file = "wrapt-2.1.2-cp313-cp313t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:3278c471f4468ad544a691b31bb856374fbdefb7fee1a152153e64019379f015"}, - {file = "wrapt-2.1.2-cp313-cp313t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a8914c754d3134a3032601c6984db1c576e6abaf3fc68094bb8ab1379d75ff92"}, - {file = "wrapt-2.1.2-cp313-cp313t-musllinux_1_2_aarch64.whl", hash = "sha256:ff95d4264e55839be37bafe1536db2ab2de19da6b65f9244f01f332b5286cfbf"}, - {file = "wrapt-2.1.2-cp313-cp313t-musllinux_1_2_riscv64.whl", hash = "sha256:76405518ca4e1b76fbb1b9f686cff93aebae03920cc55ceeec48ff9f719c5f67"}, - {file = "wrapt-2.1.2-cp313-cp313t-musllinux_1_2_x86_64.whl", hash = "sha256:c0be8b5a74c5824e9359b53e7e58bef71a729bacc82e16587db1c4ebc91f7c5a"}, - {file = "wrapt-2.1.2-cp313-cp313t-win32.whl", hash = "sha256:f01277d9a5fc1862f26f7626da9cf443bebc0abd2f303f41c5e995b15887dabd"}, - {file = "wrapt-2.1.2-cp313-cp313t-win_amd64.whl", hash = "sha256:84ce8f1c2104d2f6daa912b1b5b039f331febfeee74f8042ad4e04992bd95c8f"}, - {file = "wrapt-2.1.2-cp313-cp313t-win_arm64.whl", hash = "sha256:a93cd767e37faeddbe07d8fc4212d5cba660af59bdb0f6372c93faaa13e6e679"}, - {file = "wrapt-2.1.2-cp314-cp314-macosx_10_15_x86_64.whl", hash = "sha256:1370e516598854e5b4366e09ce81e08bfe94d42b0fd569b88ec46cc56d9164a9"}, - {file = "wrapt-2.1.2-cp314-cp314-macosx_11_0_arm64.whl", hash = "sha256:6de1a3851c27e0bd6a04ca993ea6f80fc53e6c742ee1601f486c08e9f9b900a9"}, - {file = "wrapt-2.1.2-cp314-cp314-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:de9f1a2bbc5ac7f6012ec24525bdd444765a2ff64b5985ac6e0692144838542e"}, - {file = "wrapt-2.1.2-cp314-cp314-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:970d57ed83fa040d8b20c52fe74a6ae7e3775ae8cff5efd6a81e06b19078484c"}, - {file = "wrapt-2.1.2-cp314-cp314-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:3969c56e4563c375861c8df14fa55146e81ac11c8db49ea6fb7f2ba58bc1ff9a"}, - {file = "wrapt-2.1.2-cp314-cp314-musllinux_1_2_aarch64.whl", hash = "sha256:57d7c0c980abdc5f1d98b11a2aa3bb159790add80258c717fa49a99921456d90"}, - {file = "wrapt-2.1.2-cp314-cp314-musllinux_1_2_riscv64.whl", hash = "sha256:776867878e83130c7a04237010463372e877c1c994d449ca6aaafeab6aab2586"}, - {file = "wrapt-2.1.2-cp314-cp314-musllinux_1_2_x86_64.whl", hash = "sha256:fab036efe5464ec3291411fabb80a7a39e2dd80bae9bcbeeca5087fdfa891e19"}, - {file = "wrapt-2.1.2-cp314-cp314-win32.whl", hash = "sha256:e6ed62c82ddf58d001096ae84ce7f833db97ae2263bff31c9b336ba8cfe3f508"}, - {file = "wrapt-2.1.2-cp314-cp314-win_amd64.whl", hash = "sha256:467e7c76315390331c67073073d00662015bb730c566820c9ca9b54e4d67fd04"}, - {file = "wrapt-2.1.2-cp314-cp314-win_arm64.whl", hash = "sha256:da1f00a557c66225d53b095a97eace0fc5349e3bfda28fa34ffae238978ee575"}, - {file = "wrapt-2.1.2-cp314-cp314t-macosx_10_15_x86_64.whl", hash = "sha256:62503ffbc2d3a69891cf29beeaccdb4d5e0a126e2b6a851688d4777e01428dbb"}, - {file = "wrapt-2.1.2-cp314-cp314t-macosx_11_0_arm64.whl", hash = "sha256:c7e6cd120ef837d5b6f860a6ea3745f8763805c418bb2f12eeb1fa6e25f22d22"}, - {file = "wrapt-2.1.2-cp314-cp314t-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:3769a77df8e756d65fbc050333f423c01ae012b4f6731aaf70cf2bef61b34596"}, - {file = "wrapt-2.1.2-cp314-cp314t-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:a76d61a2e851996150ba0f80582dd92a870643fa481f3b3846f229de88caf044"}, - {file = "wrapt-2.1.2-cp314-cp314t-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:6f97edc9842cf215312b75fe737ee7c8adda75a89979f8e11558dfff6343cc4b"}, - {file = "wrapt-2.1.2-cp314-cp314t-musllinux_1_2_aarch64.whl", hash = "sha256:4006c351de6d5007aa33a551f600404ba44228a89e833d2fadc5caa5de8edfbf"}, - {file = "wrapt-2.1.2-cp314-cp314t-musllinux_1_2_riscv64.whl", hash = "sha256:a9372fc3639a878c8e7d87e1556fa209091b0a66e912c611e3f833e2c4202be2"}, - {file = "wrapt-2.1.2-cp314-cp314t-musllinux_1_2_x86_64.whl", hash = "sha256:3144b027ff30cbd2fca07c0a87e67011adb717eb5f5bd8496325c17e454257a3"}, - {file = "wrapt-2.1.2-cp314-cp314t-win32.whl", hash = "sha256:3b8d15e52e195813efe5db8cec156eebe339aaf84222f4f4f051a6c01f237ed7"}, - {file = "wrapt-2.1.2-cp314-cp314t-win_amd64.whl", hash = "sha256:08ffa54146a7559f5b8df4b289b46d963a8e74ed16ba3687f99896101a3990c5"}, - {file = "wrapt-2.1.2-cp314-cp314t-win_arm64.whl", hash = "sha256:72aaa9d0d8e4ed0e2e98019cea47a21f823c9dd4b43c7b77bba6679ffcca6a00"}, - {file = "wrapt-2.1.2-cp39-cp39-macosx_10_9_x86_64.whl", hash = "sha256:5e0fa9cc32300daf9eb09a1f5bdc6deb9a79defd70d5356ba453bcd50aef3742"}, - {file = "wrapt-2.1.2-cp39-cp39-macosx_11_0_arm64.whl", hash = "sha256:710f6e5dfaf6a5d5c397d2d6758a78fecd9649deb21f1b645f5b57a328d63050"}, - {file = "wrapt-2.1.2-cp39-cp39-manylinux1_x86_64.manylinux_2_28_x86_64.manylinux_2_5_x86_64.whl", hash = "sha256:305d8a1755116bfdad5dda9e771dcb2138990a1d66e9edd81658816edf51aed1"}, - {file = "wrapt-2.1.2-cp39-cp39-manylinux2014_aarch64.manylinux_2_17_aarch64.manylinux_2_28_aarch64.whl", hash = "sha256:f0d8fc30a43b5fe191cf2b1a0c82bab2571dadd38e7c0062ee87d6df858dd06e"}, - {file = "wrapt-2.1.2-cp39-cp39-manylinux_2_31_riscv64.manylinux_2_39_riscv64.whl", hash = "sha256:a5d516e22aedb7c9c1d47cba1c63160b1a6f61ec2f3948d127cd38d5cfbb556f"}, - {file = "wrapt-2.1.2-cp39-cp39-musllinux_1_2_aarch64.whl", hash = "sha256:45914e8efbe4b9d5102fcf0e8e2e3258b83a5d5fba9f8f7b6d15681e9d29ffe0"}, - {file = "wrapt-2.1.2-cp39-cp39-musllinux_1_2_riscv64.whl", hash = "sha256:478282ebd3795a089154fb16d3db360e103aa13d3b2ad30f8f6aac0d2207de0e"}, - {file = "wrapt-2.1.2-cp39-cp39-musllinux_1_2_x86_64.whl", hash = "sha256:3756219045f73fb28c5d7662778e4156fbd06cf823c4d2d4b19f97305e52819c"}, - {file = "wrapt-2.1.2-cp39-cp39-win32.whl", hash = "sha256:b8aefb4dbb18d904b96827435a763fa42fc1f08ea096a391710407a60983ced8"}, - {file = "wrapt-2.1.2-cp39-cp39-win_amd64.whl", hash = "sha256:e5aeab8fe15c3dff75cfee94260dcd9cded012d4ff06add036c28fae7718593b"}, - {file = "wrapt-2.1.2-cp39-cp39-win_arm64.whl", hash = "sha256:f069e113743a21a3defac6677f000068ebb931639f789b5b226598e247a4c89e"}, - {file = "wrapt-2.1.2-py3-none-any.whl", hash = "sha256:b8fd6fa2b2c4e7621808f8c62e8317f4aae56e59721ad933bac5239d913cf0e8"}, - {file = "wrapt-2.1.2.tar.gz", hash = "sha256:3996a67eecc2c68fd47b4e3c564405a5777367adfd9b8abb58387b63ee83b21e"}, -] - -[package.extras] -dev = ["pytest", "setuptools"] - [metadata] lock-version = "2.1" python-versions = ">=3.10,<3.15" -content-hash = "79aa61a17b730975edbbc868b173d5ff0cd3f4fd56407a9c677012555461f6de" +content-hash = "624c15781d4670d954836d3303871ca1bbe63effdd2ac1edd4670f34279a8e75" From a68bae6892c04491231efb886c00c628bb346515 Mon Sep 17 00:00:00 2001 From: Artem Sheptunov Date: Wed, 20 May 2026 11:46:00 +0500 Subject: [PATCH 13/20] chore(poetry): #67: lock poetry dependencies --- poetry.lock | 93 +++++++++++++++++++++++++++++++++++++++++++++++------ 1 file changed, 83 insertions(+), 10 deletions(-) diff --git a/poetry.lock b/poetry.lock index e02b87b..9c322e5 100644 --- a/poetry.lock +++ b/poetry.lock @@ -1,4 +1,29 @@ -# This file is automatically @generated by Poetry 2.3.4 and should not be changed by hand. +# This file is automatically @generated by Poetry 2.4.1 and should not be changed by hand. + +[[package]] +name = "c2pa-python" +version = "0.32.6" +description = "Python bindings for the C2PA Content Authenticity Initiative (CAI) library" +optional = false +python-versions = ">=3.10" +groups = ["main"] +files = [ + {file = "c2pa_python-0.32.6-py3-none-macosx_10_9_universal2.whl", hash = "sha256:5bebb4c05333e74e44ada3b9287b32bcccd973ad60cbaa8c811f10c6c4b5ae62"}, + {file = "c2pa_python-0.32.6-py3-none-macosx_10_9_x86_64.whl", hash = "sha256:4ed9d2f3391553d99bf4a04722f00bf5e257630f2389af28bbb29238509ecd96"}, + {file = "c2pa_python-0.32.6-py3-none-macosx_11_0_arm64.whl", hash = "sha256:6b19f43eb9800bd1958100afd5e961e6d146c88317bc6a4d3da83e1dde3b8386"}, + {file = "c2pa_python-0.32.6-py3-none-manylinux_2_28_aarch64.whl", hash = "sha256:a7ddc8e95e93622f8b8d95ac8abef9dca148f5ac3064aee49b00962a0777cafb"}, + {file = "c2pa_python-0.32.6-py3-none-manylinux_2_28_x86_64.whl", hash = "sha256:bf57a0c6d4d67416ec75dd6923d8eaf26776798ec9293a323eb6405edce0039f"}, + {file = "c2pa_python-0.32.6-py3-none-win_amd64.whl", hash = "sha256:99f73e82c31f133c482aed6121e6a0841525776a5ce51a5040ac9ad1ec360ee7"}, + {file = "c2pa_python-0.32.6.tar.gz", hash = "sha256:3635ca07b5f74e5c4e8c04c300a4cb538181194c527d9f8db1330d0530db8919"}, +] + +[package.dependencies] +cryptography = ">=41.0.0" +pytest = ">=7.4.0" +requests = ">=2.0.0" +setuptools = ">=68.0.0" +toml = ">=0.10.2" +wheel = ">=0.41.2" [[package]] name = "cbor2" @@ -308,7 +333,7 @@ version = "0.4.6" description = "Cross-platform colored terminal text." optional = false python-versions = "!=3.0.*,!=3.1.*,!=3.2.*,!=3.3.*,!=3.4.*,!=3.5.*,!=3.6.*,>=2.7" -groups = ["dev"] +groups = ["main", "dev"] markers = "sys_platform == \"win32\"" files = [ {file = "colorama-0.4.6-py2.py3-none-any.whl", hash = "sha256:4f1d9991f5acc0ca119f9d443620b77f9d6b33703e51011c16baf57afb285fc6"}, @@ -509,7 +534,7 @@ version = "1.3.1" description = "Backport of PEP 654 (exception groups)" optional = false python-versions = ">=3.7" -groups = ["dev"] +groups = ["main", "dev"] markers = "python_version == \"3.10\"" files = [ {file = "exceptiongroup-1.3.1-py3-none-any.whl", hash = "sha256:a7a39a3bd276781e98394987d3a5701d0c4edffb633bb7a5144577f82c773598"}, @@ -543,7 +568,7 @@ version = "2.3.0" description = "brain-dead simple config-ini parsing" optional = false python-versions = ">=3.10" -groups = ["dev"] +groups = ["main", "dev"] files = [ {file = "iniconfig-2.3.0-py3-none-any.whl", hash = "sha256:f631c04d2c48c52b84d0d0549c99ff3859c98df65b3101406327ecc7d53fbf12"}, {file = "iniconfig-2.3.0.tar.gz", hash = "sha256:c76315c77db068650d49c5b56314774a7804df16fee4402c1f19d6d15d8c4730"}, @@ -555,7 +580,7 @@ version = "26.2" description = "Core utilities for Python packages" optional = false python-versions = ">=3.8" -groups = ["dev"] +groups = ["main", "dev"] files = [ {file = "packaging-26.2-py3-none-any.whl", hash = "sha256:5fc45236b9446107ff2415ce77c807cee2862cb6fac22b8a73826d0693b0980e"}, {file = "packaging-26.2.tar.gz", hash = "sha256:ff452ff5a3e828ce110190feff1178bb1f2ea2281fa2075aadb987c2fb221661"}, @@ -567,7 +592,7 @@ version = "1.6.0" description = "plugin and hook calling mechanisms for python" optional = false python-versions = ">=3.9" -groups = ["dev"] +groups = ["main", "dev"] files = [ {file = "pluggy-1.6.0-py3-none-any.whl", hash = "sha256:e920276dd6813095e9377c0bc5566d94c932c33b27a3e3945d8389c374dd4746"}, {file = "pluggy-1.6.0.tar.gz", hash = "sha256:7dcc130b76258d33b90f61b658791dede3486c3e6bfb003ee5c9bfb396dd22f3"}, @@ -647,7 +672,7 @@ version = "7.4.4" description = "pytest: simple powerful testing with Python" optional = false python-versions = ">=3.7" -groups = ["dev"] +groups = ["main", "dev"] files = [ {file = "pytest-7.4.4-py3-none-any.whl", hash = "sha256:b090cdf5ed60bf4c45261be03239c2c1c22df034fbffe691abe93cd80cea01d8"}, {file = "pytest-7.4.4.tar.gz", hash = "sha256:2cf0005922c6ace4a3e2ec8b4080eb0d9753fdc93107415332f50ce9e7994280"}, @@ -747,14 +772,46 @@ files = [ {file = "ruff-0.13.3.tar.gz", hash = "sha256:5b0ba0db740eefdfbcce4299f49e9eaefc643d4d007749d77d047c2bab19908e"}, ] +[[package]] +name = "setuptools" +version = "82.0.1" +description = "Most extensible Python build backend with support for C/C++ extension modules" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "setuptools-82.0.1-py3-none-any.whl", hash = "sha256:a59e362652f08dcd477c78bb6e7bd9d80a7995bc73ce773050228a348ce2e5bb"}, + {file = "setuptools-82.0.1.tar.gz", hash = "sha256:7d872682c5d01cfde07da7bccc7b65469d3dca203318515ada1de5eda35efbf9"}, +] + +[package.extras] +check = ["pytest-checkdocs (>=2.4)", "pytest-ruff (>=0.2.1) ; sys_platform != \"cygwin\"", "ruff (>=0.13.0) ; sys_platform != \"cygwin\""] +core = ["importlib_metadata (>=6) ; python_version < \"3.10\"", "jaraco.functools (>=4)", "jaraco.text (>=3.7)", "more_itertools", "more_itertools (>=8.8)", "packaging (>=24.2)", "tomli (>=2.0.1) ; python_version < \"3.11\"", "wheel (>=0.43.0)"] +cover = ["pytest-cov"] +doc = ["furo", "jaraco.packaging (>=9.3)", "jaraco.tidelift (>=1.4)", "pygments-github-lexers (==0.0.5)", "pyproject-hooks (!=1.1)", "rst.linker (>=1.9)", "sphinx (>=3.5)", "sphinx-favicon", "sphinx-inline-tabs", "sphinx-lint", "sphinx-notfound-page (>=1,<2)", "sphinx-reredirects", "sphinxcontrib-towncrier", "towncrier (<24.7)"] +enabler = ["pytest-enabler (>=2.2)"] +test = ["build[virtualenv] (>=1.0.3)", "filelock (>=3.4.0)", "ini2toml[lite] (>=0.14)", "jaraco.develop (>=7.21) ; python_version >= \"3.9\" and sys_platform != \"cygwin\"", "jaraco.envs (>=2.2)", "jaraco.path (>=3.7.2)", "jaraco.test (>=5.5)", "packaging (>=24.2)", "pip (>=19.1)", "pyproject-hooks (!=1.1)", "pytest (>=6,!=8.1.*)", "pytest-home (>=0.5)", "pytest-perf ; sys_platform != \"cygwin\"", "pytest-subprocess", "pytest-timeout", "pytest-xdist (>=3)", "tomli-w (>=1.0.0)", "virtualenv (>=13.0.0)", "wheel (>=0.44.0)"] +type = ["importlib_metadata (>=7.0.2) ; python_version < \"3.10\"", "jaraco.develop (>=7.21) ; sys_platform != \"cygwin\"", "mypy (==1.18.*)", "pytest-mypy"] + +[[package]] +name = "toml" +version = "0.10.2" +description = "Python Library for Tom's Obvious, Minimal Language" +optional = false +python-versions = ">=2.6, !=3.0.*, !=3.1.*, !=3.2.*" +groups = ["main"] +files = [ + {file = "toml-0.10.2-py2.py3-none-any.whl", hash = "sha256:806143ae5bfb6a3c6e736a764057db0e6a0e05e338b5630894a5f779cabb4f9b"}, + {file = "toml-0.10.2.tar.gz", hash = "sha256:b3bda1d108d5dd99f4a20d24d9c348e91c4db7ab1b749200bded2f839ccbe68f"}, +] + [[package]] name = "tomli" version = "2.4.1" description = "A lil' TOML parser" optional = false python-versions = ">=3.8" -groups = ["dev"] -markers = "python_full_version <= \"3.11.0a6\"" +groups = ["main", "dev"] files = [ {file = "tomli-2.4.1-cp311-cp311-macosx_10_9_x86_64.whl", hash = "sha256:f8f0fc26ec2cc2b965b7a3b87cd19c5c6b8c5e5f436b984e85f486d652285c30"}, {file = "tomli-2.4.1-cp311-cp311-macosx_11_0_arm64.whl", hash = "sha256:4ab97e64ccda8756376892c53a72bd1f964e519c77236368527f758fbc36a53a"}, @@ -804,6 +861,7 @@ files = [ {file = "tomli-2.4.1-py3-none-any.whl", hash = "sha256:0d85819802132122da43cb86656f8d1f8c6587d54ae7dcaf30e90533028b49fe"}, {file = "tomli-2.4.1.tar.gz", hash = "sha256:7c7e1a961a0b2f2472c1ac5b69affa0ae1132c39adcb67aba98568702b9cc23f"}, ] +markers = {main = "python_version == \"3.10\"", dev = "python_full_version <= \"3.11.0a6\""} [[package]] name = "typing-extensions" @@ -836,7 +894,22 @@ h2 = ["h2 (>=4,<5)"] socks = ["pysocks (>=1.5.6,!=1.5.7,<2.0)"] zstd = ["backports-zstd (>=1.0.0) ; python_version < \"3.14\""] +[[package]] +name = "wheel" +version = "0.47.0" +description = "Command line tool for manipulating wheel files" +optional = false +python-versions = ">=3.9" +groups = ["main"] +files = [ + {file = "wheel-0.47.0-py3-none-any.whl", hash = "sha256:212281cab4dff978f6cedd499cd893e1f620791ca6ff7107cf270781e587eced"}, + {file = "wheel-0.47.0.tar.gz", hash = "sha256:cc72bd1009ba0cf63922e28f94d9d83b920aa2bb28f798a31d0691b02fa3c9b3"}, +] + +[package.dependencies] +packaging = ">=24.0" + [metadata] lock-version = "2.1" python-versions = ">=3.10,<3.15" -content-hash = "624c15781d4670d954836d3303871ca1bbe63effdd2ac1edd4670f34279a8e75" +content-hash = "61aec7de5fe2b9b0963396ebbe21c06f0a084bdb9d894601191ce608a065f020" From 7aceb2c321a87a0a8fb32f16b683c01b84f60447 Mon Sep 17 00:00:00 2001 From: JDRkow Date: Wed, 20 May 2026 15:27:29 +0500 Subject: [PATCH 14/20] ci(semantic-release): #67: update plugin in ci Co-authored-by: Artem Sheptunov <106321977+aasheptunov@users.noreply.github.com> --- .github/workflows/publish-release.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index aaa787f..f8bee86 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -98,7 +98,7 @@ jobs: @semantic-release/github@12.0.8 \ semantic-release-pypi@5.3.0 \ conventional-changelog-conventionalcommits@9.3.1 \ - @saithodev/semantic-release-backmerge@4.0.1 + @kilianpaquier/semantic-release-backmerge@1.7.5 - name: Semantic Version Release env: From b32d0e8b83e8a2c82b1400e0612ec0fd0968bcfe Mon Sep 17 00:00:00 2001 From: JDRkow Date: Wed, 20 May 2026 15:30:44 +0500 Subject: [PATCH 15/20] chore(semantic-release): #67: one more new line Co-authored-by: Artem Sheptunov <106321977+aasheptunov@users.noreply.github.com> --- release.config.cjs | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/release.config.cjs b/release.config.cjs index f42ed05..f4a94e8 100644 --- a/release.config.cjs +++ b/release.config.cjs @@ -46,7 +46,7 @@ module.exports = { assets: ['CHANGELOG.md', 'pyproject.toml'], message: 'chore(release): ${nextRelease.version}\n\n' + - 'Automatically generated by semantic-release\n\n' + + 'Automatically generated by semantic-release\n\n\n' + 'skip-checks: true', }, ], From b0e33618dbaabcf5914fbbfba53450b50bd0420f Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Wed, 20 May 2026 15:44:00 +0500 Subject: [PATCH 16/20] chore(semantic-release): #67: delete unused semantic-release plugin --- .github/workflows/publish-release.yml | 1 - 1 file changed, 1 deletion(-) diff --git a/.github/workflows/publish-release.yml b/.github/workflows/publish-release.yml index f8bee86..68ea220 100644 --- a/.github/workflows/publish-release.yml +++ b/.github/workflows/publish-release.yml @@ -96,7 +96,6 @@ jobs: @semantic-release/changelog@6.0.3 \ @semantic-release/git@10.0.1 \ @semantic-release/github@12.0.8 \ - semantic-release-pypi@5.3.0 \ conventional-changelog-conventionalcommits@9.3.1 \ @kilianpaquier/semantic-release-backmerge@1.7.5 From 7c57fa1735d1499ffea6f4581fd29f5fcefc5cf4 Mon Sep 17 00:00:00 2001 From: JDRkow Date: Wed, 20 May 2026 15:46:03 +0500 Subject: [PATCH 17/20] docs(contributing): #67: add more commit message to the readme Co-authored-by: Artem Sheptunov <106321977+aasheptunov@users.noreply.github.com> --- CONTRIBUTING.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 6f3311f..7e8ed93 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -130,7 +130,7 @@ master β†’ 1.4.0 | Commit type | Bump | Example | |---|---|---| -| `fix` | patch | `1.4.0 β†’ 1.4.1` | +| `fix` / `docs` / `refactor` | patch | `1.4.0 β†’ 1.4.1` | | `feat` | minor | `1.4.0 β†’ 1.5.0` | | `feat!` / `BREAKING CHANGE` | major | `1.4.0 β†’ 2.0.0` | From f91a81ac41f4e246d16c4ba500e1b4a2ff93dd76 Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Fri, 22 May 2026 14:33:12 +0500 Subject: [PATCH 18/20] docs(contributing): #67: describe how releases are publish into pypi --- CONTRIBUTING.md | 19 ++++++++++++++++--- 1 file changed, 16 insertions(+), 3 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 7e8ed93..07e9dc3 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -4,9 +4,13 @@ To contribute to the c2pie package development, you can use one of the following ### General principles -πŸ”Έ Use Conventional Commits (e.g., `feat:`, `fix:`, `style(ruff):`, `ci:`). +πŸ”Έ Use Conventional Commits (e.g., `feat(scope):`, `fix:`, `style(ruff):`, `ci:`). -πŸ”Έ Use [Git Flow](https://nvie.com/posts/a-successful-git-branching-model/) branches names (e.g., `feature/`, `fix/`, `release/`). +πŸ”Έ Name branches using Git Flow convention with the issue number and short description +(e.g., `feature/#67-add-validation`, `fix/#42-crash-on-empty-input`). + +πŸ”Έ Name pull requests using Conventional Commits format with the issue number +(e.g., `feat(api): #67 add ingredient validation`, `fix(parser): #42 handle empty input`). πŸ”Έ Run `Lint and Format` task before committing. @@ -143,4 +147,13 @@ After every release on `master` or `release/*`, semantic-release automatically m | `master` | `develop` | | `release/*` | `develop` | -> Note: Backmerged commit to the `develop` branch has the `[skip ci]` tag, so a new alpha release from the `develop` branch will not be created. \ No newline at end of file +> Note: Backmerged commit to the `develop` branch has the `[skip ci]` tag, so a new alpha release from the `develop` branch will not be created. + +### PyPI Publishing + +Every release (stable, RC, and alpha) automatically triggers the `publish-package.yml` +workflow. It consists of two jobs: + +1. **Build** β€” installs Poetry and builds the package via `poetry build` +2. **Publish** β€” uploads the built distributions to [PyPI](https://pypi.org/p/c2pie) + using the official [`pypa/gh-action-pypi-publish`](https://github.com/pypa/gh-action-pypi-publish) action \ No newline at end of file From 688dda90e756473545d615c866ecd992a5e058a8 Mon Sep 17 00:00:00 2001 From: JDRkow Date: Fri, 22 May 2026 14:42:04 +0500 Subject: [PATCH 19/20] docs(contributing): #67: make more readable Co-authored-by: Artem Sheptunov <106321977+aasheptunov@users.noreply.github.com> --- CONTRIBUTING.md | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 07e9dc3..318335d 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -151,8 +151,9 @@ After every release on `master` or `release/*`, semantic-release automatically m ### PyPI Publishing -Every release (stable, RC, and alpha) automatically triggers the `publish-package.yml` -workflow. It consists of two jobs: +Every release (stable, RC, and alpha) automatically triggers the `publish-package.yml` workflow. + +Workflow consists of two jobs: 1. **Build** β€” installs Poetry and builds the package via `poetry build` 2. **Publish** β€” uploads the built distributions to [PyPI](https://pypi.org/p/c2pie) From 40dbcf976bf71c71d1793e276b3c7d36fea023f9 Mon Sep 17 00:00:00 2001 From: Oleg Kl Date: Wed, 3 Jun 2026 17:21:13 +0500 Subject: [PATCH 20/20] docs(releases): #67: add documentation across all releases workflow --- docs/releases.md | 419 +++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 419 insertions(+) create mode 100644 docs/releases.md diff --git a/docs/releases.md b/docs/releases.md new file mode 100644 index 0000000..eaabeed --- /dev/null +++ b/docs/releases.md @@ -0,0 +1,419 @@ +# Release Flow + +ΠžΡΠ½ΠΎΠ²Π½Ρ‹ΠΌ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ΠΎΠΌ ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π° являСтся `wheel` - Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ дистрибутива Python-ΠΏΠ°ΠΊΠ΅Ρ‚Π°. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΡˆ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° Π² Ρ€Π΅Π»ΠΈΠ·Π½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΈΡ‚ GitHub Actions workflow, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ запускаСт semantic-release, выпускаСт Π½ΠΎΠ²Ρ‹ΠΉ Ρ€Π΅Π»ΠΈΠ· ΠΏΠΎ ΠΏΡ€Π°Π²ΠΈΠ»Π°ΠΌ ΠΈΠ· Ρ‚Π°Π±Π»ΠΈΡ†Ρ‹ [вСрсионирования](#вСрсионированиС) ΠΈ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ Π΅Π³ΠΎ Π² PyPI ΠΈ GitHub Releases. ΠšΠΎΠΌΠΌΠΈΡ‚Ρ‹ с `[skip ci]` Π² ΠΊΠΎΠ½Ρ†Π΅ workflow ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΠ΅Ρ‚ - ΠΈΠΌΠ΅Π½Π½ΠΎ поэтому backmerge-ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Π½Π΅ ΡΠΎΠ·Π΄Π°ΡŽΡ‚ Π½ΠΎΠ²Ρ‹Ρ… Ρ€Π΅Π»ΠΈΠ·ΠΎΠ² ΠΈ Π½Π΅ ΠΈΠΌΠ΅ΡŽΡ‚ Ρ‚Π΅Π³ΠΎΠ² Π½Π° Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ°Ρ…. + +Changelog гСнСрируСтся автоматичСски ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠΌ событии: alpha, rc, stable, hotfix, maintenance. Для сохранСния ΠΊΠΎΡ€Ρ€Π΅ΠΊΡ‚Π½ΠΎΠΉ истории Π² changelog PR Π² prerelease-Π²Π΅Ρ‚ΠΊΠΈ (`feature/*`, `release/*`, `hotfix/*`) Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠ΅ ΠΌΠ΅Ρ€Π΄ΠΆΠΈΡ‚ΡŒ Π±Π΅Π· squash. + +Π’Π°ΠΊ ΠΆΠ΅ changelog ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎΠΉ вСрсии ΠΏΠΎΠΏΠ°Π΄Π°Π΅Ρ‚ Π² release notes ΠΊ этой вСрсии. + +| Π’Π΅Ρ‚ΠΊΠ° | Π’ΠΈΠΏ Ρ€Π΅Π»ΠΈΠ·Π° | PyPI ΠΊΠ°Π½Π°Π» | +| ---------------------- | -----------------------------| ------------------------------ | +| `feature/*` | Dev build (artifact) | Π½Π΅ публикуСтся | +| `develop` | Pre-release (alpha) | `--pre` | +| `release/*` | Pre-release (rc) | `--pre` | +| `master` | Stable release | `latest` | +| `hotfix/*` -> `master` | Stable release (patch) | Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прямым ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ вСрсии | +| `1.x` | Stable release (maintenance) | Ρ‚ΠΎΠ»ΡŒΠΊΠΎ прямым ΡƒΠΊΠ°Π·Π°Π½ΠΈΠ΅ΠΌ вСрсии | + +## ΠžΠ±Ρ‰Π°Ρ Π΄ΠΈΠ°Π³Ρ€Π°ΠΌΠΌΠ° + +```mermaid +%%{init: { 'gitGraph': {'mainBranchName': 'master'} }}%% +gitGraph + commit tag: "1.3.0" + branch develop + checkout develop + branch feature/67-A + checkout feature/67-A + commit id: "fix: A" tag: "1.3.1-alpha.1-sha-a1" + checkout develop + branch feature/71-B + checkout feature/71-B + commit id: "feat: B" tag: "1.4.0-alpha.1-sha-b1" + checkout develop + merge feature/67-A tag: "1.3.1-alpha.1" + commit id: "fix: bug" tag: "1.3.2-alpha.2" + merge feature/71-B tag: "1.4.0-alpha.3" + branch release/1.4.0 + checkout release/1.4.0 + commit id: "fix: edge case" tag: "1.4.0-rc.1" + checkout develop + merge release/1.4.0 id: "backmerge rc.1 [skip ci]" + commit id: "feat: C" tag: "1.4.0-alpha.4" + branch feature/80-D + checkout feature/80-D + commit id: "feat: D" tag: "1.4.0-alpha.4-sha-d1" + checkout release/1.4.0 + commit id: "fix: typo" tag: "1.4.0-rc.2" + checkout develop + merge release/1.4.0 id: "backmerge rc.2 [skip ci]" + checkout master + merge release/1.4.0 tag: "1.4.0" + checkout develop + merge master id: "backmerge 1.4.0 [skip ci]" + checkout master + branch hotfix/crash + checkout hotfix/crash + commit id: "fix: smthn" + checkout master + merge hotfix/crash tag: "1.4.1" + checkout develop + merge master id: "backmerge hotfix [skip ci]" + merge feature/80-D tag: "1.5.0-alpha.1" +``` +## Dev Release + +### Feature Dev Builds + +Π’Π΅Ρ‚ΠΊΠ° `feature/*` создаётся ΠΎΡ‚ `develop`. ΠšΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΡˆ Π² `feature/*` запускаСт CI, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ собираСт wheel ΠΈ сохраняСт Π΅Π³ΠΎ ΠΊΠ°ΠΊ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚ сборки (GitHub Actions artifact). Π­Ρ‚ΠΈ сборки Π½Π΅ ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΡŽΡ‚ΡΡ Π² PyPI ΠΈ Π² GitHub Releases - ΠΎΠ½ΠΈ доступны Ρ‚ΠΎΠ»ΡŒΠΊΠΎ Π²Π½ΡƒΡ‚Ρ€ΠΈ workflow ΠΊΠ°ΠΊ Π°Ρ€Ρ‚Π΅Ρ„Π°ΠΊΡ‚Ρ‹. + +```mermaid +%%{init: { 'gitGraph': {'mainBranchName': 'master'} }}%% +gitGraph + commit id: "..." tag: "1.3.0" + branch develop + checkout develop + + branch feature/67-A + checkout feature/67-A + commit id: "feat: A (push 1)" tag: "1.4.0-alpha.1-sha-a1" + commit id: "feat: A (push 2)" tag: "1.4.0-alpha.1-sha-a2" + commit id: "fix: A (push 3)" tag: "1.4.0-alpha.1-sha-a3" +``` + +Если feature-Π²Π΅Ρ‚ΠΊΠ° создаётся ΠΎΡ‚ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° с ΡƒΠΆΠ΅ ΡΡƒΡ‰Π΅ΡΡ‚Π²ΡƒΡŽΡ‰ΠΈΠΌ alpha-Ρ‚Π΅Π³ΠΎΠΌ, Ρ‚Π΅Π³ dev-сборки Π±ΡƒΠ΄Π΅Ρ‚ ΡΠΎΠ΄Π΅Ρ€ΠΆΠ°Ρ‚ΡŒ эту ΠΆΠ΅ base-Π²Π΅Ρ€ΡΠΈΡŽ: + +```mermaid +%%{init: { 'gitGraph': {'mainBranchName': 'master'} }}%% +gitGraph + commit id: "..." tag: "1.3.0" + branch develop + checkout develop + commit id: "feat: X" tag: "1.4.0-alpha.1" + + branch feature/80-D + checkout feature/80-D + commit id: "feat: D (push 1)" tag: "1.4.0-alpha.1-sha-d1" + commit id: "feat: D (push 2)" tag: "1.4.0-alpha.1-sha-d2" +``` + +### Alpha Releases from develop + +ПослС ΠΌΠ΅Ρ€ΠΆΠ° PR ΠΈΠ· `feature/*` Π² `develop` semantic-release автоматичСски ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ Π½ΠΎΠ²Ρ‹ΠΉ pre-release alpha. + +ВСрсия бампаСтся ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π· ΠΏΡ€ΠΈ ΠΏΠ΅Ρ€Π²ΠΎΠΌ ΠΊΠΎΠΌΠΌΠΈΡ‚Π΅ ΡΠΎΠΎΡ‚Π²Π΅Ρ‚ΡΡ‚Π²ΡƒΡŽΡ‰Π΅Π³ΠΎ Ρ‚ΠΈΠΏΠ°, ΠΏΠΎΡΠ»Π΅Π΄ΡƒΡŽΡ‰ΠΈΠ΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ Ρ‚ΠΎΠ³ΠΎ ΠΆΠ΅ Ρ‚ΠΈΠΏΠ° Ρ‚ΠΎΠ»ΡŒΠΊΠΎ ΠΈΠ½ΠΊΡ€Π΅ΠΌΠ΅Π½Ρ‚ΠΈΡ€ΡƒΡŽΡ‚ счётчик alpha: + +```mermaid +%%{init: { 'gitGraph': {'mainBranchName': 'master'} }}%% +gitGraph + commit id: "..." tag: "1.0.0" + branch develop + checkout develop + + branch feature/fix-A + checkout feature/fix-A + commit id: "fix: A" + checkout develop + merge feature/fix-A tag: "1.0.1-alpha.1" + + branch feature/fix-B + checkout feature/fix-B + commit id: "fix: B" + checkout develop + merge feature/fix-B tag: "1.0.1-alpha.2" + + branch feature/feat-C + checkout feature/feat-C + commit id: "feat: C" + checkout develop + merge feature/feat-C tag: "1.1.0-alpha.1" + + branch feature/feat-D + checkout feature/feat-D + commit id: "feat: D" + checkout develop + merge feature/feat-D tag: "1.1.0-alpha.2" +``` + +ΠŸΠ°Ρ€Π°Π»Π»Π΅Π»ΡŒΠ½Ρ‹Π΅ feature-Π²Π΅Ρ‚ΠΊΠΈ Π½Π΅ ΠΌΠ΅ΡˆΠ°ΡŽΡ‚ Π΄Ρ€ΡƒΠ³ Π΄Ρ€ΡƒΠ³Ρƒ - ΠΊΠ°ΠΆΠ΄Ρ‹ΠΉ ΠΏΡƒΡˆ Π³Π΅Π½Π΅Ρ€ΠΈΡ€ΡƒΠ΅Ρ‚ Π½Π΅Π·Π°Π²ΠΈΡΠΈΠΌΡƒΡŽ dev-сборку со своим SHA. Π‘Ρ‡Ρ‘Ρ‚Ρ‡ΠΈΠΊ alpha Π½Π° `develop` инкрСмСнтируСтся ΠΏΡ€ΠΈ ΠΊΠ°ΠΆΠ΄ΠΎΠΌ ΠΏΡƒΡˆΠ΅ (Ссли Π΅ΡΡ‚ΡŒ Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΡ‹ΠΉ [ΠΊΠΎΠΌΠΌΠΈΡ‚](#ВСрсионированиС)): + +```mermaid +%%{init: { 'gitGraph': {'mainBranchName': 'master'} }}%% +gitGraph + commit id: "..." tag: "1.3.0" + branch develop + checkout develop + + branch feature/67-A + checkout feature/67-A + commit id: "feat: A" tag: "1.4.0-alpha.1-sha-a1" + + checkout develop + branch feature/71-B + checkout feature/71-B + commit id: "feat: B" tag: "1.4.0-alpha.1-sha-b1" + + checkout develop + merge feature/67-A id: "Merge PR #67" tag: "1.4.0-alpha.1" + merge feature/71-B id: "Merge PR #71" tag: "1.4.0-alpha.2" +``` +## Release Candidate + +`release/1.4.0` создаётся ΠΎΡ‚ `develop`. + +> На Π²Π΅Ρ‚ΠΊΠ΅ `release/*` Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ `fix:`-ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Π­Ρ‚ΠΎ соглашСниС Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ - автоматичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π² CI ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚ (backlog). Π’Π°ΠΊ ΠΆΠ΅ Π½Π΅ допускаСтся сущСствованиС Π½Π΅ΡΠΊΠΎΠ»ΡŒΠΊΠΈΡ… `release/*` Π²Π΅Ρ‚ΠΎΠΊ ΠΎΠ΄Π½ΠΎΠ²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΎ. + +Backmerge - это автоматичСский merge ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ (`CHANGELOG.md`, `pyproject.toml`) ΠΈΠ· Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠΉ Π²Π΅Ρ‚ΠΊΠΈ ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² `develop` послС ΠΊΠ°ΠΆΠ΄ΠΎΠ³ΠΎ Ρ€Π΅Π»ΠΈΠ·Π½ΠΎΠ³ΠΎ шага. ΠŸΡƒΡˆΠΈΡ‚ΡΡ ΠΊΠΎΠΌΠΌΠΈΡ‚ с `[skip ci]`, Ρ‡Ρ‚ΠΎΠ±Ρ‹ Π½Π΅ Ρ‚Ρ€ΠΈΠ³Π³Π΅Ρ€ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹ΠΉ alpha. Если ΠΏΡ€ΠΈ backmerge Π²ΠΎΠ·Π½ΠΈΠΊΠ°ΡŽΡ‚ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Ρ‹ - semantic-release создаёт PR для Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°. + +### КСйс 1 - RC Ρ‚ΠΎΠ»ΡŒΠΊΠΎ с Π²Π½ΡƒΡ‚Ρ€Π΅Π½Π½ΠΈΠΌΠΈ фиксами + +```mermaid +%%{init: { 'gitGraph': {'mainBranchName': 'master'} }}%% +gitGraph + commit id: "..." tag: "1.3.0" + branch develop + checkout develop + commit id: "feat: A" tag: "1.4.0-alpha.1" + + branch release/1.4.0 + checkout release/1.4.0 + commit id: "fix: B" tag: "1.4.0-rc.1" + + checkout develop + merge release/1.4.0 id: "backmerge rc.1 [skip ci]" + commit id: "feat: C" tag: "1.4.0-alpha.2" + + checkout release/1.4.0 + commit id: "fix: D" tag: "1.4.0-rc.2" + + checkout develop + merge release/1.4.0 id: "backmerge rc.2 [skip ci]" + + checkout master + merge release/1.4.0 tag: "1.4.0" + + checkout develop + merge master id: "backmerge 1.4.0 [skip ci]" +``` + +### КСйс 2 - RC с Π΄ΠΎΠ±Π°Π²Π»Π΅Π½ΠΈΠ΅ΠΌ Π½ΠΎΠ²Ρ‹Ρ… ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠΉ с develop + +Если Π² процСссС RC Π½ΡƒΠΆΠ½ΠΎ Π²ΠΊΠ»ΡŽΡ‡ΠΈΡ‚ΡŒ Π½ΠΎΠ²Ρ‹Π΅ измСнСния ΠΈΠ· `develop` - Π²Π΅Ρ‚ΠΊΠ° `release/*` рСбСйзится Π½Π° `develop`. + +```mermaid +%%{init: { 'gitGraph': {'mainBranchName': 'master'} }}%% +gitGraph + commit id: "..." tag: "1.3.0" + branch develop + checkout develop + commit id: "feat: A" tag: "1.4.0-alpha.1" + + branch release/1.4.0 + checkout release/1.4.0 + commit id: "fix: B" tag: "1.4.0-rc.1" + + checkout develop + merge release/1.4.0 id: "backmerge rc.1 [skip ci]" + commit id: "feat: C" tag: "1.4.0-alpha.2" + + checkout release/1.4.0 + merge develop id: "rebase" tag: "1.4.0-rc.2" + commit id: "fix: D" tag: "1.4.0-rc.3" + + checkout develop + merge release/1.4.0 id: "backmerge rc.3 [skip ci]" + + checkout master + merge release/1.4.0 tag: "1.4.0" + + checkout develop + merge master id: "backmerge 1.4.0 [skip ci]" +``` + +### КСйс 3 - Backmerge с ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ΠΎΠΌ + +```mermaid +%%{init: { 'gitGraph': {'mainBranchName': 'master'} }}%% +gitGraph + commit id: "..." tag: "1.4.0-alpha.1" + branch develop + checkout develop + commit id: "feat: conflicting change" + + branch release/1.4.0 + checkout release/1.4.0 + commit id: "fix: conflict commit" tag: "1.4.0-rc.1" + + checkout develop + merge release/1.4.0 id: "resolve conflicts manually" +``` + +## Stable Release + +`release/1.4.0` мСрТится Π² `master` Ρ‡Π΅Ρ€Π΅Π· PR. semantic-release создаёт Ρ‚Π΅Π³ `v1.4.0` ΠΊΠ°ΠΊ stable. Backmerge доставляСт Π² `develop` ΠΎΠ±Π½ΠΎΠ²Π»Ρ‘Π½Π½Ρ‹Π΅ `CHANGELOG.md` ΠΈ `pyproject.toml` - Π½ΠΎΠ²Ρ‹ΠΉ alpha ΠΏΡ€ΠΈ этом Π½Π΅ создаётся ΠΈΠ·-Π·Π° Ρ‚Π΅Π³Π° `[skip ci]`. Π’Π°ΠΊ ΠΆΠ΅ создаСтся PR Ссли Π² backmerge ΠΈΠ· `master` Π² `develop` Ссли Π²ΠΎΠ·Π½ΠΈΠΊ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚. + +```mermaid +%%{init: { 'gitGraph': {'mainBranchName': 'master'} }}%% +gitGraph + commit id: "..." tag: "1.3.0" + branch develop + checkout develop + commit id: "feat: A" tag: "1.4.0-alpha.1" + + branch release/1.4.0 + checkout release/1.4.0 + commit id: "fix: B" tag: "1.4.0-rc.1" + + checkout develop + merge release/1.4.0 id: "backmerge rc.1 [skip ci]" + + checkout release/1.4.0 + commit id: "fix: C" tag: "1.4.0-rc.2" + + checkout develop + merge release/1.4.0 id: "backmerge rc.2 [skip ci]" + + checkout master + merge release/1.4.0 id: "Release 1.4.0" tag: "1.4.0" + + checkout develop + merge master id: "backmerge 1.4.0 [skip ci]" + commit id: "feat: D" tag: "1.5.0-alpha.1" +``` +## Hotfix + +Π₯отфикс ΠΈΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ для критичСских Π±Π°Π³ΠΎΠ² Π² stable-Ρ€Π΅Π»ΠΈΠ·Π°Ρ…. Π’Π΅Ρ‚ΠΊΠ° `hotfix/*` создаётся Π½Π°ΠΏΡ€ΡΠΌΡƒΡŽ ΠΎΡ‚ `master`, минуя `develop` ΠΈ `release/*`. ПослС ΠΌΠ΅Ρ€ΠΆΠ° Π² `master` semantic-release ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ stable ΠΏΠ°Ρ‚Ρ‡-Ρ€Π΅Π»ΠΈΠ· Π΄Π΅Π»Π°Π΅Ρ‚ backmerge Π² `develop`. + +> На Π²Π΅Ρ‚ΠΊΠ΅ `hotfix/*` Π²Ρ€ΡƒΡ‡Π½ΡƒΡŽ Π΄ΠΎΠΏΡƒΡΠΊΠ°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ `fix:`-ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹. Π­Ρ‚ΠΎ соглашСниС Π½Π° ΡƒΡ€ΠΎΠ²Π½Π΅ ΠΊΠΎΠΌΠ°Π½Π΄Ρ‹ - автоматичСской ΠΏΡ€ΠΎΠ²Π΅Ρ€ΠΊΠΈ Π² CI ΠΏΠΎΠΊΠ° Π½Π΅Ρ‚ (backlog). + +### КСйс 1 - Π±Π°Π³ ΠΈ Π² master, ΠΈ Π² develop + +```mermaid +%%{init: { 'gitGraph': {'mainBranchName': 'master'} }}%% +gitGraph + commit id: "..." tag: "1.4.0" + branch develop + checkout develop + commit id: "feat: E" tag: "1.5.0-alpha.1" + + checkout master + branch hotfix/smthn + checkout hotfix/smthn + commit id: "fix: smthn" + + checkout master + merge hotfix/smthn id: "Merge hotfix" tag: "1.4.1" + + checkout develop + merge master id: "backmerge hotfix [skip ci]" + commit id: "feat: F" tag: "1.5.0-alpha.2" +``` + +### КСйс 2 - Π±Π°Π³ Π² master, Π² develop ΡƒΠΆΠ΅ ΠΏΠΎΡ„ΠΈΠΊΡˆΠ΅Π½ (ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚ Π² backmerge) + +Если Π² `develop` Π±Π°Π³ ΡƒΠΆΠ΅ исправлСн ΠΈΠ½Π°Ρ‡Π΅ - backmerge создаёт ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚. semantic-release ΠΎΡ‚ΠΊΡ€Ρ‹Π²Π°Π΅Ρ‚ PR, ΠΊΠΎΡ‚ΠΎΡ€Ρ‹ΠΉ остаётся ΠΎΡ‚ΠΊΡ€Ρ‹Ρ‚Ρ‹ΠΌ для Ρ€ΡƒΡ‡Π½ΠΎΠ³ΠΎ Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ ΠΊΠΎΠ½Ρ„Π»ΠΈΠΊΡ‚Π°. + +```mermaid +%%{init: { 'gitGraph': {'mainBranchName': 'master'} }}%% +gitGraph + commit id: "..." tag: "1.4.0" + branch develop + checkout develop + commit id: "feat: conflicting change" + + checkout master + branch hotfix/fix + checkout hotfix/fix + commit id: "fix: overlapping area" + checkout master + merge hotfix/fix tag: "1.4.1" + + checkout develop + merge master id: "resolve conflicts manually" +``` +## Maintenance Release + +Π˜ΡΠΏΠΎΠ»ΡŒΠ·ΡƒΠ΅Ρ‚ΡΡ ΠΊΠΎΠ³Π΄Π° Π½ΡƒΠΆΠ½ΠΎ ΠΏΠ°Ρ‚Ρ‡ΠΈΡ‚ΡŒ ΠΈΠ»ΠΈ Π΄ΠΎΠ±Π°Π²Π»ΡΡ‚ΡŒ Ρ„ΠΈΡ‡ΠΈ Π² ΡΡ‚Π°Ρ€ΡƒΡŽ ΠΌΠ°ΠΆΠΎΡ€Π½ΡƒΡŽ Π²Π΅Ρ€ΡΠΈΡŽ, ΠΏΠΎΠΊΠ° `master` ΡƒΠΆΠ΅ ΡƒΡˆΡ‘Π» Π²ΠΏΠ΅Ρ€Ρ‘Π΄. Maintenance-Π²Π΅Ρ‚ΠΊΠ° Π½Π΅ мСрТится ΠΎΠ±Ρ€Π°Ρ‚Π½ΠΎ Π² `develop` ΠΈΠ»ΠΈ `master`. ВсС измСнСния вносятся Ρ‡Π΅Ρ€Π΅Π· ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½Ρ‹Π΅ Π²Π΅Ρ‚ΠΊΠΈ + PR. semantic-release ΠΏΡƒΠ±Π»ΠΈΠΊΡƒΠ΅Ρ‚ maintenance Ρ€Π΅Π»ΠΈΠ·. + +> Breaking changes Π² maintenance-Π²Π΅Ρ‚ΠΊΠ°Ρ… Π·Π°ΠΏΡ€Π΅Ρ‰Π΅Π½Ρ‹. + +### КСйс 1 - fix ΠΈ feat Π² старой ΠΌΠ°ΠΆΠΎΡ€Π½ΠΎΠΉ вСрсии + +```mermaid +%%{init: { 'gitGraph': {'mainBranchName': 'master'} }}%% +gitGraph + commit id: "..." tag: "1.9.0" + branch 1.x + checkout 1.x + + checkout master + commit id: "feat!: A" tag: "2.0.0" + commit id: "feat: B" tag: "2.3.0" + + checkout 1.x + branch fix/maintenance-bug + checkout fix/maintenance-bug + commit id: "fix: C" + checkout 1.x + merge fix/maintenance-bug id: "Merge fix PR" tag: "1.9.1" + + branch feat/maintenance-feature + checkout feat/maintenance-feature + commit id: "feat: D" + checkout 1.x + merge feat/maintenance-feature id: "Merge feat PR" tag: "1.10.0" +``` + +### КСйс 2 - Π±Π°Π³ ΠΈ Π² master, ΠΈ Π² 1.x + +Ѐикс сначала Π²Ρ‹Ρ…ΠΎΠ΄ΠΈΡ‚ Π½Π° `master`, Π·Π°Ρ‚Π΅ΠΌ добавляСтся Π² ΠΎΡ‚Π΄Π΅Π»ΡŒΠ½ΡƒΡŽ Π²Π΅Ρ‚ΠΊΡƒ ΠΈ мСрТится Π² `1.x`. + +```mermaid +%%{init: { 'gitGraph': {'mainBranchName': 'master'} }}%% +gitGraph +commit id: "..." tag: "1.9.0" +branch 1.x +checkout master +commit tag: "2.0.0" +branch fix/shared-bug +commit id: "fix: bug" +checkout master +merge fix/shared-bug id: "Merge fix PR" tag: "2.0.1" +checkout 1.x +branch fix/shared-bug-1 +checkout fix/shared-bug-1 +commit id: "fix: shared bug" +checkout 1.x +merge fix/shared-bug-1 id: "Merge maintenance PR" tag: "1.9.1" +``` + +**ΠŸΡ€Π°Π²ΠΈΠ»Π° maintenance-Π²Π΅Ρ‚ΠΎΠΊ:** +- Π‘ΠΎΠ·Π΄Π°ΡŽΡ‚ΡΡ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ для ΠΌΠ°ΠΆΠΎΡ€Π½Ρ‹Ρ… вСрсий: `1.x`, `2.x` ΠΈ Ρ‚.Π΄. +- Π’Π΅Ρ‚ΠΊΠ° создаётся ΠΎΡ‚ послСднСго Ρ‚Π΅Π³Π° Π² этой ΠΌΠ°ΠΆΠΎΡ€Π½ΠΎΠΉ Π»ΠΈΠ½ΠΈΠΈ (Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΎΡ‚ `v1.9.0`) +- Π’Π΅Ρ‚ΠΊΡƒ Π½ΡƒΠΆΠ½ΠΎ явно Π΄ΠΎΠ±Π°Π²ΠΈΡ‚ΡŒ Π² `branches` ΠΊΠΎΠ½Ρ„ΠΈΠ³Π° `.releaserc` +- ДопустимыС ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹: `fix:` ΠΈ `feat:` (Π±Π΅Π· breaking changes) +## ΠŸΡƒΠ±Π»ΠΈΠΊΠ°Ρ†ΠΈΡ ΠΏΠ°ΠΊΠ΅Ρ‚Π° + +| Π’ΠΈΠΏ Ρ€Π΅Π»ΠΈΠ·Π° | GitHub Releases | PyPI | +| ------------------------------------ | --------------- | ------------- | +| `1.4.0-alpha.1-sha-abc123` (feature) | - | - | +| `1.4.0-alpha.1` (develop) | + | + pre-release | +| `1.4.0-rc.1` (release/*) | + | + pre-release | +| `1.4.0` (master) | + | + latest | + +## ВСрсионированиС + +Волько `feat`, `fix`, `docs` ΠΈ `refactor` триггСрят Ρ€Π΅Π»ΠΈΠ·. ВсС ΠΎΡΡ‚Π°Π»ΡŒΠ½Ρ‹Π΅ ΠΊΠΎΠΌΠΌΠΈΡ‚Ρ‹ (`chore`, `ci`, `style`, `test`, `build`, `config`) ΠΈΠ³Π½ΠΎΡ€ΠΈΡ€ΡƒΡŽΡ‚ΡΡ semantic-release. + +| Π’Π΅Ρ‚ΠΊΠ° | Π’ΠΈΠΏ ΠΊΠΎΠΌΠΌΠΈΡ‚Π° | Bump | Π Π΅Π·ΡƒΠ»ΡŒΡ‚Π°Ρ‚ | ΠŸΡ€ΠΈΠΌΠ΅Ρ‡Π°Π½ΠΈΠ΅ | +| ----------- | ------------------------------ | ----------- | ------------------------- | ----------------------------- | +| `feature/*` | любой | sha | `1.4.0-alpha.1-sha-` | artifact | +| `develop` | `fix:` / `docs:` / `refactor:` | patch+alpha | `1.0.1-alpha.N` | bump ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π΄Π°Π»Π΅Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ N | +| `develop` | `feat:` | minor+alpha | `1.1.0-alpha.N` | bump ΠΎΠ΄ΠΈΠ½ Ρ€Π°Π·, Π΄Π°Π»Π΅Π΅ Ρ‚ΠΎΠ»ΡŒΠΊΠΎ N | +| `release/*` | `fix:` | rc | `1.4.0-rc.N` | Ρ‚ΠΎΠ»ΡŒΠΊΠΎ fix: | +| `master` | `fix:` / `docs:` / `refactor:` | patch | `1.4.1` | | +| `master` | `feat:` | minor | `1.5.0` | Π²ΠΊΠ»ΡŽΡ‡Π°Π΅Ρ‚ всС patch-измСнСния | +| `master` | `feat!:` / `BREAKING CHANGE` | major | `2.0.0` | | +| `1.x` | `fix:` | patch | `1.9.1` | | +| `1.x` | `feat:` | minor | `1.10.0` | Π±Π΅Π· breaking changes | +