Centralized monorepo version-sync tool driven by versions.yaml.
Project description
scitrera-repo-tools
Centralized monorepo version-sync tool driven by versions.yaml.
Install
pip install scitrera-repo-tools
# or, from source:
pip install -e .
Usage
From any directory inside a monorepo containing a versions.yaml:
sync-versions # apply updates
sync-versions --check # dry-run, exit 1 on drift
sync-versions --verbose # show every file inspected
sync-versions --config path/to/versions.yaml
versions.yaml schema
# Top-level project versions
my-python-pkg: 0.1.22
my-ts-pkg: 0.1.22
# External dep pins per language (optional)
preferred_versions:
python:
"pydantic": "2.13.4"
typescript:
"@modelcontextprotocol/sdk": "^1.26.0"
# Per-project file rules (replaces the hardcoded PROJECT_RULES dict)
project_rules:
my-python-pkg:
- { type: pyproject, path: my-python-pkg/pyproject.toml }
- { type: init_py, path: my-python-pkg/src/my_pkg/__init__.py }
my-ts-pkg:
- { type: package, path: my-ts-pkg/package.json }
# Internal monorepo cross-reference sync (optional)
dependency_mappings:
python:
packages:
"my-internal-dir": "my-published-name"
dependencies:
my-consumer:
- "my-internal-dir"
# Lockfile fallback for nulls in preferred_versions (optional)
sources:
python:
- "uv.lock"
Releases
Releases are automated via GitHub Actions on tag push (v*.*.*):
- CI runs the test suite on Python 3.11/3.12/3.13.
- A guard step asserts the tag matches
pyproject.toml's[project].version. python -m buildproduces an sdist + wheel.- The artifacts are published to PyPI via trusted publishing (OIDC; no API token).
- A GitHub Release is created with the artifacts attached.
License
BSD 3-Clause.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
Filter files by name, interpreter, ABI, and platform.
If you're not sure about the file name format, learn more about wheel file names.
Copy a direct link to the current filters
File details
Details for the file scitrera_repo_tools-0.1.5.tar.gz.
File metadata
- Download URL: scitrera_repo_tools-0.1.5.tar.gz
- Upload date:
- Size: 21.1 kB
- Tags: Source
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
2c15a0a4278077e2cac1c542d96de901121429aecc997449f1d49927a601c1de
|
|
| MD5 |
0bedb560f116977c549a8f67c11abd18
|
|
| BLAKE2b-256 |
cfeb931ecbdb78e339dbea141d0272daacc02a2844787ca933af506663e5059e
|
Provenance
The following attestation bundles were made for scitrera_repo_tools-0.1.5.tar.gz:
Publisher:
release.yml on scitrera/repo-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scitrera_repo_tools-0.1.5.tar.gz -
Subject digest:
2c15a0a4278077e2cac1c542d96de901121429aecc997449f1d49927a601c1de - Sigstore transparency entry: 1539986436
- Sigstore integration time:
-
Permalink:
scitrera/repo-tools@ed54544be3dbbf7171647328991d62a691ac144c -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/scitrera
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ed54544be3dbbf7171647328991d62a691ac144c -
Trigger Event:
push
-
Statement type:
File details
Details for the file scitrera_repo_tools-0.1.5-py3-none-any.whl.
File metadata
- Download URL: scitrera_repo_tools-0.1.5-py3-none-any.whl
- Upload date:
- Size: 24.6 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? Yes
- Uploaded via: twine/6.1.0 CPython/3.13.12
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
715d992ff7c557cacc8f3f52c8c59cb64926f05ac8a342bc2f81e0afe6fcc5a4
|
|
| MD5 |
02e6fbbf4ed7b110e6bf0a893ff5d74c
|
|
| BLAKE2b-256 |
65ce7a5586af05e32bbdb056342352ddd97089963cef5410a463a3a228fd2e5e
|
Provenance
The following attestation bundles were made for scitrera_repo_tools-0.1.5-py3-none-any.whl:
Publisher:
release.yml on scitrera/repo-tools
-
Statement:
-
Statement type:
https://in-toto.io/Statement/v1 -
Predicate type:
https://docs.pypi.org/attestations/publish/v1 -
Subject name:
scitrera_repo_tools-0.1.5-py3-none-any.whl -
Subject digest:
715d992ff7c557cacc8f3f52c8c59cb64926f05ac8a342bc2f81e0afe6fcc5a4 - Sigstore transparency entry: 1539986583
- Sigstore integration time:
-
Permalink:
scitrera/repo-tools@ed54544be3dbbf7171647328991d62a691ac144c -
Branch / Tag:
refs/tags/v0.1.5 - Owner: https://github.com/scitrera
-
Access:
public
-
Token Issuer:
https://token.actions.githubusercontent.com -
Runner Environment:
github-hosted -
Publication workflow:
release.yml@ed54544be3dbbf7171647328991d62a691ac144c -
Trigger Event:
push
-
Statement type: