Repository navigation
Release router, TEI, models, whisper and chart as relctl components - #24
Merged
Merged
Conversation
The reusable workflow posts relctl's help comment and requests pull-requests: write. A reusable workflow cannot exceed the caller's permissions, so the run failed at startup.
Possible relctl commands for this Pull RequestVersion scheme: calver. The version of the release is the date of the release ( Need more help? Have a look at my repo This message was created by relctl and can be disabled by the env variable |
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.
What changes
Every independently releasable part becomes a relctl 2.11.0 component (
.relctl.yaml) with its own tag (<component>/YYYYMM.D.N), latest release and CalVer counter. A merge tomainnow releases and builds only the components whose paths changed (relctl release changed).routerinference-router<version>teitei-base,tei-runtime(share one version)<version>embedding-modeltei-model-initbge-m3-<version>,latestreranker-modeltei-reranker-model-init(matrix kept, one version for the component)<slug>-<version>;latestonly for the default modelwhisperwhisper<whisper-model>-<version>,latestchart<version>release.ymlnow contains all jobs (release-models.ymlis removed). Achangesjob computes the changed components; per component a release job (draft via newcomponent-release.yml) is followed by build, push, cosign signing and publish. Build jobs are guarded withrelease-id != ''(relctl exports the id only for a draft).release-models.ymlis folded in: the manual run now takescomponents(comma list orall) to force a release without changes.create-release.ymlhas nocomponentinput, socomponent-release.ymlcalls relctl directly throughlayer87-labs/relctl-action@v1withrelctl-version: 2.11.0.date +%Y.%mmodel tags are gone. Cosign signing and the Helm push are unchanged.VERSIONdefault strips the<component>/prefix, the brokenversionstarget (space indentation) is fixed. AGENTS.md and README describe the new scheme (relctl CalVer isYYYYMM.D.N, no leading zero on the day).Decisions
.Chart.AppVersioncannot be the default tag for all of them. When packaging, the workflow writes the latest released router and tei versions into a copy ofvalues.yaml(yq) and setsappVersionto the router version.values.yamlin git keepstag: ""; only comments changed there.values.yamlare not changed (bge-m3-2026.06,mmarco-...-2026.10,large-v3-turbo-2026.10): those images still exist, existing consumers are unaffected. Bump them by hand to the new<slug>-<version>tags when wanted.latestbehaviour is unchanged.MODEL_DATEbuild args in the model Containerfiles now receive the component version.How to verify
Locally done:
actionlint,yamllint,go build ./...,make test,make -n docker versionswith a sampleVERSION. The pipeline itself could not be run.After merge: check the Release run, then
gh release listand the GHCR tags.Risks / what the maintainer must check after merge
<component>/...tag exists yet, so relctl reports all six as changed and the first run releases and builds everything (router and tei first, then the chart). Old plain tags (202610.20.1) are not seen by components.relctl release changedstep outputs (RELCTL_CHANGED,RELCTL_LATEST_VERSION) are visible in the plainrun:steps, and that the chart job finds the just-published router/tei tags.yq(mikefarah v4, preinstalled onubuntu-latest) andhelm.<slug>-202611.3.1instead of<slug>-2026.10; anything that selects model images by the old format must be updated.components.concurrencygroup serialises releases so CalVer counters cannot collide.