Skip to content

Chore/public release sanitization - #3

Closed
hunter-morse wants to merge 1 commit into
mainfrom
chore/public-release-sanitization
Closed

Chore/public release sanitization#3
hunter-morse wants to merge 1 commit into
mainfrom
chore/public-release-sanitization

Conversation

@hunter-morse

@hunter-morse hunter-morse commented Aug 12, 2026

Copy link
Copy Markdown

Sanitation suggestions before public release

Summary by CodeRabbit

  • Documentation
    • Corrected punctuation in the license section’s trademark statement.

@hunter-morse
hunter-morse requested a review from a team as a code owner August 12, 2026 01:52
@coderabbitai

coderabbitai Bot commented Aug 12, 2026

Copy link
Copy Markdown
📝 Walkthrough

Walkthrough

The README License section changes the trademark statement to end with two periods instead of one.

Changes

Documentation correction

Layer / File(s) Summary
Correct the trademark statement
README.md
The License section now ends the trademark statement with two periods.

Estimated code review effort: 1 (Trivial) | ~2 minutes

Suggested reviewers: audeberc, kazazes

Poem

I’m a rabbit with a pen,
Two small dots now mark the end.
License words sit neat and bright,
Punctuation tucked just right.
Hop, hop—done before twilight!

🚥 Pre-merge checks | ✅ 4 | ❌ 1

❌ Failed checks (1 warning)

Check name Status Explanation Resolution
Docstring Coverage ⚠️ Warning Docstring coverage is 20.45% which is insufficient. The required threshold is 80.00%. Write docstrings for the functions missing them to satisfy the coverage threshold.
✅ Passed checks (4 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The title accurately describes the sanitation change made before the public release.
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.
✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch chore/public-release-sanitization

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

@coderabbitai
coderabbitai Bot requested review from audeberc and kazazes August 12, 2026 01:53

@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: 3

🤖 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 @.github/workflows/release.yml:
- Around line 50-54: The release-state comments in the workflow are too broad
and inaccurate. Update the description near resolve-release to state that
canonical repository derivation occurs only when Release Please is skipped while
release automation remains enabled, and clarify that an existing immutable tag
prevents creating a new release rather than producing no output; preserve the
downstream normalized-output explanation.

In `@scripts/release_checks.py`:
- Around line 78-81: Update the approved-repository lookahead in
_UNAPPROVED_PICOGRid_REPOSITORY to accept “.git” immediately after both
ecn-sdk-python and legion-system-auth, while preserving the existing delimiters
and rejection behavior; add allow-case tests covering both approved .git URLs.

In `@tests/release/test_release_checks.py`:
- Around line 1083-1090: Update
test_content_scan_allows_the_public_documentation_package_name to invoke
_scan_content for the package-lock.json content, ensuring the allow-case test
exercises _NONPUBLIC_SDK_IMPORT and still accepts picogrid-ecn-sdk-docs.
🪄 Autofix

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: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: a16f1bc5-8121-4e40-901d-24199c7c8430

📥 Commits

Reviewing files that changed from the base of the PR and between 6ca6285 and 721903a.

📒 Files selected for processing (30)
  • .github/CODEOWNERS
  • .github/workflows/release.yml
  • .github/workflows/scorecard.yml
  • .gitignore
  • CONTRIBUTING.md
  • MANIFEST.in
  • Makefile
  • NOTICE.md
  • docs/README.md
  • docs/cspell.json
  • docs/reference/evidence-status.md
  • docs/reference/original-ecn-integration-parity.md
  • docs/site/check-built-site.mjs
  • docs/site/public-routes.mjs
  • docs/src/content.config.ts
  • docs/src/styles/picogrid.css
  • pyproject.toml
  • scripts/installed_examples.py
  • scripts/installed_wheel_probe.py
  • scripts/original-guide-inventory.json
  • scripts/release-policy.json
  • scripts/release_checks.py
  • scripts/verify_release.py
  • scripts/verify_types.py
  • tests/contract/test_synthetic_fixtures.py
  • tests/differential/test_public_boundary.py
  • tests/examples/conftest.py
  • tests/examples/test_examples.py
  • tests/release/test_release_checks.py
  • tests/release/test_version_sync.py
💤 Files with no reviewable changes (12)
  • pyproject.toml
  • scripts/original-guide-inventory.json
  • .gitignore
  • docs/reference/evidence-status.md
  • docs/cspell.json
  • scripts/installed_wheel_probe.py
  • docs/reference/original-ecn-integration-parity.md
  • docs/src/content.config.ts
  • docs/site/public-routes.mjs
  • scripts/release-policy.json
  • tests/differential/test_public_boundary.py
  • MANIFEST.in

Comment thread .github/workflows/release.yml Outdated
Comment on lines +50 to +54
# Every downstream job consumes this job's normalized outputs rather than binding
# directly to one release-state provider. When Release Please is disabled, the
# canonical repository derives the same identity from its version and immutable tag.
# A merge that does not change the version resolves to an existing tag and stops
# without output.

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Narrow the release-state description.

resolve-release also requires vars.RELEASE_AUTOMATION_ENABLED == 'true' (Line 59). If that variable is false, the canonical repository does not derive a release identity in this workflow. The existing published-release path also emits release_created=false (Line 154), so it does not stop without output. State that derivation applies when Release Please is skipped in the canonical repository while automation remains enabled, and that an existing tag stops creation of a new release.

🤖 Prompt for 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.

In @.github/workflows/release.yml around lines 50 - 54, The release-state
comments in the workflow are too broad and inaccurate. Update the description
near resolve-release to state that canonical repository derivation occurs only
when Release Please is skipped while release automation remains enabled, and
clarify that an existing immutable tag prevents creating a new release rather
than producing no output; preserve the downstream normalized-output explanation.

Comment thread scripts/release_checks.py Outdated
Comment on lines +78 to +81
_NONPUBLIC_SDK_IMPORT = re.compile(rb"picogrid[_-][a-z0-9_-]+[_-]sdk(?![a-z0-9_-])", re.IGNORECASE)
_UNAPPROVED_PICOGRID_REPOSITORY = re.compile(
rb"github\.com/picogrid/(?!ecn-sdk-python(?:[/?#\s\"']|$)|legion-system-auth(?:[/?#\s\"']|$))[a-z0-9_.-]+",
re.IGNORECASE,

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Allow .git URLs for approved repositories.

Line 80 rejects github.com/picogrid/ecn-sdk-python.git and github.com/picogrid/legion-system-auth.git. The approved-name lookahead requires /, ?, #, whitespace, a quote, or end of input after the repository name. A normal Git clone URL uses .git instead.

Proposed fix
-    rb"github\.com/picogrid/(?!ecn-sdk-python(?:[/?#\s\"']|$)|legion-system-auth(?:[/?#\s\"']|$))[a-z0-9_.-]+",
+    rb"github\.com/picogrid/(?!ecn-sdk-python(?:\.git)?(?:[/?#\s\"']|$)|legion-system-auth(?:\.git)?(?:[/?#\s\"']|$))[a-z0-9_.-]+",

Add allow-case tests for both approved .git URLs.

📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
_NONPUBLIC_SDK_IMPORT = re.compile(rb"picogrid[_-][a-z0-9_-]+[_-]sdk(?![a-z0-9_-])", re.IGNORECASE)
_UNAPPROVED_PICOGRID_REPOSITORY = re.compile(
rb"github\.com/picogrid/(?!ecn-sdk-python(?:[/?#\s\"']|$)|legion-system-auth(?:[/?#\s\"']|$))[a-z0-9_.-]+",
re.IGNORECASE,
_NONPUBLIC_SDK_IMPORT = re.compile(rb"picogrid[_-][a-z0-9_-]+[_-]sdk(?![a-z0-9_-])", re.IGNORECASE)
_UNAPPROVED_PICOGRID_REPOSITORY = re.compile(
rb"github\.com/picogrid/(?!ecn-sdk-python(?:\.git)?(?:[/?#\s\"']|$)|legion-system-auth(?:\.git)?(?:[/?#\s\"']|$))[a-z0-9_.-]+",
re.IGNORECASE,
🤖 Prompt for 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.

In `@scripts/release_checks.py` around lines 78 - 81, Update the
approved-repository lookahead in _UNAPPROVED_PICOGRid_REPOSITORY to accept
“.git” immediately after both ecn-sdk-python and legion-system-auth, while
preserving the existing delimiters and rejection behavior; add allow-case tests
covering both approved .git URLs.

Comment thread tests/release/test_release_checks.py Outdated
Comment on lines +1083 to +1090
def test_content_scan_allows_the_public_documentation_package_name() -> None:
policy = load_policy(POLICY_PATH)

scan_secret_and_address_content(
"package-lock.json",
b'{"name":"picogrid-ecn-sdk-docs"}',
policy,
)

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

🎯 Functional Correctness | 🟡 Minor | ⚡ Quick win

Call _scan_content in this allow-case test.

scan_secret_and_address_content does not evaluate _NONPUBLIC_SDK_IMPORT. This test passes even if the new SDK scanner rejects picogrid-ecn-sdk-docs.

Proposed fix
-    scan_secret_and_address_content(
+    _scan_content(
         "package-lock.json",
         b'{"name":"picogrid-ecn-sdk-docs"}',
         policy,
     )
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
def test_content_scan_allows_the_public_documentation_package_name() -> None:
policy = load_policy(POLICY_PATH)
scan_secret_and_address_content(
"package-lock.json",
b'{"name":"picogrid-ecn-sdk-docs"}',
policy,
)
def test_content_scan_allows_the_public_documentation_package_name() -> None:
policy = load_policy(POLICY_PATH)
_scan_content(
"package-lock.json",
b'{"name":"picogrid-ecn-sdk-docs"}',
policy,
)
🤖 Prompt for 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.

In `@tests/release/test_release_checks.py` around lines 1083 - 1090, Update
test_content_scan_allows_the_public_documentation_package_name to invoke
_scan_content for the package-lock.json content, ensuring the allow-case test
exercises _NONPUBLIC_SDK_IMPORT and still accepts picogrid-ecn-sdk-docs.

@hunter-morse
hunter-morse deleted the chore/public-release-sanitization branch August 12, 2026 03:11
@hunter-morse
hunter-morse restored the chore/public-release-sanitization branch August 12, 2026 03:56
@hunter-morse hunter-morse reopened this Aug 12, 2026
@hunter-morse
hunter-morse force-pushed the chore/public-release-sanitization branch from 721903a to 8aff4f3 Compare August 12, 2026 04:00

@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: 1

🤖 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 `@README.md`:
- Line 204: Update the README sentence stating that Picogrid names and marks are
not licensed as trademarks by removing the extra trailing period, leaving
exactly one period.
🪄 Autofix

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: Repository UI (base), Organization UI (inherited)

Review profile: ASSERTIVE

Plan: Pro Plus

Run ID: 3126b07a-9eb7-4a83-8346-10942128412e

📥 Commits

Reviewing files that changed from the base of the PR and between 721903a and 8aff4f3.

📒 Files selected for processing (1)
  • README.md

Comment thread README.md
The Picogrid ECN SDK is licensed under the
[Mozilla Public License 2.0](https://github.com/picogrid/ecn-sdk-python/blob/main/LICENSE).
Picogrid names and marks are not licensed as trademarks.
Picogrid names and marks are not licensed as trademarks..

Copy link
Copy Markdown

Choose a reason for hiding this comment

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

📐 Maintainability & Code Quality | 🟡 Minor | ⚡ Quick win

Remove the extra period.

Line 204 ends with two periods (trademarks..). Use one period.

Proposed fix
-Picogrid names and marks are not licensed as trademarks..
+Picogrid names and marks are not licensed as trademarks.
📝 Committable suggestion

‼️ IMPORTANT
Carefully review the code before committing. Ensure that it accurately replaces the highlighted code, contains no missing lines, and has no issues with indentation. Thoroughly test & benchmark the code to ensure it meets the requirements.

Suggested change
Picogrid names and marks are not licensed as trademarks..
Picogrid names and marks are not licensed as trademarks.
🤖 Prompt for 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.

In `@README.md` at line 204, Update the README sentence stating that Picogrid
names and marks are not licensed as trademarks by removing the extra trailing
period, leaving exactly one period.

@hunter-morse
hunter-morse deleted the chore/public-release-sanitization branch August 12, 2026 04:02
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