Skip to content

ci: cleanup old workflows and test publish on dev branch - #442

Merged
Ryan-Millard merged 12 commits into
devfrom
ci/refactor/cleanup-and-dry-publish-dev
Jun 20, 2026
Merged

ci: cleanup old workflows and test publish on dev branch#442
Ryan-Millard merged 12 commits into
devfrom
ci/refactor/cleanup-and-dry-publish-dev

Conversation

@Ryan-Millard

@Ryan-Millard Ryan-Millard commented Jun 19, 2026

Copy link
Copy Markdown
Owner

What was changed & why

CI refactor:

  • Removals:
    • pr-check.yml (noisy, pedantic & no longer wanted)
    • stale.yml (previously disabled)
  • Refactors:
    • release.yml (include dev branch, but only do dry runs)
    • ci.yml (fail when the PR targets the main branch)

Update PULL_REQUEST_TEMPLATE.md to be shorter.

Testing & Verification

CI is terrible for this.

@github-actions

Copy link
Copy Markdown
Contributor

❌ This PR targets main directly — please retarget it to dev

Direct merges into main are not permitted. Please update the base branch of this PR to dev.

Warning

This comment will reappear on every push until the base branch is changed.

We block direct merges to main to ensure the quality of production code.

@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Review Change Stack

Walkthrough

Adds a warn-main-pr CI job that blocks and comments on PRs targeting main. Removes the pr-check.yml and stale.yml workflows. Extends release.yml to run on both main and dev, computing an is_dry_run flag used to draft releases, gate propagation jobs, route Python publishing to TestPyPI, and conditionally pass --dry-run to npm. Fixes safe WebGPU error message printing in gpu.h.

Changes

CI Workflow Restructuring and Dev-Branch Release Support

Layer / File(s) Summary
Main-branch PR warning and removed enforcement workflows
.github/workflows/ci.yml, .github/workflows/pr-check.yml, .github/workflows/stale.yml
Adds a warn-main-pr job to ci.yml that posts a warning comment and fails when a PR targets main. Removes pr-check.yml (title/body enforcement) and stale.yml (stale issue/PR management) entirely.
Release trigger and dry-run flag computation
.github/workflows/release.yml
Adds dev to the push trigger branches and introduces an is_dry_run output in the release-please job, passed as the dry-run input to the action based on whether the ref is dev.
Per-artifact checkout ref and draft release gating
.github/workflows/release.yml
Updates checkout ref for C/C++, JS/WASM, Python wheel, and Python sdist jobs to use the current commit SHA on dry-run. Adds id-token: write to the JS/WASM job. Sets GitHub releases to draft on dry-run for C/C++ and JS/WASM, and adds conditional --dry-run to npm publish.
Python publish routing and propagation gating
.github/workflows/release.yml
Adds id-token: write to publish-py permissions. Routes Python publishing to production on non-dry-run and TestPyPI with skip-existing on dry-run. Creates draft GitHub release on dry-run. Gates C++ and C propagation jobs behind is_dry_run != 'true'.

GPU Error Message Fix

Layer / File(s) Summary
Safe WebGPU error message logging
core/include/internal/gpu.h
Updates the Device Failed path in GPU::init_gpu to safely construct a std::string from msg.data/msg.length with an "Unknown error" fallback instead of printing msg.data directly.

Estimated code review effort

🎯 3 (Moderate) | ⏱️ ~20 minutes

Possibly related PRs

  • Ryan-Millard/Img2Num#276: Directly modifies .github/workflows/pr-check.yml to skip Dependabot PR body validation — the same workflow that this PR removes entirely.
  • Ryan-Millard/Img2Num#339: Adds the release-please-based build/publish and propagation jobs to release.yml that this PR extends with dry-run dev-branch support.
  • Ryan-Millard/Img2Num#440: Modifies the same GPU::init_gpu Device Failed error logging path in core/include/internal/gpu.h that this PR updates for safe message handling.

Suggested labels

github_actions, ci

🐇 A bunny hops to dev with glee,
No more merges to main carelessly!
Dry-runs draft in the misty dawn,
TestPyPI gets the artifacts drawn.
Old stale workflows, hopped away —
Safe GPU messages brighten the day! 🌟

🚥 Pre-merge checks | ✅ 8
✅ Passed checks (8 passed)
Check name Status Explanation
Docstring Coverage ✅ Passed No functions found in the changed files to evaluate docstring coverage. Skipping docstring coverage check.
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.
No Ai Slop Pr Description ✅ Passed PR description specifically identifies four workflow files, explains exact reasons for changes (noisy/pedantic, previously disabled, dry-run behavior, branch protection), and provides concrete deta...
No Strangely-Named Root Markdown Files ✅ Passed No unconventional markdown files were added at repository root; all changes are to workflow files in .github/workflows/ and a C++ header file.
Coderabbit Config Needs Update ✅ Passed The PR modifies workflow files already covered by .coderabbit.yaml's .github/workflows/** path_instructions. The peter-evans action is not new to the codebase (used in docker-ci.yml). No new la...
Description check ✅ Passed The description clearly explains what was changed and why, directly addressing the CI workflow modifications, removals, and refactors documented in the changeset.
Title check ✅ Passed The title uses the 'ci:' prefix and clearly describes the main changes: workflow cleanup and testing releases on the dev branch.

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

✨ Finishing Touches
📝 Generate docstrings
  • Create stacked PR
  • Commit on current branch
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/refactor/cleanup-and-dry-publish-dev
✨ Simplify code
  • Create PR with simplified code
  • Commit simplified code in branch ci/refactor/cleanup-and-dry-publish-dev

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.

@github-actions github-actions Bot added c/c++ Changes to C or C++ files ci core labels Jun 19, 2026
@coderabbitai coderabbitai Bot added the github_actions Pull requests that update GitHub Actions code label Jun 19, 2026
@github-actions

Copy link
Copy Markdown
Contributor

❌ This PR targets main directly — please retarget it to dev

Direct merges into main are not permitted. Please update the base branch of this PR to dev.

Warning

This comment will reappear on every push until the base branch is changed.

We block direct merges to main to ensure the quality of production code.

@Ryan-Millard
Ryan-Millard changed the base branch from main to dev June 19, 2026 13:21
@Ryan-Millard
Ryan-Millard changed the base branch from dev to main June 19, 2026 13:22
@coderabbitai

coderabbitai Bot commented Jun 19, 2026

Copy link
Copy Markdown
Contributor

Caution

Review failed

An error occurred during the review process. Please try again later.

✨ Finishing Touches
🧪 Generate unit tests (beta)
  • Create PR with unit tests
  • Commit unit tests in branch ci/refactor/cleanup-and-dry-publish-dev

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.

@coderabbitai coderabbitai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

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

Actionable comments posted: 6

🤖 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/ci.yml:
- Around line 18-19: The permissions section granting `pull-requests: write`
access lacks documentation explaining why this permission is required. Add a
brief explanatory comment above or inline with the `pull-requests: write`
permission line that clarifies the purpose of this write access for future
maintainers. The comment should explain that this permission is needed to allow
the workflow to interact with pull requests (such as updating PR status, adding
comments, or updating checks).

In @.github/workflows/release.yml:
- Around line 36-38: The "Debug release-please outputs" step containing the echo
command for toJSON(steps.rp.outputs) is creating unnecessary noise in production
logs. Either remove this entire step entirely if it's no longer needed, or add a
conditional to the step (using the if directive) to only execute when a DEBUG
environment variable or input parameter is explicitly enabled. This way, the
debug output will only appear when intentionally requested during development.
- Around line 86-90: Add `persist-credentials: false` to all checkout steps in
the workflow to prevent credentials from being persisted to `.git/config`, which
reduces the security risk of credential extraction through artifacts or
subsequent steps. Apply this parameter to the checkout step using
`actions/checkout@900f2210b1d28bbbd0bd22d17926b9e224e8f231` at line 86, the
build-js checkout at line 136, and the Python build job checkouts at lines 189
and 215. Each checkout step should include this new parameter within its `with:`
block to disable credential persistence since none of these jobs require git
push access after checkout.
- Line 5: The YAML formatting contains extra spaces inside the square brackets
in the branches array definition. Remove the spaces after the opening bracket
and before the closing bracket in the branches field so that the array elements
are directly adjacent to the brackets without any whitespace separation.
- Around line 40-47: In the "Set dry-run flag" step with id "dry_run", avoid
directly interpolating the GitHub context variable ${{ github.ref_name }} in the
shell script to prevent template injection. Instead, add an env section to this
step that captures github.ref_name as an environment variable, then reference
that environment variable in the shell conditional logic instead of using the
direct template interpolation syntax.
- Around line 34-47: The dry-run condition in the release-please step (checking
`github.ref_name == 'dev'`) is inconsistent with the condition in the Set
dry-run flag step (checking `github.ref_name != 'main'`). These represent
different logic and would diverge if additional branches are added. Update the
dry-run parameter in the release-please step to use the same condition as the
Set dry-run flag step by changing the condition from `github.ref_name == 'dev'`
to `github.ref_name != 'main'` to ensure both steps have aligned and consistent
dry-run logic.
🪄 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: Path: .coderabbit.yaml

Review profile: ASSERTIVE

Plan: Pro

Run ID: e5cb48e6-1e43-4951-b940-d8c9a915cd22

📥 Commits

Reviewing files that changed from the base of the PR and between 5be7139 and 7b2822e.

📒 Files selected for processing (5)
  • .github/workflows/ci.yml
  • .github/workflows/pr-check.yml
  • .github/workflows/release.yml
  • .github/workflows/stale.yml
  • core/include/internal/gpu.h
💤 Files with no reviewable changes (2)
  • .github/workflows/stale.yml
  • .github/workflows/pr-check.yml
📜 Review details
⏰ Context from checks skipped due to timeout of 120000ms. You can increase the timeout in your CodeRabbit configuration to a maximum of 15 minutes (900000ms). (6)
  • GitHub Check: Build Documentation Site / Build Docusaurus Site
  • GitHub Check: Build C/C++ / Build C & C++
  • GitHub Check: Build C/C++ / Build WASM (bindings/js)
  • GitHub Check: Build C/C++ / Build Python
  • GitHub Check: Lint & Validate Code
  • GitHub Check: Analyze (c-cpp)
🧰 Additional context used
📓 Path-based instructions (6)
**/*.{hpp,cpp,c,h}

📄 CodeRabbit inference engine (.editorconfig)

**/*.{hpp,cpp,c,h}: Use 4-space indentation for C/C++ files
Maintain 120 character maximum line length for C/C++ files

Files:

  • core/include/internal/gpu.h
**/*.{cpp,cc,cxx,c++,h,hpp,hxx,h++}

📄 CodeRabbit inference engine (.clang-format)

**/*.{cpp,cc,cxx,c++,h,hpp,hxx,h++}: Use LLVM coding style as the base style for C++ code
Use C++20 standard for all C++ code
Use an indent width of 4 spaces for C++ code
Limit line length to 100 columns in C++ code
Use 4 spaces for tab width in C++ code
Use C++11 braced list style with space before braced lists in C++ code
Attach opening braces to the same line (BreakBeforeBraces: Attach) in C++ code
Never pack constructor initializer lists on a single line in C++ code
Break constructor initializer lists before comma in C++ code
Use 4 spaces for constructor initializer list indentation in C++ code
Use block indent alignment after opening brackets in C++ code
Align pointers to the left in C++ code
Regroup and organize include blocks in C++ code
Sort includes case-insensitively in C++ code
Do not indent extern "C" blocks in C++ code
Allow short lambdas only inline on a single line in C++ code
Do not allow short functions on a single line in C++ code

Files:

  • core/include/internal/gpu.h
core/**/*.{cpp,c,h,hpp}

⚙️ CodeRabbit configuration file

core/**/*.{cpp,c,h,hpp}: This is the Img2Num core C/C++ library. Review for:

  • Memory safety: null pointer dereferences, use-after-free, buffer overflows.
  • Correct RAII usage and smart pointer idioms.
  • Adherence to the .clang-format style; formatting must be applied via
    ./img2num format-cpp (or ./img2num format-wasm for WASM modules),
    NOT by calling clang-format directly.
  • When suggesting build/test steps, always use the Docker-first wrapper scripts
    (./img2num, img2num.ps1, or img2num.bat) rather than direct tool invocations,
    since contributors may not have dependencies installed locally.
  • Must have Doxygen docstrings in the API (img2num.h) files. This is important!

Files:

  • core/include/internal/gpu.h
**/*.{cpp,c,h,hpp}

⚙️ CodeRabbit configuration file

**/*.{cpp,c,h,hpp}: - For any C/C++ code outside core/ (e.g. bindings, example-apps), apply the same
memory-safety and style standards as the core. Formatting via ./img2num format-cpp.

  • Doxygen docstrings are required.

Files:

  • core/include/internal/gpu.h
**

⚙️ CodeRabbit configuration file

**: # Contributing to Img2Num

Want to contribute to Img2Num? There are a few things you need to know.

We wrote a contribution guide to help you get started.

A few important points:

  • Add tests with your PR — new features and bug fixes must include tests where appropriate. PRs without tests are unlikely to be approved.
  • Follow the repository's coding style rules.
  • Use the issue and PR templates when filing issues or submitting code. Your PR will be rejected if you don't.

If you're unsure what to change, open a discussion and someone will assist you.

Questions?

If you have questions or need help:

Thank you for improving Img2Num! 🎨🚀

**: BasedOnStyle: LLVM
Standard: c++20

--- Basic formatting ---

IndentWidth: 4
ColumnLimit: 100
TabWidth: 4

--- Braces ---

Cpp11BracedListStyle: true
SpaceBeforeCpp11BracedList: true
BreakBeforeBraces: Attach

--- Braced initializers ---

Cpp11BracedListStyle: true

--- Constructor initializer lists ---

PackConstructorInitializers: Never
BreakConstructorInitializers: BeforeComma
ConstructorInitializerIndentWidth: 4

--- Alignment ---

AlignAfterOpenBracket: BlockIndent

--- Pointers ---

PointerAlignment: Left

--- Includes ---

IncludeBlocks: Regroup
SortIncludes: CaseInsensitive

--- Extern "C" cleanliness ---

IndentExternBlock: NoIndent

--- Lambdas ---

AllowShortLambdasOnASingleLine: Inline

--- Functions ---

AllowShortFunctionsOnASingleLine: None

**: root = true

-------------------------

Global defaults

-------------------------

[*]
charset = utf-8
end_of_line = lf
indent_style = space
indent_size = 2
trim_trailing_whitespace = true
insert_final_newline = true
max_line_lengt...

Files:

  • core/include/internal/gpu.h
.github/workflows/**

⚙️ CodeRabbit configuration file

.github/workflows/**: GitHub Actions workflows. Review for:

  • SHA-pinned action versions for third-party actions (security best practice).
  • Secrets accessed only via ${{ secrets.* }} — never hardcoded.
  • Least-privilege permissions on each job/workflow.
  • Correct job dependency ordering (needs:) and if/condition logic.

Files:

  • .github/workflows/ci.yml
  • .github/workflows/release.yml
🧠 Learnings (4)
📚 Learning: 2026-02-25T21:24:34.055Z
Learnt from: Ryan-Millard
Repo: Ryan-Millard/Img2Num PR: 272
File: core/include/internal/bilateral_filter_gpu.h:108-109
Timestamp: 2026-02-25T21:24:34.055Z
Learning: In WGSL shaders, .rgb swizzle on a vec4 returns the first three components regardless of color space. Do not assume data is RGB color space when the texture contains non-RGB data (e.g., CIELAB L, A, B). If LAB data is stored, treat and compute distances in LAB space, not RGB. Clearly document shader code paths that rely on specific color spaces and prefer explicit conversions or comments when using swizzled components with non-RGB textures. Apply this guidance to WGSL shader files across the codebase (not just this header) when handling color data or color-like channels.

Applied to files:

  • core/include/internal/gpu.h
📚 Learning: 2026-04-09T19:05:40.514Z
Learnt from: Ryan-Millard
Repo: Ryan-Millard/Img2Num PR: 302
File: core/include/internal/gpu.h:203-216
Timestamp: 2026-04-09T19:05:40.514Z
Learning: In Img2Num’s internal GPU initialization code, if querying adapter limits fails (e.g., `adapter.GetLimits(...)` returns `false`), treat this as a GPU initialization failure and route execution to the CPU fallback path. Do not continue with default limits in this case; the failure should cause the same fallback behavior as other GPU init errors.

Applied to files:

  • core/include/internal/gpu.h
📚 Learning: 2026-05-01T22:50:11.527Z
Learnt from: Ryan-Millard
Repo: Ryan-Millard/Img2Num PR: 339
File: release-please-config.json:18-47
Timestamp: 2026-05-01T22:50:11.527Z
Learning: In this repo, release-please-action v4 preserves '/' verbatim in slash-containing path-based package keys when emitting GitHub Actions output names (e.g., `bindings/c--release_created`). When referencing these step outputs in `job.outputs` (and other expressions), use bracket notation with the exact output name: `${{ steps.release.outputs['bindings/c--release_created'] }}` rather than dot notation. If needed, map the complex step output to a clean job-level output alias so downstream jobs can use dot notation via that alias.

Applied to files:

  • .github/workflows/ci.yml
  • .github/workflows/release.yml
📚 Learning: 2026-05-19T17:30:09.565Z
Learnt from: Ryan-Millard
Repo: Ryan-Millard/Img2Num PR: 375
File: .github/workflows/cmake-build.yml:86-88
Timestamp: 2026-05-19T17:30:09.565Z
Learning: In Ryan-Millard/Img2Num CI/workflow YAMLs, any `uv sync` command used for the Python package build must include `--no-build-isolation` (do not remove it). If you need deterministic dependency installs for CI, you may add `--frozen` alongside it (e.g., `uv sync --frozen --no-build-isolation`), and it should not conflict with the repo’s build setup.

Applied to files:

  • .github/workflows/ci.yml
  • .github/workflows/release.yml
🪛 YAMLlint (1.37.1)
.github/workflows/release.yml

[error] 5-5: too many spaces inside brackets

(brackets)


[error] 5-5: too many spaces inside brackets

(brackets)

🪛 zizmor (1.25.2)
.github/workflows/ci.yml

[warning] 19-19: permissions without explanatory comments (undocumented-permissions): needs an explanatory comment

(undocumented-permissions)


[info] 22-22: action functionality is already included by the runner (superfluous-actions): use gh pr comment or gh issue comment in a script step

(superfluous-actions)

.github/workflows/release.yml

[warning] 3-5: insufficient job-level concurrency limits (concurrency-limits): workflow is missing concurrency setting

(concurrency-limits)


[info] 38-38: code injection via template expansion (template-injection): may expand into attacker-controllable code

(template-injection)


[error] 43-43: code injection via template expansion (template-injection): may expand into attacker-controllable code

(template-injection)


[info] 120-120: action functionality is already included by the runner (superfluous-actions): use gh release in a script step

(superfluous-actions)


[warning] 136-139: credential persistence through GitHub Actions artifacts (artipacked): does not set persist-credentials: false

(artipacked)


[warning] 171-171: code injection via template expansion (template-injection): may expand into attacker-controllable code

(template-injection)


[error] 163-163: runtime artifacts potentially vulnerable to a cache poisoning attack (cache-poisoning): enables caching by default

(cache-poisoning)


[info] 157-157: action functionality is already included by the runner (superfluous-actions): use gh release in a script step

(superfluous-actions)


[info] 277-277: workflow or action definition without a name (anonymous-definition): this job

(anonymous-definition)


[info] 255-255: action functionality is already included by the runner (superfluous-actions): use gh release in a script step

(superfluous-actions)

🔇 Additional comments (6)
core/include/internal/gpu.h (1)

232-234: Current code is safe; WebGPU callbacks provide explicit length, not sentinel values.

The concern about WGPU_STRLEN sentinel causing unsafe allocation is unfounded for this context. According to WebGPU specifications, when wgpu::StringView is passed from WebGPU callbacks (as it is on lines 227–234), it always provides an explicit length and is never a sentinel-terminated string. The condition msg.data && msg.length > 0 correctly guards against null pointers and zero length, making the std::string(msg.data, msg.length) constructor safe. This pattern is consistently used elsewhere in the file (lines 189, 200) for the same callback context, and no fix is required.

			> Likely an incorrect or invalid review comment.
.github/workflows/ci.yml (1)

14-38: LGTM!

.github/workflows/release.yml (4)

119-125: LGTM!


156-174: LGTM!


254-275: LGTM!


277-279: LGTM!

Also applies to: 325-327

Comment thread .github/workflows/ci.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml Outdated
Comment thread .github/workflows/release.yml
Comment thread .github/workflows/release.yml
Comment thread .github/workflows/release.yml
This separates concerns and allows it to re-run on PR updates
like target branch changes.
@github-actions

Copy link
Copy Markdown
Contributor

❌ This PR targets main directly — please retarget it to dev

Direct merges into main are not permitted. Please update the base branch of this PR to dev.

Warning

This comment will reappear on every push until the base branch is changed.

We block direct merges to main to ensure the quality of production code.

@Ryan-Millard
Ryan-Millard changed the base branch from main to dev June 19, 2026 13:29
@Ryan-Millard Ryan-Millard changed the title Ci/refactor/cleanup and dry publish dev ci: cleanup old workflows and dry publish on dev branch Jun 19, 2026
@Ryan-Millard Ryan-Millard changed the title ci: cleanup old workflows and dry publish on dev branch ci: cleanup old workflows and test publish on dev branch Jun 20, 2026
@Ryan-Millard

Copy link
Copy Markdown
Owner Author

@coderabbitai why was your review skipped?

@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

🧩 Analysis chain

🏁 Script executed:

#!/bin/bash
# Get PR details including labels, state, draft status, and review info
gh pr view 442 --repo Ryan-Millard/Img2Num --json title,state,isDraft,labels,author,baseRefName,headRefName,reviewRequests,reviews,comments

echo "---EVENTS---"
# Check for any skip labels or ignore labels
gh api repos/Ryan-Millard/Img2Num/pulls/442/reviews 2>/dev/null | jq '.[] | {user: .user.login, state: .state, body: .body}' 2>/dev/null

echo "---ISSUE COMMENTS---"
gh api repos/Ryan-Millard/Img2Num/issues/442/comments 2>/dev/null | jq '.[] | {user: .user.login, body: .body[:200]}' 2>/dev/null

Length of output: 55944



@Ryan-Millard The review was not actually skipped — it completed successfully! Here's what happened on this PR:

  1. 13:17 UTC — I posted the walkthrough/summary.
  2. 13:26 UTC — A transient error occurred during a review attempt, which posted the ⚠️ Review failed caution comment.
  3. 13:27 UTC — The full review completed successfully with 6 actionable comments and a CHANGES_REQUESTED state (on commit 7b2822eb). This is the review you should be seeing above this conversation.

After that, a new commit (7aba80f1) was pushed. I re-ran on that incremental diff but the result was an empty/no-new-comments review — meaning the new changes didn't introduce anything beyond what was already flagged.

So the ⚠️ Review failed caution message was a red herring — the full review did go through just ~1 minute after that error. If the 6 inline comments aren't visible, they may be collapsed in the GitHub UI under the review thread. 🐇

@Ryan-Millard
Ryan-Millard requested review from Krasner and removed request for Krasner June 20, 2026 16:34
@Ryan-Millard

Copy link
Copy Markdown
Owner Author

@coderabbitai please generate a commit message and description for this so I can track it when I merge it.

@coderabbitai

coderabbitai Bot commented Jun 20, 2026

Copy link
Copy Markdown
Contributor

Tip

For best results, initiate chat on the files or code changes.

@Ryan-Millard Here's a commit message and description you can use:


Commit message:

ci: refactor workflows and guard main branch from direct PRs

Extended description:

Refactor and clean up GitHub Actions CI/CD workflows:

- Remove pr-check.yml: was overly noisy and pedantic; enforced PR title
  and body format checks that added friction without sufficient value.

- Remove stale.yml: was already disabled; formally removes the stale
  issues/PRs automation from the repository.

- Update release.yml: expand release triggering to both `main` and `dev`
  branches. On `dev`, all release steps run as dry runs (draft GitHub
  releases, npm --dry-run, TestPyPI instead of PyPI). Propagate jobs
  are gated to non-dry-run runs only.

- Update ci.yml: add `warn-main-pr` job that posts a warning comment
  and explicitly fails any pull request that targets `main` directly,
  enforcing the `dev` → `main` merge flow.

fix: safely construct WebGPU error string from msg.data/msg.length,
falling back to "Unknown error" when the message is null or empty.

If you want to keep it as a single-concern message (CI only) and treat the gpu.h fix as a separate note, you can drop the last fix: line from the body. Let me know if you'd like any adjustments!

@Ryan-Millard
Ryan-Millard merged commit 7282198 into dev Jun 20, 2026
16 checks passed
@Ryan-Millard
Ryan-Millard deleted the ci/refactor/cleanup-and-dry-publish-dev branch June 20, 2026 16:43
Ryan-Millard added a commit that referenced this pull request Jun 20, 2026
…rect PRs (#442)

Refactor and clean up GitHub Actions CI/CD workflows:

- Remove `pr-check.yml`: was overly noisy and pedantic; enforced PR title
  and body format checks that added friction without sufficient value.

- Remove `stale.yml`: was already disabled; formally removes the stale
  issues/PRs automation from the repository.

- Update `release.yml`: expand release triggering to both `main` and `dev`
  branches. On `dev`, all release steps run as dry runs (e.g., npm --dry-run,
  TestPyPI instead of PyPI). Propagate jobs are gated to non-dry-run runs
  only.

- Create `pr-target-check.yml‎`: `warn-main-pr` job that posts a warning
  comment and explicitly fails any pull request that targets `main` directly,
  enforcing the `dev` → `main` merge flow. It is designed to be annoying.

Refactor issue templates:

- Remove `good_first_issue.yml`: noisy and unused

- Remove `refactor.yml`: noisy and unused

- Update `feature_request.yml`: better examples and validation

- Update `bug_report.yml`: less noise, more focused, better validation
Ryan-Millard added a commit that referenced this pull request Jun 20, 2026
…rect PRs (#442)

Refactor and clean up GitHub Actions CI/CD workflows:

- Remove `pr-check.yml`: was overly noisy and pedantic; enforced PR title
  and body format checks that added friction without sufficient value.

- Remove `stale.yml`: was already disabled; formally removes the stale
  issues/PRs automation from the repository.

- Update `release.yml`: expand release triggering to both `main` and `dev`
  branches. On `dev`, all release steps run as dry runs (e.g., npm --dry-run,
  TestPyPI instead of PyPI). Propagate jobs are gated to non-dry-run runs
  only.

- Create `pr-target-check.yml‎`: `warn-main-pr` job that posts a warning
  comment and explicitly fails any pull request that targets `main` directly,
  enforcing the `dev` → `main` merge flow. It is designed to be annoying.

Refactor issue templates:

- Remove `good_first_issue.yml`: noisy and unused

- Remove `refactor.yml`: noisy and unused

- Update `feature_request.yml`: better examples and validation

- Update `bug_report.yml`: less noise, more focused, better validation
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

c/c++ Changes to C or C++ files ci core documentation github_actions Pull requests that update GitHub Actions code

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant