diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml new file mode 100644 index 0000000..a70fa52 --- /dev/null +++ b/.github/workflows/release.yml @@ -0,0 +1,48 @@ +name: Release + +on: + workflow_dispatch: + inputs: + version: + description: 'Version to release (e.g., 1.0.0-beta.2)' + required: true + push: + tags: + - 'v*' + +permissions: + contents: write + +jobs: + release: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - name: Read version from file + id: version + run: echo "version=$(cat VERSION)" >> $GITHUB_OUTPUT + + - name: Validate version + run: | + FILE_VERSION="$(cat VERSION)" + if [ "${{ github.event_name }}" = "workflow_dispatch" ]; then + RELEASE_VERSION="${{ github.event.inputs.version }}" + else + RELEASE_VERSION="${GITHUB_REF_NAME#v}" + fi + if [ "$RELEASE_VERSION" != "$FILE_VERSION" ]; then + echo "::error::Version mismatch: Input/Tag ($RELEASE_VERSION) != VERSION file ($FILE_VERSION)" + exit 1 + fi + echo "Version validated: $FILE_VERSION" + + - name: Create Release + uses: whilesmart/workflows/go/release@main + with: + token: ${{ secrets.GITHUB_TOKEN }} + binary_name: sourceant + build_path: ./cmd/sourceant + version: ${{ github.event.inputs.version || steps.version.outputs.version }} + platforms: '["linux/amd64", "linux/arm64", "darwin/amd64", "darwin/arm64"]' + ldflags: "-X github.com/sourceant/cli/internal/command.Version=${{ github.event.inputs.version || steps.version.outputs.version }} -X github.com/sourceant/cli/internal/command.BuildTime=$(date -u +%Y-%m-%d_%H:%M:%S) -X github.com/sourceant/cli/internal/command.GitCommit=${{ github.sha }}" diff --git a/CHANGELOG.md b/CHANGELOG.md new file mode 100644 index 0000000..e25317e --- /dev/null +++ b/CHANGELOG.md @@ -0,0 +1,27 @@ +# Changelog + +All notable changes to this project are documented in this file. + +The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.1.0/), +and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). + +## [Unreleased] + +## [1.0.0-beta.2] - 2026-08-30 + +First release, versioned alongside the core it reads. + +### Added + +- `sourceant install` puts a core on this machine and writes down which one, so + the agent knows what to start. As a container today, or as a Python package + once the core is published as one +- `sourceant status` says whether the agent and the indexer are running +- `sourceant repos` lists what is indexed here, and `sourceant graph` says what + the indexer found in one of them +- `sourceant ui` opens the graph in a browser, and says the agent is not running + rather than opening a browser on an error page +- `--json` on any command prints the agent's own answer, for anything that reads + rather than looks +- `SOURCEANT_AGENT_URL` names the agent to talk to, and `--agent` overrides it + for one command diff --git a/VERSION b/VERSION index 6e8bf73..7e0b231 100644 --- a/VERSION +++ b/VERSION @@ -1 +1 @@ -0.1.0 +1.0.0-beta.2