Repository navigation
Conversation
cernbox is now reva's CLI, rebranded at build time: gaia builds it with the CERNBox CLI plugins of reva-plugins and the CERNBox brand (cli/cernbox.toml there), the same way as revad. This repository packages that build instead of its own client. packaging/prepare.sh runs gaia's prepare stage into ws/, with the versions of packaging/versions.env, or with local checkouts of reva and reva-plugins for development. gaia checks the brand against the plugins of the build there, so a bad brand fails before anything is compiled. The brand comes from the module cache at the version of reva-plugins that the build uses, so the two cannot drift apart. goreleaser cross-compiles ws/ for the same platforms as before, with the version flags that gaia writes to ws/bflags. They reach goreleaser through BFLAGS, because goreleaser reads its environment before any hook runs. The archives, the packages and their install paths keep their names. The site configuration becomes /etc/cernbox/config.toml, which the new CLI reads, and holds no values, because the brand has them all. The completions are generated from the built binary with an empty home, because the CLI copies a config.yaml it finds into config.toml. The three versions are master for now: none of gaia, reva and reva-plugins has a release with what this needs yet. Assisted-by: Claude:claude-opus-5-5
One job prepares ws/ on Linux and uploads it. The builds on Linux, macOS and Windows, the integration tests and the release all compile that same workspace, so what is tested is what is released, and gaia's call to api.github.com, which it makes without a token and panics on, happens once per run, with one retry. The smoke test now also checks that the version flags and the brand made it into the binary. The integration tests run against the merged binary, so they fail until the suite is ported to its JSON and its exit codes. Assisted-by: Claude:claude-opus-5-5
The binary that ships is built by gaia from reva, not from this repository. Without CERNBOX_BINARY the suite still builds cmd/cernbox, so that 1.x can be compared until its code is retired. Assisted-by: Claude:claude-opus-5-5
docs/packaging.md says how a release is built now (prepare, version flags, cross-compilation, packages), how to build locally against checkouts of reva and reva-plugins, how to release, what the CERNBox hosts need, and in which order the Go code of 1.x goes: port the integration suite, close the gaps of the merged CLI, release 2.0, then delete cmd/, internal/ and pkg/ in one commit. Assisted-by: Claude:claude-opus-5-5
2.0 is reva's CLI under the old name, and it breaks scripts: the JSON is the CS3 JSON, the exit codes are 0, 1 and 2, some flags and commands moved, the configuration is TOML, and the token cache moved. The notes map each 1.x field, flag, command and variable to its 2.0 form, list the command names that reva and cernbox now share, and list what the build tested does not have yet. The README warns before anything else, builds from source with gaia, and shows the scripting example and exit codes of 2.0. The archives ship the release notes instead of the design of 1.x. Assisted-by: Claude:claude-opus-5-5
Assisted-by: Claude:claude-sonnet-5-5
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.
cernbox 2.0 is reva's CLI, built by gaia with the CERNBox plugins and brand. This repo now packages that build with goreleaser. The 1.x code stays until the integration suite is ported.
Needs cs3org/gaia#6, cs3org/reva#5959 to #5963 and cernbox/reva-plugins#88. Until those are released,
packaging/versions.envhas placeholders and the release job can't pass.What's in it:
packaging/prepare.shprepares the gaia workspace, from released versions or from local checkouts (REVA_DIR,REVA_PLUGINS_DIR)./etc/cernbox/config.tomland the shell completions.prepare,build,install,snapshot,completions.docs/release-notes-2.0.mdlists what changes for users.docs/packaging.mdexplains the pipeline and the plan to retire the 1.x code.Tested: cross builds for linux, macOS and Windows,
cernbox version --plugins, andinstall.shfrom a local archive. The integration suite isn't run yet: it still uses the 1.x flags and needs porting.