Skip to content

Commit 8a1897f

Browse files
Allow empty package sets in package set update, if compiler is set (#611)
1 parent 1c3ab93 commit 8a1897f

File tree

1 file changed

+17
-14
lines changed

1 file changed

+17
-14
lines changed

app/src/App/API.purs

Lines changed: 17 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -214,20 +214,23 @@ packageSetUpdate payload = do
214214
, PackageSets.printRejections candidates.rejected
215215
]
216216

217-
if Map.isEmpty candidates.accepted then do
218-
Except.throw "No packages in the suggested batch can be processed; all failed validation checks."
219-
else do
220-
let changeSet = candidates.accepted <#> maybe Remove Update
221-
Notify.notify "Attempting to build package set update."
222-
PackageSets.upgradeAtomic latestPackageSet (fromMaybe prevCompiler payload.compiler) changeSet >>= case _ of
223-
Nothing ->
224-
Except.throw "The package set produced from this suggested update does not compile."
225-
Just packageSet -> do
226-
let commitMessage = PackageSets.commitMessage latestPackageSet changeSet (un PackageSet packageSet).version
227-
Registry.writePackageSet packageSet commitMessage
228-
Notify.notify "Built and released a new package set! Now mirroring to the package-sets repo..."
229-
Registry.mirrorPackageSet packageSet
230-
Notify.notify "Mirrored a new legacy package set."
217+
when (Map.isEmpty candidates.accepted) $ case payload.compiler of
218+
Just compiler | compiler > prevCompiler ->
219+
Log.debug $ "No packages in the suggested batch can be processed, but the compiler version " <> Version.print compiler <> " was upgraded."
220+
_ ->
221+
Except.throw "No packages in the suggested batch can be processed (all failed validation checks) and the compiler version was not upgraded, so there is no upgrade to perform."
222+
223+
let changeSet = candidates.accepted <#> maybe Remove Update
224+
Notify.notify "Attempting to build package set update."
225+
PackageSets.upgradeAtomic latestPackageSet (fromMaybe prevCompiler payload.compiler) changeSet >>= case _ of
226+
Nothing ->
227+
Except.throw "The package set produced from this suggested update does not compile."
228+
Just packageSet -> do
229+
let commitMessage = PackageSets.commitMessage latestPackageSet changeSet (un PackageSet packageSet).version
230+
Registry.writePackageSet packageSet commitMessage
231+
Notify.notify "Built and released a new package set! Now mirroring to the package-sets repo..."
232+
Registry.mirrorPackageSet packageSet
233+
Notify.notify "Mirrored a new legacy package set."
231234

232235
type AuthenticatedEffects r = (REGISTRY + STORAGE + GITHUB + PACCHETTIBOTTI_ENV + NOTIFY + LOG + EXCEPT String + AFF + EFFECT + r)
233236

0 commit comments

Comments
 (0)