Publish the sil-lift container image to GHCR
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 68/100
- Issue type
- Feature
- Clarity
- Mostly clear
- Activity status
- Quiet
- Tech stack
- docker, github-actions, python
- Domain
- cloud, devops, documentation
Research direction
Start with Dockerfile, action.yml, .github/workflows/container.yml, and docs/en/guides/lift-export-interop.md. Review the existing build and smoke-test job, then add release publishing to GHCR without pushing from pull requests or forks. Done means versioned release tags and latest are published, the pull-based Docker example is documented, and PR checks still build and smoke-test the image.
Written by the indexing model from the issue text.
Description
Background
The repo ships a Dockerfile, a Docker-based GitHub Action (action.yml), and a build-only CI check (.github/workflows/container.yml) so non-Python CI can run sil-lift validate — but no image is published. Consumers must build it themselves, the Action rebuilds the Dockerfile on every run, and there's no docker run ghcr.io/… path.
Proposal
Publish a versioned image to GitHub Container Registry (ghcr.io/sillsdev/python-sil-lift):
- Add a publish job (extend
container.yml, or a newrelease-triggered workflow) that builds and pushes to GHCR usingGITHUB_TOKENwithpermissions: packages: write. - Tags:
vX.Y.Zplus a movinglateston each GitHub Release; optionally anedge/shatag on pushes tomainfor interim testing. - Keep the existing build + smoke-test check on PRs; don't push from PRs/forks.
Docs
- Update the Producing conformant LIFT guide (
docs/en/guides/lift-export-interop.md) to show the pull path —docker run --rm -v "$PWD:/work" -w /work ghcr.io/sillsdev/python-sil-lift validate export.lift --strict— alongside the current build-from-Dockerfile example.
Optional follow-ons
- Point the Action at the published image (
runs.image: docker://ghcr.io/sillsdev/python-sil-lift:<tag>) instead ofDockerfile, souses: sillsdev/python-sil-lift@vXdoesn't rebuild each run (do this together with the release tagging so the tags line up). - Multi-arch build (linux/amd64 + arm64) via buildx/QEMU, if arm runners matter.
Non-goals
- No change to CLI/validate behavior or image contents.
- PyPI publishing (separate; handled by the release workflow).
Notes
- Versioned image tags only become meaningful once the first release is tagged; an
edgetag onmaincan cover the interim.
- Dominant language
- Python
- Stars
- 1
- Forks
- 0
- Avg merge
- 9d 14h
- Merged PRs (30d)
- 2
Getting set up
- Ships a Dockerfile or Docker Compose file
- No pull request template
- Read the contributing guide
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from sillsdev/python-sil-lift
-
enhancement
Difficulty 2/5 1-3 hours Newbie friendliness 84/100
sillsdev/python-sil-lift#15 ·
-
bug
Difficulty 5/5 Over a week Newbie friendliness 35/100
sillsdev/python-sil-lift#45 ·
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 72/100
sillsdev/python-sil-lift#35 ·
-
Media hrefs resolve case-sensitively: Windows-authored folders get false missing-media on LinuxPossibly taken @imnasnainaec claimed this 10 days ago. Openbug
Difficulty 5/5 Over a week Newbie friendliness 38/100
sillsdev/python-sil-lift#34 · 1 comment · 1 assignee ·
-
bug
Difficulty 3/5 1-2 days Newbie friendliness 72/100
sillsdev/python-sil-lift#33 ·
All issues in sillsdev/python-sil-lift
Similar issues
-
New InternshipOpennew_internship
Difficulty 1/5 Under an hour Newbie friendliness 70/100
-
[BUG] Reports tab: "Unban" button tooltip shows raw `{{ip}}` placeholder instead of the IP addressOpenbug javascript ui
Difficulty 2/5 1-3 hours Newbie friendliness 68/100
bunkerity/bunkerweb#4001 · 1 comment ·
Maintainers usually reply within 1 day
-
bug
Difficulty 1/5 Under an hour Newbie friendliness 92/100
PedestrianDynamics/pyFDS-Evac#476 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
google/differential-privacy#516 ·
-
Difficulty 2/5 1-3 hours Newbie friendliness 82/100
adobe-fonts/source-serif#153 ·