Skip to content
This repository was archived by the owner on May 1, 2026. It is now read-only.

release: 1.0.0#15

Merged
justinjoy merged 1 commit intomainfrom
release/v1.0.0
Apr 30, 2026
Merged

release: 1.0.0#15
justinjoy merged 1 commit intomainfrom
release/v1.0.0

Conversation

@justinjoy
Copy link
Copy Markdown
Contributor

Summary

First stable release. Public API + ABI move under semver from this
PR forward.

  • meson project version 0.1.01.0.0
  • both_libraries soversion 01 (SONAME → libksuid.so.1)
  • tests/test_smoke.c version-macro sync point updated (the
    deliberate compile-time check that @VERSION_*@ substitution flows
    through configure_file into ksuid_version.h)
  • README status section: drops "early development" wording, documents
    SONAME stability
  • README footprint table: re-measured stripped sizes for x86_64

Cumulative scope landed across 0.x and shipping in 1.0.0:

Issue #7 (CompressedSet) is permanently deferred and intentionally
NOT in 1.x scope.

Test plan

  • meson test -C build-release — 16/16 pass
  • ksuid-gen smoke: upstream sample
    0ujtsYcgvSTl8PAuAdqWYSMnLOv0669F7EFB5A1CD34B5F99D1154FB6853345C9735
  • tools/gst-indent clean
  • CI matrix passes (Linux GCC/Clang, macOS, MSVC, ARM cross)
  • Tag v1.0.0 on the merge commit and create GitHub release

After merge: tag v1.0.0 on the merge commit on main, then push
the tag to trigger any release-publishing workflow.

First stable release. Public API and ABI are now under semver: a
binary-incompatible change requires a 2.x bump and a new SONAME.

Version bumps:
  - meson.build project version: 0.1.0 -> 1.0.0
  - both_libraries soversion: 0 -> 1 (SONAME flips to libksuid.so.1)
  - tests/test_smoke.c version-macro sync point: matches the new
    project version (the deliberate compile-time check that
    @VERSION_*@ substitution flows from meson.project_version()
    through configure_file into ksuid_version.h).

README:
  - Status section: drops "early development" disclaimer; documents
    the SONAME stability commitment.
  - Footprint table: re-measured stripped sizes for the 1.0.0
    build on x86_64 (libksuid.so.1.0.0 ~26 KB, libksuid.a ~35 KB,
    ksuid-gen ~23 KB) and notes the AVX2 kernel's contribution.

Cumulative scope from 0.x development that ships in 1.0.0:
  - 20-byte / 27-char wire-compatible KSUID encode/decode
  - lock-free per-thread ChaCha20 CSPRNG with bounded reseed and
    DSE-resistant wipe (issue #2) + thread-exit hook (issue #4)
  - SSE2/NEON-accelerated input validation + 20-byte compare
  - AVX2 8-wide ksuid_string_batch with CPUID dispatch (issue #13)
  - meson + ninja build, both static and shared libraries,
    ksuid-gen CLI
  - Cross-platform RNG matrix (Linux getrandom, macOS getentropy,
    Windows BCryptGenRandom) with /dev/urandom fallback
  - Permanent CompressedSet deferral (issue #7) -- not in scope
    for v1.x.

Verification:
  - meson test -C build-release: 16/16 pass
  - ksuid-gen smoke: matches upstream sample
    (0ujtsYcgvSTl8PAuAdqWYSMnLOv -> 0669F7EFB5A1CD34B5F99D1154FB6853345C9735)
  - gst-indent: clean
@justinjoy justinjoy merged commit f091724 into main Apr 30, 2026
11 checks passed
@justinjoy justinjoy deleted the release/v1.0.0 branch April 30, 2026 09:44
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant