Skip to content

Commit 5457859

Browse files
committed
chore(release): prepare v0.1.0-beta.1
1 parent ea0596f commit 5457859

5 files changed

Lines changed: 39 additions & 10 deletions

File tree

CHANGELOG.md

Lines changed: 30 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,34 @@ adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html). While the
99

1010
## [Unreleased]
1111

12+
## [0.1.0-beta.1] — 2026-08-22
13+
14+
Sharp Runtime is complete for its currently declared practical subset and enters maintenance
15+
mode with this release. Compared with `0.1.0-alpha.1`, this beta closes the final internal audit,
16+
DateTime-kind propagation, and cross-compiler build-hygiene work without expanding the declared
17+
.NET compatibility scope.
18+
19+
### Fixed
20+
21+
- Reconciled all 364 historical audit findings against the implementation: **343 remediated**,
22+
**19 accepted deviations**, **2 false positives**, and **0 open**.
23+
- Closed the remaining lifetime, arithmetic, undefined-behaviour, temporary-path, validator, and
24+
selective-component coverage defects, with permanent regression tests.
25+
- Completed `DateTimeKind` propagation through `DateTime`, `DateTimeOffset`, `TimeZoneInfo`,
26+
`TimeZone`, and XML conversion while preserving the documented practical-subset boundaries.
27+
- Restored warning-clean Clang builds, made the production Clang build a local and CI gate, and
28+
retained the warning-clean GCC build.
29+
- Made Windows entropy chunking portable to i686 and restored hosted-runner component CI.
30+
31+
### Verification
32+
33+
- **17,840/17,840** tests pass across 38 executables, with 0 failed and 0 skipped.
34+
- The module graph is **41 modules / 96 edges**; all 10 selective component configurations pass.
35+
- GCC and Clang production builds complete with **0 warnings and 0 errors** under `-Werror`.
36+
- The Doxygen no-regression gate passes at the documented baseline of **2,675 warnings**.
37+
- Verified on Debian GNU/Linux 13 with GCC 14.2.0, glibc 2.41, CMake 3.31.6, tzdata 2026b,
38+
and zlib 1.3.1.
39+
1240
## [0.1.0-alpha.1] — 2026-08-20
1341

1442
First tagged release. Sharp Runtime has been developed continuously since 2025-05-30; this tag
@@ -84,5 +112,6 @@ instead. See [`docs/releasing.md`](docs/releasing.md).
84112
(`SHARP_RUNTIME_HAS_NATIVE_INT128`); they are absent on MSVC and 32-bit MinGW, which is a
85113
known, accepted and permanent boundary.
86114

87-
[Unreleased]: https://github.com/openeggbert/sharp-runtime/compare/v0.1.0-alpha.1...HEAD
115+
[Unreleased]: https://github.com/openeggbert/sharp-runtime/compare/v0.1.0-beta.1...HEAD
116+
[0.1.0-beta.1]: https://github.com/openeggbert/sharp-runtime/compare/v0.1.0-alpha.1...v0.1.0-beta.1
88117
[0.1.0-alpha.1]: https://github.com/openeggbert/sharp-runtime/releases/tag/v0.1.0-alpha.1

CMakeLists.txt

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ project(SHARP_RUNTIME VERSION 0.1.0 LANGUAGES CXX C)
99
# copy would keep an already-configured build directory reporting the previous release after a
1010
# bump -- exactly the kind of stale claim a release must not make. SHARP_RUNTIME_VERSION_STRING
1111
# is the single spelling the rest of the build reads. Do not re-derive it elsewhere.
12-
set(SHARP_RUNTIME_VERSION_PRERELEASE "alpha.1")
12+
set(SHARP_RUNTIME_VERSION_PRERELEASE "beta.1")
1313
if(SHARP_RUNTIME_VERSION_PRERELEASE)
1414
set(SHARP_RUNTIME_VERSION_STRING "${PROJECT_VERSION}-${SHARP_RUNTIME_VERSION_PRERELEASE}")
1515
else()

Doxyfile

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -48,7 +48,7 @@ PROJECT_NAME = "sharp-runtime"
4848
# could be handy for archiving the generated documentation or if some version
4949
# control system is used.
5050

51-
PROJECT_NUMBER = 0.1.0-alpha.1
51+
PROJECT_NUMBER = 0.1.0-beta.1
5252

5353
# Using the PROJECT_BRIEF tag one can provide an optional one line description
5454
# for a project that appears at the top of each page and should give viewer a

README.md

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -44,7 +44,7 @@ values.
4444

4545
## Version
4646

47-
Current release: **0.1.0-alpha.1** (pre-release — the public API may still change; see
47+
Current release: **0.1.0-beta.1** (pre-release — the public API may still change; see
4848
[`CHANGELOG.md`](CHANGELOG.md) for what the release contains and
4949
[`docs/releasing.md`](docs/releasing.md) for how versions are managed). Compiled code reads its
5050
own version from `SharpRuntime::getVersionString()` in `SharpRuntime/Version.hpp`, a header the

docs/releasing.md

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33

44
# Releasing Sharp Runtime
55

6-
*Current as of 0.1.0-alpha.1 (2026-08-20).*
6+
*Current as of 0.1.0-beta.1 (2026-08-22).*
77

88
Sharp Runtime follows [Semantic Versioning 2.0.0](https://semver.org/spec/v2.0.0.html). A release
99
is a git tag plus a `CHANGELOG.md` entry — there is no separate release branch, and nothing is
@@ -16,11 +16,11 @@ The version is decided in exactly **one** place:
1616
```cmake
1717
# CMakeLists.txt (repository root)
1818
project(SHARP_RUNTIME VERSION 0.1.0 LANGUAGES CXX C)
19-
set(SHARP_RUNTIME_VERSION_PRERELEASE "alpha.1") # empty on a final release
19+
set(SHARP_RUNTIME_VERSION_PRERELEASE "beta.1") # empty on a final release
2020
```
2121

2222
`project(VERSION …)` accepts numeric components only, so the pre-release identifier sits beside
23-
it and the two are joined into `SHARP_RUNTIME_VERSION_STRING` (`0.1.0-alpha.1`).
23+
it and the two are joined into `SHARP_RUNTIME_VERSION_STRING` (`0.1.0-beta.1`).
2424
`SHARP_RUNTIME_VERSION_PRERELEASE` is deliberately a normal variable and not a cache entry: a
2525
cached copy would keep an existing build directory reporting the previous release after a bump.
2626

@@ -63,7 +63,7 @@ Two copies are maintained by hand and must be updated as part of a bump:
6363
While the major version is 0, a minor bump may change the public API — which for this project is
6464
routine rather than exceptional: `docs/StandingApprovals.md` SA-2 governs public source breaks and
6565
they land with a migration note. Pre-release identifiers are `alpha.N``beta.N``rc.N`,
66-
ordered as SemVer orders them. `0.1.0-alpha.1` precedes `0.1.0`.
66+
ordered as SemVer orders them. `0.1.0-alpha.1` precedes `0.1.0-beta.1`, which precedes `0.1.0`.
6767

6868
## Downstream consumers
6969

@@ -115,7 +115,7 @@ commit hash. Tagging is therefore worth doing before a downstream release, not a
115115
6. **Tag** with a `v` prefix and an annotated tag:
116116

117117
```bash
118-
git tag -a v0.1.0-alpha.1 -m "Sharp Runtime 0.1.0-alpha.1"
118+
git tag -a v0.1.0-beta.1 -m "Sharp Runtime 0.1.0-beta.1"
119119
```
120120

121121
The tag string carries the `v`; `SHARP_RUNTIME_VERSION_STRING` never does.
@@ -124,7 +124,7 @@ commit hash. Tagging is therefore worth doing before a downstream release, not a
124124

125125
```bash
126126
git push origin <branch>
127-
git push origin v0.1.0-alpha.1
127+
git push origin v0.1.0-beta.1
128128
```
129129
8. **Open the next cycle** by adding an empty `## [Unreleased]` section back to `CHANGELOG.md` if
130130
step 2 consumed it.

0 commit comments

Comments
 (0)