Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Release 0.15 #9152

Closed
72 tasks done
BigLep opened this issue Jul 26, 2022 · 13 comments
Closed
72 tasks done

Release 0.15 #9152

BigLep opened this issue Jul 26, 2022 · 13 comments
Assignees

Comments

@BigLep
Copy link
Contributor

BigLep commented Jul 26, 2022

Items to do upon creating the release issue

  • Fill in the Meta section
  • Assign the issue to the release owner and reviewer.
  • Name the issue "Release v0.15.0"
  • Set the proper values for X.Y.Z
  • Pin the issue

Meta

See the Kubo release process for more info.

Initial planning

Themes

  1. Clean up cruft
  2. Communicating outwards from IPFS Thing
  3. Bitswap
  • Priority: knowledge transfer
  • Finish separation
  • Improve server
  • Leverage test-plans
  • Final validate by deploying to a Cluster
  1. Reframe followup
  2. Gateway improvement followups?

Items we're explicitly not doing

  1. Kubo RPC cleanup: Point users at canonical kubo/client/rpc library #9124?
  2. Repo consolidation
  3. Enabling libp2p resource manager

Kubo 0.15.0 Release

We're happy to announce Kubo 0.15.0, bla bla...

As usual, this release includes important fixes, some of which may be critical for security. Unless the fix addresses a bug being exploited in the wild, the fix will not be called out in the release notes. Please make sure to update ASAP. See our release process for details.

🗺 What's left for release

<List of items with PRs and/or Issues to be considered for this release>

🔦 Highlights

This is a release mainly with bugfixing and library updates.
We are improving release speed and cadence trying to have a new release every 5 weeks.

#️⃣ Blake support

You can now use blake3 as a valid hash function: ipfs block put --mhtype=blake3.
It uses a 32 bytes default size.
To use other hash length set mhlen: ipfs block put --mhtype=blake3 --mhlen=64

💉 Fx Options plugin

This adds a plugin interface that lets the plugin modify the fx options that are passed to fx when the app is initialized.
This means plugins can inject their own implementations of IPFS interfaces.
This enables granular customization of go-ipfs behavior by plugins, such as:

  • Bitswap with custom filters (e.g. for CID blocking)
  • Custom interface implementations such as Pinner or DAGService
  • Dynamic configuration of libp2p ...

Here's an example plugin that overrides the default Pinner with a custom one:

func (p *PinnerPlugin) Options(opts []fx.Option) ([]fx.Option, error) {
	ctx, cancel := context.WithTimeout(context.Background(), 10*time.Second)
	defer cancel()
	cfg, err := config.LoadDefaultConfig(context.Background())
	if err != nil {
		return nil, fmt.Errorf("loading AWS config: %w", err)
	}
	logger, err := zap.NewProduction()
	if err != nil {
		return nil, fmt.Errorf("constructing logger: %w", err)
	}
	smClient := secretsmanager.NewFromConfig(cfg)
	pinsDB, err := db.NewPinsDB(ctx, logger.Sugar(), smClient)
	if err != nil {
		return nil, fmt.Errorf("constructing PinsDB: %w", err)
	}
	pinner := &pinner.Pinner{PinsDB: pinsDB}
	return append(opts, fx.Replace(fx.Annotate(pinner, fx.As(new(pin.Pinner))))), nil
}

Extra plugin info here.

✅ Release Checklist

For each RC published in each stage:

  • version string in version.go has been updated (in the release-v0.15.0 branch).
  • new commits should be added to the release-v0.15.0 branch from master using git cherry-pick -x ...
  • tag commit with v0.15.0-rcN
  • add artifacts to https://dist.ipfs.tech
    1. Make a PR against ipfs/distributions with local changes produced by add-version (see usage)
    2. Wait for PR to build artifacts and generate diff
    3. Inspect results, merge if CI is green and the diff looks ok
    4. Wait for master branch to build and update DNSLink at https://dist.ipfs.tech
  • cut a pre-release on github and reuse signed artifacts from https://dist.ipfs.tech/kubo (upload the result of the ipfs/distributions build in the previous step).
  • Announce the RC:
    • Create a new post on Discuss
      • This will automatically post to IPFS Discord #ipfs-chatter
      • Examples from the past: 0.14.0
    • Pin the topic. You need admin privileges for that.
    • To the early testers listed in docs/EARLY_TESTERS.md. Do this by copy/pasting their GitHub usernames and checkboxes as a comment so they get a GitHub notification. (example)

Checklist:

⁉️ Do you have questions?

The best place to ask your questions about IPFS, how it works and what you can do with it is at discuss.ipfs.io. We are also available at the #ipfs channel on Freenode, which is also accessible through our Matrix bridge.

Release improvements for next time

< Add any release improvements that were observed this cycle here so they can get incorporated into future releases. >

Items for a separate comment

< Do these as a separate comment to avoid the main issue from getting too large and checkbox updates taking too long. >

Changelog

Changelog

https://github.com/ipfs/kubo/blob/master/docs/changelogs/v0.15.md

@BigLep BigLep pinned this issue Jul 26, 2022
@BigLep
Copy link
Contributor Author

BigLep commented Jul 26, 2022

2022-07-26 sync

Agenda

  1. High level priorities

(didn't get to these...)

  1. Review on how to add things to board.
  2. What are doing with the review items in the "Unknown Priority"? image
  3. Tackle the in-reivew items before new work. How do we distribute?
  4. Review the in-progress items
  5. Review the items that are blocked. Are we doing them now?
  6. Review the unprioritized Todo items? Which can we defer?

Acctions

  • @BigLep punt things out of scope
  • Engineers: determine what doing with the "Todo: Unknown Priority" items

image

  • We should only do items we believe we have to do this next month. Otherwise set to the next interaction.

  • Anythign we are doing should have very clear done criteria. I should be able to come back and understand why we're doing it.

  • Engineers: for the Blocked items, ensure we have to do them this iteration. If not, move them to the next. If we do, make sure the blocked reason is clear.

image

image

  • Engineers: reminder that we're tackling the things in review before we move forward on our initiatives. If you think initiative work is more important than a certain PR, then we should likely be moving that PR to the next iteration.

    • Please move the items we aren't concerned about into the next iteration.

@BigLep
Copy link
Contributor Author

BigLep commented Aug 12, 2022

2022-08-12 conversation with maintainers:

  1. We need to land the release template issues early week of 2022-08-15.
  2. We'll start the release process on Wednesday, 2022-08-17, during European timezones. Merges after this will make it into the next release.
  3. Items we are attempting to land before...

@BigLep
Copy link
Contributor Author

BigLep commented Aug 12, 2022

@BigLep
Copy link
Contributor Author

BigLep commented Aug 17, 2022

@ajnavarro : I populated the issue description with the latest release template and created #9201 for capturing improvements. Plesee update PR as you notice issues.

@ajnavarro
Copy link
Member

Early testers ping for RC1 testing

@BigLep
Copy link
Contributor Author

BigLep commented Aug 22, 2022

@ajnavarro : per 2022-08-22 conversation, we need to do the Stage 0 items as well.

Maybe it makes sense to not have the RC items in a separate list but rather have the checklist assume only 1 RC and make a note that certain steps need to be done for each RC.

@tabcat
Copy link
Contributor

tabcat commented Aug 22, 2022

@ajnavarro I'm no longer maintaining OrbitDB. You can ping @aphelionz from now on unless he says otherwise.

@aphelionz
Copy link

@ajnavarro Happy to test with OrbitDB. WIll give it a go today

@BigLep
Copy link
Contributor Author

BigLep commented Aug 23, 2022

@BigLep
Copy link
Contributor Author

BigLep commented Aug 23, 2022

2022-08-23 conversation:

  1. Open an issue against https://github.com/protocol/bifrost-infra like https://github.com/protocol/bifrost-infra/issues/2046 but spell out all that we want (gateways, bootstrapper, and cluster)
  2. Update release template to reference the sample issue
  3. Update the release template to have changelog separate comment step as one of the things listed at the top.
  4. Highlights needs to be done before the first RC.

@BigLep
Copy link
Contributor Author

BigLep commented Aug 30, 2022

For those following the issue, the 0.15 binaries are out: https://github.com/ipfs/kubo/releases/tag/v0.15.0

We're still closing out the last of the release steps.

@BigLep
Copy link
Contributor Author

BigLep commented Aug 30, 2022

Here was the state of https://github.com/orgs/ipfs/projects/16/views/7?filterQuery=iteration%3A%22kubo+0.15%22 before moving things to the next iteration/release. I attached as XLSX because copy/paste is causing column misalignment that I don't have time to figure out.

0.15 state.xlsx

@BigLep BigLep closed this as completed Sep 1, 2022
@BigLep BigLep unpinned this issue Sep 8, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
No open projects
Archived in project
Development

No branches or pull requests

5 participants