Skip to content

build: pixi.lock, conda environment.yml, Dockerfile, GHCR release workflow - #12

Merged
hyphaltip merged 3 commits into
mainfrom
release-builds
Oct 4, 2026
Merged

hyphaltip merged 3 commits into
mainfrom
release-builds

Conversation

@hyphaltip

Copy link
Copy Markdown
Member

Summary

Stacked on #11; merge #11 first. After that merge, this PR shows only the build commit.

  • pixi.lock committed. It was git-ignored. Builds now use exact locked versions.
  • environment.yml for conda/mamba users, exported from pixi.toml with pixi workspace export conda-environment.
  • Dockerfile:
    • the build stage (ghcr.io/prefix-dev/pixi:0.71.3-noble) runs pixi install --locked
    • the runtime stage (Ubuntu 24.04) carries the environment, src/ and db/
    • ENTRYPOINT matpredict; MATPREDICT_DB_ROOT=/app/db; the cache goes in /data
  • .github/workflows/docker.yml:
    • Pull requests that touch the image inputs build the image and run a smoke test: all tools are on PATH, pyhmmer and MATPredict import, --version works, and detect --help works.
    • A v* tag, a published release or a manual run also pushes ghcr.io/stajichlab/matpredict with the tags :<version>, :<major>.<minor>, :latest and :sha-<short>.
  • README: Docker, Apptainer and conda install sections.

Test plan

  • pixi install --locked -e default from the committed lock: all tools present, matpredict --version gives 0.6.0
  • pytest: 999 passed
  • The CI build and smoke test on this PR (the first real Docker build; this cluster has no Docker)
  • After merge, push a v0.6.1 tag, or run the workflow by hand, to publish the first image

🤖 Generated with Claude Code

hyphaltip and others added 3 commits October 3, 2026 13:23
…default

- README: goals, workflow diagrams, supported lineages, curation process with
  links, layout, quickstart (verified on GCF_001638985.1), usage, validation
  and limits, authors, citation.
- NCBI identity: $MATPREDICT_NCBI_EMAIL / $MATPREDICT_NCBI_API_KEY, else the
  [ncbi] table of ~/.config/matpredict/config.toml ($MATPREDICT_CONFIG,
  $XDG_CONFIG_HOME). No default address; one warning when unset. Requests
  send tool=MATPredict.
- HTTP cache key leaves out email/api_key/tool; pre-change entries (full URL
  with the old default e-mail) are found and copied forward, so the existing
  cache stays valid (checked on 7 of 8 sampled taxids).
- pyproject version 0.6.0; CHANGELOG entries for 0.6.0 and Unreleased.

998 tests pass (11 new).

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
… start-up

The CLI builds a config to list the --phylum choices, so the warning printed
for --help and --version. NcbiClient now warns once, when it builds a URL
without an e-mail.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…elease workflow

- pixi.lock tracked (was git-ignored) so images and environments are
  reproducible.
- environment.yml exported from pixi.toml for conda/mamba users.
- Dockerfile: pixi 0.71.3 build stage installs the locked environment;
  Ubuntu 24.04 runtime carries the env, src/ and db/; ENTRYPOINT matpredict.
- .github/workflows/docker.yml: PRs build + smoke-test (tools on PATH, pyhmmer
  and MATPredict import, --version, detect --help); v* tags, published
  releases and workflow_dispatch also push ghcr.io/stajichlab/matpredict
  (:version, :major.minor, :latest, :sha).
- README: Docker, Apptainer and conda install sections.

Locked install checked locally: all tools present, matpredict --version 0.6.0.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
@hyphaltip
hyphaltip merged commit 5439bcf into main Oct 4, 2026
1 check passed
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.

1 participant