purescript / pursuit

Website for hosting and searching PureScript API documentation
https://pursuit.purescript.org/
Other
170 stars 47 forks source link

[Umbrella] Deprecating packages in `purescript-deprecated` #421

Closed maxdeviant closed 3 years ago

maxdeviant commented 3 years ago

This is the umbrella issue for deprecating the packages living under the purescript-deprecated organization.

As discussed in #400, the approach will be to add the pursuit-deprecated keyword to the packages and publish new versions.

Packages

Here is the list of packages in purescript-deprecated that should be deprecated on Pursuit:

maxdeviant commented 3 years ago

In order to deprecate these packages we'll need the assistance from someone on the @purescript-deprecated team, as it will involve unarchiving each repository so that a new version of the package can be published.

thomashoneyman commented 3 years ago

I haven’t followed along exactly with the process proposed here, but I have access to the team and can help with this.

maxdeviant commented 3 years ago

The process I followed for purescript-strongcheck before running into archival/permissions issues was as follows:

1. Branch off the most recent tag
2. Add the deprecated keyword to bower.json
{
  "name": "purescript-strongcheck",
  "license": "MIT",
  "authors": [
    "John A. De Goes <john@degoes.net> (http://degoes.net)",
    "Phil Freeman <freeman.phil@gmail.com>"
  ],
+  "keywords": ["pursuit-deprecated"]
}
3. Update the repository URL in bower.json to match the registry

I'm guessing this is needed due to the switch to the PureScript registry.

We may also want to consider updating the URLs in the PureScript registry so that they correctly point to the package in the purescript-deprecated org. Not sure if this would cause any problems.

{
  "name": "purescript-strongcheck",
  "license": "MIT",
  "authors": [
    "John A. De Goes <john@degoes.net> (http://degoes.net)",
    "Phil Freeman <freeman.phil@gmail.com>"
  ],
  "keywords": ["pursuit-deprecated"],
  "repository": {
    "type": "git",
-     "url": "git://github.com/purescript-contrib/purescript-strongcheck.git"
+     "url": "https://github.com/purescript-contrib/purescript-strongcheck.git"
  }
}
4. Commit and tag the changes

I just tagged the changes with a minor version bump.

5. Run pulp publish

In theory this should work fine if the repository is unarchived (so it can be written to) and performed by someone with push access to the repository.

maxdeviant commented 3 years ago

@thomashoneyman If you were to unarchive all of the deprecated repositories ahead of time I could PR the required changes for each repository, if you think that would make your job easier.

Although given the relatively small number of repositories and the fairly minimal changes it might be easiest to do it all yourself.

thomashoneyman commented 3 years ago

As you noted, this is probably easiest to just do manually myself given the small number of repositories to update. Thanks for collecting them and adding the update instructions.

thomashoneyman commented 3 years ago

Here's an example: https://pursuit.purescript.org/packages/purescript-strongcheck/5.0.1

maxdeviant commented 3 years ago

Looks good!

One thing to note is that it seems to take a little while for the package to appear deprecated in the search (due to Pursuit's caching mechanisms). I checked right after your last comment and the purescript-strongcheck package page showed the deprecated badge, but the search page did not.

Checking back now (~45 minutes later), it is correctly shown as deprecated in the search as well.

thomashoneyman commented 3 years ago

A number of these libraries are not on Pursuit (too old) so I haven't updated them. Everything on Pursuit is updated, though! Thanks for bringing this up @maxdeviant.