Skip to content
This repository has been archived by the owner on Feb 12, 2024. It is now read-only.

OKR 2018 Q2 #1281

Merged
merged 9 commits into from
Apr 14, 2018
Merged
Changes from 2 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
50 changes: 50 additions & 0 deletions OKR.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,50 @@
# Quarterly Objectives and Key Results

We try to frame our ongoing work using a process based on quarterly Objectives and Key Results (OKRs). Objectives reflect outcomes that are challenging, but realistic. Results are tangible and measurable.

## 2018 Q2

> Work in Progress

### The daemon is stable and so core is reliable

- `PX` - OWNER - The uncaught errors and memory usage are under control and a daemon can run for a week non stop
- `PX` - OWNER - One or more js-ipfs daemons are part of the IPFS infrastructure
- `PX` - OWNER - js.ipfs.io exposes an IPFS Gateway provided by a js-ipfs daemon
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@victorbjelkholm can I assign you on this one given that you already started this work with #804?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

👍 Should we have one bootstrapper node be a js-ipfs node as well? My thinking is that the js-ipfs gateway probably won't be used a lot, while a default bootstrap node would get a lot of usage

Copy link
Member Author

@daviddias daviddias Mar 28, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

See KR on L12 One or more js-ipfs daemons are part of the IPFS infrastructure. That should be it :)

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Ah, I would make it more explicit, include "bootstrap" somewhere in the text 👍


### The core can handle vast amounts of data

- `PX` - OWNER - The MFS is implemented in js-ipfs
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@achingbrain is assigned with this one

- `PX` - OWNER - npm on IPFS is used as a test vector of js-ipfs capabilities
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@achingbrain is also assigned with this one given that the MFS is a dependency.

- `PX` - OWNER - js-ipfs in the browser can load a dataset of at least 100Gb (create archives.js.ipfs.io)
- `PX` - OWNER - js-ipfs in Node.js can load a dataset of at least 1TB (use npm to prove it)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Last time I checked the registry the total size was 800GB with the latest version of each package. Also, not very clear what "load a dataset" means, guessing it means load an object from a dataset, not the entire dataset.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I meant it as ipfs add and ipfs get. Load it in and make sure when it is in, that it can also be taken out.

- `PX` - OWNER - A S3 IPFS Repo backend exists and it is easily pluggable on `new IPFS`
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@jacobheun is tasked with this one

- `PX` - OWNER - The PIN API is finished and merged.
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JonKrone has been working on this one following the work of @AdamStone. @JonKrone let us know if you will have the availability to take this one to the finish line.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Needs an Owner.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@JonKrone would you like to be the owner for this one given that you already did most of the work?

Copy link
Contributor

@JonKrone JonKrone Apr 6, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@diasdavid Yep yep, happy to. I misunderstood this PR, sorry for the late response.


### The APIs are more ergonomic and developer productivity is off the charts

- `PX` - OWNER - Complete the first milestone of the Awesome Endeavour - Flow
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vmx would you like to continue being the Owner of this endeavor for Q2?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I'll be the owner.

- `PX` - OWNER - Roadmap and Kickstart the second milestone for the Awesome Endeavour - Flow
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@vmx and therefore, also own this one?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I see that as part of it being owner of the awesome endeavour.

- `PX` - OWNER - Make js-ipfs uglify friendly again
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fsdiogo is assigned with this one

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yup, I'm currently working on it!

- `PX` - OWNER - Every env test run is parallelized in CI
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@victorbjelkholm This one could also be tracked by the QA Working Group OKR list, I believe you are already onto it, please confirm.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Not sure what this means either. That the different envs (windows, macos, linux) are run in parallel? In that case, this is already done

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@victorbjelkholm not the browsers. Running Browser tests still only happens in sequence and only one browser is tested.

- `PX` - OWNER - CLI, HTTP-API and Core Tests of js-ipfs are parallelized in CI
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Same for this one: @victorbjelkholm This one could also be tracked by the QA Working Group OKR list, I believe you are already onto it, please confirm.

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yeah, not sure what you mean with this, just that they are run in parallel?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Would love to have something about the testing "quality" as well but haven't figured out a way of expressing that in terms of OKRs, as it's hard to quantify.

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that they are run in parallel?

Exactly. Right now they are sequential

- `PX` - OWNER - A repo migration utility exists and migration is a good experience for js-ipfs users
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fsdiogo is tasked with this one as well.


### libp2p levels up, learns new superpowers and a dedicated team is formed

- `PX` - OWNER - libp2p has primitives to keep connections under control
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pgte did a ton of work in Q1 to make this possible. @pgte wanna continue handling it for Q2?

- `PX` - OWNER - Readable Streams no more! Reduce the overhead of Readable -> Pull in libp2p-mplex
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@dryajov self assigned to this one, wanna own it for Q2?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

yep, on it already

- `PX` - OWNER - The libp2p.next() refactor is complete
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I, @diasdavid, will continue owning this one.

- `PX` - OWNER - Delegated Peer Routing and Content Routing modules are created
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@diasdavid are you taking this as well, otherwise I can?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I mean, the routing modules...

Copy link
Member Author

@daviddias daviddias Mar 29, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I probably should, even if then I guide someone after, there are some nuances there.

Make sure to plan your schedule accordingly, I believe that the mplex stream muxers is going to take a lot of your time already.

- `PX` - OWNER - Browsers no longer rely on static rendezvous points for Discovery
- `PX` - OWNER - js-libp2p gets its own OKR spreadsheet for next Q3
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

I, @diasdavid, will own this one.


Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can I propose the libp2p dissector for wireshark and libp2p-nodetrust as an OKR?
https://github.com/mkg20001/libp2p-dissector https://github.com/mkg20001/libp2p-nodetrust

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

that be super helpful, not sure if it fits the js OKR tho, maybe it has a better place? In any case, would be rad to have it 👍

Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mkg20001 what would be the specific key result and would you be the owner of it?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Libp2p dissector: A libp2p dissector for wireshark exists and implements all protocols used in IPFS as well as secio decryption
Libp2p nodetrust: The libp2p nodetrust module is deployed (possibly audited?) and being used in production services

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, I want to be owner of both OKRs

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes. Although I would probably need some help with the C stuff as I'm still learning the language.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@diasdavid Are they going to get added to the list?

Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mkg20001 if you need help with the Wireshark dissector for libp2p, I'm happy to collaborate! I just finished working on a dissector for the Ethereum discovery protocol – which hopefully we'll publish soon ;-)

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@raulk Thanks! I'd really need your help. Currently I'm stuck at reassembling data from yamux packets.

Copy link
Member

@raulk raulk May 22, 2018

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@mkg20001 Is there a branch with the WIP you can point me to? Not sure if you've come across the Wireshark API facilities for reassembling PDUs over TCP, I guess yes (section 2.7 here).

I read the yamux spec and I guess another complexity you've identified is how to follow and register individual streams separately within a session. Since all Yamux packets contain the stream ID, we can set it on the proto tree and attach a filter to it.

Then I think we can use the register_follow_stream function to register a new follower on a statistics tap, that relies on the stream ID. This function is somewhat hidden, as I wasn't able to find documentation about this facility, but the tcp dissector uses it here

Perhaps sooner or later, we'll need to store the streams identified within a session inside the WS conversation data. We can either use a simple linked list of stream IDs, or a map if we want to store info about each stream (e.g. statistics).

Happy to continue discussing, here or elsewhere ;-)

### The Community is pumped by having a selection of example applications, blog posts and video tutorials on how to build DApps with IPFS

- `PX` - OWNER - Blog post on PeerPad Architecture with focus on its Read/Write Capability System
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@pgte this overlaps with the Dynamic Data WG focus, perhaps we should move it there?

- `PX` - OWNER - The Exchange Files example gets a new face and becomes a fully usable app for exchange files (e.g files.js.ipfs.io)
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@fsdiogo is tasked with this one.

- `PX` - OWNER - Identify the top 3 examples that would help the majority of the developers to understand how to use IPFS
Copy link
Member Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

@Mr0grog would this something you would like to help us with?

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Yes, you can put me down for that.


## 2018 Q1

Find the OKRs for 2018 Q1 at the [IPFS OKRs Spreadsheet](https://docs.google.com/spreadsheets/u/1/d/1clB-W489rJpbOEs2Q7Q2Jf1WMXHQxXgccBcUJS9QTiI/edit#gid=2079514081)