Closed RichardLitt closed 8 years ago
Make Orbit work as a stand-alone app (ie. without Node.js) in preparation for js-ipfs.
ssh <page>@pages.ipfs.team deploy <hash>
workingTravel and being sick consumed a lot of my time this sprint. I still managed to review some go-libp2p PRs and make progress on some go-ipfs bugfixes. I also wrote an IPFS resolver that uses Twitter as a transient record store (ipfs-twitter-resolver). I also collaborated with @RichardLitt a bit on his standard-readme project and my own common-readme project.
This sprint has been very slow and full of distractions for me. Nevertheless, we had a great Berlin meetup at c-base, and finally have SSL on all of ipfs.io.
pages.ipfs.team is on the home stretch, and same for the remaining fixes to the infrastructure codebase, which will finally get it back to being usable by everyone. These two (pages and infrastructure deploys) are areas where I've been a bottleneck for the team.
That also means I'll finally have a free mind for taking on packet switching.
I striked through tasks which I realized where an over-commitment.
ssh <page>@pages.ipfs.team deploy <hash>
workingLast week I broke down ipfs/go-ipfs#2484 into around thirty small PRs. This involved overhauling pretty much every option with a default possibility in the go-ipfs codebase. Most of these have been merged now, and I have also been actively trying to keep the http-api up-to-date in respect to this. Besides that, I also worked on the blog with @jbenet, published Weekly 10, organized some hangouts, and updated the READMEs for js-ipfs-api and go-ipfs-api.
Finally, I did a lot of work this week on standard-readme: there is now a full spec that I want feedback on, with what I think a good README should have. Extra IPFS-related rules can be found here (feedback also wanted). After talking with @noffle a lot, I also made a yeoman standard-readme generator that works well for scaffolding out your READMEs. Use it!
The past week I have been exclusively working on js-ipfs. There were two main things that happened, the first one being the merge of bitswap into js-ipfs and the second one being the update of ipfs object
to the newly formed interface-ipfs-core.
In supporting those PRs there were a lot of smaller bug fixes and features all over the js-ipfs eco system.
And lastly there js-multihash now has a more extensive set of tools to convert all the hashes.
I've been working solely focused on js-ipfs. There were a bunch of fixes, CR and debugging. The major/quantifiable things were:
interface-ipfs-core
], write the Object API spec (plus the foundations to write the remaining api specs), create a batch of tests and upgrade js-ipfs-api (now 4.x.x release) with the new interface. This unblocks the possibility of swapping js-ipfs-api with js-ipfs for Orbit.Other things involved the passing of the torch of ICWE to @dignifiedquire and giving a talk at require('lx'), the Node.js and JavaScript meetup.
I planned to work on putting Orbit into the browser but ended up fixing and optimizing orbit-db for the most of the sprint. Good news is, the fixes & optimizations in orbit-db were absolutely worth it: orbit-db's write throughput performance is now at ~100ops/s (~33% improvement) and the code base has been fully modularized. Orbit now uses the following modules as datastores: orbit-db-eventstore, orbit-db-feedstore, orbit-db-kvstore, orbit-db-counterstore. I'm still in the process of updating all the documentation, though. Orbit also got some love and I've been integrating the new orbit-db version into it. Spent time also on code review & feedback for two new features to Orbit, implemented and PRed by two newcomers to the community: username auto-complete on 'tab' (by @masadeus) and emoji auto-complete and preview (by @shamb0t). Emoji auto-complete is not merged yet but will be in the next couple of days. I also spent some time on giving feedback to whyrusleeping's pubsub PR. Also tried to integrate js-ipfs to orbit-db (WIP).
Not much as I just started coding go-ipfs again, this time I hope that for longer and more actively. I've reviewed many PRs, started going through some old and possibly outdated issues. My main focus was getting offline mode go-ipfs node up and running but it looks a tad harder that I thought it would be. While going through issues I picked up some small but old bugs that are still not fixed and started working on them also.
This week I did a bit of js-ipfs documentation work. Updated the unixfs-engine readme, started 'files' core-api documentation on interface-ipfs-core. Made dignifiedquire draw a flow chart :)
I updated the exporter part of the engine a bit and now will be working to make the export a duplex object stream. Also working on tar archiving and gzip compression options. I continued to work on js-ipfs http and updating the core, more work needs to be done to get the interfaces compatible for js-ipfs-api and core. Going to test loading a video to a page with js-ipfs core 'cat' in the browser this week.
This last week I spent a lot of time debugging and fixing the hanging issue with yamux. This is the issue that causes (in at least 90% of observed cases) the gateways and other nodes to hang when simple requests are made on them. I have a patch in place and am waiting on upstream code review to get it pushed in officially.
During that process I also did a bunch of gx work, I refactored the dependency tree of go-stream-muxer to be more flat, making updating that area of the code easier, and also made gx deps --tree
much more visually pleasing.
I also fixed and pushed up a perf improvement on go-multiaddr. Previously to create a multiaddr from some bytes, we converted it into a string, and called NewMultiaddr
on it which converted it back into bytes. This was eating up an unecessary amount of CPU time on the gateways.
This week I plan to continue on with go-libp2p fixes, and I also am planning on doing some light bitswap work. Next week I will be out on vacation so make sure you poke me soon if you need anything done before june.
Berlin travel and being sick consumed a lot of my time this sprint. I still managed to review some go-libp2p PRs and make progress on some go-ipfs bugfixes. I also wrote an IPFS resolver that uses Twitter as a transient record store (ipfs-twitter-resolver). I also collaborated with @RichardLitt a bit on his standard-readme project and my own common-readme project. This sprint is more helping out on go-ipfs and js-ipfs where ever help is needed.
The biggest direct things I handled this sprint were
Various upkeep things as usual:
The bulk of my time is still consumed by organization management.
Sprint May 3rd
Note that this is on Tuesday, not the usual Monday.
Sprint Goals
Sprint Discussions
Schedule
Please take notes in a separate pad, if you can, and link it here.
Please add the Agenda to the Pad before the endeavour sprint starts.
Sprint Deliverables