PureScript continuous prereleases

As of today, PureScript has started publishing prereleases of every post-merge build we run to npm, under the @next tag.

These prerelease builds are like the ‘nightly’ builds of larger projects—they are automated and not subject to the level of human scrutiny and manual testing that we give to our full releases. We can and will change and revert features made available in these builds with no notice. Furthermore, we don’t yet know how long each individual build may remain available—at some point, GitHub (which hosts the actual binaries, not npm) may ask us to start deleting older prereleases. For all of these reasons, we don’t recommend having production projects depend on purescript@next or on specific prerelease versions for more than just testing or release prep purposes.

However, if you’d like to test whether a recently-merged PR resolves an issue for you, get a preview of a new feature, or get a head start on the next big migration, all without building PureScript from source yourself, you can now do this with npm install purescript@next [--no-save|--save-dev|--global]! We are still interested in bug reports from any recent version of PureScript, prerelease or not, so please let us know if you encounter anything unexpected.

If you aren’t interested in being a guinea pig, know that these prerelease builds are versioned with numbers like 0.15.1-2, and npm recognizes that the hyphen means the package is a prerelease and not to be included in ranges like ">0.14" or "^0.15.0". And the @latest tag will continue to refer to the latest full release. So these builds shouldn’t accidentally work their way into anyone’s dependencies, even if you haven’t pinned to a single release version.

14 Likes

Here’s a problem I’m having with these prereleases. I was wondering if anyone has any suggestions.

I now get too many notifications from the PureScript repo. I’m subscribed on GitHub to the PureScript repo, but just for releases. Whenever there is a new release, I make sure to package it in Nixpkgs.

But now there is a prerelease every night, and I get a notification from the PureScript repo every night. This is enough to make me unsubscribe from the PureScript repo, and then stop packaging new releases for Nixpkgs. Does anyone have a good idea of how I can be subscribed to the PureScript repo, but not get notifications for prereleases?

Also, there is a bot that automatically sends PRs to Nixpkgs updating packages when it sees there is a new release on GitHub. Here’s an example of a PR it has produced: purescript: 0.15.2 -> 0.15.3-3 by r-ryantm · Pull Request #174485 · NixOS/nixpkgs · GitHub. The problem is that it doesn’t appear to have any logic preventing it from using things tagged as prereleases on GitHub. So I’ll end up getting pinged on the Nixpkgs repo for these PRs as well. I may end up having to just completely remove myself as a maintainer for purescript on Nixpkgs as well!

I’ve commented on the nixpkgs pull request, as I agree these should not be generated for PureScript prereleases.

As far as the GitHub repo goes, I believe you can use custom notifications to opt-in to issues and pull requests but not releases:

1 Like

Sorry to hear that! It is irritating that GitHub doesn’t seem to have an option to subscribe only to full releases. As a stopgap, you could subscribe instead to releases on Hackage, since we don’t publish prereleases there. You can use this RSS feed directly: purescript – new releases on Hackage

Or subscribe by email via purescript 0.15.2 on Hackage - Libraries.io.

1 Like

Ah, sorry, I should have been specific about this. I do want to be subscribed to releases, but not issues, PRs, or prereleases. I use the notifications about new releases to know when to bump the PureScript version in Nixpkgs.

Oh nice, this sounds like it could be a good solution for me. Didn’t know about libraries.io!