Skip to content

fix: use PyPI package for lint-po instead of git+https#1609

Merged
davidpoblador merged 1 commit into
mainfrom
worktree-iridescent-singing-breeze
Apr 8, 2026
Merged

fix: use PyPI package for lint-po instead of git+https#1609
davidpoblador merged 1 commit into
mainfrom
worktree-iridescent-singing-breeze

Conversation

@davidpoblador

Copy link
Copy Markdown
Member

Summary

  • Replace git+https://github.com/himdel/lint-po with uvx lint-po (PyPI) in both the
    pre-commit hook and the justfile lint task
  • Eliminates transient git resolution failures when GitHub is slow

Closes #1608

🤖 Generated with Claude Code

Closes #1608

Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
@davidpoblador davidpoblador merged commit 12fa28a into main Apr 8, 2026
1 of 2 checks passed
@davidpoblador davidpoblador deleted the worktree-iridescent-singing-breeze branch April 8, 2026 11:10
davidpoblador pushed a commit that referenced this pull request Apr 8, 2026
🤖 I have created a release *beep* *boop*
---


##
[10.3.0](v10.2.1...v10.3.0)
(2026-04-08)


### Features

* add CI Docker build and push workflow to scaffolding
([#1615](#1615))
([90fabab](90fabab))


### Bug Fixes

* locale_selector reads stripped path, set-language ignores session
([#1610](#1610))
([0859f7f](0859f7f))
* pin claude-code-action to v1.0.88 to avoid symlink ENOENT bug
([#1613](#1613))
([b8846bb](b8846bb))
* use PyPI package for lint-po instead of git+https
([#1609](#1609))
([12fa28a](12fa28a))


### Miscellaneous Chores

* **deps:** bump pytest from 9.0.2 to 9.0.3 in /vibetuner-py
([#1605](#1605))
([c99e9f3](c99e9f3))
* remove /update-scaffolding skill from scaffolded projects
([#1617](#1617))
([d4dd174](d4dd174))

---
This PR was generated with [Release
Please](https://github.com/googleapis/release-please). See
[documentation](https://github.com/googleapis/release-please#release-please).

---------

Co-authored-by: github-actions[bot] <41898282+github-actions[bot]@users.noreply.github.com>
davidpoblador added a commit that referenced this pull request Apr 28, 2026
## Summary
- Closes #1719 — `lint-po` rejects Babel-generated `msgid_plural` /
`msgstr[N]` entries, blocking `just lint` on any locale that uses `{%
trans count=… %}{% pluralize %}{% endtrans %}`.
- Root cause: PyPI `lint-po` is still 0.1.4 (Nov 2022), which predates
the gettext plural-form support merged upstream as `himdel/lint-po#3`
and `#4` (Mar 2026). Switching to PyPI in #1609 silently regressed the
feature.
- Pin `lint-po` to upstream master at
`efadbcaa50f84135ee4f16efa44d99d2662a74b4` via `[tool.uv.sources]` in
the scaffolded `pyproject.toml`.
- Switch the justfile recipe and pre-commit hook from `uvx lint-po` to
`uv run --frozen lint-po` so resolution happens once at `uv sync` time
instead of hitting GitHub on every invocation — also addresses the
transient-failure motivation behind #1609.
- A release-request issue is open upstream at himdel/lint-po#5; once a
new version ships to PyPI we can drop the `[tool.uv.sources]` pin in
favor of a normal version constraint.

## Test plan
- [x] Reproduced #1719 locally with `uvx lint-po` against a
Babel-generated plural `.po` (exit 1, "Unexpected input" warnings).
- [x] Verified the pinned SHA resolves and installs via `uv lock` + `uv
sync --frozen` in a smoke-test project.
- [x] Verified the same plural fixture passes with `uv run --frozen
lint-po` (exit 0).
- [x] Verified placeholder-mismatch detection still flags a
deliberately-broken `msgstr[1]` in a plural entry (exit 1).
- [ ] Smoke `just lint-po` and pre-commit `lint-po` hook on a real
scaffolded project after merge.

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-authored-by: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

lint-po pre-commit hook should use PyPI instead of git+https

1 participant