Skip to content
This repository was archived by the owner on Feb 12, 2024. It is now read-only.
This repository was archived by the owner on Feb 12, 2024. It is now read-only.

v1 of things #2657

@achingbrain

Description

@achingbrain

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

Metadata

Metadata

Assignees

No one assigned

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions