How to deprecate a package?

I want to deprecate my package purescript-parsing-replace - Pursuit , because it’s now included in Parsing.String.Replace - purescript-parsing - Pursuit . How do I do that?

I think I’ll put a big header on the README that says DEPRECATED et cetera, and I’ll publish that to Pursuit with a patch version.

Should I put a Warn constraint on all of the functions? Probably not? Is there a way place a deprecation warning on the whole package, or on each module?

Should I remove the package from package-sets? I think yes. package-sets/CONTRIBUTING.md at master · purescript/package-sets · GitHub

Is there any other way to indicate on Pursuit that a package is deprecated? Is there a way to remove a package from Pursuit?

Will the new Registry have some facility for deprecation?

2 Likes

I don’t think we have a good deprecation story. For example, the globals library was deprecated by removing it from package set dependencies, updating its readme to indicate that it’s deprecated, moving it to the purescript-deprecated GitHub org, and then archiving it. math will follow a similar path.

I think this sounds good:

  • update the Readme to indicate its deprecated status
  • add a notification to each module header’s docs
  • push a patch release of docs to Pursuit
  • drop it from all package sets dependencies

Not sure about the Registry support for deprecation.

3 Likes

Turns out there is a way to mark a package as deprecated on Pursuit. See Pursuit

How to mark package as deprecated

Package deprecation is a mechanism to tell the end users that your package is no longer supported. When package is marked as deprecated, its contents will not show up in search results on Pursuit (with the only exception of the package name itself). A package can be marked as deprecated by adding a special keyword pursuit-deprecated to keywords section of bower.json and publishing a new version of the package.

4 Likes