date | permalink | title | header_image | description | author | tags | ||
---|---|---|---|---|---|---|---|---|
2020-04-14 |
/2020-04-14-js-ipfs-0-42/ |
js-ipfs 0.42.0 released |
/header-image-js-ipfs-placeholder.png |
Alex Potsides |
|
Smaller, faster, more reliable
[email protected]
has been released, bringing a host of bug fixes and other small stability improvements.
It reduces the size of the minified bundle by 7.5% for faster downloads and more responsive web apps!
We've also merged some of our repos together which were logically intertwined. Our hope is that this will make contributing easier and encourage experimentation as there will be fewer PRs to juggle to land a piece of functionality!
Release Candidate builds of js-ipfs
and js-ipfs-http-client
are now being published to npm with every build of master, so you can try out the very bleeding edge with:
$ npm install -g ipfs@next
or
$ npm install ipfs-http-client@next
This will download and install a version of js-ipfs
and/or js-ipfs-http-client
created from the last successful build of master with no GitHub URLs in the production dependency tree.
Publishing to Docker Hub has been restored so you can get a container running the latest and greatest js-ipfs
with:
$ docker pull ipfs/js-ipfs
You can also pull pre-releases at any time with:
$ docker pull ipfs/js-ipfs:next
Check out all the releases at: https://hub.docker.com/r/ipfs/js-ipfs
The MFS CLI now supports nanosecond mtimes, use it with the following commands:
$ jsipfs mkdir /directory --mtime 1000 --mtime-nsecs 5
--mode
and --mtime
are now also supported when piping files to jsipfs add
:
$ cat ./file.txt | jsipfs add --mode 0500
- HAMT sharded directories are now reported as having a type of
'directory'
fromipfs.files.stat
in line withgo-ipfs
ipfs/js-ipfs#2811 - When specifying metadata and
--raw-leaves
toipfs.add
, if the file is small enough to fit into one block,--raw-leaves
is ignored and a UnixFS entry is created (previously the returned CID would have a codec ofraw
) ipfs/js-ipfs-unixfs#44
- WebRTC configuration is now passed to the libp2p WebRTC transport correctly ipfs/js-ipfs#2966
- Unknown CLI commands now cause the process to exit with a non-zero exit code ipfs/js-ipfs#2916
- Running Prometheus metrics in Docker containers no longer prevent the container from starting ipfs/js-ipfs#2952
A common observation made about IPFS development is that there are so many repos to gain knowledge of, it’s hard to know how everything fits together and where a problem might originate, all of which makes it hard to start contributing.
Contributors will sometimes spend precious time crafting one PR, only to be told they need to make additional PRs to repos they didn't even know existed in order to land their initial change. This often ends up being too much of a barrier for developers who have external time pressures or have other shiny PRs to push on.
Features must be staged across multiple releases from multiple repos, and any of these releases have the potential to block unrelated work streams in other repos & projects purely through human error - bugs may be introduced, or perhaps a follow up piece of work becomes necessary. With multiple releases from multiple repos it also becomes hard to roll back these changes; it's a last resort tactic but denying us it's use because our module release process is complicated is an artificial constraint of our own making.
To start to address this we’ve consolidated js-ipfs
, js-ipfs-mfs
, js-ipfs-multipart
, js-ipfs-http-client
and interface-js-ipfs-core
into one repository.
This made sense because a given IPFS feature is typically implemented in js-ipfs
, exposed over http by the http client and tests are added to the interface suite to ensure everything works together - now you will be able to make that sort of change in one PR instead of three!
It’s our hope that this will go some way towards simplifying IPFS development and will encourage new contributors to pitch in and help us build the platform to power the distributed web.
To get a better view on what’s coming up in js-ipfs
releases, we’ve put a Project Roadmap together that contains headline features organised in the order we hope them to land.
Only large features are called out in the roadmap, expect lots of small bugfix releases between the roadmapped items!
- @achingbrain (149 commits, 44 PRs, 6 issues, 166 comments)
- @agustinmessina (3 comments)
- @alanshaw (8 commits, 6 PRs, 1 issue, 12 comments)
- @alexjc (1 issue, 1 comment)
- @andrew (7 commits, 14 PRs, 1 comment)
- @aphelionz (1 PR, 1 issue, 3 comments)
- @aquiladev (1 issue)
- @betamos (1 issue)
- @bluelovers (2 commits, 8 PRs, 14 issues, 26 comments)
- @calikevuche (2 issues, 1 comment)
- @carsonfarmer (3 comments)
- @chafey (2 commits, 4 PRs, 4 issues, 9 comments)
- @ChainSafeSystems (1 comment)
- @christopheSeeka (2 issues, 7 comments)
- @CLAassistant (1 comment)
- @codecov-io (4 comments)
- @daviddias (2 commits, 3 PRs, 1 issue, 7 comments)
- @dirkmc (1 PR, 5 comments)
- @Elvenisboy (1 comment)
- @emclab (3 comments)
- @Gudahtt (1 issue)
- @hacdias (2 commits)
- @happy-zhangbo (2 issues, 2 comments)
- @hazae41 (2 issues)
- @hsanjuan (3 comments)
- @hugomrdias (39 commits, 27 PRs, 6 issues, 35 comments)
- @icidasset (2 issues, 3 comments)
- @iRyanBell (1 PR)
- @jacobheun (45 commits, 3 PRs, 3 issues, 36 comments)
- @Jonybang (1 issue)
- @josselinchevalay (1 issue, 4 comments)
- @jsonsivar (2 issues)
- @kalmi (1 issue, 1 comment)
- @kanej (1 commit, 1 PR, 2 comments)
- @kawmaiparis (1 issue, 1 comment)
- @koivunej (1 issue)
- @kumavis (1 commit, 1 PR, 2 comments)
- @latenssi (1 issue, 2 comments)
- @lidel (1 PR, 2 issues, 4 comments)
- @MaduraRaj (1 issue)
- @MaxGraey (1 comment)
- @mcclure (1 issue)
- @mell-old (1 issue)
- @mfsoftworks (1 comment)
- @mikeal (1 issue, 12 comments)
- @mkg20001 (4 commits, 1 issue, 4 comments)
- @mmm8955405 (1 issue, 6 comments)
- @MonarthS (1 comment)
- @mpetrunic (1 PR)
- @nijynot (1 commit)
- @notsag-dev (1 PR)
- @npfoss (1 commit)
- @obo20 (1 issue, 3 comments)
- @olizilla (1 commit, 1 PR, 2 comments)
- @ottodevs (5 comments)
- @pcowgill (2 PRs, 8 issues, 43 comments)
- @ribasushi (1 issue, 1 comment)
- @rigwild (1 comment)
- @robertkiel (6 commits, 6 PRs, 1 comment)
- @rvagg (1 PR, 7 comments)
- @SahidMiller (1 comment)
- @sbhamad (1 issue)
- @Schwartz10 (1 comment)
- @sebastiendan (2 issues, 9 comments)
- @SignpostMarv (2 issues, 2 comments)
- @siman (2 comments)
- @sinkuu (1 comment)
- @stale (1 comment)
- @Stebalien (2 commits, 2 PRs, 1 issue, 9 comments)
- @svdo (1 PR, 1 comment)
- @tabcat (2 commits, 2 PRs, 1 issue)
- @tniessen (1 issue)
- @tuyennhv (1 PR, 1 comment)
- @uchetron (1 issue)
- @ulvus (1 comment)
- @vasco-santos (72 commits, 17 PRs, 17 issues, 78 comments)
- @vaultec81 (2 issues, 10 comments)
- @vmx (12 commits, 9 PRs, 11 comments)
- @warpfork (1 comment)
- @wemeetagain (1 commit, 1 comment)
- @whyrusleeping (1 comment)
- @wolfgang (1 comment)
- @woss (1 comment)
- @x5engine (1 comment)
- @Xmader (1 commit, 1 PR)
- @xmaysonnave (1 issue, 1 comment)
- @zebateira (1 PR)
- @zot (1 comment)
Would you like to contribute to the IPFS project and don’t know how? Well, there are a few places you can get started:
- Check the issues with the
help wanted
label in the js-ipfs repo - Join an IPFS All Hands, introduce yourself and let us know where you would like to contribute: https://github.com/ipfs/team-mgmt/#weekly-ipfs-all-hands
- Hack with IPFS and show us what you made! The All Hands call is also the perfect venue for demos, join in and show us what you built
- Join the discussion at https://discuss.ipfs.tech/ and help users finding their answers.
- Join the 🚀 IPFS Core Implementations Weekly Sync 🛰 and be part of the action!
The best place to ask your questions about IPFS, how it works, and what you can do with it is at discuss.ipfs.tech. We are also available at the #ipfs
channel on Freenode.