-
Notifications
You must be signed in to change notification settings - Fork 1.2k
v1 of things #2657
Description
We should release v1 of most things*.
Right now everything is 0.x.0 which means we only have minor and patch releases available to us and according to semver 0.7.0 is incompatible with 0.8.0.
This has led to the situation in js-ipfs where after an npm install you currently get 26 (26!) copies of multihashing-async in your node_modules folder, because ipfs depends on 0.8.0 and most other modules depend on 0.7.0.
Because we don't automatically pull these new versions in, a lot of busywork is created** to manage the cascade of releases required to keep everything up to date and in this case the change between [email protected] and [email protected] was a new feature so it's a problem entirely of our own making.
We could release bug fixes and new features as 0.x.x releases, but now we're just making the rules up as we go along.
Semver is obviously not a magic bullet, we may accidentally release breaking changes as minors in the future but it seems weird to deny ourselves the opportunity to get it right, particularly when we have lots of modules with relatively stable APIs.
* = primarily anything that isn't a top-level project (e.g. js-ipfs, js-libp2p, js-ipld) though even then,
would it be so bad? ipfs-http-client is on v40 and no-one seems to be complaining.
** = Greenkeeper/dependabot can help here but the volume of updates can be high and the modules still have be manually released***
*** = GitHub actions**** can help here but the modules still have to be released in a specific order
**** = why are we inventing so much infrastructure and process when we could just use semver?
cc @ipfs/wg-js-core and @ipfs/repos-javascript