Skip to content

Release v0.4.23 #6837

@Stebalien

Description

@Stebalien

go-ipfs 0.4.23 Release

PR: #6836
Download: https://dist.ipfs.io/go-ipfs/v0.4.23-rc2 (RC2)

Unfortunately, go-ipfs 0.5.0 is taking longer than expected. Given the large number of fixes merged since 0.4.22, we've decided to cut another patch release.

This release contains critical fixes. Please upgrade ASAP. Importantly, we're strongly considering switching to TLS by default in go-ipfs 0.5.0 and dropping SECIO support. However, our the current TLS transport in go-ipfs 0.4.22 has a bug that can cause connections to spontaneously disconnect during the handshake.

This release fixes that bug, among many other issues. Users that don't upgrade may experience connectivity issues when the network upgrades to go-ipfs 0.5.0.

🗺 What's left for release

  • Get the tests passing.
  • Release Notes.

🚢 Estimated shipping date

January 27th, at the latest (likely earlier).

🔦 Highlights

  • Fixes build on go 1.13
  • Fixes an issue where we may not connect to providers in bitswap.
  • Fixes an issue on our TLS transport where we may abort a handshake unintentionally.
  • Fixes a common panic in the websocket transport.
  • Adds support for recursively resolving dnsaddrs (makes go-ipfs compatible with the new bootstrappers).
  • Fixes several potential panics/crashes.
  • Switches to using pre-defined autorelays instead of trying to find them in the DHT:
    • Avoids selecting random, potentially poor, relays.
    • Avoids spamming the DHT with requests trying to find relays.
    • Reduces the impact of accidentally enabling AutoRelay + RelayHop. I.e., the network won't try to DoS you.
  • Modifies the connection manager to not count connections in the grace period towards the connection limit.
    • Pro: New connections don't cause us to close useful, existing connections.
    • Con: Libp2p will keep more connections. Consider reducing your HighWater after applying this patch.
  • Improved peer usefulness tracking in bitswap. Frequently used peers will be marked as "important" and the connection manager will avoid closing connections to these peers.
  • Includes a new version of the WebUI to fix some issues with the peers map.

Changelog

Other:

Update bloom filter libraries to remove unsound usage of the unsafe package.

✅ Release Checklist

For each RC published in each stage:

  • version string in version.go has been updated
  • tag commit with vX.Y.Z-rcN
  • upload to dist.ipfs.io
    1. Build: https://github.com/ipfs/distributions#usage.
    2. Pin the resulting release.
    3. Make a PR against ipfs/distributions with the updated versions, including the new hash in the PR comment.
    4. Ask the infra team to update the DNSLink record for dist.ipfs.io to point to the new distribution.
  • cut a pre-release on github and upload the result of the ipfs/distributions build in the previous step.

Checklist:

  • Stage 0 - Automated Testing
    • Feature freeze. If any "non-trivial" changes (see the footnotes of docs/releases.md for a definition) get added to the release, uncheck all the checkboxes and return to this stage.
    • Automated Testing (already tested in CI) - Ensure that all tests are passing, this includes:
  • Stage 1 - Internal Testing
    • CHANGELOG.md has been updated
    • Infrastructure Testing:
      • Deploy new version to a subset of Bootstrappers
        • Deploying to mars.
      • Deploy new version to a subset of Gateways
      • Deploy new version to a subset of Preload nodes
      • Collect metrics every day. Work with the Infrastructure team to learn of any hiccup
    • IPFS Application Testing - Run the tests of the following applications:
  • Stage 2 - Community Dev Testing
    • skipping because this is a patch release
  • Stage 3 - Community Prod Testing
  • Stage 4 - Release
    • Final preparation
    • Publish a Release Blog post (at minimum, a c&p of this release issue with all the highlights, API changes, link to changelog and thank yous)
    • Broadcasting (link to blog post)
  • Post-Release
    • Bump the version in version.go to vX.(Y+1).0-dev.
    • Create an issue using this release issue template for the next release.
    • Make sure any last-minute changelog updates from the blog post make it back into the CHANGELOG.

❤️ Contributors

Contributor Commits Lines ± Files Changed
Steven Allen 52 +1866/-578 102
vyzo 12 +167/-90 22
whyrusleeping 5 +136/-52 7
Roman Proskuryakov 7 +94/-7 10
Jakub Sztandera 3 +58/-13 7
hucg 2 +31/-11 2
Raúl Kripalani 2 +7/-33 6
Marten Seemann 3 +27/-10 5
Marcin Rataj 2 +26/-0 5
b5 1 +2/-22 1
Hector Sanjuan 1 +11/-0 1
Yusef Napora 1 +4/-0 1

Would you like to contribute to the IPFS project and don't know how? Well, there are a few places you can get started:

⁉️ 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.

Metadata

Metadata

Assignees

No one assigned

    Labels

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions