From 33c9445d1fb69ae607c9521510ad319cab382aed Mon Sep 17 00:00:00 2001 From: KJ Monahan Date: Thu, 5 Nov 2026 14:24:56 -0600 Subject: [PATCH 1/2] Publish: install linked es5 dependencies before react publish The react package links es5 via a file: devDependency, so es5's own dependencies must be installed first (same fix as ci.yml). --- .github/workflows/publish.yml | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index 0db73c0..ad5ff20 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -70,6 +70,13 @@ jobs: echo "needed=true" >> "$GITHUB_OUTPUT" fi + # The react package depends on the es5 package via a `file:` link, so + # es5's own dependencies (e.g. @eslint/js) must be installed too. + - name: Install es5 Dependencies (linked by react) + if: steps.check.outputs.needed == 'true' && matrix.package == 'eslint-config-forumone-react' + working-directory: ./packages/eslint-config-forumone-es5 + run: npm ci + - name: Install Dependencies # tiny-mustache has no lockfile or dependencies if: steps.check.outputs.needed == 'true' && hashFiles(format('packages/{0}/package-lock.json', matrix.package)) != '' From 055b38e8a4a70b06e1889b28a3455d26eeba6fa4 Mon Sep 17 00:00:00 2001 From: KJ Monahan Date: Thu, 5 Nov 2026 14:26:54 -0600 Subject: [PATCH 2/2] Publish: run GitHub Packages job even if another package's publish failed; lengthen npm visibility retry --- .github/workflows/publish.yml | 11 +++++++---- 1 file changed, 7 insertions(+), 4 deletions(-) diff --git a/.github/workflows/publish.yml b/.github/workflows/publish.yml index ad5ff20..3b6d566 100644 --- a/.github/workflows/publish.yml +++ b/.github/workflows/publish.yml @@ -128,15 +128,15 @@ jobs: echo "tag=$TAG" >> "$GITHUB_OUTPUT" # The version must be on npm (published now or earlier) before we release it. - # Registry metadata can lag a freshly published version, so retry for ~90s. + # Registry metadata can lag a freshly published version (we've seen ~75s), so retry for ~2.5 min. ON_NPM=false - for attempt in 1 2 3 4 5 6; do + for attempt in 1 2 3 4 5 6 7 8 9 10; do if [[ -n "$(npm view "@forumone/eslint-config-es5@$VERSION" version 2>/dev/null || true)" ]]; then ON_NPM=true break fi echo "Attempt $attempt: @forumone/eslint-config-es5@$VERSION not visible on npm yet." - [[ $attempt -lt 6 ]] && sleep 15 + [[ $attempt -lt 10 ]] && sleep 15 done if [[ "$ON_NPM" != "true" ]]; then echo "@forumone/eslint-config-es5@$VERSION is not on npm; not creating a release." @@ -160,7 +160,10 @@ jobs: # so call the GitHub Packages workflow directly. publish-es5-github: needs: release-es5 - if: needs.release-es5.outputs.created == 'true' + # !cancelled() is required: without a status function, GitHub implicitly adds + # success(), which also fails when any *earlier* job in the chain (e.g. one + # package's publish-npm leg) failed, and would skip this job. + if: ${{ !cancelled() && needs.release-es5.outputs.created == 'true' }} uses: ./.github/workflows/release-eslint-config-es5.yml with: tag_name: ${{ needs.release-es5.outputs.tag }}