Conversation
Render the 52-bit timestamp as ISO 8601 UTC with microsecond precision and label the 12-bit field as HUB_<id>, matching the REALM_<id> convention in the same string and aligning with the IsccDeclaration timestamp format defined by the ISCC-HUB API.
Fixes 18 deprecation warnings on the Tests workflow. Bumps actions/checkout v4→v6, astral-sh/setup-uv v4→v8, and codecov/codecov-action v4→v6 in tests.yml and release.yml. None of the intervening breaking changes affect this repo's usage.
The astral-sh/setup-uv action only publishes floating major tags up to v7; v8 only exists as full version tags. v7 already runs on Node 24 so the original deprecation fix is preserved.
setup-uv@v7 caches by default and keys on the system python rather than the matrix python-version, causing parallel matrix jobs on the same OS to race for the same cache key. Adds cache-suffix to give each matrix entry its own cache.
Updates actions/checkout v3->v6 and github/codeql-action {init,autobuild,analyze}
v2->v4. Both prior versions ran on Node 16/20 and were deprecated.
Retarget the unreleased changelog section from 1.3.1 to 1.4.0 since the next release will be 1.4.0.
pytest 9.1 deprecates non-Collection iterables in parametrize and pytest 10 will reject them.
checkout v7, setup-python v7, upload-artifact v7, download-artifact v8, codecov-action v7, cibuildwheel v4.2 and setup-uv v10.2.0. setup-uv and cibuildwheel publish no floating major tags, so they are pinned exactly.
build.yml runs cibuildwheel, builds the sdist and verifies both across the full Python matrix. It has no publish step or PyPI permissions and can be dispatched manually on any branch. release.yml now only chains tests, build and publish on v* tags. The Tests push trigger is limited to branches so a tag push no longer runs the test matrix twice.
…eel builds minhash.pxd already types bits via cython.locals; Cython 3.3 rejects the PEP 526 annotation in the .py source as a redeclaration.
Builds and verifies on ubuntu-24.04-arm alongside the existing platforms. Linux archs is set to native so each runner builds its own architecture.
…s: at runtime The stream: and bytes: prefixes were removed with str.lstrip, which strips a character set and corrupts hex payloads starting with a or e. The runtime loader also lacked bytes: support that the generator had. Both now share one decoder in iscc_core.conformance.
Functions that return bytes can now have conformance vectors: build_test_data.py serializes bytes results as `bytes:<hex>` and conformance_testdata() decodes outputs with the same prefix rules as inputs.
Add encode_seq, decode_seq and read_unit as strict byte-level helpers for ISCC-UNIT sequences, plus the SEQ_MAINTYPES constant. decode_seq implements the IEP-0020 decoding rules: canonical header check, MainType 0-4 only, Length field 0-7, no truncated units or trailing bytes; unknown SubType and Version values are preserved. Conformance vectors cover IEP-0020 Test Vectors 1 and 2. The iscc_decompose docstring now states which strings it accepts and points to decode_seq for strict decoding.
log2(0) raised a math domain error and avg_size 1 produced a float mask that failed later with a TypeError. Sizes of 2 and above chunk correctly, so the guard raises a ValueError below that bound. Closes #134
Adds CHANGELOG.md to the format-md task and runs it before the docs copy step so the docs mirror never lags one run behind the formatted source.
Bump version to 1.4.0, set the release date in the changelog and refresh the lock file and conformance data generator string.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
iscc_explainrenders ISCC-IDv1 with an ISO 8601 UTC timestamp and a labeledHUB_<id>field, e.g.ID-REALM_0-V1-64-2024-04-30T18:52:03.456789Z-HUB_42build.ymlthat can be dispatched on any branch without publishing;release.ymlnow chains tests, build and publish onv*tagsVerification
poe allpasses locally with 100% coverage and no warningsStill open before tagging: bump version strings in
pyproject.tomlandiscc_core/__init__.pyto 1.4.0.