Conda-Forge Release Process
Nebi publishes two packages to conda-forge:
nebi— the CLI (pure Go,go-nocgo)nebi-desktop— the Wails desktop app (go-cgo+ GTK3 + WebKit2GTK on Linux)
How releases work
Section titled “How releases work”Releases to conda-forge are fully automated after initial setup:
- Tag a new release (e.g.,
git tag v0.8) and push it - GoReleaser creates a GitHub release with source tarball
- The conda-forge bot (
regro-cf-autotick-bot) detects the new release - Bot opens a PR to each feedstock (
nebi-feedstock,nebi-desktop-feedstock) with the updated version and SHA256 - CI builds and tests the package on Linux, macOS, and Windows
- With
bot: automerge: 'version'enabled, the PR auto-merges when CI passes - Package is available on conda-forge within a few hours
No manual intervention is needed for version bumps.
Feedstock repos
Section titled “Feedstock repos”Once the staged-recipes PR is merged, conda-forge creates:
Maintainers listed in the recipe get commit access to these repos.
Recipe structure
Section titled “Recipe structure”Recipes are maintained in the feedstock repos (linked above). They use the v1 format (recipe.yaml) with rattler-build.
nebi (CLI)
Section titled “nebi (CLI)”- Compiler:
go-nocgo(pure Go, no CGO) - Build: installs npm deps → builds React frontend → embeds in Go binary via
//go:embed→go build ./cmd/nebi - License:
go-licensescollects all transitive Go dependency licenses - Platforms: linux-64, linux-aarch64, osx-64, osx-arm64, win-64
nebi-desktop (Desktop App)
Section titled “nebi-desktop (Desktop App)”- Compiler:
go-cgo+ C/C++ compilers - Host deps (Linux):
gtk3,webkit2gtk4.1,glib,libsoup, plus transitive deps (gdk-pixbuf,zlib,expat,fontconfig) needed for pkg-config resolution at compile time - Build: installs npm deps → builds frontend →
wails buildwith-tags webkit2_41on Linux - Platforms: linux-64, osx-64, osx-arm64, win-64
Testing recipes locally
Section titled “Testing recipes locally”Clone a feedstock and build locally with rattler-build:
pixi global install rattler-buildgh repo clone conda-forge/nebi-feedstockrattler-build build --recipe nebi-feedstock/recipe/recipe.yamlThe desktop recipe needs a conda_build_config.yaml for local builds (not needed on conda-forge CI):
# conda_build_config.yaml (local builds only)c_stdlib: - sysrootc_stdlib_version: - "2.17"Install a locally-built package:
pixi global install --channel ./output --channel conda-forge nebiUpdating recipes
Section titled “Updating recipes”For most changes (dependency updates, build fixes), edit the recipe in the feedstock repo directly and open a PR. The feedstock CI will test the changes.
For version bumps, just tag a new release — the bot handles it automatically.