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.7.0 #7560

Closed
55 of 72 tasks
jacobheun opened this issue Jul 23, 2020 · 12 comments
Closed
55 of 72 tasks

Release 0.7.0 #7560

jacobheun opened this issue Jul 23, 2020 · 12 comments
Labels
topic/release Topic release
Milestone

Comments

@jacobheun
Copy link
Contributor

jacobheun commented Jul 23, 2020

Release Issue Template

go-ipfs 0.7.0 Release

We're happy to announce go-ipfs v0.7.0, it has a number of user facing changes so if you're wondering what happened to SECIO or why you're starting to see more peers with peerIDs that don't start with Qm checkout the highlights.

🗺 What's left for release

🚢 Estimated shipping date

~ Sept 22, 2020

🔦 Highlights

🔒 Secio is now disabled by default

As part of deprecating and removing support for the Secio security transport, we have disabled it by default. TLS1.3 will remain the default security transport with fallback to Noise. You can read more about the deprecation in the blog post, https://blog.ipfs.io/2020-08-07-deprecating-secio/. If you're running IPFS older than 0.5, this may start to impact your performance on the public network.

🗝️ Ed25519 keys are now used by default

Previously go-ipfs generated 2048 bit RSA keys for new nodes, but it will now use ed25519 keys by default. This will not affect any existing keys, but newly created keys will be ed25519 by default. The main benefit of using ed25519 keys over RSA is that ed25519 keys have an inline public key. This means that someone only needs your PeerId to verify things you've signed, which means we don't have to worry about storing those bulky RSA public keys.

Rotating keys

Along with switching the default, we've added support for rotating keys. If you would like to change the key type of your IPFS node, you can now do so with the rotate command. NOTE: This will affect your Peer Id, so be sure you want to do this! Your existing identity key will be backed up in the Keystore.

ipfs key rotate -o my-old-key -t ed25519

📦 Key export/import

We've added commands to allow you to export and import keys from the IPFS Keystore to a local .key file. This does not apply to the IPFS identity key, self.

ipfs key gen mykey
ipfs key export -o mykey.key mykey # ./<name>.key is the default path
ipfs key import mykey mykey.key # on another node

#️⃣ IPNS paths now encode the key name as a base36 CIDv1 by default

Previously go-ipfs encoded the key names for IPNS paths as base58btc multihashes (e.g. Qmabc...). We now encode them as base36 encoded CIDv1s as defined in the peerID spec (e.g. k51xyz...) which also deals with encoding of public keys. This is nice because it means that IPNS keys will by default be case-insensitive and that they will fit into DNS labels (e.g. k51xyz...ipns.localhost) and therefore that subdomain gateway redirections (e.g. from localhost:8080/ipns/{key} to {key}.ipns.localhost) will look better to users in the default case.

Many commands will accept a --ipns-base option that allows changing command outputs to use a particular encoding (i.e. base58btc multihash, or CIDv1 encoded in any supported base)

📮 Multiaddresses now accept PeerIDs encoded as CIDv1

In preparation for eventually changing the default PeerID representation multiaddresses can now contain strings like /p2p/k51xyz... in addition to the default /p2p/Qmabc.... There is a corresponding --peerid-base option to many functions that output peerIDs.

🧮 dag stat

Initial support has been added for the ipfs dag stat command. Running this command will traverse the DAG for the given root CID and report statistics. By default, progress will be shown as the DAG is traversed. Supported statistics currently include DAG size and number of blocks.

ipfs dag stat bafybeihpetclqvwb4qnmumvcn7nh4pxrtugrlpw4jgjpqicdxsv7opdm6e # the IPFS webui
Size: 30362191, NumBlocks: 346

🔌 Plugin build changes 🚨

We have changed the build flags used by the official binary distributions on dist.ipfs.io (or /ipns/dist.ipfs.io) to use the simpler and more reliable -trimpath flag instead of the more complicated and brittle -asmflags=all=-trimpath="$(GOPATH)" -gcflags=all=-trimpath="$(GOPATH)" flags, however the build flags used by default in go-ipfs remain the same.

The scripts in https://github.com/ipfs/go-ipfs-example-plugin have been updated to reflect this change. This is a breaking change to how people have been building plugins against the dist.ipfs.io binary of go-ipfs and plugins should update their build processes accordingly see ipfs/go-ipfs-example-plugin#9 for details.

Changelog

Full Changelog

✅ Release Checklist

For each RC published in each stage:

  • version string in version.go has been updated (in the release-vX.Y.Z branch).
  • 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.
  • Announce the RC:

Checklist:

  • Stage 0 - Automated Testing
    • Fork a new branch (release-vX.Y.Z) from master and make any further release related changes to this branch. 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.
      • Follow the RC release process to cut the first RC.
      • Bump the version in version.go in the master branch to vX.(Y+1).0-dev.
    • Automated Testing (already tested in CI) - Ensure that all tests are passing, this includes:
  • Stage 1 - Internal Testing
    • CHANGELOG.md has been updated
    • Network Testing:
      • test lab things - TBD
    • Infrastructure Testing:
      • Deploy new version to a subset of Bootstrappers
      • 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
    • Reach out to the IPFS early testers listed in docs/EARLY_TESTERS.md for testing this release (check when no more problems have been reported). If you'd like to be added to this list, please file a PR.
    • Reach out to on IRC for beta testers.
    • Run tests available in the following repos with the latest beta (check when all tests pass):
  • Stage 3 - Community Prod Testing
    • Documentation
    • Invite the IPFS early testers to deploy the release to part of their production infrastructure.
    • Invite the wider community through (link to the release issue):
  • Stage 4 - Release
  • Post-Release
    • Merge the release branch back into master, ignoring the changes to version.go (keep the -dev version from master).
    • 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
Marten Seemann 156 +16428/-42621 979
hannahhoward 42 +15132/-9819 467
Eric Myhre 114 +13709/-6898 586
Steven Allen 55 +1211/-2714 95
Adin Schmahmann 54 +1660/-783 117
Petar Maymounkov 23 +1677/-671 75
Aarsh Shah 10 +1926/-341 39
Raúl Kripalani 17 +1134/-537 53
Will 1 +841/-0 9
rendaw 3 +425/-195 12
Will Scott 8 +302/-229 15
vyzo 22 +345/-166 23
Fazlul Shahriar 7 +452/-44 19
Peter Rabbitson 1 +353/-118 5
Hector Sanjuan 10 +451/-3 14
Marcin Rataj 9 +298/-106 16
Łukasz Magiera 4 +329/-51 12
RubenKelevra 9 +331/-7 12
Michael Muré 2 +259/-69 6
jstordeur 1 +252/-2 5
Diederik Loerakker 1 +168/-35 7
Tiger 3 +138/-52 8
Kevin Neaton 3 +103/-21 9
Rod Vagg 1 +50/-40 4
Oli Evans 4 +60/-9 6
achingbrain 4 +30/-30 5
Cyril Fougeray 2 +34/-24 2
Luke Tucker 1 +31/-1 2
sandman 2 +23/-7 3
Alan Shaw 1 +18/-9 2
Jacob Heun 4 +13/-3 4
Jessica Schilling 3 +7/-7 3
Rafael Ramalho 4 +9/-4 4
Jeromy Johnson 2 +6/-6 4
Nick Cabatoff 1 +7/-2 1
Stephen Solka 1 +1/-7 1
Preston Van Loon 2 +6/-2 2
Jakub Sztandera 2 +5/-2 2
llx 1 +3/-3 1
Adrian Lanzafame 1 +3/-3 1
Yusef Napora 1 +3/-2 1
Louis Thibault 1 +5/-0 1
Martín Triay 1 +4/-0 1
Hlib 1 +2/-2 1
Shotaro Yamada 1 +2/-1 1
phuslu 1 +1/-1 1
Zero King 1 +1/-1 1
Rüdiger Klaehn 1 +2/-0 1
Nex 1 +1/-1 1
Mark Gaiser 1 +1/-1 1
Luflosi 1 +1/-1 1
David Florness 1 +1/-1 1
Dean Eigenmann 1 +0/-1 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.

@jacobheun jacobheun added the topic/release Topic release label Jul 23, 2020
@jacobheun jacobheun pinned this issue Jul 23, 2020
@jacobheun jacobheun added this to the go-ipfs 0.7 milestone Jul 23, 2020
@lidel
Copy link
Member

lidel commented Jul 27, 2020

Would be fantastic if 0.7 included directory listing improvements from #7536 🙏

@swedneck
Copy link
Contributor

just a note: the matrix link at the end of the OP should probably be edited to link to app.element.io instead of riot.im/app

@aschmahmann
Copy link
Contributor

aschmahmann commented Aug 26, 2020

Hello early testers, we now have our first RC for v0.7.0: https://dist.ipfs.io/go-ipfs/v0.7.0-rc1

Please be aware that this RC removes SECIO support by default. If you need still need SECIO then it can be enabled in the config https://github.com/ipfs/go-ipfs/blob/master/docs/config.md#swarmtransportssecurity. Setting Security { "SECIO" : 200 } will restore the behavior and prioritization from go-ipfs v0.6.0.

Early Testers:

@lidel

This comment has been minimized.

@olizilla

This comment has been minimized.

@olizilla
Copy link
Member

https://hub.docker.com/r/ipfs/go-ipfs/tags/?page=1&name=v0.7 is go! rc1 is in the hub.

@aschmahmann
Copy link
Contributor

aschmahmann commented Sep 10, 2020

v0.7.0-rc2 is released.

Changes are:

@lidel
Copy link
Member

lidel commented Sep 14, 2020

Quick note that may save some time in debugging daemon orchestration:
passing explicit --bits to ipfs init, it will now fail with error message:

$ ipfs init --bits 2048
Error: number of key bits does not apply when using ed25519 keys

@andrew
Copy link
Contributor

andrew commented Oct 2, 2020

I think this can be closed now?

@aschmahmann
Copy link
Contributor

@andrew I'm waiting for the IPFS Desktop release before I close the issue, and that should be out on Monday/early next week.

@lidel
Copy link
Member

lidel commented Oct 7, 2020

ipfs-desktop v0.13.2 just shipped with go-ipfs 0.7.0 ✨

@lidel lidel closed this as completed Oct 7, 2020
@aschmahmann
Copy link
Contributor

Note: there seems to be some Github bug preventing me from modifying the original post, but post release process is complete and packages are published everywhere listed above except for snap. Will modify this post when the snap release is out.

@jacobheun jacobheun unpinned this issue Oct 12, 2020
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
topic/release Topic release
Projects
No open projects
Archived in project
Development

No branches or pull requests

6 participants