Skip to content

ci(release): fix dashmate deb pack by configuring oclif targets#3713

Merged
QuantumExplorer merged 1 commit into
v3.1-devfrom
fix/dashmate-deb-pack-targets
May 20, 2026
Merged

ci(release): fix dashmate deb pack by configuring oclif targets#3713
QuantumExplorer merged 1 commit into
v3.1-devfrom
fix/dashmate-deb-pack-targets

Conversation

@QuantumExplorer

@QuantumExplorer QuantumExplorer commented May 20, 2026

Copy link
Copy Markdown
Member

Issue being fixed or feature implemented

The Release Dashmate packages (deb, ubuntu-24.04) job fails at the Create package step with:

› Error: Nonexistent flag: --targets=linux-x64,linux-arm64

PR #3709 added a deb case to scripts/pack_dashmate.sh that passes --targets=linux-x64,linux-arm64 to oclif pack deb. Unlike pack tarballs and pack win, the oclif pack deb command (oclif@4.0.3) has no --targets flag, so the command aborts and the deb release artifact is never produced. (The tarballs/win/macos jobs in the same run passed.)

Example failing run: https://github.com/dashpay/platform/actions/runs/26183903035/job/77044083874

What was done?

  • Removed the --targets flag from the deb case in scripts/pack_dashmate.sh.
  • Configured the build targets via oclif.update.node.targets in packages/dashmate/package.json, which pack deb (and pack macos) read. The list is linux-x64, linux-arm64, win32-x64, darwin-x64, darwin-arm64 — i.e. the 32-bit linux-armv7l and win32-x86 targets stay dropped (the goal of ci(release): drop 32-bit dashmate pack targets unsupported by Node 24 #3709, since Node 24+ does not publish 32-bit binaries and oclif pack 404s on them).
  • tarballs and win keep their command-line --targets overrides since those commands support the flag.

How Has This Been Tested?

  • Validated package.json is still valid JSON and pack_dashmate.sh passes bash -n.
  • Logic verified against the failing run: only the deb matrix job (which uniquely received --targets) failed; deb derives its linux targets from oclif.update.node.targets, and macos derives darwin targets from the same config (unchanged behavior).

Breaking Changes

None.

Checklist:

  • I have performed a self-review of my own code
  • I have commented my code, particularly in hard-to-understand areas
  • I have added or updated relevant unit/integration/functional/e2e tests
  • I have added "!" to the title and described breaking changes in the corresponding section if my code contains any
  • I have made corresponding changes to the documentation if needed

For repository code-owners and collaborators only

  • I have assigned this pull request to a milestone

Summary by CodeRabbit

  • Chores
    • Updated platform support configuration to ensure dashmate distribution compatibility across Linux, Windows, and macOS.
    • Enhanced packaging script for improved Node 24+ compatibility.

Review Change Stack

`oclif pack deb` has no `--targets` flag, so passing it aborts the deb
release job with "Nonexistent flag: --targets". Move the linux target
selection to `oclif.update.node.targets` in package.json, which the deb
(and macos) pack commands read, and drop the `--targets` flag from the
deb case. tarballs/win keep their `--targets` overrides since those
commands support the flag.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
@github-actions github-actions Bot added this to the v3.1.0 milestone May 20, 2026
@coderabbitai

coderabbitai Bot commented May 20, 2026

Copy link
Copy Markdown
Contributor

No actionable comments were generated in the recent review. 🎉

ℹ️ Recent review info
⚙️ Run configuration

Configuration used: defaults

Review profile: CHILL

Plan: Pro

Run ID: 07429100-b475-4dd3-b494-a9b3004b59ea

📥 Commits

Reviewing files that changed from the base of the PR and between 7b48e43 and 87b8982.

📒 Files selected for processing (2)
  • packages/dashmate/package.json
  • scripts/pack_dashmate.sh

📝 Walkthrough

Walkthrough

The PR updates Node.js build target configuration for the dashmate CLI. package.json declares supported platform/architecture targets for oclif's update mechanism, and pack_dashmate.sh aligns the build process by removing an unsupported --targets flag from the deb packing command while keeping it for tarball builds.

Changes

Node.js Target Platform Configuration

Layer / File(s) Summary
oclif target platform configuration
packages/dashmate/package.json, scripts/pack_dashmate.sh
oclif.update.node.targets is configured in package.json with five supported platform/arch combinations, and pack_dashmate.sh is updated to enforce those targets for tarballs while removing the invalid --targets flag from the deb build command.

Estimated code review effort

🎯 1 (Trivial) | ⏱️ ~4 minutes

Poem

🐰 The rabbit hops through five platforms with glee,
Linux and Darwin and Windows so free,
Pack scripts now honest, no flags that deceive,
Targets aligned—all the builds can believe! ✨

🚥 Pre-merge checks | ✅ 5
✅ Passed checks (5 passed)
Check name Status Explanation
Description Check ✅ Passed Check skipped - CodeRabbit’s high-level summary is enabled.
Title check ✅ Passed The PR title clearly describes the main change: configuring oclif targets to fix the deb pack failure, which is the primary objective of this PR.
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.

✏️ 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 fix/dashmate-deb-pack-targets

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.

@QuantumExplorer
QuantumExplorer merged commit 54e54d4 into v3.1-dev May 20, 2026
19 checks passed
@QuantumExplorer
QuantumExplorer deleted the fix/dashmate-deb-pack-targets branch May 20, 2026 20:39

@thepastaclaw thepastaclaw left a comment

Copy link
Copy Markdown
Collaborator

Choose a reason for hiding this comment

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

Code Review

Small, well-scoped CI fix that removes the unsupported --targets flag from oclif pack deb and moves linux target selection to oclif.update.node.targets in dashmate's package.json. The change is correct: oclif pack deb reads targets from package.json, while tarballs/win still use the supported --targets CLI override. No blocking issues found; two minor nitpicks worth noting.

_Note: Inline posting through review_poster.py failed ( _gh(
File "/Users/claw/.openclaw/workspace/scripts/review_poster.py", line 23, in gh
raise RuntimeError(f"gh {' '.join(args)} failed: {result.stderr.strip()}")
RuntimeError: gh api /repos/dashpay/platform/pulls/3713/reviews --method POST --input - failed: gh: Unprocessable Entity (HTTP 422)
), so I posted the same verified findings as a top-level review body.

💬 2 nitpick(s)

2 finding(s)

nitpick: `oclif.update.node.targets` also drives the auto-update target list

packages/dashmate/package.json (line 131)

oclif.update.node.targets is consumed by oclif pack deb and oclif pack macos, but it is also the canonical list used by oclif's auto-update mechanism (channel manifests via oclif upload). After this change the auto-update list is fixed to linux-x64, linux-arm64, win32-x64, darwin-x64, darwin-arm64, which means existing 32-bit installs (linux-armv7l, win32-x86) will silently stop receiving updates. This matches the intent of #3709 (32-bit targets are unsupported on Node 24+), but it should be called out in release notes if any 32-bit dashmate users still rely on auto-update.

nitpick: `win` hardcoded `--targets=win32-x64` duplicates package.json config

scripts/pack_dashmate.sh (line 29)

Now that oclif.update.node.targets includes only win32-x64 for Windows, the --targets=win32-x64 override for pack win is redundant — pack win would derive the same target from the package.json config. The override is harmless and documents intent at the call site, but the two sources of truth can drift if Windows targets are ever extended. Either drop the override or add a comment noting it must be kept in sync with oclif.update.node.targets.

🤖 Prompt for all review comments with AI agents
These findings are from an automated code review. Verify each finding against the current code and only fix it if needed.

- [NITPICK] In `packages/dashmate/package.json`:131-141: `oclif.update.node.targets` also drives the auto-update target list
  `oclif.update.node.targets` is consumed by `oclif pack deb` and `oclif pack macos`, but it is also the canonical list used by oclif's auto-update mechanism (channel manifests via `oclif upload`). After this change the auto-update list is fixed to `linux-x64, linux-arm64, win32-x64, darwin-x64, darwin-arm64`, which means existing 32-bit installs (`linux-armv7l`, `win32-x86`) will silently stop receiving updates. This matches the intent of #3709 (32-bit targets are unsupported on Node 24+), but it should be called out in release notes if any 32-bit dashmate users still rely on auto-update.
- [NITPICK] In `scripts/pack_dashmate.sh`:29-36: `win` hardcoded `--targets=win32-x64` duplicates package.json config
  Now that `oclif.update.node.targets` includes only `win32-x64` for Windows, the `--targets=win32-x64` override for `pack win` is redundant — `pack win` would derive the same target from the package.json config. The override is harmless and documents intent at the call site, but the two sources of truth can drift if Windows targets are ever extended. Either drop the override or add a comment noting it must be kept in sync with `oclif.update.node.targets`.

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.

2 participants