kubo icon indicating copy to clipboard operation
kubo copied to clipboard

Minimal rename of go-ipfs in 2022Q2

Open lidel opened this issue 3 years ago • 26 comments

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).

lidel avatar May 09 '22 19:05 lidel

Maybe golang-ipfs?

hello-smile6 avatar May 09 '22 22:05 hello-smile6

@aschmahmann Why not?

hello-smile6 avatar May 09 '22 23:05 hello-smile6

greenblock :rofl:

ajnavarro avatar May 10 '22 09:05 ajnavarro

2022-05-10 notes:

  1. We need to set and communicate timeline
  2. Deduplicate/close between this issue and https://github.com/ipfs/ipfs/issues/470 and the corresponding GitHub Discussion.
  3. Determine the set of options for voting.

@lidel is owning on getting decisions wrapped up by the week of 2022-05-16.

BigLep avatar May 10 '22 17:05 BigLep

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

Destroyinator69420 avatar May 10 '22 20:05 Destroyinator69420

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.

bertrandfalguiere avatar May 10 '22 22:05 bertrandfalguiere

deleted (noticed I was posting in the wrong place)

waleedmebane avatar May 11 '22 21:05 waleedmebane

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

lidel avatar May 11 '22 22:05 lidel

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 avatar Jun 13 '22 16:06 lidel

@lidel good luck! There are some pretty compelling suggestions :)

RubenKelevra avatar Jun 14 '22 07:06 RubenKelevra

Summary of community proposals from discussion thread:

Most popular (captured on 2022-06-14):

  1. Kubo +22 / -2
  2. Aster +15 / -1
  3. 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.

lidel avatar Jun 14 '22 16:06 lidel

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!

lidel avatar Jun 15 '22 21:06 lidel

Cool!

Will ipfs-desktop become kubo-desktop?

Will ipfs-cluster become kubo-cluster?

RubenKelevra avatar Jun 16 '22 07:06 RubenKelevra

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.

bertrandfalguiere avatar Jun 16 '22 08:06 bertrandfalguiere

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.

RubenKelevra avatar Jun 16 '22 08:06 RubenKelevra

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? :)

RubenKelevra avatar Jun 16 '22 08:06 RubenKelevra

@lidel did @Kubuxu have any hand in your name suggestion 😛?

b5 avatar Jun 18 '22 00:06 b5

@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 avatar Jun 19 '22 19:06 lidel

@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! :)

RubenKelevra avatar Jun 21 '22 11:06 RubenKelevra

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)

lidel avatar Jul 01 '22 14:07 lidel

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:

lidel avatar Jul 06 '22 19:07 lidel

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

lidel avatar Jul 08 '22 14:07 lidel

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 avatar Jul 09 '22 12:07 RubenKelevra

@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:

lidel avatar Jul 10 '22 17:07 lidel

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.

RubenKelevra avatar Jul 10 '22 17:07 RubenKelevra

  • 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

lidel avatar Jul 21 '22 11:07 lidel

Closing this one as we've finally got kubo on NPM (https://github.com/ipfs/npm-kubo/issues/51) and deprecated the old name.

lidel avatar Aug 18 '23 18:08 lidel