Rename to Preppy; migrate CI to GitHub Actions + GHCR Docker builds - #1
Merged
Conversation
Transition from GitLab (origin) to GitHub (github). Rename: - Package/project dri-voyager-preppy -> preppy (setup.cfg name + URL). - Console scripts voyager-* -> preppy / preppy-obj2glb / preppy-merge-items / preppy-check-tools. Updated all live references (README, CLAUDE.md, schema $id/description, docstrings, tests, Node helper package name). - singularity/dri-voyager-preppy.def -> singularity/preppy.def with updated in-file install paths. CI: - Add .github/workflows/ci.yml (pytest across py3.11-3.13 + `preppy -h` smoke test, plus a workflow_dispatch-gated, non-blocking integration job). - Remove .gitlab-ci.yml. Docker: - Add Dockerfile derived from the singularity def (ImageMagick, KTX-Software, gltfpack, Node, editable install with the preview extra). Arch-aware KTX .deb via TARGETARCH for multi-arch; pinned to stable v4.4.2 (no final v5.0.0 tag exists yet). Add .dockerignore. - Add .github/workflows/build_docker.yml: multi-arch (amd64/arm64) buildx build pushed to ghcr.io/educelab/preppy (edge on develop; semver + latest on tags). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Two _render_thumbnail tests (texture-crop fallback + texture mode) and the two render_preview tests shell out to `magick` to build/crop fixtures, but lacked the availability guard their sibling had. On a bare runner (GitHub Actions unit matrix installs neither ImageMagick nor the preview extra) they failed with FileNotFoundError instead of skipping, breaking the documented "bare run covers pure logic, tool tests skip cleanly" contract. The full texture path is still exercised by the manual `integration` job, which installs ImageMagick. Add a shared `_magick_available()` helper + `requires_magick` skip marker and apply it to the four magick-dependent tests (folding in the one inline probe). Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
The tool-availability skips exist so a bare local-dev machine can still run the pure-logic suite, but CI should actually exercise those paths to catch regressions (as the missing magick guard showed). Install ImageMagick, the `preview` extra (trimesh/pyrender), and OSMesa (PYOPENGL_PLATFORM=osmesa) in the py matrix job so the texture-normalization and rendered-thumbnail tests run rather than skip. The heavier geometry toolchain (ktx/gltfpack/node) and pymeshlab stay in the manual `integration` job. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
Release covering the GitHub migration: rename to Preppy, GitHub Actions CI, and the multi-arch GHCR Docker build. Keep the Node embed helper (preppy-node) version synced with the Python package. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Transition from GitLab (
origin) to GitHub (github).Rename → Preppy
dri-voyager-preppy→preppy(setup.cfgname + URL → GitHub).voyager-preppy→preppy,voyager-obj2glb→preppy-obj2glb,voyager-merge-items→preppy-merge-items,voyager-check-tools→preppy-check-tools. All live references updated (README, CLAUDE.md, schema$id/description, Python docstrings, tests, Node helperpackage.json).singularity/dri-voyager-preppy.def→singularity/preppy.defwith updated in-file install paths (local working dir left as-is).CI → GitHub Actions
.github/workflows/ci.yml: pytest across Python 3.11–3.13 +preppy -hsmoke test, plus aworkflow_dispatch-gated, non-blockingintegrationjob (the GitLabmanual/allow_failureequivalent)..gitlab-ci.yml.Docker → GHCR
Dockerfilederived from the singularity def (ImageMagick, KTX-Software, gltfpack, Node 24, editable install with thepreviewextra). Arch-aware KTX.debviaTARGETARCHfor multi-arch. Added.dockerignore..github/workflows/build_docker.yml: multi-arch (linux/amd64,linux/arm64) buildx build pushed toghcr.io/educelab/preppy(edgeondevelop; semver +latestonv*tags), with registry buildcache.Notes
KTX_VERSION=5.0.0, but no finalv5.0.0tag exists yet (onlyv5.0.0-rc1), so that URL 404s. The pipeline usesktx create(present since v4.1), so the Dockerfile pins stablev4.4.2viaARG KTX_VERSION, bumpable when v5 ships. The def's pin was left untouched (out of scope for this PR).docs/adr/*,docs/implementation-plan.md,conductor/) intentionally retain the old name as point-in-time records.Verification
🤖 Generated with Claude Code