Skip to content

Prepare SFLO v0.1.1 release#1

Merged
djradon merged 15 commits into
mainfrom
next/v0.1.1
May 25, 2026
Merged

Prepare SFLO v0.1.1 release#1
djradon merged 15 commits into
mainfrom
next/v0.1.1

Conversation

@djradon

@djradon djradon commented May 20, 2026

Copy link
Copy Markdown
Contributor

Summary

  • add SFLO release validation and release metadata setting tasks
  • bump active ontology release metadata to v0.1.1
  • update release runbook notes for validation/version-setting flow

Validation

  • deno task ci

Follow-up before merge

  • scratch-regenerate the gh-pages mesh from the v0.1.1 source checkout
  • validate generated publication output
  • decide whether to tag v0.1.1 from the merge commit

Summary by CodeRabbit

  • New Features

    • Added CLI to set release version/issued-date across active release artifacts and a new release:set-version task.
  • Documentation

    • Updated release runbooks and release notes with explicit version-setting steps and model/decision documentation for reference/source/resolution changes.
  • Tests

    • New and expanded tests for release metadata tooling, SHACL/ontology guardrails, and dry-run validation.
  • Chores

    • Bumped ontologies and SHACL to v0.2.0 and adjusted related presentation/configuration vocabularies; test task now runs with write permission.

Review Change Stack

djradon added 3 commits May 19, 2026 22:32
- share release metadata descriptors between validation and version-setting scripts
- add release:set-version for deterministic Turtle release metadata updates
- cover setter and validator behavior in Deno release tests
- document the release preflight flow
- update active Turtle release metadata and payload URLs for v0.1.1
- make release validation tests follow the checked-out source version
- keep release set-version tests useful after a successful version bump
@coderabbitai

coderabbitai Bot commented May 20, 2026

Copy link
Copy Markdown

Warning

Review limit reached

@djradon, we couldn't start this review because you've used your available PR reviews for now.

Your plan includes 1 review of capacity. Refill in 47 minutes and 53 seconds.

Your organization has run out of usage credits. Purchase more in the billing tab.

⌛ How to resolve this issue?

After more review capacity refills, a review can be triggered using the @coderabbitai review command as a PR comment. Alternatively, push new commits to this PR.

We recommend that you space out your commits to avoid hitting the rate limit.

🚦 How do rate limits work?

CodeRabbit enforces hourly rate limits for each developer per organization.

Our paid plans have higher rate limits than trial, open-source, and free plans. In all cases, review capacity refills continuously over time.

Please see our FAQ for further information.

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 14afd24a-c336-46dc-8b1a-6ceb605f5031

📥 Commits

Reviewing files that changed from the base of the PR and between f8f85aa and 4913a64.

📒 Files selected for processing (6)
  • notes/principles.md
  • scripts/release_metadata.ts
  • scripts/release_validate.ts
  • tests/release_set_version_test.ts
  • tests/release_validation_test.ts
  • tests/shacl_guardrails_test.ts
📝 Walkthrough

Walkthrough

Adds a typed release metadata contract and a Deno/TypeScript CLI to set release version/issued date across active Turtle files (with dry-run), integrates this into validation/tests/docs, adds Deno task wiring and permissions, and updates ontology/SHACL artifacts and guardrail tests for v0.2.0.

Changes

Release metadata setter and v0.2.0 deployment

Layer / File(s) Summary
Release metadata contracts and utilities
scripts/release_metadata.ts
ACTIVE_RELEASE_FILES list, ReleaseFileDescriptor type, releaseIris() to derive per-file IRIs, and isSemver()/isDate() validators.
Release version setter CLI
scripts/release_set_version.ts
CLI parsing (--version, --issued, --dry-run, --root), setReleaseVersion() reads files, updateReleaseMetadata() applies required regex substitutions, optional write/dry-run behavior, and CLI entrypoint logging/exit handling.
Release validation refactor
scripts/release_validate.ts
Imports shared metadata and helpers from release_metadata.ts; validateReleaseFile() accepts optional expectedVersion and uses releaseIris() for notes/payload checks; CLI arg parsing tolerates -- separators; local isSemver removed.
Deno task configuration and release documentation
deno.json, notes/ont.dev.release-runbook.md, notes/ont.task.2026.2026-03-24-release-runbook.md
Adds release:set-version task, grants --allow-write to test task invocation, and documents running deno task release:set-version -- --version <version> --issued <yyyy-mm-dd> as a deterministic metadata update step.
Release setter test coverage
tests/release_set_version_test.ts
Tests: full rewrite + validate, dry-run reporting without writes, and arg parsing with -- separator; includes fixture helpers to compute next patch and generate release-notes content.
Dynamic release validation tests
tests/release_validation_test.ts
Refactors tests to compute current and next patch versions at runtime and assert dynamic expectations, including semver-format check.
Documentation and notes
notes/* (decision-log, reference-links, release-notes, summary, todo, principles, task schema changes)
Adds decision-log entry for resolution-target vs observation separation, expands reference-links and summary docs, updates release notes/examples to v0.2.0, adds TODO and minor frontmatter/guide edits.
Ontologies and SHACL v0.2.0
semantic-flow-config-ontology.ttl, semantic-flow-core-ontology.ttl, semantic-flow-core-shacl.ttl, semantic-flow-job-ontology.ttl, semantic-flow-prov-ontology.ttl
Bumps version metadata to v0.2.0; introduces ReferenceSource, ArtifactResolutionObservation, repository floating locator types, hasResolutionObservation pattern, resource-page panel/presentation vocabulary, updated IRIs/issued dates and TTL download URLs, and corresponding SHACL shapes and constraints.
SHACL / RDF guardrail tests & helpers
tests/helpers/rdf.ts, tests/rdf_guardrails_test.ts, tests/shacl_guardrails_test.ts
Extends SH/term mappings, adds RDFS constants and tests ensuring retired vocabulary absence, asserts new SHACL shapes/constraints for ReferenceSource, ArtifactResolutionObservation, repository floating locators, and resource-page presentation; introduces helper assertions for SHACL property shapes.

Estimated code review effort

🎯 4 (Complex) | ⏱️ ~45 minutes

Poem

🐇 I hop through Turtle, tidy each line,
I stamp a new version, make IRIs align,
Regex whiskers twitch, tests all pass through,
Ontologies hum in v0.2.0 hue,
A tiny rabbit release — cheers to you!

🚥 Pre-merge checks | ✅ 3 | ❌ 2

❌ Failed checks (2 warnings)

Check name Status Explanation Resolution
Title check ⚠️ Warning The PR title 'Prepare SFLO v0.1.1 release' contradicts the actual changeset, which upgrades all ontology versions and release artifacts to v0.2.0, not v0.1.1. Update the PR title to 'Prepare SFLO v0.2.0 release' to accurately reflect the ontology version bumped in the changeset.
Docstring Coverage ⚠️ Warning Docstring coverage is 0.00% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (3 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Linked Issues check ✅ Passed Check skipped because no linked issues were found for this pull request.
Out of Scope Changes check ✅ Passed Check skipped because no linked issues were found for this pull request.

✏️ Tip: You can configure your own custom pre-merge checks in the settings.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch next/v0.1.1

Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out.

❤️ Share

Comment @coderabbitai help to get the list of available commands and usage tips.

@djradon

djradon commented May 20, 2026

Copy link
Copy Markdown
Contributor Author

@coderabbitai review

@coderabbitai

coderabbitai Bot commented May 20, 2026

Copy link
Copy Markdown
✅ Actions performed

Review triggered.

Note: CodeRabbit is an incremental review system and does not re-review already reviewed commits. This command is applicable only when automatic reviews are paused.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@scripts/release_metadata.ts`:
- Around line 63-65: The isDate function currently only checks format; update
isDate to also reject impossible calendar dates by parsing the captured year,
month and day from the string (use the existing regex with capture groups),
convert them to numbers, create a Date object with new Date(year, month-1, day)
and then verify that date.getFullYear() === year, date.getMonth() + 1 === month
and date.getDate() === day; return false for non-matches or invalid numeric
ranges so values like "2026-02-31" are rejected.

In `@scripts/release_validate.ts`:
- Around line 101-105: The per-file expected-version comparisons are running
even when the CLI --version (expectedVersion) isn't valid SemVer, causing noisy
cascading errors; modify the logic that iterates parsedFiles and any other sites
(the loop calling validateReleaseFile and any similar blocks at the other
mentioned locations) to first validate expectedVersion with the SemVer check
(e.g., isValidSemVer or parse/semver.parse) and only pass/perform
expected-version assertions to validateReleaseFile when that check succeeds; if
expectedVersion is invalid, short-circuit and emit a single clear error about
the invalid expectedVersion instead of per-file mismatches.
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 1e1e8d3d-7a17-4dbc-b8b5-14d2fcc41d6e

📥 Commits

Reviewing files that changed from the base of the PR and between 9e39b34 and 78709f1.

📒 Files selected for processing (14)
  • deno.json
  • notes/.gitignore
  • notes/ont.dev.release-runbook.md
  • notes/ont.task.2026.2026-03-24-release-runbook.md
  • scripts/release_metadata.ts
  • scripts/release_set_version.ts
  • scripts/release_validate.ts
  • semantic-flow-config-ontology.ttl
  • semantic-flow-core-ontology.ttl
  • semantic-flow-core-shacl.ttl
  • semantic-flow-job-ontology.ttl
  • semantic-flow-prov-ontology.ttl
  • tests/release_set_version_test.ts
  • tests/release_validation_test.ts

Comment thread scripts/release_metadata.ts
Comment thread scripts/release_validate.ts Outdated
djradon added 10 commits May 20, 2026 08:11
Add ResourcePage presentation default selection and panel-selection vocabulary, including ResourcePagePanel, ResourcePagePanelSelection, inclusion policy, ResourcePageKind, and panel data requirements.

Add properties for selecting panels, ordering them, targeting by page kind/RDF class/artifact role, and declaring runtime data requirements. Keep panel selections modeled as named presentation-profile components rather than generic Config nodes.
Add SHACL structure checks for ResourcePagePresentationConfig and ResourcePagePanelSelection, including required template links, stylesheet and panel-selection presence, selected panel, panel order, inclusion policy, target value classes, and data requirements.
- add ReferenceSource, ImportSource, IntegrationSource, and ArtifactResolutionObservation
- replace ReferenceLink target vocabulary with hasReferenceSource
- move observed resolution evidence onto ArtifactResolutionObservation
- update SHACL and ontology guardrails for the new model
- Apply Deno formatting to the ArtifactResolutionTarget constant.
- Restore sflo CI formatting check compatibility.
- align active Turtle release metadata and release URLs on v0.2.0
- replace unpublished v0.1.1 release notes with v0.2.0 notes
- document breaking vocabulary and SHACL changes for reference sources, resolution observations, repository source locators, and ResourcePage presentation config
- validate release metadata, Deno CI, Turtle syntax, and whitespace checks
@djradon djradon marked this pull request as ready for review May 25, 2026 02:44

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Actionable comments posted: 2

🤖 Prompt for all review comments with AI agents
Verify each finding against current code. Fix only still-valid issues, skip the
rest with a brief reason, keep changes minimal, and validate.

Inline comments:
In `@notes/principles.md`:
- Around line 24-28: Fix the typos and finish the incomplete sentence in the
principles doc: change "Excpetions" to "Exceptions" in the sentence "Ideally,
once minted, states don't change. Excpetions for privacy/security concerns are
understandable.", and remove the stray "th" at the end of the paragraph so the
sentence reads clearly (e.g., "ArtifactResolutionTargets should be URLs or repo
targets, as local path relations aren't consistent between devices."). Ensure
the overall paragraph is grammatically correct and reads as a complete thought.

In `@tests/shacl_guardrails_test.ts`:
- Around line 122-143: The test "ReferenceLink SHACL requires exactly one
ReferenceSource" currently asserts only sh:minCount via assertRequiredProperty;
update the test to also verify sh:maxCount = 1 for SHAPES.ReferenceLink and
TERMS.hasReferenceSource (and similarly for the other cases called out around
lines 336-352). Locate the assertions using
assertRequiredProperty/assertOptionalProperty and add an additional
hasTriple/assert that SHAPES.ReferenceLink (and the other referenced shapes) has
SH.maxCount with the integer value 1 (use the same SH and TERMS/SHAPES symbols
already in the file to build the triple check).
🪄 Autofix (Beta)

Fix all unresolved CodeRabbit comments on this PR:

  • Push a commit to this branch (recommended)
  • Create a new PR with the fixes

ℹ️ Review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 8696f07f-ad22-4140-b85c-054b5684182e

📥 Commits

Reviewing files that changed from the base of the PR and between 78709f1 and f8f85aa.

⛔ Files ignored due to path filters (2)
  • assets/android-chrome-512x512.png is excluded by !**/*.png
  • assets/favicon.ico is excluded by !**/*.ico
📒 Files selected for processing (15)
  • notes/ont.decision-log.md
  • notes/ont.reference-links.md
  • notes/ont.release-notes.v0.2.0.md
  • notes/ont.summary.core.md
  • notes/ont.todo.md
  • notes/principles.md
  • notes/task.schema.yml
  • semantic-flow-config-ontology.ttl
  • semantic-flow-core-ontology.ttl
  • semantic-flow-core-shacl.ttl
  • semantic-flow-job-ontology.ttl
  • semantic-flow-prov-ontology.ttl
  • tests/helpers/rdf.ts
  • tests/rdf_guardrails_test.ts
  • tests/shacl_guardrails_test.ts
💤 Files with no reviewable changes (1)
  • notes/task.schema.yml

Comment thread notes/principles.md Outdated
Comment thread tests/shacl_guardrails_test.ts
djradon added 2 commits May 24, 2026 19:55
- reject impossible ISO-shaped release dates such as 2026-02-31
- short-circuit invalid expected release versions before per-file validation
- add regression coverage for date validation and non-cascading version errors
…or the actual single-valued SHACL property shapes, including hasReferenceSource, hasTargetArtifact, observedAt, the single ResourcePage template/panel fields, and hasResourcePagePresentationConfig.
@djradon djradon merged commit dd2252e into main May 25, 2026
2 checks passed
@djradon djradon deleted the next/v0.1.1 branch May 25, 2026 03:01
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant