Skip to content

Add PureScript 0.14 migration guide #373

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merged
merged 19 commits into from
Feb 23, 2021
Merged

Add PureScript 0.14 migration guide #373

merged 19 commits into from
Feb 23, 2021

Conversation

thomashoneyman
Copy link
Member

@thomashoneyman thomashoneyman commented Feb 9, 2021

This is a first draft of a migration guide for the 0.14 compiler and core libraries. I believe it covers the most disruptive changes we've made.

If anyone on the core team would like to apply a change to this file that they feel is uncontroversial, please go ahead! You don't need to wait on me to see and apply the feedback. For example, I've included issue and pull request links where possible, but I've missed some -- especially in the library restructuring section as there were so many fragmented ones.

Notes:

I haven't included links to the PureScript 0.14 release notes or announcement because they aren't ready yet, but I can update those links at any time. (We could make an issue to circle back to it, too, so that this can be merged).

I don't know where the proper place to put this file is; ideally we'd end up with one of these migration guides for every ecosystem change. I may have missed previous ones we've put together -- if anyone knows the right place for this file please let me know. Otherwise perhaps we could create a migration-guides directory?

A huge thank you to @JordanMartinez for his draft of ecosystem updates he's been maintaining since we started this whole release, and to the detailed changelogs, notes, and discussions that @kl0tl, @rhendric, @hdgarrood, @garyb, and others have kept when discussing and implementing these changes.

Copy link
Contributor

@JordanMartinez JordanMartinez left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Very well done! Just a few comments and other suggestions. I'll fix some of the obvious things and leave the rest up for more discussion.

@hdgarrood
Copy link
Collaborator

Otherwise perhaps we could create a migration-guides directory?

I think a migration-guides directory is a great idea. Incidentally we already have an 0.10 migration guide in the historical directory, so maybe that could move there?

@thomashoneyman
Copy link
Member Author

I've moved the file to migration-guides/0.14-Migration-Guide.md and can move the 0.10 guide to migration-guides/0.10-Migration-Guide.md later on.

@thomashoneyman
Copy link
Member Author

The historical guides could be moved, but the 0.10 one is quite skimpy and the 0.5-and-before one is a bit of a grab bag. Given the age of those releases, perhaps we should just begin a new tradition with this guide?

@JordanMartinez
Copy link
Contributor

I think all guides, however skimpy or terrible, should go in the migration folder. Otherwise, someone will open an issue and PR fixing that in the future.

Copy link
Member

@kl0tl kl0tl left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I fixed a few things and left a last suggestion. Otherwise this looks very good to me!

Regarding the historical directory: I wouldn’t mind moving the 0.10 migration guide to the migration-guides directory introduced in this pull request, even if its quite succinct. On the other hand the pre-0.5 changelog isn’t even an attempt of a migration guide so I don’t think we should move it.

1. Export the newtype constructors, or
1. Remove the `Newtype` instance -- a breaking change, but the correct option if you used hidden constructors to make your newtype a smart constructor.

#### The `MonadZero` class has been deprecated.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Compiling core modules exporting MonadZero instances, such as Data.List or Data.Maybe, will yield deprecation warnings until we remove the instances. Should we mention that those warnings can be hidden by installing psa and compiling with psa --censor-codes=UserDefinedWarning?

Copy link
Contributor

@JordanMartinez JordanMartinez Feb 18, 2021

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should we mention...

Yeah, we should.

@hdgarrood
Copy link
Collaborator

Let's ignore the issue of the 0.10 migration guide and pre-0.5 release notes for now, there's enough going on in this PR already.

@thomashoneyman thomashoneyman merged commit 263a1bc into master Feb 23, 2021
@thomashoneyman thomashoneyman deleted the migration-guide branch February 23, 2021 04:27
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

5 participants