Skip to content

go-libp2p v0.21.0 #1514

@marten-seemann

Description

@marten-seemann

🗺 What's left for release

Monitoring and Resource Management

Swarm Sync Notification

Misc

🔦 Highlights

Resource Management

  • Default resource management config limits will now autoscale depending on the machine size.
  • You can now specify an allowlisted set of multiaddrs that can still connect to you even if you've reached your normal limits (still limited by the allowlist limits).
  • Resource manager now exposes opencensus metrics and provides a default grafana dashboard.

Swarm Notifications are now synchronous

If your protocol depended on being given notifications in an async context and taking its time processing that, you will slow down your whole go-libp2p application. See #1562 for more details. This only matters if you implemented a network.Notifiee and registered to receive notifications on swarm network events.

Changelog

Contributors

Contributor Commits Lines ± Files Changed
Marten Seemann 217 +85564/-25980 1143
Marco Munizaga 78 +6722/-2489 150
vyzo 64 +6393/-666 130
Steven Allen 31 +1357/-745 54
Jeromy 5 +1032/-64 16
Jorropo 6 +168/-33 14
hareku 3 +172/-6 7
Marcin Rataj 2 +50/-124 5
Ivan Trubach 1 +98/-74 6
Jakub Sztandera 1 +101/-62 1
Christian Stewart 3 +89/-48 14
Raúl Kripalani 2 +69/-62 9
Masih H. Derkani 3 +84/-13 5
Julien Muret 1 +60/-7 2
Lars Gierth 1 +20/-29 4
Cole Brown 4 +27/-19 4
Chao Fei 2 +15/-30 9
Nuno Diegues 2 +25/-18 9
Daniel Martí 1 +15/-6 1
Wiktor Jurkiewicz 1 +13/-5 1
Matt Robenolt 1 +15/-1 2
gammazero 1 +7/-6 3
aarshkshah1992 2 +8/-2 2
Aaron Riekenberg 1 +4/-4 4
Rod Vagg 3 +3/-3 3
Adrian Lanzafame 1 +3/-3 1
Dmitriy Ryajov 2 +2/-3 2
millken 1 +1/-1 1
Matt Joiner 1 +1/-1 1
Leo Balduf 1 +1/-1 1
Didrik Nordström 1 +2/-0 1
Adin Schmahmann 1 +1/-1 1

✅ Release Checklist

  • Stage 0 - Finishing Touches
    • Go through relevant libp2p repos looking for unreleased changes that should make it into the release. If you find any, cut releases.
    • Run go get -u ./... to see if there are any out-of-date deps that look important. If there are, bubble them. Try to avoid directly updating indirect deps in go-libp2p's go.mod when possible.
    • Make sure local tests are passing.
  • Stage 1 - Upstream Testing
    • Create testing branches in lotus & go-ipfs with the new go-libp2p release and run CI/tests. Many upstream projects are tested in CI, but lotus & go-ipfs are not.
    • (someday) Run upstream testground tests. Unfortunately, this is too time consuming at the moment.
      • (someday) Run bitswap testground tests.
      • (someday) Run DHT testground tests.
  • Stage 2 - Infrastructure Testing
    • How: Using the testing branches created above, work with the infrastructure team to deploy the new libp2p versions to our infrastructure.
    • Where:
      • A go-ipfs gateway.
        • Deploy
        • Analyze
          • Look at pprof profile dumps, especially CPU profiles and heap allocation profiles, noting any significant changes.
      • A go-ipfs bootstrapper.
        • Deploy
        • Analyze
          • Look at pprof profile dumps, especially CPU profiles and heap allocation profiles, noting any significant changes.
          • Check peers (e.g., ipfs swarm peers) to make sure we're connecting to peers on all transports.
          • Check advertised addresses and protocols (e.g., ipfs id) to make sure they're sane.
  • Stage 3 - Release
    • Tag the release on master.
    • Publish the release through the GitHub UI, adding the release notes. Some users rely on this to receive notifications of new releases.
    • Announce the release on the discuss.libp2p.io.
  • Stage 4 - Update Upstream
  • Make required changes to the release process.

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions