Js-ipfs: โšก๏ธ v0.29.0 RELEASE ๐Ÿš€

Created on 23 Apr 2018  ยท  3Comments  ยท  Source: ipfs/js-ipfs

short tl;dr; of the release

๐Ÿ—บ What's left for release

  • [x] [Release a new js-ipfs-api](https://github.com/ipfs/js-ipfs-api/pull/751)
  • [x] [Fix config reuse](https://github.com/ipfs/js-ipfs/issues/1316)
  • [x] [Release Subcomandante to fix tests for Node.js 10](https://github.com/jbenet/node-subcomandante/issues/8)
  • [x] https://github.com/ipfs/js-ipfs/pull/1319
  • [x] [IPFS Repo Configuration Example](https://github.com/ipfs/js-ipfs/pull/1303)
  • [ ] https://github.com/ipfs/js-ipfs/pull/1297
  • [x] [Seek through files](https://github.com/ipfs/js-ipfs/pull/1231)
  • [x] [Updated PubSub API](https://github.com/ipfs/interface-ipfs-core/pull/260)
  • [x] [Ping](https://github.com/ipfs/js-ipfs/pull/1342)
  • [x] [Faster tests](https://github.com/ipfs/js-ipfs/pull/1350)
  • [ ] Complete Pin API (next release)
  • [ ] Connection Manager (next release)
  • [ ] Better error handling for the CLI (next release)

๐Ÿ”ฆ Highlights

๐ŸŽ Bitswap is 30% faster

Bitswap is now 30% thanks to fixing a bug on js-ipfs-bitswap that was causing every message to be sent individually.

๐Ÿ‘“ js-ipfs now works with uglify-es just fine

The duck typing throughout js-ipfs has been improved and that means that now you can use uglify-es again to minify your js-ipfs code. The result is that the js-ipfs bundled version is now back to its minified size as well.

โ˜Ž๏ธ Circuit Relay was merged in

Circuit Relay enables connectivity between any two nodes through a third relay node. This ensures connectivity in almost every scenario, that is, as long as peers can connect to some public IP node. Learn how to use it here. This was one of the two features that js-ipfs was missing to get full connectivity.

๐Ÿ—‘ S3 backend for IPFS

Ever wished you could use an external storage backend to store all your IPFS blocks? Now you do and we got a tutorial for you! See how to configure a repo at https://github.com/ipfs/js-ipfs/tree/master/examples/custom-ipfs-repo and if you want to learn how to use S3 as your external backend, then consult https://github.com/ipfs/js-datastore-s3/tree/master/examples/full-s3-repo.

๐Ÿ“œ README Overhaul

The js-ipfs README keeps improving, now with 40% more information about the multiple arguments you can pass to IPFS. Read all the options at https://github.com/ipfs/js-ipfs#api

๐ŸŽท Project Tracking

If you haven't already, I welcome you to check how the js-ipfs team tracks their work at https://github.com/ipfs/js-ipfs/blob/master/MGMT.md. It is fun to see the issues fly through the waffle board.

โœ… Config validation and config reuse fix

In addition to better documentation on how to configure your node, you now get some config validation in case you mistype something. Also as a bonus, you can now spin multiple nodes in the same process without them getting confused and using the same config.

๐Ÿ“– interface-ipfs-core keeps getting more API calls documented and tested

Make yourself familiar with the IPFS Core API at https://github.com/ipfs/interface-ipfs-core/tree/master/SPEC. New additions include files.add --wrapWithDirectory, --onlyHash and others.

๐Ÿ“Š Bandwidth stats now available

Bandwidth statistics for your IPFS node from the libp2p layer are now exposed and available to query for the whole node, per peer or per protocol. You can also use Node streams or pull streams to get a continuous feed of that tasty statistical juice.

๐Ÿ“ก Fully Async PubSub API

Writing in Progress

๐Ÿ›Ž Ping API implemented

JS IPFS now has API calls for pinging other peers. Fun fact, this was actually the first thing a js-ipfs node did, but it got lost in a massive refactor and now it is back and not only in js-ipfs core, it is also available through the CLI and HTTP API

โš›๏ธ Electron Main Process support with Electron 2.0

Writing in Progress

ref: https://github.com/ipfs/js-ipfs/pull/1351

๐Ÿ— API Changes

  1. Argument order for pubsub.subscribe has changed:

    • Old: pubsub.subscribe(topic, [options], handler, [callback]): Promise

    • New: pubsub.subscribe(topic, handler, [options], [callback]): Promise

  2. The pubsub.unsubscribe method has become async meaning that it now takes a callback or returns a promise:

    • Old: pubsub.unsubscribe(topic, handler): undefined

    • New: pubsub.unsubscribe(topic, handler, [callback]): Promise

  3. Property names on response objects for ping are now lowered:

    • Old: { Success, Time, Text }

    • New: { success, time, text }

  4. In the CLI, jsipfs object data no longer returns a newline after the end of the returned data

โœ… Release Checklist

  • Robustness and quality

    • [x] Ensure that all tests are passing, this includes:

    • [x] unit

    • [x] interop

    • [x] sharness

    • [x] Run tests of the following projects with the new release:

    • [x] [ipfs-pubsub-room](https://github.com/ipfs-shipyard/ipfs-pubsub-room/issues/43)

    • [x] [peerpad-core](https://github.com/ipfs-shipyard/peer-pad-core/issues/17)

    • [x] [ipfs-log](https://github.com/orbitdb/ipfs-log/issues/124)

    • [x] [orbit-db](https://github.com/orbitdb/orbit-db/issues/369)

  • Documentation

    • [x] Ensure that README.md is up to date

    • [x] Ensure that all the examples run

  • Communication

    • [x] Create the release issue

    • [x] Announcements (both pre-release and post-release)

    • [x] [Twitter](https://twitter.com/daviddias/status/1000996706211725312)

    • [x] IRC

    • [x] [Reddit](https://www.reddit.com/r/ipfs/comments/8mo6q3/v0290_release_is_coming_this_week/)

    • [x] [Blog post](https://github.com/ipfs/blog/pull/163)

๐Ÿ™Œ๐Ÿฝ Want to contribute?

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.

topirelease

Most helpful comment

All 3 comments

@diasdavid

Can we add the link to the circuit relay example to the its respective section?

Something like this:

Circuit Relay enables connectivity between any two nodes through a third relay node. This ensures connectivity in almost every scenario, that is, as long as peers can connect to some public IP node. Learn how to use it here. This was one of the two features that js-ipfs was missing to get full connectivity.

@dryajov of course! Added in :)

Was this page helpful?
0 / 5 - 0 ratings

Related issues

OliverUv picture OliverUv  ยท  3Comments

beingmohit picture beingmohit  ยท  3Comments

daviddias picture daviddias  ยท  3Comments

witten picture witten  ยท  4Comments

pedrouid picture pedrouid  ยท  3Comments