The registry is designed to be free of dependency on GitHub directly, and to support multiple packages stored in one location. However, we've explicitly disabled this behavior for now:
|
Git _ -> do |
|
-- TODO: Support non-GitHub packages. Remember subdir when doing so. (See #15) |
|
Except.throw GitHubOnly |
|
|
|
GitHub { owner, repo, subdir } -> do |
|
-- TODO: Support subdir. In the meantime, we verify subdir is not present. (See #16) |
|
when (isJust subdir) $ Except.throw NoSubdir |
|
|
|
case pursPublishMethod of |
|
-- This needs to be removed so that we can support non-GitHub packages (#15) |
|
-- and monorepo packages (#16). |
|
-- |
|
-- However, the PureScript compiler requires packages to be a Git repo |
|
-- with a tag checked out. Until we can replace using the compiler's |
|
-- 'publish' command for docs we have to use this hacky checkout. |
|
LegacyPursPublish -> do |
The reason we've disabled the behavior is for legacy support. There are two forms: legacy package sets and Pursuit.
Legacy Package Sets
We produce legacy package sets, which are packages.dhall files, for the legacy Spago package manager. If I remember correctly, this bakes in the assumption sources are available under src for each GitHub URL. I believe we will have to stop producing legacy package sets when we accept non-GitHub packages and support monorepos. That won't be possible to do until these are complete:
These two jobs will be very fast to do since it's just disabling behavior; while we wait until August 1, 2026 to disable this behavior we could turn to the other issue, which is Pursuit.
Pursuit (Docs)
The compiler itself expects a directory with a SemVer-appropriate Git tag checked out a clean workdir for purs publish (necessary to run to produce docs for Pursuit. I added a carveout for publishing with a purs.json file but there's potential we still have to do other things in the compiler unless we're bypassing purs publish altogether.
On the Pursuit side we have a number of exisitng issues about how Pursuit has no support for mono / polyrepos and bakes in plenty of assumptions about packages being on GitHub. For instance:
The registry is designed to be free of dependency on GitHub directly, and to support multiple packages stored in one location. However, we've explicitly disabled this behavior for now:
registry-dev/app/src/App/Effect/Source.purs
Lines 81 to 96 in 2343b10
The reason we've disabled the behavior is for legacy support. There are two forms: legacy package sets and Pursuit.
Legacy Package Sets
We produce legacy package sets, which are
packages.dhallfiles, for the legacy Spago package manager. If I remember correctly, this bakes in the assumption sources are available undersrcfor each GitHub URL. I believe we will have to stop producing legacy package sets when we accept non-GitHub packages and support monorepos. That won't be possible to do until these are complete:These two jobs will be very fast to do since it's just disabling behavior; while we wait until August 1, 2026 to disable this behavior we could turn to the other issue, which is Pursuit.
Pursuit (Docs)
The compiler itself expects a directory with a SemVer-appropriate Git tag checked out a clean workdir for
purs publish(necessary to run to produce docs for Pursuit. I added a carveout for publishing with apurs.jsonfile but there's potential we still have to do other things in the compiler unless we're bypassingpurs publishaltogether.On the Pursuit side we have a number of exisitng issues about how Pursuit has no support for mono / polyrepos and bakes in plenty of assumptions about packages being on GitHub. For instance: