Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
@@ -1,3 +1,9 @@
---
name: release
description: Release
user_invocable: true
---

# Release

Prepare a release PR for initium. This command handles version bumping, changelog updates, and PR creation. The release is published automatically when the PR merges (CI detects the version bump and creates the tag, which triggers the release workflow).
Expand Down
8 changes: 8 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,11 +7,19 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

### Changed
- Docker dependency cache now survives version-only bumps by normalizing the root package version in a preparatory build stage.

## [1.3.0] - 2026-03-12

### Added
- Auto-tag workflow: CI automatically creates a git tag when `Cargo.toml` version changes on main, triggering the release workflow.
- `/release` skill for Claude Code: guided release preparation with version determination, confirmation, and PR creation.
- `ignore_columns` option for reconcile mode tables: columns listed in `ignore_columns` are included in the initial INSERT but excluded from change detection, UPDATE statements, and content hash computation. Useful for timestamps, tokens, or values managed by database triggers.

### Changed
- Moved `/release` from Claude Code command to skill (directory-based `SKILL.md` format).

### Fixed
- Replaced Dockerfile `--mount=type=cache` with dependency layer caching ("empty main" trick) for reliable Docker build caching in GitHub Actions, where `--mount=type=cache` does not persist across runners.

Expand Down
2 changes: 1 addition & 1 deletion Cargo.lock

Some generated files are not rendered by default. Learn more about how customized files appear on GitHub.

2 changes: 1 addition & 1 deletion Cargo.toml
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
[package]
name = "initium"
version = "1.2.0"
version = "1.3.0"
edition = "2021"
rust-version = "1.88"
authors = ["Kitstream <opensource@kitstream.io>"]
Expand Down
11 changes: 10 additions & 1 deletion Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
# Normalize root package version so the dependency cache survives version-only bumps.
# BuildKit uses content-based caching for COPY --from; the sed output is identical
# when only the version changed, so the expensive cargo build layer stays cached.
FROM rust:1.88-alpine AS deps
WORKDIR /src
COPY Cargo.toml Cargo.lock ./
RUN sed -i '/^name = "initium"/{n;s/^version = ".*"/version = "0.0.0"/;}' Cargo.toml && \
sed -i '/^name = "initium"/{n;s/^version = ".*"/version = "0.0.0"/;}' Cargo.lock

FROM rust:1.88-alpine AS builder
ARG VERSION=dev
RUN apk add --no-cache musl-dev openssl-dev openssl-libs-static perl
WORKDIR /src
COPY Cargo.toml Cargo.lock ./
COPY --from=deps /src/Cargo.toml /src/Cargo.lock ./
RUN mkdir src && echo 'fn main() {}' > src/main.rs && \
cargo build --release && \
rm -rf src target/release/deps/initium* target/release/initium*
Expand Down
11 changes: 10 additions & 1 deletion jyq.Dockerfile
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
# Normalize root package version so the dependency cache survives version-only bumps.
# BuildKit uses content-based caching for COPY --from; the sed output is identical
# when only the version changed, so the expensive cargo build layer stays cached.
FROM rust:1.88-alpine AS deps
WORKDIR /src
COPY Cargo.toml Cargo.lock ./
RUN sed -i '/^name = "initium"/{n;s/^version = ".*"/version = "0.0.0"/;}' Cargo.toml && \
sed -i '/^name = "initium"/{n;s/^version = ".*"/version = "0.0.0"/;}' Cargo.lock

FROM rust:1.88-alpine AS builder
ARG VERSION=dev
RUN apk add --no-cache musl-dev openssl-dev openssl-libs-static perl
WORKDIR /src
COPY Cargo.toml Cargo.lock ./
COPY --from=deps /src/Cargo.toml /src/Cargo.lock ./
RUN mkdir src && echo 'fn main() {}' > src/main.rs && \
cargo build --release && \
rm -rf src target/release/deps/initium* target/release/initium*
Expand Down
Loading