purescript-contrib / governance

Guidelines and resources for the PureScript Contributors organization
15 stars 3 forks source link

Update Contrib libraries to v0.14.0 #35

Closed JordanMartinez closed 3 years ago

JordanMartinez commented 3 years ago

When we decide to start updating these, we'll use this issue to track which repos we've done and which we have yet to do, similar to purescript/purescript#3942

I'm merely opening this issue for the time being and expect to edit this opening comment with more details later.


Tracking issues and pull requests to merge before 0.14: https://github.com/issues?q=is%3Aopen+archived%3Afalse+user%3Apurescript-contrib+label%3A%22fix+before+0.14%22

JordanMartinez commented 3 years ago

One thing my script isn't doing is checking for usages of Proxy. I'm gong to update my scripts to recursively search through the src and test directory to find such usages.

JordanMartinez commented 3 years ago

See the original comment for source of content below:


Role annotations are only necessary to relax the nominal roles of foreign data types or to restrict the roles of phantom parameters when they should satisfy some implicit invariant.

There’s no such types here: Forget and Tagged have phantom parameters but as far as I know there’s no invariant to preserve by restricting their roles.

I have audited the purescript-contrib org again to confirm but all the types benefiting from more precise roles have pull requests already:

kl0tl commented 3 years ago

The following packages mention SProxy (see https://github.com/search?q=SProxy+user%3Apurescript-contrib+language%3APureScript&type=code): argonaut-codecs, argonaut-generic, profunctor-lenses, pathy, react and uri.

Only argonaut-codecs mention RLProxy (see https://github.com/search?q=RLProxy+user%3Apurescript-contrib+language%3APureScript&type=code)

RProxy, BProxy and OProxy aren’t mentioned in any contrib library.

JordanMartinez commented 3 years ago

Just FYI. Some of the contrib libraries aren't showing up in my list because their repos were transferred to this organization. Thus, the 'grep' solution I'm using to find all contrib libraries won't work because the URL to the repo refers to the original repo (e.g. slamdata/purescript-pathy), not the current repo (e.g. purescript-contrib/purescript-pathy).

I think this is also why purescript-graphs didn't show up in my list for core libraries.

JordanMartinez commented 3 years ago

This one still hasn't gotten a review: https://github.com/purescript-contrib/purescript-argonaut-codecs/pull/90

JordanMartinez commented 3 years ago

These repos don't show up in my list for contrib. Checkbox below means I've created a PR for them. If it's unchcked. Something is blocking it, or I haven't submitted a PR for it yet.

JordanMartinez commented 3 years ago

Besides the repos above that weren't on my list, the only other repos that haven't had a PR submitted are:

thomashoneyman commented 3 years ago

Oh, shoot, the purescript-web and purescript-node organizations have to be done too, that's right.

JordanMartinez commented 3 years ago

Yeah.... haha

JordanMartinez commented 3 years ago

Here's a situation where MonadZero's guard is used: https://github.com/purescript-contrib/purescript-formatters/blob/main/test/src/DateTime.purs#L108

JordanMartinez commented 3 years ago

I've submitted all PRs to all contrib repos, but not all of these will build due to dependencies on node and web libraries.

Also, the jquery lib I mentioned above is owned by paf31, so I don't think it should be updated here.

JordanMartinez commented 3 years ago

I added all the libraries that were updated to the prepare-0.14 package set's updatedLibs.dhall file to verify that everything still compiles. I added purescript-graphs to the package set and added purescript-concurrent-queues to the package set.

During one of the changes I made, CI complained about pathy and aff-bus, which surprised me because these have been updated. When I looked for their files, I found that those two packages were defined in the slamdata.dhall file (aff-bus and pathy). Should these packages (and others that were transferred to the contrib org be moved into the purescript-contrib.dhall file? We've already done something like that for the numbers repo that was transferred to the purescript org.

thomashoneyman commented 3 years ago

Yea, let's transfer those!

thomashoneyman commented 3 years ago

Quick heads up here: the -web and -node organizations are on their way to be updated for 0.14, which will leave us just merging outstanding issues and pull requests across organization libraries for the rest of the month. I'll also be working with @garyb on a new release for Halogen and the core team will be making sure Pursuit is ready to go for 0.14. With all of this in motion we're getting quite close to the finish line!

thomashoneyman commented 3 years ago

At this point we only have these libraries to go, which are blocked by the missing encode / decode URI component functions -- solved if we do https://github.com/purescript-contrib/purescript-form-urlencoded/pull/20#issuecomment-739418901:

~We also have https://github.com/purescript-contrib/purescript-css.~

JordanMartinez commented 3 years ago

CSS was merged I believe.

thomashoneyman commented 3 years ago

The four libraries which are blocked (above) can be resolved once this library is published:

https://github.com/purescript-contrib/purescript-js-uri

thomashoneyman commented 3 years ago

These libraries are now all complete! I am going to make a followup issue about issues marked 'fix for 0.14', but the libraries themselves are now all compatible with 0.14.