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

[Tracking Issue] js-ipfs deprecation - signposting over to Helia #4336

Closed
45 of 47 tasks
BigLep opened this issue Mar 23, 2023 · 9 comments
Closed
45 of 47 tasks

[Tracking Issue] js-ipfs deprecation - signposting over to Helia #4336

BigLep opened this issue Mar 23, 2023 · 9 comments
Assignees

Comments

@BigLep
Copy link
Contributor

BigLep commented Mar 23, 2023

Info for js-ipfs users affected by the deprecation

About

As shared back in 202310 in https://blog.ipfs.tech/state-of-ipfs-in-js/, the current maintainers of js-ipfs (Protocol Labs’ EngRes (Engineering & Research) group), have been active in developing Helia. Now that v1 of Helia has been released, the intent is to signpost from js-ipfs to Helia and ultimately archive the repo. The specific steps and timeline for this are below. This issue was originally created as a placeholder to start adding notes as things come up and cross-linking issues, and now it serves as the deprecation project tracker.

FAQ

Scope: what is being deprecated?

js-ipfs and all the modules that live in this monorepo.

Key dependencies of js-ipfs like js-libp2p and js-bitswap ARE NOT being deprecated - they are critical dependencies of Helia as well.

Why is js-ipfs being deprecated?

The current maintainers don't have bandwidth to maintain Helia and js-ipfs. Helis takes the lessons learned from the years developing and supporting js-ipfs and we believe provides a better user and maintainer experience.

More details are covered in:

How do I migrate to Helia from js-ipfs?

We have created a migration guide at https://github.com/ipfs/helia/wiki/Migrating-from-js-IPFS . If you have any questions or issues with it, please open a Helia issue.

How do I learn more about Helia?

Please see the README and other docs linked from the Helia repo. helia-examples are also a great way to see Helia in action.

How do I stay updated on this deprecation?

This is the deprecation tracking issue. As items are completed, we'll update the task lists here. We'll also post major updates as comments in the issue.

What is the expected timeline of this deprecation?

See the "Expected Completed Dates" (ECD) for the various task lists or tasks below. We are generally aiming to complete the bulk of this by mid-June. "Disruption" will start happening ~2023-05-24. Per below, we'll leave a time for users to reopen any issues or PRs that they feel were closed in error.

What if I have more comments on a closed issue or PR?

Per above, we are going to be archiving this repo which will prevent further updates to issues and PRs. That said, before then we'll give a week for someone to reopen any issue or PR that we close in case they have followup questions or concerns. We'll engage with any of these reopened issues before archiving the repo. We expect this will be during or shortly after this one-week response window, but this will be dependent on how many issues get reopened and how long it takes us to process them.

Can I volunteer to take over the maintainership of js-ipfs?

If someone doesn't want to move over to Helia and instead take over maintaining js-ipfs, they are welcome to fork this repo and notify in this issue. @ipfs/helia-dev can update the ipfs/js-ipfs repo readme to point to your fork. Note that npm modules will stay deprecated to prevent any security exposure for users.

The js-ipfs repo has a treasure trove of history and discussion about js-ipfs and IPFS in JS in general. Are there any critical takeaways from the deprecation process?

While not exhaustive, below are some issues that were particularly rich as we went through and closed the 300+ open issues:

Info for js-ipfs maintainers executing this deprecation

Deprecation Tasks

Below are the set of tasks for completing this deprecation. They are broken into different lists.

  • Preparation tasks are items that maintainers are doing to ensure our ducks are in a row before we start disrupting users with this change.
  • Disruption tasks cause messages to be sent to users, issues to be closed, modules archived, etc.

Preparation Tasks (non issue handling)

Preview Give feedback

Preparation Tasks: coding/docs items important before driving more energy to Helia (ECD 2023-05-24)

Preview Give feedback
  1. released
  2. released
  3. topic/docs
    BigLep

Preparation Tasks: issue handling (ECD 2023-05-24)

Preview Give feedback

Disruption Eve (ECD 2023-05-25)

Preview Give feedback

Disruption Tasks: README updates and npm module deprecation (ECD 2023-05-25)

Preview Give feedback

Disruption Tasks: issues and PRs so can archive the repo

Preview Give feedback

Wrap up tasks

Preview Give feedback
@BigLep BigLep pinned this issue Apr 10, 2023
@SgtPooki
Copy link
Member

SgtPooki commented May 5, 2023

@SgtPooki
Copy link
Member

SgtPooki commented May 8, 2023

I talked to @RangerMauve about migration to helia and it sounds like libp2p/js-libp2p#1461 is a blocker

@SgtPooki
Copy link
Member

SgtPooki commented May 9, 2023

Chatting with @achingbrain about rough requirements/plan for migration

  1. Notes in all the readmes.
  2. deprecation notes on NPM, (all packages inside js-ipfs repo)
    • deprecate ipfs-utils
  3. migration guide
    • "I used to use these APIs with js-ipfs, but now i use these with helia like this" - for all happypath
      • We would add sections for specific non-happypath cases, or "case-studies" where we've migrated old tooling (like ipld-explorer-components and ipfs-share, etc.)
    • @SgtPooki - Use notion doc for documenting specific usecases while working on js-ipfs deprecation for feat: remove dependency on js-ipfs ipld-explorer-components#359 & ipfs-share
  4. Closing/migrating all js-ipfs issues with pointer to migration guide & helia

something I thought of during our talk:

  1. boilerplate messages for js-ipfs issue closing/cleanup
    • One message for issues that should check if helia solves their problems
    • Message for issues that definitely have solutions in helia
    • Message for unsupported things where users may be better suited to use js-kubo-rpc-client instead of helia

@BigLep BigLep changed the title [To Be Planned] [Tracking Issue] js-ipfs deprecation - signposting over to Helia [Tracking Issue] js-ipfs deprecation - signposting over to Helia May 16, 2023
@BigLep
Copy link
Contributor Author

BigLep commented May 17, 2023

Some updates on preparing for the deprecation:

  1. The issue has been updated with more thorough task lists.
  2. A project board has been created (https://github.com/orgs/ipfs/projects/26 ) to track the handling of the open issues in js-ipfs.
  3. The deprecation process and messaging is all being drafted in https://pl-strflt.notion.site/2023Q2-js-ipfs-Deprecation-c84d5d4f661044198ba6e63bf0a34790 (to allow for easier commenting)

@SgtPooki SgtPooki moved this to 🥞 Todo in js-ipfs deprecation May 17, 2023
SgtPooki added a commit that referenced this issue May 17, 2023
FYI: js-ipfs is being deprecated in favor of [Helia](https://github.com/ipfs/helia).  You can learn more about this deprecation and the corresponding migration guide [here](#4336).
@BigLep
Copy link
Contributor Author

BigLep commented Jun 3, 2023

Per https://github.com/orgs/ipfs/projects/26/views/2, 372 issues and/PRs have been closed. There is one open item :). We'll sweep back through on 2023-06-08 to see if any issues have reopened. If there aren't any, we'll move forward with repo archiving.

@BigLep
Copy link
Contributor Author

BigLep commented Jun 13, 2023

Given no issues have been reopened over a week per #4336 , I'm going to archive this issue. That will prevent this issue from being mutated. We have tracking items for the relevant documentation items. When those are all done, we'll come back, unarchive the repo, and close this last issue.

Thanks all for your work and support in making this effort happen. Well done.

@BigLep
Copy link
Contributor Author

BigLep commented Feb 12, 2024

I'm closing this issue now that the docs issues were completed. The only thing that wasn't done was around proto.school, but dealing with messaging about the outdated nature of that overall site is a separate endeavor.

Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
None yet
Projects
No open projects
Status: 🏃‍♀️ In Progress
Development

No branches or pull requests

3 participants