Skip to content

Latest commit

 

History

History
85 lines (58 loc) · 2.44 KB

File metadata and controls

85 lines (58 loc) · 2.44 KB

Release Process

MirrorNeuron core releases from Git tags. The tag is the public source of truth for the release version.

Versioning Policy

Use Semantic Versioning tags with a leading v:

  • vMAJOR.MINOR.PATCH for stable releases
  • vMAJOR.MINOR.PATCH-rc.N for release candidates
  • vMAJOR.MINOR.PATCH-beta.N or vMAJOR.MINOR.PATCH-alpha.N for prereleases

Examples:

  • v1.0.1 = patch release
  • v1.1.0 = minor release
  • v2.0.0 = major release
  • v1.1.0-rc.1 = prerelease

CI build numbers are for internal artifacts only. Public releases use clean SemVer tags, not build-number versions such as 1.0.0-build123.

Distribution Policy

MirrorNeuron core is distributed through GitHub Release OTP tarballs only. This repository intentionally does not publish runtime releases to Hex, PyPI, npm, Docker, or a custom source ZIP.

OTP releases are OS and architecture specific. A release built for Linux will not run on macOS, and an x64 release will not run on ARM64.

Each tagged release uploads:

  • MirrorNeuron-vX.Y.Z-darwin-arm64-otp-release.tar.gz
  • MirrorNeuron-vX.Y.Z-linux-x64-otp-release.tar.gz
  • MirrorNeuron-vX.Y.Z-linux-arm64-otp-release.tar.gz
  • SHA256SUMS.txt

Create a Stable Release

Before creating a release, make sure main is clean and tests pass locally.

git checkout main
git pull
mix deps.get
mix format --check-formatted
mix test
MIX_PROJECT_VERSION=1.0.1 MIX_ENV=prod mix release --overwrite
git tag v1.0.1
git push origin v1.0.1

Pushing the tag starts the release workflow. The workflow validates the tag, runs tests, builds platform-specific OTP releases, writes SHA256 checksums, creates a GitHub Release, and uploads only the OTP tarballs plus checksum file.

Create a Prerelease

git checkout main
git pull
git tag v1.0.1-rc.1
git push origin v1.0.1-rc.1

Prerelease tags create GitHub prereleases with the same OTP tarball assets.

Install from a Release

Download the tarball that matches the target machine:

  • Apple Silicon macOS: darwin-arm64
  • Linux x64: linux-x64
  • Linux ARM64: linux-arm64

Verify the checksum:

shasum -a 256 -c SHA256SUMS.txt

Extract and start the runtime:

tar -xzf MirrorNeuron-v1.0.1-linux-x64-otp-release.tar.gz
cd mirror_neuron
bin/mirror_neuron start

The Elixir project version is derived from the Git tag at release time through MIX_PROJECT_VERSION. Stable tags such as v1.0.1 build project metadata as 1.0.1, without the leading v.