How to Help Update the Ecosystem to v0.14.0

In Strategy for Updating the Ecosystem to the Upcoming v0.14.0 Release, I said I would post instructions on how you could help.

Here they are. Read through and follow the instructions in https://github.com/jordanmartinez/updatePsLibs

When we get to the purescript-contrib repos, we will likely use a different approach because those libraries use spago rather than bower. We’ll cross that bridge when we get there.

6 Likes

Is there any nix derivation to get the release candidate on nixos? The binary doesn’t work for me.

I believe that @cvlad is working on that right now!

Yeah, I’m using @cvlad easy-purescript-nix like:

let
  # I was forced to use `unstable` (I've it for some other reason locally)
  # to have `gh` working... but I'm in general on an ancient channel: 19.09
  # so this can be irrelevant ;-)
  pkgs = import (/home/paluh/programming/nix/unstable) {};

  easyPS = import (pkgs.fetchFromGitHub {
    owner = "vladciobanu";
    repo = "easy-purescript-nix";
    rev = "d2933b64826fbc2593a2c50dc16e9853512a3016";
    sha256 = "0vlkc71dzrgbg04zjvrk24axywqijfsw50wcbdz0fnywhimsz3ir";
  }) { inherit pkgs; };
in
  pkgs.stdenv.mkDerivation {
    propagatedBuildInputs = [
      pkgs.gitAndTools.gh
      easyPS.spago
      easyPS."purs-0_14_0-rc3"
      easyPS.pscid
      easyPS.purty

   ...
  ];
}
1 Like

If there are many purescripters using purs from nixpkgs, I’d be happy to merge in a PR adding a derivation for the purescript-0.14 rc.

Nixpkgs provides ghcHEAD, so I think a release candidate for PureScript would make sense too.

If anyone wants to put a PR together, feel free to ping me (@cdepillabout) to get it merged.

1 Like

Wouldn’t that mean we’d have to do a breaking change? Right now it seems like nixpkgs.purescript points to 0.13.8, but instead we’d probably have to make it something like haskell where we have nixpkgs.purescript.purs0138 nixpkgs.purescript.pursHEAD etc, right?

I think there are a couple different ways to do it.

I was actually thinking of going ahead and doing this a week ago (or whenever I saw the original announcement here on discourse), but I didn’t think there were too many PureScript maintainers that got purs from nixpkgs, so I didn’t end up doing it. However, it looks like there are at least 3 or 4 people interested, so maybe it is a good idea!

If I were to send a PR to nixpkgs master adding purescript-0.14, I would probably create a new top-level attribute called something like purescript_0_14. So nixpkgs would provide both purescript_0_14 and the normal purescript (which we would keep at version 0.13.8).

When purescript-0.14 is fully released, we could switch the main purescript attribute over to purescript-0.14, and deprecate purescript_0_14.

1 Like

Previously, I mentioned that I would be adding a feature to my tool to remove libraries that have already been updated. I have now updated the genLibDeps command to do that by reading a file that lists all packages that have already been updated and removing them from the output.

You can see the change for the purescript organization repos. It makes it a bit easier to see which repos are blocking the others from getting updated and how much more we have to go until we’re done.

The ./package-query.js file was updated as a result of the changes I made in the purescript-package-graph

2 Likes