spago-legacy: 0.21.0 -> 0.21.1, rename from spago

See https://github.com/purescript/spago-legacy/pull/3.

Co-authored-by: Peter Becich <peterbecich@gmail.com>
This commit is contained in:
sternenseemann
2025-09-23 13:22:37 +02:00
parent 14c85cbfc9
commit 401566541b
12 changed files with 64 additions and 170 deletions
@@ -50,4 +50,4 @@ echo
echo "Finished. Make sure you run the following commands to confirm PureScript builds correctly:"
echo ' - `nix build -L -f ./. purescript`'
echo ' - `nix build -L -f ./. purescript.passthru.tests.minimal-module`'
echo ' - `sudo nix build -L -f ./. spago.passthru.tests --option sandbox relaxed`'
echo ' - `sudo nix build -L -f ./. spago-legacy.passthru.tests --option sandbox relaxed`'
@@ -2769,7 +2769,6 @@ with haskellLib;
let
# We need to build purescript with these dependencies and thus also its reverse
# dependencies to avoid version mismatches in their dependency closure.
# TODO: maybe unify with the spago overlay in configuration-nix.nix?
purescriptOverlay = self: super: {
# As of 2021-11-08, the latest release of `language-javascript` is 0.7.1.0,
# but it has a problem with parsing the `async` keyword. It doesn't allow
@@ -61,7 +61,6 @@ extra-packages:
- extensions == 0.1.0.1 # 2025-09-21: needed for Cabal 3.10 (fourmolo/ormolu with ghc 9.8)
- fourmolu == 0.14.0.0 # 2023-11-13: for ghc-lib-parser 9.6 compat
- fourmolu == 0.15.0.0 # 2025-09-21: for ghc-lib-parser 9.8 compat
- fsnotify < 0.4 # 2024-04-22: required by spago-0.21
- fuzzyset == 0.2.4 # 2023-12-20: Needed for building postgrest > 10
- ghc-exactprint == 0.6.* # 2022-12-12: needed for GHC < 9.2
- ghc-exactprint == 1.5.* # 2023-03-30: needed for GHC == 9.2
@@ -116,7 +115,6 @@ extra-packages:
- text-builder < 1 # 2025-08-27: Needed for building postgrest
- text-builder-dev < 0.4 # 2025-08-27: Needed for building postgrest
- text-metrics < 0.3.3 # 2025-02-08: >= 0.3.3 uses GHC2021
- versions < 6 # 2024-04-22: required by spago-0.21
- weeder == 2.3.* # 2022-05-31: preserve for GHC 9.0.2
- weeder == 2.4.* # 2023-02-02: preserve for GHC 9.2.*
# keep-sorted end
@@ -1081,7 +1081,7 @@ builtins.intersectAttrs super {
addBuildTool self.buildHaskellPackages.gtk2hs-buildtools super.pango
);
spago =
spago-legacy =
let
docsSearchApp_0_0_10 = pkgs.fetchurl {
url = "https://github.com/purescript/purescript-docs-search/releases/download/v0.0.10/docs-search-app.js";
@@ -1103,49 +1103,43 @@ builtins.intersectAttrs super {
sha256 = "1hjdprm990vyxz86fgq14ajn0lkams7i00h8k2i2g1a0hjdwppq6";
};
in
lib.pipe
(super.spago.override {
# base <4.19, text <2.1
versions = doJailbreak self.versions_5_0_5;
fsnotify = self.fsnotify_0_3_0_1;
})
[
(overrideCabal (drv: {
postUnpack = (drv.postUnpack or "") + ''
# Spago includes the following two files directly into the binary
# with Template Haskell. They are fetched at build-time from the
# `purescript-docs-search` repo above. If they cannot be fetched at
# build-time, they are pulled in from the `templates/` directory in
# the spago source.
#
# However, they are not actually available in the spago source, so they
# need to fetched with nix and put in the correct place.
# https://github.com/spacchetti/spago/issues/510
cp ${docsSearchApp_0_0_10} "$sourceRoot/templates/docs-search-app-0.0.10.js"
cp ${docsSearchApp_0_0_11} "$sourceRoot/templates/docs-search-app-0.0.11.js"
cp ${purescriptDocsSearch_0_0_10} "$sourceRoot/templates/purescript-docs-search-0.0.10"
cp ${purescriptDocsSearch_0_0_11} "$sourceRoot/templates/purescript-docs-search-0.0.11"
lib.pipe super.spago-legacy [
(overrideCabal (drv: {
postUnpack = (drv.postUnpack or "") + ''
# Spago includes the following two files directly into the binary
# with Template Haskell. They are fetched at build-time from the
# `purescript-docs-search` repo above. If they cannot be fetched at
# build-time, they are pulled in from the `templates/` directory in
# the spago source.
#
# However, they are not actually available in the spago source, so they
# need to fetched with nix and put in the correct place.
# https://github.com/spacchetti/spago/issues/510
cp ${docsSearchApp_0_0_10} "$sourceRoot/templates/docs-search-app-0.0.10.js"
cp ${docsSearchApp_0_0_11} "$sourceRoot/templates/docs-search-app-0.0.11.js"
cp ${purescriptDocsSearch_0_0_10} "$sourceRoot/templates/purescript-docs-search-0.0.10"
cp ${purescriptDocsSearch_0_0_11} "$sourceRoot/templates/purescript-docs-search-0.0.11"
# For some weird reason, on Darwin, the open(2) call to embed these files
# requires write permissions. The easiest resolution is just to permit that
# (doesn't cause any harm on other systems).
chmod u+w \
"$sourceRoot/templates/docs-search-app-0.0.10.js" \
"$sourceRoot/templates/purescript-docs-search-0.0.10" \
"$sourceRoot/templates/docs-search-app-0.0.11.js" \
"$sourceRoot/templates/purescript-docs-search-0.0.11"
'';
}))
# For some weird reason, on Darwin, the open(2) call to embed these files
# requires write permissions. The easiest resolution is just to permit that
# (doesn't cause any harm on other systems).
chmod u+w \
"$sourceRoot/templates/docs-search-app-0.0.10.js" \
"$sourceRoot/templates/purescript-docs-search-0.0.10" \
"$sourceRoot/templates/docs-search-app-0.0.11.js" \
"$sourceRoot/templates/purescript-docs-search-0.0.11"
'';
}))
# Tests require network access.
dontCheck
# Tests require network access.
dontCheck
# Overly strict upper bound on text
doJailbreak
# Overly strict upper bound on text (<1.3)
doJailbreak
# Generate shell completion for spago
(self.generateOptparseApplicativeCompletions [ "spago" ])
];
# Generate shell completion for spago
(self.generateOptparseApplicativeCompletions [ "spago" ])
];
# checks SQL statements at compile time, and so requires a running PostgreSQL
# database to run it's test suite
-100
View File
@@ -245191,63 +245191,6 @@ self: {
}
) { };
fsnotify_0_3_0_1 = callPackage (
{
mkDerivation,
async,
base,
bytestring,
containers,
directory,
filepath,
hinotify,
random,
shelly,
tasty,
tasty-hunit,
temporary,
text,
time,
unix,
unix-compat,
}:
mkDerivation {
pname = "fsnotify";
version = "0.3.0.1";
sha256 = "19bdbz9wb9jvln6yg6qm0hz0w84bypvkxf0wjhgrgd52f9gidlny";
revision = "3";
editedCabalFile = "0n5p6ljx8i5mmalkw05izjgzbqg08y7rxxn2gk8ghxlqldgqgix9";
libraryHaskellDepends = [
async
base
bytestring
containers
directory
filepath
hinotify
shelly
text
time
unix
unix-compat
];
testHaskellDepends = [
async
base
directory
filepath
random
tasty
tasty-hunit
temporary
unix-compat
];
description = "Cross platform library for file change notification";
license = lib.licenses.bsd3;
hydraPlatforms = lib.platforms.none;
}
) { };
fsnotify = callPackage (
{
mkDerivation,
@@ -706659,49 +706602,6 @@ self: {
}
) { };
versions_5_0_5 = callPackage (
{
mkDerivation,
base,
deepseq,
hashable,
megaparsec,
microlens,
parser-combinators,
QuickCheck,
tasty,
tasty-hunit,
tasty-quickcheck,
text,
}:
mkDerivation {
pname = "versions";
version = "5.0.5";
sha256 = "01kn3ilizzm5n05nz0qry1vjb6bj8dzinyqn3mbshds298acn70c";
libraryHaskellDepends = [
base
deepseq
hashable
megaparsec
parser-combinators
text
];
testHaskellDepends = [
base
megaparsec
microlens
QuickCheck
tasty
tasty-hunit
tasty-quickcheck
text
];
description = "Types and parsers for software version numbers";
license = lib.licenses.bsd3;
hydraPlatforms = lib.platforms.none;
}
) { };
versions = callPackage (
{
mkDerivation,
@@ -44,9 +44,9 @@ self: super:
# https://github.com/channable/vaultenv/issues/1
vaultenv = self.callPackage ../tools/haskell/vaultenv { };
# spago is not released to Hackage.
# spago-legacy is not released to Hackage.
# https://github.com/spacchetti/spago/issues/512
spago = self.callPackage ../tools/purescript/spago/spago.nix { };
spago-legacy = self.callPackage ../tools/purescript/spago-legacy/spago-legacy.nix { };
# Unofficial fork until PRs are merged https://github.com/pcapriotti/optparse-applicative/pulls/roberth
# cabal2nix --maintainer roberth https://github.com/hercules-ci/optparse-applicative.git > pkgs/development/misc/haskell/hercules-ci-optparse-applicative.nix
@@ -4,7 +4,7 @@
lib,
# The following are only needed for the passthru.tests:
spago,
spago-legacy,
cacert,
git,
nodejs,
@@ -12,11 +12,11 @@
runCommand,
}:
lib.pipe haskellPackages.spago [
lib.pipe haskellPackages.spago-legacy [
haskell.lib.compose.justStaticExecutables
(haskell.lib.compose.overrideCabal (oldAttrs: {
changelog = "https://github.com/purescript/spago/releases/tag/${oldAttrs.version}";
changelog = "https://github.com/purescript/spago-legacy/releases/tag/${oldAttrs.version}";
passthru = (oldAttrs.passthru or { }) // {
updateScript = ./update.sh;
@@ -25,10 +25,10 @@ lib.pipe haskellPackages.spago [
# network, so they cannot be run in the nix sandbox. sudo is needed in
# order to change the sandbox option.
#
# $ sudo nix-build -A spago.passthru.tests --option sandbox relaxed
# $ sudo nix-build -A spago-legacy.passthru.tests --option sandbox relaxed
#
tests =
runCommand "spago-tests"
runCommand "spago-legacy-tests"
{
__noChroot = true;
nativeBuildInputs = [
@@ -36,7 +36,7 @@ lib.pipe haskellPackages.spago [
git
nodejs
purescript
spago
spago-legacy
];
}
''
@@ -62,12 +62,12 @@
zlib,
}:
mkDerivation {
pname = "spago";
version = "0.21.0";
pname = "spago-legacy";
version = "0.21.1";
src = fetchgit {
url = "https://github.com/purescript/spago.git";
sha256 = "1v5y15nhw6smnir0y7y854pa70iv8asxsqph2y8rz1c9lkz5d41g";
rev = "c354f4a461f65fcb83aaa843830ea1589f6c7179";
url = "https://github.com/purescript/spago-legacy.git";
sha256 = "18p9cic1y9b2v12np4b5sd82rz5njxh8f1vgqs4gwm6xjccmszmr";
rev = "2790261c28f59940f192c56f3b8245b3ae8b798d";
fetchSubmodules = true;
};
isLibrary = true;
@@ -148,7 +148,7 @@ mkDerivation {
versions
];
testToolDepends = [ hspec-discover ];
homepage = "https://github.com/purescript/spago#readme";
homepage = "https://github.com/purescript/spago-legacy#readme";
license = lib.licenses.bsd3;
mainProgram = "spago";
}
@@ -1,10 +1,10 @@
#!/usr/bin/env nix-shell
#!nix-shell -i bash -p curl jq haskellPackages.cabal2nix-unstable.bin nix-prefetch-scripts -I nixpkgs=.
#
# This script will update the spago derivation to the latest version using
# This script will update the spago-legacy derivation to the latest version using
# cabal2nix.
#
# Note that you should always try building spago after updating it here, since
# Note that you should always try building spago-legacy after updating it here, since
# some of the overrides in pkgs/development/haskell/configuration-nix.nix may
# need to be updated/changed.
@@ -14,26 +14,28 @@ set -eo pipefail
script_dir="$( cd "$( dirname "${BASH_SOURCE[0]}" )" >/dev/null 2>&1 && pwd )"
# Spago derivation created with cabal2nix.
spago_derivation_file="${script_dir}/spago.nix"
spago_derivation_file="${script_dir}/spago-legacy.nix"
# This is the current revision of spago in Nixpkgs.
# This is the current revision of spago-legacy in Nixpkgs.
old_version="$(sed -En 's/.*\bversion = "(.*?)".*/\1/p' "$spago_derivation_file")"
# This is the latest release version of spago on GitHub.
new_version=$(curl --silent "https://api.github.com/repos/purescript/spago/releases" | jq '.[0].tag_name' --raw-output)
# This is the latest release version of spago-legacy on GitHub.
new_version=$(curl --silent "https://api.github.com/repos/purescript/spago-legacy/releases" | jq '.[0].tag_name' --raw-output)
echo "Updating spago from old version $old_version to new version $new_version."
echo "Updating spago-legacy from old version $old_version to new version $new_version."
echo "Running cabal2nix and outputting to ${spago_derivation_file}..."
echo "# This has been automatically generated by the script" > "$spago_derivation_file"
echo "# ./update.sh. This should not be changed by hand." >> "$spago_derivation_file"
cabal2nix --revision "$new_version" "https://github.com/purescript/spago.git" >> "$spago_derivation_file"
cabal2nix --revision "$new_version" "https://github.com/purescript/spago-legacy.git" >> "$spago_derivation_file"
nixfmt "$spago_derivation_file"
# TODO: This should ideally also automatically update the docsSearchVersion
# from pkgs/development/haskell/configuration-nix.nix.
echo
echo "Finished. Make sure you run the following commands to confirm Spago builds correctly:"
echo ' - `nix build -L -f ./. spago`'
echo ' - `sudo nix build -L -f ./. spago.passthru.tests --option sandbox relaxed`'
echo ' - `nix build -L -f ./. spago-legacy`'
echo ' - `sudo nix build -L -f ./. spago-legacy.passthru.tests --option sandbox relaxed`'
+1
View File
@@ -2343,6 +2343,7 @@ mapAliases {
soundOfSorting = sound-of-sorting; # Added 2023-07-07
SP800-90B_EntropyAssessment = sp800-90b-entropyassessment; # Added on 2024-06-12
SPAdes = spades; # Added 2024-06-12
spago = spago-legacy; # Added 2025-09-23
spark2014 = gnatprove; # Added 2024-02-25
space-orbit = throw "'space-orbit' has been removed because it is unmaintained; Debian upstream stopped tracking it in 2011."; # Added 2025-06-08
spatialite_gui = throw "spatialite_gui has been renamed to spatialite-gui"; # Added 2025-01-12
+1 -1
View File
@@ -5101,7 +5101,7 @@ with pkgs;
purenix = haskell.lib.compose.justStaticExecutables haskellPackages.purenix;
spago = callPackage ../development/tools/purescript/spago { };
spago-legacy = callPackage ../development/tools/purescript/spago-legacy { };
pulp = nodePackages.pulp;
+1 -1
View File
@@ -334,7 +334,7 @@ let
shellcheck-minimal
sourceAndTags
spacecookie
spago
spago-legacy
specup
splot
stack