Skip to content

Commit 6289e35

Browse files
author
Denis Yermakou
committed
v0.2.0: KERNEL_ABI_VERSION + CapabilitySet API parity with SDK v0.3.4
Added: - KERNEL_ABI_VERSION = 1 const in axonos-kernel-core (RFC-0006 binding) - KERNEL_IMPL_VERSION str const (= CARGO_PKG_VERSION) - CapabilitySet::all() method form (mirrors SDK v0.3.4) - CapabilitySet::is_disjoint() method (2-cycle WCET) - 8 unit tests for new CapabilitySet methods - 5 ABI conformance tests in axonos-kernel-core - .github/workflows/release.yml (auto-release on tag push) - CHANGELOG.md with full history v0.1.0 -> v0.2.0 - README: ABI compatibility matrix section No breaking changes. CapabilitySet::ALL and Capability::ALL constants retained. Wire format byte-identical to v0.1.x. Tandem with axonos-sdk v0.3.4 verified: both report KERNEL_ABI_VERSION = 1 — handshake succeeds.
1 parent 6dd7775 commit 6289e35

86 files changed

Lines changed: 541 additions & 6482 deletions

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

.github/workflows/Cargo.toml

Lines changed: 0 additions & 42 deletions
This file was deleted.

.github/workflows/deny.toml

Lines changed: 0 additions & 62 deletions
This file was deleted.

.github/workflows/release.yml

Lines changed: 104 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,104 @@
1+
# AxonOS Kernel — Auto-release on tag push
2+
#
3+
# Triggers when a tag matching `v*.*.*` is pushed (e.g. v0.2.0).
4+
# Creates a GitHub Release with:
5+
# - Title: tag name (e.g. v0.2.0)
6+
# - Body: matching CHANGELOG section extracted automatically
7+
# - "Latest" green banner on the repo page for stable releases
8+
# - Pre-release marker for tags ending in `-rc`/`-beta`/`-alpha`
9+
# - Source `.tar.gz` and `.zip` archives attached as assets
10+
11+
name: release
12+
13+
on:
14+
push:
15+
tags:
16+
- 'v*.*.*'
17+
- 'v*.*.*-*'
18+
19+
permissions:
20+
contents: write
21+
22+
jobs:
23+
release:
24+
name: Create GitHub Release
25+
runs-on: ubuntu-latest
26+
timeout-minutes: 10
27+
steps:
28+
- name: Checkout
29+
uses: actions/checkout@v4
30+
with:
31+
fetch-depth: 0
32+
33+
- name: Extract version from tag
34+
id: tag
35+
run: |
36+
VERSION="${GITHUB_REF#refs/tags/}"
37+
VERSION_NUMBER="${VERSION#v}"
38+
echo "version=$VERSION" >> "$GITHUB_OUTPUT"
39+
echo "version_number=$VERSION_NUMBER" >> "$GITHUB_OUTPUT"
40+
if [[ "$VERSION" == *-* ]]; then
41+
echo "prerelease=true" >> "$GITHUB_OUTPUT"
42+
else
43+
echo "prerelease=false" >> "$GITHUB_OUTPUT"
44+
fi
45+
46+
- name: Extract CHANGELOG section
47+
id: changelog
48+
run: |
49+
VERSION="${{ steps.tag.outputs.version }}"
50+
BODY=""
51+
if [ -f CHANGELOG.md ]; then
52+
BODY=$(awk -v ver="$VERSION" '
53+
$0 ~ "^## \\[" ver "\\]" { capture=1; print; next }
54+
capture && /^## \[v[0-9]+\.[0-9]+\.[0-9]+\]/ { exit }
55+
capture { print }
56+
' CHANGELOG.md)
57+
fi
58+
59+
if [ -z "$BODY" ]; then
60+
BODY="Release $VERSION. See [CHANGELOG.md](./CHANGELOG.md) for details."
61+
fi
62+
63+
{
64+
echo "body<<CHANGELOG_EOF"
65+
echo "$BODY"
66+
echo ""
67+
echo "---"
68+
echo ""
69+
echo "**ABI compatibility:** \`KERNEL_ABI_VERSION = 1\` (see [RFC-0006](https://github.com/AxonOS-org/axonos-rfcs))"
70+
echo ""
71+
echo "**Source archive:** see assets below."
72+
echo "**Full changelog:** [CHANGELOG.md](https://github.com/${{ github.repository }}/blob/${{ steps.tag.outputs.version }}/CHANGELOG.md)"
73+
echo "CHANGELOG_EOF"
74+
} >> "$GITHUB_OUTPUT"
75+
76+
- name: Build source archives
77+
run: |
78+
VERSION="${{ steps.tag.outputs.version }}"
79+
ARCHIVE="axonos-kernel-${VERSION}.tar.gz"
80+
ZIP="axonos-kernel-${VERSION}.zip"
81+
git archive --format=tar.gz \
82+
--prefix="axonos-kernel-${{ steps.tag.outputs.version_number }}/" \
83+
-o "$ARCHIVE" \
84+
"$VERSION"
85+
git archive --format=zip \
86+
--prefix="axonos-kernel-${{ steps.tag.outputs.version_number }}/" \
87+
-o "$ZIP" \
88+
"$VERSION"
89+
ls -lh "$ARCHIVE" "$ZIP"
90+
91+
- name: Create GitHub Release
92+
uses: softprops/action-gh-release@v2
93+
with:
94+
tag_name: ${{ steps.tag.outputs.version }}
95+
name: ${{ steps.tag.outputs.version }}
96+
body: ${{ steps.changelog.outputs.body }}
97+
draft: false
98+
prerelease: ${{ steps.tag.outputs.prerelease }}
99+
make_latest: ${{ steps.tag.outputs.prerelease == 'false' && 'true' || 'false' }}
100+
files: |
101+
axonos-kernel-${{ steps.tag.outputs.version }}.tar.gz
102+
axonos-kernel-${{ steps.tag.outputs.version }}.zip
103+
fail_on_unmatched_files: true
104+
generate_release_notes: false

.github/workflows/rustfmt.toml

Lines changed: 0 additions & 10 deletions
This file was deleted.

0 commit comments

Comments
 (0)