Allow force_overwrite when all official plugins are selected #356

Closed
opened 2026-06-07 21:44:49 +00:00 by steve · 0 comments
Owner

The manual publish-official-plugin-assets.yml workflow currently rejects
force_overwrite: true whenever every official plugin checkbox remains enabled.
That blocks legitimate repair publishes where a maintainer explicitly selects all
official plugins in the dispatch UI and still expects the workflow to pass an
explicit plugin list through to registry-assets:publish.

Problem

The publisher script only requires an explicit --plugins selection for
--force-overwrite. The workflow adds --plugins only when fewer than all
plugins are selected, so the workflow turns an explicit UI selection of every
plugin into the same path as the default publish-all behavior and fails early.

Goal

Allow force_overwrite to work when the workflow dispatch supplies an explicit
plugin selection, including the case where every official plugin remains
selected, by passing --plugins whenever overwrite mode is requested.

Scope

  • Update .forgejo/workflows/publish-official-plugin-assets.yml selection logic
    so overwrite mode passes an explicit plugin list even when all official
    plugins are selected.
  • Update release-management spec text to describe the overwrite behavior
    accurately.
  • Validate the workflow change with the relevant script/spec checks.

Non-goals

  • Do not relax registry-assets:publish so --force-overwrite works without an
    explicit plugin list.
  • Do not change deterministic release tags, bundle contents, or registry sync
    tooling.

Acceptance Criteria

  • Workflow dispatch with force_overwrite: true and all official plugin toggles
    enabled passes an explicit --plugins list to registry-assets:publish
    instead of failing early.
  • Non-overwrite runs with all plugin toggles enabled still omit --plugins so
    default publish-all behavior keeps skipping already-published versions.
  • Partial selections continue to pass the selected plugin subset.
  • Release-management spec text matches the workflow behavior.

Implementation Notes

  • Preserve the existing safety distinction between default publish-all and
    explicit overwrite mode.
  • Prefer a narrow workflow-only change unless validation shows a neighboring
    test or spec also needs adjustment.

Suggested Files or Specs To Inspect

  • .forgejo/workflows/publish-official-plugin-assets.yml
  • scripts/publish-official-plugin-assets.mjs
  • spec/src/80-maintenance/release-management.md

Validation Commands

  • pnpm test:scripts
  • pnpm spec:lint

Follow-up Tasks

Implementation Summary

Allow force_overwrite runs to pass an explicit --plugins list from the publish workflow even when every official plugin toggle remains enabled, while preserving default publish-all behavior for non-overwrite runs and updating release-management.md to match.

The manual `publish-official-plugin-assets.yml` workflow currently rejects `force_overwrite: true` whenever every official plugin checkbox remains enabled. That blocks legitimate repair publishes where a maintainer explicitly selects all official plugins in the dispatch UI and still expects the workflow to pass an explicit plugin list through to `registry-assets:publish`. ## Problem The publisher script only requires an explicit `--plugins` selection for `--force-overwrite`. The workflow adds `--plugins` only when fewer than all plugins are selected, so the workflow turns an explicit UI selection of every plugin into the same path as the default publish-all behavior and fails early. ## Goal Allow `force_overwrite` to work when the workflow dispatch supplies an explicit plugin selection, including the case where every official plugin remains selected, by passing `--plugins` whenever overwrite mode is requested. ## Scope - Update `.forgejo/workflows/publish-official-plugin-assets.yml` selection logic so overwrite mode passes an explicit plugin list even when all official plugins are selected. - Update release-management spec text to describe the overwrite behavior accurately. - Validate the workflow change with the relevant script/spec checks. ## Non-goals - Do not relax `registry-assets:publish` so `--force-overwrite` works without an explicit plugin list. - Do not change deterministic release tags, bundle contents, or registry sync tooling. ## Acceptance Criteria - Workflow dispatch with `force_overwrite: true` and all official plugin toggles enabled passes an explicit `--plugins` list to `registry-assets:publish` instead of failing early. - Non-overwrite runs with all plugin toggles enabled still omit `--plugins` so default publish-all behavior keeps skipping already-published versions. - Partial selections continue to pass the selected plugin subset. - Release-management spec text matches the workflow behavior. ## Implementation Notes - Preserve the existing safety distinction between default publish-all and explicit overwrite mode. - Prefer a narrow workflow-only change unless validation shows a neighboring test or spec also needs adjustment. ## Suggested Files or Specs To Inspect - `.forgejo/workflows/publish-official-plugin-assets.yml` - `scripts/publish-official-plugin-assets.mjs` - `spec/src/80-maintenance/release-management.md` ## Validation Commands - `pnpm test:scripts` - `pnpm spec:lint` ## Related Issues - Follow-up to #347 — [Use deterministic official plugin release tags](../closed/347-use-deterministic-official-plugin-release-tags.md) ## Follow-up Tasks ## Implementation Summary Allow force_overwrite runs to pass an explicit --plugins list from the publish workflow even when every official plugin toggle remains enabled, while preserving default publish-all behavior for non-overwrite runs and updating release-management.md to match. <!-- backlog:task_id=TASK-PLUGINS-REGISTRY-014 source_spec=spec/src/80-maintenance/release-management.md related_issue=347 -->
steve added this to the Full Registry V1 milestone 2026-06-07 21:44:49 +00:00
Sign in to join this conversation.
No milestone
No project
No assignees
1 participant
Notifications
Due date
The due date is invalid or out of range. Please use the format "yyyy-mm-dd".

No due date set.

Dependencies

No dependencies set.

Reference
lapis-notes/lapis#356
No description provided.