Skip to content

release: version infrastructure + GitHub Release workflow (v1.0.0)#394

Merged
JustVugg merged 1 commit into
JustVugg:mainfrom
ZacharyZcR:feat/release-workflow
Jul 19, 2026
Merged

release: version infrastructure + GitHub Release workflow (v1.0.0)#394
JustVugg merged 1 commit into
JustVugg:mainfrom
ZacharyZcR:feat/release-workflow

Conversation

@ZacharyZcR

Copy link
Copy Markdown
Contributor

Summary

Adds the missing release infrastructure so the project can start shipping tagged versions with pre-built binaries.

New files

file purpose
c/version.py Single source of truth: __version__ = "1.0.0"
.github/workflows/release.yml Tag push → cross-platform build → GitHub Release
CHANGELOG.md v1.0.0 baseline documenting all shipped features

Changes

  • c/coli: banner reads version.py dynamically, adds --version flag

Release workflow

On git tag v1.0.0 && git push --tags:

  1. Builds the engine on Linux (x86_64-v3), macOS (ARM64), Windows (MinGW-w64)
  2. Packages each as a tarball/zip with the CLI, server, and planner
  3. Creates a GitHub Release with the CHANGELOG section as release notes

How to cut a release

# 1. bump version
echo '__version__ = "1.1.0"' > c/version.py
# 2. add CHANGELOG section
# 3. tag and push
git tag v1.1.0 && git push --tags

Test plan

  • python3 c/coli --versioncolibrì 1.0.0
  • Banner shows dynamic version
  • 68 Python tests pass
  • Release workflow (validated by structure; will fire on first tag push)

🐦 Generated with Claude Code

- c/version.py: single source of truth (__version__ = "1.0.0")
- coli: reads version.py, banner shows dynamic version, --version flag
- .github/workflows/release.yml: tag push triggers cross-platform build
  (Linux x86_64, macOS ARM64, Windows x86_64) and creates a GitHub
  Release with packaged binaries + changelog notes
- CHANGELOG.md: v1.0.0 baseline documenting all shipped features

To cut a release:
  1. bump c/version.py
  2. add a CHANGELOG section
  3. git tag v1.0.0 && git push --tags
@ZacharyZcR

ZacharyZcR commented Jul 18, 2026

Copy link
Copy Markdown
Contributor Author

@JustVugg — once this lands, the release flow is:

git tag v1.0.0
git push --tags

The workflow builds Linux/macOS/Windows binaries and creates the GitHub Release automatically (with the CHANGELOG section as release notes). The project has 16k+ stars and no tagged version yet — users can't pin to a known-good state, and bug reports reference "latest dev" which is untraceable. A v1.0.0 tag would be the baseline for semantic versioning going forward.

Happy to adjust the version number or CHANGELOG wording if you prefer a different framing.

@JustVugg JustVugg mentioned this pull request Jul 18, 2026
@JustVugg
JustVugg merged commit 6690c4f into JustVugg:main Jul 19, 2026
4 checks passed
ZacharyZcR pushed a commit to ZacharyZcR/colibri that referenced this pull request Jul 19, 2026
…(on top of JustVugg#396)

colibri/_version.py now reads c/version.py (JustVugg#394's single source of truth --
coli --version, the release workflow, and pip metadata can no longer drift),
with an importlib.metadata fallback for the installed-wheel case where c/ is
not on disk. README documents that pip install -e . is the supported form:
the engine lives in c/ and is not packaged into a standalone wheel.

Verified in a clean venv: pip install -e . -> colibri.__version__ == 1.0.0
read from c/version.py, coli entrypoint on PATH and functional.

Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
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.

2 participants