Skip to main content

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*.*.*):

  1. CI runs the test suite on Python 3.11/3.12/3.13.
  2. A guard step asserts the tag matches pyproject.toml's [project].version.
  3. python -m build produces an sdist + wheel.
  4. The artifacts are published to PyPI via trusted publishing (OIDC; no API token).
  5. 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

scitrera_repo_tools-0.1.5.tar.gz (21.1 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

scitrera_repo_tools-0.1.5-py3-none-any.whl (24.6 kB view details)

Uploaded Python 3

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

Hashes for scitrera_repo_tools-0.1.5.tar.gz
Algorithm Hash digest
SHA256 2c15a0a4278077e2cac1c542d96de901121429aecc997449f1d49927a601c1de
MD5 0bedb560f116977c549a8f67c11abd18
BLAKE2b-256 cfeb931ecbdb78e339dbea141d0272daacc02a2844787ca933af506663e5059e

See more details on using hashes here.

Provenance

The following attestation bundles were made for scitrera_repo_tools-0.1.5.tar.gz:

Publisher: release.yml on scitrera/repo-tools

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file scitrera_repo_tools-0.1.5-py3-none-any.whl.

File metadata

File hashes

Hashes for scitrera_repo_tools-0.1.5-py3-none-any.whl
Algorithm Hash digest
SHA256 715d992ff7c557cacc8f3f52c8c59cb64926f05ac8a342bc2f81e0afe6fcc5a4
MD5 02e6fbbf4ed7b110e6bf0a893ff5d74c
BLAKE2b-256 65ce7a5586af05e32bbdb056342352ddd97089963cef5410a463a3a228fd2e5e

See more details on using hashes here.

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

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page