Skip to content

fix(ci): drop --if-present from the lerna build step so the publish can actually run - #571

Open
izzywdev wants to merge 1 commit into
masterfrom
claude/uuid-generation-rest-api-fckmc3
Open

fix(ci): drop --if-present from the lerna build step so the publish can actually run#571
izzywdev wants to merge 1 commit into
masterfrom
claude/uuid-generation-rest-api-fckmc3

Conversation

@izzywdev

@izzywdev izzywdev commented Aug 4, 2026

Copy link
Copy Markdown
Owner

📋 Description

packages-publish.yml ran for the first time in its life after #563 fixed its owner guard — and failed immediately:

ERR! lerna Unknown arguments: if-present, ifPresent

lerna 10 removed --if-present. The flag was inherited from the workflow's original form and had never executed, because the job was gated on an owner that does not exist, so every run for the life of the file was a skip. Fixing the guard is what first ran this line.

That is the same lesson the guard itself carried, one layer down: a step that never runs is indistinguishable from a step that works.

Three master pushes have failed on this since the merge (2d98dde8, 63125dc4, 2951376c). Nothing has published yet.

🔄 Type of Change

  • 🐛 Bug fix (non-breaking change which fixes an issue)

🧪 Testing

  • Unit tests
  • Integration tests
  • E2E tests
  • Manual testing

Test Configuration:

  • Node.js version: 22.22.2 (CI runs 24.x)
  • npm version: 10.9.7
  • OS: Linux
  • Browser (if applicable): n/a

Test Instructions

npx lerna run build   # 24 projects, exit 0

Ran against this tree: Successfully ran target build for 24 projects, exit 0. Also confirmed npx lerna run --help no longer lists --if-present on lerna 10.0.0, which is what CI resolves.

The flag was never needed either way — lerna run <script> already skips packages that do not define it.

🔧 Implementation Details

Changes Made

  • Backend Changes: none
  • Frontend Changes: none
  • SDK Changes: none

One line in .github/workflows/packages-publish.yml, plus a comment recording why the flag was there and why removing it is safe.

Code Quality

  • Code follows the project's coding standards
  • Self-review of code completed
  • Code is commented, particularly in hard-to-understand areas
  • No console.log or debugging statements left in code

Documentation

  • Documentation has been updated (if applicable)
  • API documentation updated (if applicable)
  • README updated (if applicable)
  • Migration guide provided (for breaking changes)

🚨 Breaking Changes

None.

📋 Checklist

Pre-submission

  • I have performed a self-review of my code
  • I have commented my code, particularly in hard-to-understand areas
  • I have made corresponding changes to the documentation
  • My changes generate no new warnings or errors
  • I have added tests that prove my fix is effective — the fix is a CI workflow line; the publish run itself is the test
  • New and existing unit tests pass locally with my changes

Code Quality

  • Code follows conventional commit format
  • TypeScript strict mode passes
  • ESLint passes without errors
  • No security vulnerabilities introduced
  • Performance impact considered and documented

🎯 Reviewers

  • Whoever owns the release path — this is the last thing between the repo and its first-ever package publish

📝 Additional Notes

Deployment Notes

  • Requires database migration
  • Requires environment variable changes
  • Requires dependency updates
  • Requires configuration changes

On merge this should publish ~18 packages under @izzywdev/fuzefront-* for the first time. Worth watching the run rather than assuming green means published — the 8 transform tests and the --dry-run step both already pass, so the remaining unknowns are the registry write itself and the packages: write token scope.

Future Work

  • Converting backend/Dockerfile, backend/security/Dockerfile, frontend/Dockerfile and services/billing-service/Dockerfile to npm ci (FFRNT-254 follow-up). feat(identity): namespace + adoption gates, L1 ref_index, lockfile-honouring images, and a publish path that actually publishes #563 attempted and reverted this; master's e2e runs since confirm the revert was correct — OIDC Plumbing and E2E (sign-in) are both green again post-merge. The exemptions in scripts/check-dockerfile-lockfile.mjs carry the reasoning.
  • Unrelated, seen in the e2e logs: Permit sync ran WITHOUT the app registry — every self-registered product policy was omitted, caused by column "slug" does not exist on apps. Fails soft, so products registered through the app registry silently end up with no roles in Permit.

🔄 Backwards Compatibility

  • Fully backwards compatible

Generated by Claude Code

…d it

The publish workflow ran for the first time in its life after #563 fixed its
owner guard, and failed immediately:

  ERR! lerna Unknown arguments: if-present, ifPresent

The flag was inherited from the workflow's original form and had never
executed — the job was gated on an owner that does not exist, so every run for
the life of the file was a skip. Fixing the guard is what first ran this line,
which is the same lesson the guard itself carried: a step that never runs is
indistinguishable from a step that works.

`lerna run <script>` already skips packages that do not define it, so the flag
was never needed. Verified locally against this tree: 24 projects built, exit 0.

Three master pushes have failed on this since the merge (2d98dde, 63125dc,
2951376). Nothing has published yet.
@github-actions
github-actions Bot enabled auto-merge (squash) August 4, 2026 22:25
@github-actions

github-actions Bot commented Aug 4, 2026

Copy link
Copy Markdown
Contributor

Automated code review (gate-code-review)

Credit balance is too low

Report-only — this check never blocks merge.

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