Is it ok if I upload docs of packages I don't own to pursuit?


#1

Hi,
purescript newbie here. So far reading the Purescript by example and I like it very much (coming from Haskell). Recently I trying to get some overview about what packages are available on pursuit and found out that the latest docs version of many packages lags behind what’s available in corresponding packages github repo. What’s the accepted “process” for handling this in purescript community.
Should I file a github issue for the maintainer to upload the docs?
Should I clone the package and upload the docs myself using something like pulp publish --no-push? I tried to do that for a randomly chosen package and it worked https://pursuit.purescript.org/packages/purescript-webdriver/6.0.0, but it lists me as the uploader.
Are package authors in general ok with strangers uploading docs for their packages to pursuit?


#2

It’s fine (and appreciated) to upload the docs. Depending on the project, you might want to report if the Travis docs publishing is broken, like if it’s in the purescript org on GitHub.

If you run into problems with publishing the docs with no-push (like not being on a tag), make sure you check out the version commit first.


#3

So today I wrote some code to scrape (a local instance of) pursuit and check how many packages have outdated docs.
Out of ~ 750 packages on pursuit I found 96 with outdated docs.
Granted this also includes non-issues (e.g. purescript/purescript-effect having v2.0.1 as latest tag on GitHub and v2.0.0 docs on Pursuit).
But also many packages that are major version ahead (based on latest GitHub tag) of the docs on pursuit.
Just to make something good for the purescript community, I’ll try to reduce this amount by building and uploading the docs over the next couple of days :slight_smile:

Outdated package docs for ajnsit/purescript-concur. Pursuit :"0.3.3", GitHub: "v0.3.4"
Outdated package docs for alexmingoia/purescript-pux. Pursuit :"12.0.0", GitHub: "v13.0.0"
Outdated package docs for bouzuya/purescript-bouzuya-http-method. Pursuit :"0.2.1", GitHub: "v0.3.0"
Outdated package docs for bouzuya/purescript-bouzuya-http-status-code. Pursuit :"0.1.0", GitHub: "v0.2.0"
Outdated package docs for chfi/purescript-ipfs-api. Pursuit :"0.0.3", GitHub: "v0.0.4"
Outdated package docs for citizennet/purescript-halogen-select. Pursuit :"1.0.1", GitHub: "v4.0.0"
Outdated package docs for colehaus/purescript-intervals. Pursuit :"3.2.0", GitHub: "v4.0.0"
Outdated package docs for collegevine/purescript-intertwine. Pursuit :"0.1.2", GitHub: "v0.2.2"
Outdated package docs for doolse/purescript-dispatcher-react. Pursuit :"3.1.0", GitHub: "v4.0.0"
Outdated package docs for doolse/purescript-react-mui. Pursuit :"3.1.0", GitHub: "v3.6.0"
Outdated package docs for ethul/purescript-rwse-free. Pursuit :"3.1.1", GitHub: "v4.1.0"
Outdated package docs for ethul/purescript-undefinable. Pursuit :"3.0.0", GitHub: "v4.0.0"
Outdated package docs for fehrenbach/purescript-unordered-containers. Pursuit :"0.1.0", GitHub: "v1.6.0"
Outdated package docs for felixschl/purescript-pipes-aff. Pursuit :"0.3.0", GitHub: "v0.5.0"
Outdated package docs for f-o-a-m/purescript-ring-modules. Pursuit :"5.0.0", GitHub: "v5.0.1"
Outdated package docs for f-o-a-m/purescript-uport. Pursuit :"0.1.0", GitHub: "v0.2.0"
Outdated package docs for f-o-a-m/purescript-web3-generator. Pursuit :"0.18.0", GitHub: "v1.0.0"
Outdated package docs for f-o-a-m/purescript-web3. Pursuit :"0.25.1", GitHub: "v1.0.0"
Outdated package docs for funkia/purescript-hareactive. Pursuit :"0.0.5", GitHub: "v0.0.6"
Outdated package docs for garyb/purescript-indexed-monad. Pursuit :"0.2.0", GitHub: "v1.0.0"
Outdated package docs for garyb/purescript-strongcheck-laws. Pursuit :"2.0.0", GitHub: "v3.2.0"
Outdated package docs for hdgarrood/purescript-sequences. Pursuit :"1.0.3", GitHub: "v2.1.0"
Outdated package docs for i-am-tom/purescript-panda. Pursuit :"0.11.0", GitHub: "v0.13.0"
Outdated package docs for jacereda/purescript-slices. Pursuit :"0.1.0", GitHub: "v0.1.1"
Outdated package docs for juspay/purescript-node-websocket. Pursuit :"0.0.2", GitHub: "v0.0.3"
Outdated package docs for justinwoo/purescript-expect-inferred. Pursuit :"0.2.0", GitHub: "v1.0.0"
Outdated package docs for justinwoo/purescript-milkis. Pursuit :"6.0.0", GitHub: "v6.0.1"
Outdated package docs for jutaro/purescript-matrix. Pursuit :"2.0.0", GitHub: "v2.1.0"
Outdated package docs for jutaro/purescript-vector. Pursuit :"2.0.0", GitHub: "v2.10"
Outdated package docs for jutaro/purescript-webgl. Pursuit :"2.0.1", GitHub: "v2.10"
Outdated package docs for kritzcreek/purescript-matrices. Pursuit :"3.0.0", GitHub: "v4.0.0"
Outdated package docs for LukaJCB/purescript-rx-observable. Pursuit :"1.1.3", GitHub: "v1.7.0"
Outdated package docs for lumihq/purescript-react-basic. Pursuit :"7.0.0", GitHub: "v8.0.0"
Outdated package docs for lumihq/purescript-react-dnd-basic. Pursuit :"5.0.0", GitHub: "v6.0.0"
Outdated package docs for mcoffin/purescript-minimist. Pursuit :"0.4.0", GitHub: "v0.5.0"
Outdated package docs for morganthomas/purescript-group. Pursuit :"3.3.0", GitHub: "v4.0.0"
Outdated package docs for mschristiansen/purescript-halogen-bootstrap4. Pursuit :"0.1.2", GitHub: "v0.1.3"
Outdated package docs for natefaubion/purescript-heterogenous. Pursuit :"0.1.0", GitHub: "v0.3.0"
Outdated package docs for natefaubion/purescript-run-streaming. Pursuit :"1.0.0", GitHub: "v2.0.0"
Outdated package docs for natefaubion/purescript-spork. Pursuit :"0.6.0", GitHub: "v1.0.0"
Outdated package docs for natefaubion/purescript-variant. Pursuit :"5.0.0", GitHub: "v5.2.0"
Outdated package docs for nkly/purescript-express. Pursuit :"0.7.0", GitHub: "v0.7.1"
Outdated package docs for nwolverson/purescript-pursuit-lookup. Pursuit :"0.0.1", GitHub: "v0.0.2"
Outdated package docs for opyapeus/purescript-emoji-splitter. Pursuit :"0.1.0", GitHub: "v0.2.0"
Outdated package docs for opyapeus/purescript-pseudo-random. Pursuit :"0.1.0", GitHub: "v0.2.1"
Outdated package docs for paf31/purescript-day. Pursuit :"10.0.0", GitHub: "v10.0.1"
Outdated package docs for paf31/purescript-debugger. Pursuit :"2.0.0", GitHub: "v3.0.0"
Outdated package docs for paf31/purescript-sdom. Pursuit :"0.1.4", GitHub: "v1.0.0"
Outdated package docs for paf31/purescript-thermite. Pursuit :"4.0.0", GitHub: "v5.0.0"
Outdated package docs for parenparen/purescript-p5. Pursuit :"0.7.1", GitHub: "v0.8.0"
Outdated package docs for purescript-contrib/purescript-argonaut-codecs. Pursuit :"5.1.0", GitHub: "v5.1.2"
Outdated package docs for purescript-contrib/purescript-argonaut-generic. Pursuit :"3.0.0", GitHub: "v4.0.0"
Outdated package docs for purescript-contrib/purescript-http-methods. Pursuit :"4.0.1", GitHub: "v4.0.2"
Outdated package docs for purescript-contrib/purescript-string-extras. Pursuit :"1.0.0", GitHub: "v2.0.0"
Outdated package docs for purescripters/purescript-phantom. Pursuit :"3.0.2", GitHub: "v4.0.0"
Outdated package docs for purescript-node/purescript-node-child-process. Pursuit :"4.0.0", GitHub: "v5.0.0"
Outdated package docs for purescript-node/purescript-node-http. Pursuit :"4.1.0", GitHub: "v5.0.0"
Outdated package docs for purescript-node/purescript-node-readline. Pursuit :"3.0.1", GitHub: "v4.0.0"
Outdated package docs for purescript/purescript-catenable-lists. Pursuit :"5.0.0", GitHub: "v5.0.1"
Outdated package docs for purescript/purescript-effect. Pursuit :"2.0.0", GitHub: "v2.0.1"
Outdated package docs for purescript/purescript-foreign-object. Pursuit :"1.0.0", GitHub: "v1.1.0"
Outdated package docs for purescript/purescript-maps. Pursuit :"3.5.0", GitHub: "v3.6.0"
Outdated package docs for purescript/purescript-typelevel-prelude. Pursuit :"3.0.0", GitHub: "v4.0.0"
Outdated package docs for purescript/purescript-validation. Pursuit :"4.1.0", GitHub: "v4.2.0"
Outdated package docs for purescript-web/purescript-web-file. Pursuit :"1.1.0", GitHub: "v1.2.0"
Outdated package docs for rightfold/purescript-fetch. Pursuit :"0.0.8", GitHub: "v0.0.9"
Outdated package docs for rightfold/purescript-logging. Pursuit :"2.0.0", GitHub: "v3.0.0"
Outdated package docs for Risto-Stevcev/purescript-iterable. Pursuit :"1.0.0", GitHub: "v2.0.0"
Outdated package docs for Risto-Stevcev/purescript-properties. Pursuit :"0.3.0", GitHub: "v0.2.0"
Outdated package docs for rnons/purescript-halogen-day-picker. Pursuit :"0.1.2", GitHub: "v0.4.0"
Outdated package docs for rnons/purescript-halogen-storybook. Pursuit :"0.2.0", GitHub: "v0.4.0"
Outdated package docs for rnons/purescript-html-parser-halogen. Pursuit :"0.2.0", GitHub: "v0.3.0"
Outdated package docs for rnons/purescript-svg-parser-halogen. Pursuit :"0.2.0", GitHub: "v1.0.0"
Outdated package docs for sharkdp/purescript-flarecheck. Pursuit :"3.0.0", GitHub: "v4.2.0"
Outdated package docs for sharkdp/purescript-flaredoc. Pursuit :"3.0.0", GitHub: "v4.0.0"
Outdated package docs for slamdata/purescript-affjax-algebra. Pursuit :"4.0.0", GitHub: "v5.0.0"
Outdated package docs for slamdata/purescript-clipboard. Pursuit :"0.2.0", GitHub: "v0.4.0"
Outdated package docs for slamdata/purescript-concurrent-queues. Pursuit :"0.1.0", GitHub: "v1.1.0"
Outdated package docs for slamdata/purescript-css. Pursuit :"3.4.0", GitHub: "v4.0.0"
Outdated package docs for slamdata/purescript-ejson. Pursuit :"9.0.0", GitHub: "v11.0.0"
Outdated package docs for slamdata/purescript-formatters. Pursuit :"3.0.0", GitHub: "v4.0.0"
Outdated package docs for slamdata/purescript-halogen-css. Pursuit :"6.0.0", GitHub: "v8.0.0"
Outdated package docs for slamdata/purescript-halogen. Pursuit :"3.1.3", GitHub: "v4.0.0"
Outdated package docs for slamdata/purescript-halogen-vdom-string-renderer. Pursuit :"0.2.1", GitHub: "v0.2.2"
Outdated package docs for slamdata/purescript-markdown-halogen. Pursuit :"7.0.0", GitHub: "v9.0.1"
Outdated package docs for slamdata/purescript-matryoshka. Pursuit :"0.3.0", GitHub: "v0.4.0"
Outdated package docs for slamdata/purescript-oidc-crypt-utils. Pursuit :"7.0.0", GitHub: "v7.0.1"
Outdated package docs for slamdata/purescript-sql-squared. Pursuit :"0.8.3", GitHub: "v0.13.0"
Outdated package docs for slamdata/purescript-webdriver. Pursuit :"4.0.1", GitHub: "v6.0.0"
Outdated package docs for spicydonuts/purescript-react-basic-hooks. Pursuit :"0.1.0", GitHub: "v0.2.0"
Outdated package docs for Thimoteus/purescript-node-os. Pursuit :"2.1.0", GitHub: "v3.1.0"
Outdated package docs for thimoteus/purescript-snail. Pursuit :"3.0.0", GitHub: "v5.0.0"
Outdated package docs for TinkerTravel/purescript-config. Pursuit :"0.1.0", GitHub: "v0.0.6"
Outdated package docs for tweag/purescript-pux-echarts. Pursuit :"0.1.0", GitHub: "v1.0.0"
Outdated package docs for twitchard/purescript-easy-alexa. Pursuit :"0.0.3", GitHub: "v0.0.10"
Outdated package docs for Unisay/purescript-aff-retry. Pursuit :"1.0.1", GitHub: "v1.2.1"

Interestingly I also found couple of packages whose sources are no longer on GitHub.
Trying to bower install one of these into a project fails. Not sure what to do about those, just pasting that here in case if anyone finds that useful…

athanclark/purescript-big-integer
awkure/purescript-combinators
mbid/purescript-focus-ui
purescript/purescript-intmap
awkure/purescript-mother-monad
purescript/purescript-screeps
rightfold/purescript-substructural

#4

There are a lot of outdated docs because with some 0.12 updates, bower now OOMs when trying to generate the dependency graph that is used during pursuit upload.


#5

It’s perhaps worth nothing that a lot of these are just cases of the backup repo being a bit behind. The backup repo doesn’t get updated for each upload, which means that if you set up a local Pursuit like this it won’t have the latest versions of everything. Just out of the core ones there, effect, catenable-lists, and foreign-object all do have their latest docs on Pursuit, for example.

I also have some code to do this sort of thing, but it makes use of Pursuit’s (admittedly rather basic) API, so while it will put more load on the production Pursuit instance, it will at least give you up-to-date info. It’s very messy though. https://github.com/hdgarrood/pursuit-check-missing/blob/master/src/Main.purs

Incidentally I plan to remove the ability for anyone to upload docs of anyone else’s packages: https://github.com/purescript/pursuit/issues/382. Updating other people’s docs like this is definitely still ok though. I just want to consider adding an ownership check because I think the lack of one means that it’s currently quite easy to accidentally publish over someone else’s library.


#6

Thanks for the pointers.
I checked against pursuit.purescript.org and still found 73 packaged with outdated docs.
I managed to build and upload docs for 30 of them.
As for the remaining 43 my attempts failed for one of the 3 reasons:

  • package didn’t compile with the current version of purs compiler (0.12.2)
  • package couldn’t be uploaded because of the known out-of-memory error that Nathan mentioned (mostly affects halogen and all packages that depend on it)
  • the license specified in package manifest is not a valid SPDX license

#7

BTW adding max_old_space_size might fix OOM issue
node --max_old_space_size=4000 ./node_modules/.bin/pulp foo bar