kubo
kubo copied to clipboard
Minimal rename of go-ipfs in 2022Q2
This is part of https://github.com/ipfs/ipfs/issues/470, read that first.
What
IPFS Stewards are renaming go-ipfs to something else :snowflake:
:point_right: Feel free to comment in https://github.com/ipfs/ipfs/discussions/471 with name (and logo like one in https://github.com/ipfs/go-ipfs/pull/8958).
Note: we reserve the right to ignore every instance of Boaty McBoatface.
Why
This is part of a wider, long ecosystem epic (see https://github.com/ipfs/ipfs/issues/470) where we clarify that IPFS is a set of interoperable protocols and conventions, and not a specific implementation, like go-ipfs.
tl;dr:
- go-ipfs will stop squatting "IPFS" name
- we want to encourage people to create their own implementations
- makes it easier to think in terms of "IPFS protocol, libraries and specs" and "IPFS implementations" that are built with the former
When
This will take time, but we want to do the basic rename of project / repo (scope tbd) before July 2022
How
The scope is TBD, we are identifying potential breakage in https://github.com/ipfs/go-ipfs/pull/8958.
Current proposal is to:
:green_circle: Rename before July
- [x] README and internal docs
- [x] Git repo and
github.com/ipfs/go-ipfs/imports- Caveat: this will impact dist.ipfs.io artifact names. We want to limit the blast radius, so will be building dist under both new and old names, that way no external tooling built in the past 7 years will be broken. PoC in https://github.com/ipfs/distributions/pull/717
- [x] https://ipfs.io/#install – PR: https://github.com/ipfs/ipfs-website/pull/143
- [x] https://docs.ipfs.io – PR: https://github.com/ipfs/ipfs-docs/pull/1185 (waiting for 0.14)
- [x] ensure https://github.com/ipfs/ipfs-docs/tree/main/tools/http-api-docs automation works with the new repo name and the new name is listed on https://docs.ipfs.io/reference/http/api/
:+1: :-1: :thinking: Need analysis and decision
- [ ] https://github.com/ipfs/go-ipfs-http-client – tracked in https://github.com/ipfs/kubo/issues/9124
- [ ] https://github.com/ipfs/go-ipfs-api – tracked in https://github.com/ipfs/kubo/issues/9124
- [ ] JS client library – https://github.com/ipfs/kubo/issues/9125
:stop_sign: Keep or rename at a later date
Things that use go-ipfs name, that we don't plan breaking at this time:
- [x] keep old name at dist.ipfs.io (https://dist.ipfs.io/go-ipfs/ built in addition to the new name – PR in https://github.com/ipfs/distributions/pull/717)
- [x] Docker (dual publishing)
- https://hub.docker.com/r/ipfs/kubo/tags/
- https://hub.docker.com/r/ipfs/go-ipfs/tags/ (legacy)
- [ ] package at NPM (https://github.com/ipfs/npm-go-ipfs) – tracked in https://github.com/ipfs/npm-go-ipfs/issues/51
- [ ] https://github.com/ipfs/js-ipfsd-ctl
- [ ] https://www.npmjs.com/package/ipfs-interop
WANT TO PROPOSE THE NEW NAME?
:point_right: Feel free to comment in https://github.com/ipfs/ipfs/discussions/471 with name (and logo like one in https://github.com/ipfs/go-ipfs/pull/8958).
Maybe golang-ipfs?
@aschmahmann Why not?
greenblock :rofl:
2022-05-10 notes:
- We need to set and communicate timeline
- Deduplicate/close between this issue and https://github.com/ipfs/ipfs/issues/470 and the corresponding GitHub Discussion.
- Determine the set of options for voting.
@lidel is owning on getting decisions wrapped up by the week of 2022-05-16.
I think go-ipfs is great name, go-ipfs describes perfectly that the program is an ipfs implementation in golang, I was not aware that the name minimizes other implementations such as rust-ipfs or js-ipfs, I think those names are fine too.
All the best Destroyinator
I think the idea behind it is to open up the ecosystem to multiple implementations even in the same langage. To make go-ipfs a go implementation of IPFS, not THE go implementation of IPFS. Just like for HTTP, many implementations may coexist, for exemple to specialize on different usecases. It would also remind people that IPFS is a protocol, not a software. I think this a first step for IPFS (the protocol), to reach the next level of popularity.
deleted (noticed I was posting in the wrong place)
Quick update:
- We are collecting new name proposals in already existing https://github.com/ipfs/ipfs/discussions/471
- Posted topic on forums and pinned it for 1 month. It was automatically reposed to Matrix/Discord chatter channel, ensuring we get signal from the community (if anyone cares).
- The renaming will happen AFTER 0.13 ships but BEFORE 0.14
- We will try to limit the breakage across ecosystem by providing releases under BOTH the old and the new name on https://dist.ipfs.io website – PoC tracked in https://github.com/ipfs/distributions/pull/717
- Soft deadline: within first two weeks after 0.13 ships, IPFS Stewards will have a call to evaluate names proposed in https://github.com/ipfs/ipfs/discussions/471 and make the decision.
- we will consider how many :+1: each proposal received, but reserve the right to make arbitrary decision due to SEO, UX and Boaty McBoatface realities
WANT TO PROPOSE THE NEW NAME for go-ipfs?
:point_right: Comment in https://github.com/ipfs/ipfs/discussions/471
IPFS Stewards voted on names proposed here to see which names make the majority happy. We got top 3-4 selected, go-ipfs team will make final decision later this week.
@lidel good luck! There are some pretty compelling suggestions :)
Summary of community proposals from discussion thread:
Most popular (captured on 2022-06-14):
- Kubo +22 / -2
- Aster +15 / -1
- Orchid +12 / -1
Long tail:
- Grail +9 / -2
- Simsa +9 / -2
- mox +10
IPFS Stewards voted, and discussed results internally. Identified some concerns around names that clash with other "Web3" / "Dweb" projects, and potential problems when it comes to hearing / pronunciation and non-native speakers (namely, "orchid protocol" exists, and "aster" phonemes are.. problematic)
Stewards narrowed it down to three "safe" choices:
- kubo
- grail
- 🍌
We will now consult with historical maintainers and project leaders, the final decision will be announced later this week.
we will be renaming go-ipfs to:
kubo
safe and popular, comes with a suiting Japanese meaning:
久 long time, old story./ 保 protect, guarantee, keep, preserve, sustain, support.
thank you all for participating in the discussion!
Cool!
Will ipfs-desktop become kubo-desktop?
Will ipfs-cluster become kubo-cluster?
I guess it will depend on the plans for these projects. Does PL want to nudge people to write alternative implementations on ipfs-cluster or not, will it be tightly coupled with kubo or will the ipfs daemon of ipfs-desftop be swappable, etc. Same for ipfs-cluster.
Well ipfs-desktop and ipfs-cluster are completely dependent on go-ipfs.
I would vote for a rename of these too, as it "streamlines" what the user will see as naming and makes clear they are coupled with the go implementation.
Well ipfs-desktop and ipfs-cluster are completely dependent on go-ipfs.
I would vote for a rename of these too, as it "streamlines" what the user will see as naming and makes clear they are coupled with the go implementation.
@hsanjuan would you rename ipfs-cluster to kubo-cluster? :)
@lidel did @Kubuxu have any hand in your name suggestion 😛?
@b5 no, but just in case, we have his blessing ;)
@RubenKelevra renaming other projects is discussed in https://github.com/ipfs/ipfs/issues/470, but to answer here, there are no plans to rename Cluster, Companion and Desktop (afaik).
Long term, we will be deprecating kubo-specific RPC API at /api/v0 in favor of web-compatible things like http gateways, writable gateways, pinning service api etc, making it easier to swap implementation where it makes sense (desktop, browser).
@lidel hm I think the companion and the Desktop app should be renamed as well. They (at least currently) fully depend on Kubo - so there's no way to not use kubo with them. I can see that one could argue that "cluster" is doing clustering in the IPFS network and thus should keep the name.
But I don't think that the same argument holds true for the Desktop app, which is just a pretty nice wrapper around the WebGui of Kubo.
One could also make the argument that it's confusing to have the network name as part of the application title in one program but not use it for "keeping the namespace clean" on the other one. So I will create dedicated tickets in all three projects (see below) for the renaming – to not go too far off-topic here.
Thanks for the fast, uncomplicated response, despite being off-topic! :)
PSA: we are planning to rename https://github.com/ipfs/go-ipfs repository next Wednesday, July 6th (date may change, there is an event in IPFS Calendar)
When that happens, we will be able to (in order, over following weeks):
- [ ] merge publishing to both go-ipfs and kubo on dist.ipfs.io (https://github.com/ipfs/distributions/pull/717)
- [ ] tag kubo 0.14.0-rc1
- [ ] release kubo 0.14
- [ ] merge docs.ipfs.io updates (https://github.com/ipfs/ipfs-docs/pull/1185)
The repository is now https://github.com/ipfs/kubo :sparkles: If you see anything breaking in the following days, let us know by commenting here :pray:
Published artifacts for 0.14.0-rc1 use kubo now, and are available at:
- https://dist.ipfs.io/kubo/
- https://hub.docker.com/r/ipfs/kubo/tags
To minimize the impact on infrastructure that autoupdates on a new release, the same binaries are still published under the old name at:
- https://dist.ipfs.io/go-ipfs/
- https://hub.docker.com/r/ipfs/go-ipfs/tags
Great!
I pinned the development version of go-ipfs for Arch Linux on the last stable release until all the kinks are gone (only regarding my packaging).
Will push a Kubo-git package soon. :)
@RubenKelevra thanks! Makes perfect sense for package maintainers like you to wait until Kubo 0.14.0 (final) is released – that will be the first stable release under the new name. But feel free to test with 0.14.0-rc1 and lmk if anything needs fixing before 0.14.0 :pray:
I've released a preliminary package with the info that it's currently not expecting to work, but should be considered a work in progress. This way people can test it ASAP. :)
https://aur.archlinux.org/packages/kubo-git
And as the kubo-git package has the "replace" tag set, it will automatically replace the go-ipfs-git package when selected. So the old package won't receive any updates anymore.
I think that's the best "clean cut" solution.
- Kubo v0.14.0 officially released, this is the first stable release under the new name :rocket:
- https://dist.ipfs.io/#kubo
- https://hub.docker.com/r/ipfs/kubo/tags
- https://github.com/ipfs/ipfs-docs/pull/1185 got merged
- CI automation is now aware of the new name
- https://docs.ipfs.io/reference/ now makes it clear that RPC and CLI are Kubo-specific
- https://docs.ipfs.io/install/command-line/ and other pages use kubo package name and updated links
Closing this one as we've finally got kubo on NPM (https://github.com/ipfs/npm-kubo/issues/51) and deprecated the old name.