Skip to content

Dependency surface reduction #132

Description

@whisper67265

Problem

The plugin declared Weblate[all] and a redundant direct packaging pin, pulling in a large transitive dependency tree for local and CI installs even though only the postgres extra is needed to import weblate.urls. This inflated install time, lockfile size, and audit surface without benefit to Docker deployments (which use the full upstream image unchanged).

Acceptance Criteria

  • pyproject.toml depends on Weblate[postgres] instead of Weblate[all], with no standalone packaging pin
  • Pin-bump, pin-sync, release, and contract-check scripts accept arbitrary Weblate extra syntax when parsing or rewriting the PyPI pin
  • uv.lock reflects the smaller dependency tree while plugin and contract tests still pass against the pinned Weblate version

Implementation Notes

  • Weblate[postgres] is the minimal extra required for weblate.urls import; Docker base image (weblate/weblate) remains the full upstream image and is unaffected
  • Script regexes were generalized from hard-coded Weblate[all] to Weblate(\[[^]]+\])? so future extra changes do not break tooling
  • packaging remains available transitively through Weblate and does not need a direct pin

References

  • pyproject.toml
  • uv.lock
  • CHANGELOG.md
  • scripts/bump-weblate-version.sh
  • scripts/check-weblate-pin-sync.sh
  • scripts/weblate-version-map.sh
  • scripts/check-weblate-internal-contract.sh
  • .github/workflows/release.yml
  • .github/workflows/weblate-pin-bump.yml

Metadata

Metadata

Assignees

Labels

No labels
No labels

Type

No type
No fields configured for issues without a type.

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions