Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
a1fa760
chore(vendor): bump tinybus submodule
senamakel Oct 17, 2026
9863793
test(bus): add storage needs integration tests
senamakel Oct 17, 2026
5e4aec6
feat(tinybox-bus): add storage collection constants
senamakel Oct 17, 2026
ab192ea
feat(drivers): derive collection specs from bus storage needs
senamakel Oct 17, 2026
448cd06
chore: use TinyBus 0.1.7 module contract
senamakel Oct 17, 2026
acb78d5
ci: check pure consumer builds without tinybus dependency
senamakel Oct 17, 2026
3288f34
chore: ignore pure consumer build output
senamakel Oct 17, 2026
b78dbcb
chore: restore TinyBus base gitlink
senamakel Oct 17, 2026
5a1a36d
chore(deps): update tinybus to 0.1.7 and tinystoragedrivers-bus to 1.3.0
senamakel Oct 17, 2026
034a5e0
feat: declare TinyBox module storage needs
senamakel Oct 17, 2026
8d9bdec
test: verify pure TinyBox bus consumer graph
senamakel Oct 17, 2026
7577533
chore: restore base lock before resolving storage pin
senamakel Oct 17, 2026
0efcccd
test: enforce pure TinyBox bus dependency graph
senamakel Oct 17, 2026
4f54bab
fix: repair pure storage contract CI checks
senamakel Oct 17, 2026
eda54ef
chore: use caret range for storage bus pin
senamakel Oct 17, 2026
99a3f9e
feat(release): add reviewed-epic release mode to release workflow
senamakel Oct 17, 2026
67970b4
test(release): cover cwd independence and pinned reviewed workflow
senamakel Oct 17, 2026
bf47bcc
fix(ci): default reviewed-pr to zero on the ordinary release route
senamakel Oct 17, 2026
9831b76
chore(vendor): bump tinybus submodule
senamakel Oct 17, 2026
9c0750c
chore(deps): bump workspace version and dependency pins
senamakel Oct 17, 2026
23a709f
docs(specs): name the exact repository profile and epic base
senamakel Oct 17, 2026
e2f3e28
chore(scripts): add pure bus consumer test script
senamakel Oct 17, 2026
e1148e6
chore(scripts): add pure bus consumer check
senamakel Oct 17, 2026
f990e6e
test(bus): verify pure consumer against canonical storage needs
senamakel Oct 17, 2026
b8c21c9
chore(scripts): move pure bus consumer checks into a python helper
senamakel Oct 17, 2026
77f5ab5
test: match lockfile validation error on resolution evidence
senamakel Oct 17, 2026
37d8d0e
test: build duplicate lockfile package block explicitly
senamakel Oct 17, 2026
23e3a22
refactor(check_pure_bus_consumer): parse manifests without tomllib
senamakel Oct 17, 2026
aaf9c1e
fix(scripts): track pure consumer version in dependency graph check
senamakel Oct 17, 2026
12922be
test: add client feature to pure bus consumer manifest
senamakel Oct 17, 2026
30e9437
chore: remove committed python bytecode cache files
senamakel Oct 17, 2026
604adb2
test(scripts): run pure bus consumer test before all-features suite
senamakel Oct 17, 2026
276768d
chore(deps): bump tinybus to 0.1.7 and tinystoragedrivers to 1.5.0
senamakel Oct 17, 2026
347c2f0
chore(deps): bump tinybox-bus to 0.1.37 and tinystoragedrivers-bus to…
senamakel Oct 17, 2026
f40b16d
test(scripts): reorder expected cargo calls in feature environment test
senamakel Oct 17, 2026
20f9a0e
chore: add compiled bytecode for pure bus consumer check
senamakel Oct 17, 2026
1d4ead5
chore: remove stale compiled bytecode cache
senamakel Oct 17, 2026
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
10 changes: 10 additions & 0 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,16 @@ concurrency:
group: ${{ github.workflow }}-${{ github.ref }}
cancel-in-progress: true
jobs:
release-workflow-test:
runs-on: ubuntu-latest
permissions:
contents: read
steps:
- uses: actions/checkout@11d5960a326750d5838078e36cf38b85af677262 # v4.4.0
with:
persist-credentials: false
- name: Test release routing and input guards
run: python3 scripts/test-release-workflow.py
module-ci:
uses: tinyhumansai/.github/.github/workflows/module-ci.yml@4adc1080fb495098e7af1aade82ed7e6e3c69bb7
with:
Expand Down
49 changes: 49 additions & 0 deletions .github/workflows/release.yml
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,16 @@ on:
description: Existing version tag (vX.Y.Z) committed through a reviewed PR
type: string
required: true
release_mode:
description: Use the ordinary main path or reviewed-epic release admission
type: choice
options: [main, reviewed-epic]
default: main
required: true
reviewed_pr:
description: Positive canonical PR number whose merge commit the tag names (reviewed-epic mode only)
type: number
required: false
push:
tags: ['v*']
permissions: {}
Expand All @@ -18,11 +28,15 @@ jobs:
outputs:
tag: ${{ steps.tag.outputs.tag }}
version: ${{ steps.tag.outputs.version }}
release_mode: ${{ steps.tag.outputs.release_mode }}
reviewed_pr: ${{ steps.tag.outputs.reviewed_pr }}
steps:
- id: tag
shell: bash
env:
TAG: ${{ github.event_name == 'push' && github.ref_name || inputs.tag }}
RELEASE_MODE: ${{ github.event_name == 'push' && 'main' || inputs.release_mode }}
REVIEWED_PR: ${{ inputs.reviewed_pr }}
run: |
set -euo pipefail
[[ "$TAG" =~ ^v[0-9]+\.[0-9]+\.[0-9]+([+-][0-9A-Za-z.-]+)?$ ]] || {
Expand All @@ -31,8 +45,30 @@ jobs:
}
echo "tag=$TAG" >> "$GITHUB_OUTPUT"
echo "version=${TAG#v}" >> "$GITHUB_OUTPUT"
[[ "$RELEASE_MODE" == main || "$RELEASE_MODE" == reviewed-epic ]] || {
echo "release_mode must be main or reviewed-epic" >&2
exit 2
}
if [[ "$RELEASE_MODE" == reviewed-epic ]]; then
[[ "$REVIEWED_PR" =~ ^[1-9][0-9]*$ ]] || {
echo "reviewed_pr must be a positive integer in reviewed-epic mode" >&2
exit 2
}
else
[[ -z "$REVIEWED_PR" || "$REVIEWED_PR" == 0 ]] || {
echo "reviewed_pr is only valid in reviewed-epic mode" >&2
exit 2
}
REVIEWED_PR=""
fi
{
echo "release_mode=$RELEASE_MODE"
# The reusable workflow input is numeric; zero is the ordinary-path sentinel.
echo "reviewed_pr=${REVIEWED_PR:-0}"
} >> "$GITHUB_OUTPUT"
module-release:
needs: resolve
if: needs.resolve.outputs.release_mode == 'main'
permissions:
contents: write
uses: tinyhumansai/.github/.github/workflows/module-release.yml@4adc1080fb495098e7af1aade82ed7e6e3c69bb7
Expand All @@ -41,3 +77,16 @@ jobs:
version: ${{ needs.resolve.outputs.version }}
module-crate: tinybox-module
asset-name: tinybox
module-reviewed-epic-release:
needs: resolve
if: needs.resolve.outputs.release_mode == 'reviewed-epic'
permissions:
contents: write
pull-requests: read
checks: read
actions: read
uses: tinyhumansai/.github/.github/workflows/module-reviewed-epic-release.yml@837d0424c7f38e4293f41c795f12ed5eb5dd7280
with:
tag: ${{ needs.resolve.outputs.tag }}
version: ${{ needs.resolve.outputs.version }}
reviewed-pr: ${{ fromJSON(needs.resolve.outputs.reviewed_pr || '0') }}
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
# Build output
/target/
/crates/tinybox-bus/pure-consumer/target/
**/*.rs.bk
*.pdb

Expand Down
2 changes: 2 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -104,3 +104,5 @@ Do not report vulnerabilities through public issues. Follow the process in
## Releasing

Change the Cargo package versions through a reviewed PR. After it merges, tag that commit as vX.Y.Z and push the tag, or dispatch Release with an existing version tag. The shared release verifies the package version, builds and loads all 17 native and distro artifacts, and publishes their checksum manifest. Release does not push version bumps to main.

The TinyBox bus also has an independent pure-consumer workspace and committed lockfile at `crates/tinybox-bus/pure-consumer/`. When changing the workspace package version or the storage metadata pin, refresh that lock with `cargo generate-lockfile --manifest-path crates/tinybox-bus/pure-consumer/Cargo.toml` and commit it with the change. CI runs the consumer with `--locked` and checks its full dependency and feature graph, so a stale proof lock blocks the reviewed release commit.
Loading
Loading