Stop committing generated .mo (and .po) files; generate them at build time
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 4/5
- Thời gian dự kiến
- 3-5 ngày
- Mức phù hợp với người mới
- 52/100
- Loại issue
- Tái cấu trúc
- Độ rõ ràng
- Khá rõ ràng
- Mức độ hoạt động
- Ít trao đổi
- Công nghệ
- python
- Lĩnh vực
- build-system, cli, localization
Hướng nghiên cứu
Start by reading pyproject.toml, the existing doit localize task, the check-mo-freshness workflow, and the PyInstaller spec files. Verify how packaging currently includes locale data before choosing the build hook. Done means .mo files are generated during package builds, excluded from git, bundled correctly by PyInstaller, and the obsolete freshness workflow is removed.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
The tabcmd/locales/*/LC_MESSAGES/tabcmd.mo files are checked into git today, and .po files are gitignored but still regenerated locally when someone runs doit localize. This has two problems:
-
Drift. The committed
.mofiles can - and do - go out of sync with the.propertiessources they are built from. Before #440 landed, a freshdoit localizeagainst the tip ofdevelopmentregenerated all 11 locale.mofiles with ~20 keys different from what was committed (mostly stale entries for old keys and missing entries for new keys added since the last regen). Users hitting the drifted keys would see stale translations or fall back to the raw key. -
Reviewer noise.
.modiffs are binary and unreadable in PRs. Reviewers cannot see whether a.mochange matches its intended.propertieschange.
The check-mo-freshness workflow added in #440 catches drift at PR time by regenerating and diffing. That closes the immediate leak but keeps the underlying pattern of "generated file committed to git."
Better long-term: treat .mo (and if practical .po) like tabcmd/_version.py - generate them during pip install / packaging, .gitignore them, and stop tracking them. pyproject.toml can wire the generation into the build backend so wheels and pyinstaller bundles include them. Contributors then only edit .properties; no regenerate-and-commit dance, no drift possible.
Prior art: most Python i18n projects (Babel, Django, Flask-Babel) treat .mo as build output.
Rough plan
- Add a build step that runs
doit localize(or the equivalentmsgfmtinvocations) atpip install/ wheel build time. - Verify pyinstaller still bundles the generated
.mofiles correctly (via--collect-data tabcmd.localeswhich is already in the spec files). .gitignore**/*.mo;git rm --cachedthe tracked ones.- Remove the
check-mo-freshnessworkflow (it becomes moot once nothing is committed to drift from).
- Ngôn ngữ chính
- Python
- Star
- 52
- Fork
- 17
- Merge trung bình
- 5 ngày 20 giờ
- Pull request đã merge (30 ngày)
- 2
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Không có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của tableau/tabcmd
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
-
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
-
feat: publish missing --description flag from tabcmd ClassicCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 78/100
-
feat: creategroup missing --role flag from tabcmd ClassicCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
Tất cả issue của tableau/tabcmd
Issue tương tự
-
bug
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 68/100
jbacalso24/mimry#291 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
good first issue
Độ khó 2/5 Dưới một giờ Mức phù hợp với người mới 82/100
eli-alvarado/us-watchlist-alerts#14 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
from-review-extraction python severity:nit
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 80/100
LearningCircuit/local-deep-research#7462 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
mermaid_extract.py silently discards single-line state-diagram notes; sequence notes are keptĐang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
cathrynlavery/diagram-design#441 ·
Maintainer thường phản hồi trong vòng 2 ngày
-
[Cleanup] Include the public header in work_split.cppCó thể đã có người làm @blozano-tt đã nhận hôm nay. Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 82/100
tenstorrent/tt-metal#60850 ·
Maintainer thường phản hồi trong vòng 1 ngày