Skip to content

Remove legacy manifest publishing and package-set mirroring - #818

Open
thomashoneyman wants to merge 3 commits into
masterfrom
retire-legacy-publishing
Open

thomashoneyman wants to merge 3 commits into
masterfrom
retire-legacy-publishing

Conversation

@thomashoneyman

@thomashoneyman thomashoneyman commented Oct 23, 2026 •

Copy link
Copy Markdown
Member

Now that the core, contrib, web, node, and halogen libraries have migrated to modern Spago, we can go ahead with #744 and #745.

This is split into three commits. The first removes publishing from bower.json and spago.dhall, so packages must provide purs.json or spago.yaml. The second stops mirroring package sets to purescript/package-sets, including the legacy JSON sets, Dhall sets, compatibility map, and release tags. The third removes the Dhall specification types and tools. We already have PureScript codecs for the registry types, so there’s no need to also run manifests through Dhall.

While doing this, I also removed the unused GitHub file-content fetching code and the dependencies and tests that only existed for it.

Existing published packages and legacy package-set releases are left alone. However, publishing from an old tag containing only a legacy manifest will no longer work. That includes retries to finish an incomplete publication or upload missing documentation — those sources need a supported manifest too.

There are a few follow-ups outside this repository, tracked in #745:

  • Remove the purescript/package-sets workflow that still uploads Dhall release assets when a psc-* tag is pushed. Existing releases should remain available.
  • Remove the obsolete DHALL_TYPES setting and update the legacy-publishing documentation in purescript/registry. Its daily jobs are still needed.
  • Remove or update Try PureScript’s release-preparation script, which still uses legacy Spago.
  • Announce that legacy sets are frozen and that publishing requires a supported manifest.

I don’t think these need to block this PR, but we should do them as part of the rollout rather than consider the deprecation finished when this merges.

Require purs.json or spago.yaml for new source publications, including retries. Remove conversion code and its SemVer dependency while retaining stored package compatibility and license detection.
Remove legacy repository writes, JSON and Dhall conversion, compatibility maps, and release tags. Retain modern registry package sets and assert they publish without a legacy checkout or API requests.
Use the existing manifest codec and canonical-license check. Remove schema resources, Dhall tooling, obsolete fixtures, and unused GitHub and source-fetching paths with their dependencies.

Keep version normalization in a small shared utility. Remove automatic inclusion of unsupported manifests and regenerate synthetic publication archives while preserving published fixture data.
@thomashoneyman
thomashoneyman force-pushed the retire-legacy-publishing branch from 90c227b to ce73c96 Compare October 23, 2026 20:11

This branch has not been deployed

No deployments
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.

1 participant