kpermute

Changelog

Synced from GitHub Releases.

  1. v1.2.0

    Toolchain refresh: Kotlin 2.3.20, Gradle 9.5.1, kbuild 1.2.1.

    What's Changed

    • chore: bump kbuild to 1.2.1 and gradle to 9.5.1 #7

    Full Changelog: https://github.com/Eignex/kpermute/compare/v1.1.2...v1.2.0

  2. v1.1.2

    Patch release that fixes a broken publish in v1.1.1.

    • fix: bump the com.eignex.kmp plugin to 1.1.4 to fix the broken release.
  3. v1.1.1

    Quality and tooling pass that splits interfaces into their own files, applies consistent formatting, and expands the set of published target platforms.

    • refactor: move each public interface into its own source file.
    • style: add an .editorconfig and apply project-wide formatting.
    • ci: add a linter step to the GitHub Actions workflow.
    • chore: update to the com.eignex.kmp plugin 1.1.1 and expand target platforms.
    • ci: remove a redundant clean step from the release workflow.
  4. v1.1.0

    Restructures the project as a Kotlin Multiplatform library so the permutation APIs can be consumed beyond the JVM.

    • build: migrate the build from JVM-only to Kotlin Multiplatform.
    • docs: update the README and documentation links to reflect the KMP layout.
  5. v1.0.1

    Maintenance release that updates the toolchain, tidies the release pipeline, and renames the publishing org from eigenity to eignex.

    • chore: update Kotlin and bump Gradle to 9.2.1.
    • refactor: rename the group/publisher from eigenity to eignex.
    • ci: simplify the release script and allow manual workflow runs.
    • ci: fix credential and environment variable handling in the release workflow.
    • docs: simplify README examples and refresh documentation.
  6. v1.0.0

    First public release of kpermute, a small Kotlin library that provides reversible bijective permutations over the full 32-bit Int range and the full 64-bit Long range, suitable for shuffling, ID obfuscation, and deterministic iteration without storing the permutation.

    • feat: implement IntPermutation covering the full 2^32 range with encode/decode and an unchecked hot path.
    • feat: add LongPermutation with a half-long variant, long utilities, and a factory method mirroring the int API.
    • feat: add ArrayIntPermutation for small/degenerate sizes and shared range/list utilities.
    • test: include extensive unit tests plus a statistical fuzzing test covering both int and long permutations.
    • build: ship a Gradle build with signing, code coverage via Kover, and a GitHub Actions release workflow.