Repository navigation
Closed
Description
Summary
Implement the package metadata, synchronized version policy, release workflow,
and PyPI publishing workflow required by the PyPI release umbrella issue.
Scope
- Prepare
motrix-env-corefor public distribution. - Prepare
motrix-deployfor public distribution. - Prepare
motrix-rlfor public distribution. - Add package
LICENSEfiles. - Declare Apache-2.0 SPDX metadata and license files.
- Add Homepage, Repository, Issues, and Changelog URLs.
- Add keywords and PyPI classifiers.
- Add
py.typedmarkers. - Remove unused dependencies from published metadata.
- Change public package metadata to
Requires-Python: >=3.10,<3.14. - Pin every cross-workspace dependency to the shared workspace version.
- Add Commitizen configuration.
- Automate normal release version bump PRs.
- Automate
main -> stablerelease PR creation. - Automate stable tag and GitHub Release creation.
- Automate hotfix version bumps and
hotfix/* -> stablePRs. - Add PyPI publishing jobs in dependency order.
- Add workspace version and dependency-pin contract tests.
- Document the release and publishing workflows.
Version and dependency policy
Every workspace package must use the same version. Every dependency from one
workspace package to another must be an exact pin to that version:
"motrix-env-core==0.4.0b0"
"motrix-deploy==0.4.0b0"The bump automation must update package versions, cross-workspace pins, and
uv.lock together.
Validation
-
prek run --all-filespasses. -
actionlintpasses. -
uv lock --checkpasses. - Workspace version contract tests pass.
- Commitizen
autopredicts the expected next version. - Commitizen
betapredicts the next beta. - A clean-worktree bump updates every package version.
- A clean-worktree bump updates every cross-workspace dependency pin.
- A clean-worktree bump refreshes every workspace version in
uv.lock. - All three sdists build successfully.
- All three wheels build successfully.
- Wheel metadata declares
Requires-Python: >=3.10, <3.14. - Wheel metadata declares the Apache-2.0 SPDX expression and license file.
- Wheels contain
LICENSEandpy.typed. - Wheel metadata contains project URLs and Python 3.10–3.13 classifiers.
- Published cross-workspace dependencies are exactly pinned.
- Dependency resolution succeeds for Python 3.10–3.13 on Linux x86_64.
- Dependency resolution succeeds for Python 3.10–3.13 on macOS arm64.
Acceptance criteria
- The implementation PR is reviewed and merged.
- The package and workflow validation above passes.
- No public package retains an unpinned or ranged workspace dependency.
- The release workflow is ready for repository and publisher setup.
Metadata
Metadata
Assignees
Labels
No labels
Activity
build(release): prepare synchronized PyPI publishing
build(release): prepare synchronized PyPI publishing
build(release): prepare synchronized PyPI publishing
build(release): prepare synchronized PyPI publishing
build(release): prepare synchronized PyPI publishing
build(release): prepare synchronized PyPI publishing
build(release): prepare synchronized PyPI publishing
build(release): prepare synchronized PyPI publishing (#113)