Much of this repo is not accurate to the current state of affairs in 202207.
Updates are needed to account for how IPFS development spans multiple implementations and organizations.
For now, see the official IPFS community docs for ways to engage with teams developing IPFS.
- Related Projects
- How We Work Together
- Teams, Roles & Structures
- Asynchronous Communitication
- Synchronous Communication
- Tools & Tutorials
- Contribute
- License
IPFS is built on several related projects that each have their own planning:
We deliberately designed an organizational process that is very flexible, enabling each team to design a coordination strategy that suits their project needs, while keeping a baseline for team-wide coordination around project-wide planning.
You might hear terms such as "Working Group Roadmap", "Project Roadmap", "OKRs", "Metrics" used often. If you are puzzled about how these all fit together and what is the best resource to look at, we've created the following diagram to illustrate how all of these fit together for the IPFS org.
If you are new around here, the best way to get onboarded is to focus on the "Day to Day Operations" as it will help you meet the Working Groups, understand what their top priorities are, and quickly identify where you can contribute. Later, you can go through all the Quarterly OKRs and Yearly Planning so that you understand fully the decisions you see being made.
You can also learn more about operating in Distributed Teams at our 'Distributed Teams' Document, containing resources on tools, decision making, process and more. We have been gathering, reviewing, discussing and experimenting with many overtime and will continue to do so as we find new needs.
Meet the current Working and Research Groups at the TEAMS_ROLES_STRUCTURES document.
As an organization that operates at a planetary scale with multiple people from different timezones and schedules, we value tremendously the benefits of Asynchronous Communication. The art of writing things down for our future selves or future contributors is one of the key reasons that enables so many contributors to participate in the large endeavour of Distributing the Web with the IPFS Project.
Some golden recommendations:
- Prefer opening an issue vs. sending a DM
- If you find documentation missing, treat it as a bug - once you get your answer, contribute it so that it benefits others
- Use synchronous time wisely (only if needed), and convert any output into an artifact that can be used by others (avoid Tribal Knowledge)
The IPFS Project & Working Group Roadmaps serve as the north star for our quarterly planning process and long term achievement of our mission goals. You can find these roadmaps at https://github.com/ipfs/roadmap.
The IPFS workgroups plan and measure impact on a quarterly basis using OKRs - learn more here.
Synchronous Communication is phenomenal to transfer memes rapidly, clarify any outstanding questions, deep dive into hard topics together, get to know each other better and develop trust. The main pain point with Synchronous Communication is that if you were not present, you might miss out on important information that is relevant to you and your project. To overcome this limitation, a core competency of the IPFS Org as a whole is to be stellar at taking notes and creating artifacts that represent any decision/announcement made during those synchronous conversations. The corollary being: if it ain't written down and broadcasted, it didn't happen.
You can find the schedule for meetings of each of the IPFS Working Groups, Special Interest Groups, and Related Projects in the TEAMS_ROLES_STRUCTURES document, as well as in the community calendar below.
We host a monthly community meetup for builders across the IPFS ecosystem to present on notable improvements and updates. It's a great way for casual followers to get a high-level update on the pulse of the IPFS projects without having to follow all of the sprint calls. You can sign up to share a lightning talk or demo in the meetup invite (example). Newcomers are very welcome.
You can find recordings of past meetups on Youtube:
You can view all IPFS-related calls and events on the IPFS Community Calendar.
<iframe src="https://calendar.google.com/calendar/embed?src=ipfs.io_eal36ugu5e75s207gfjcu0ae84%40group.calendar.google.com&ctz=America%2FDenver" style="border: 0" width="800" height="600" frameborder="0" scrolling="no"></iframe>We hangout on IRC for lots of Dev Chat. You can find us on Freenode on the following channels:
- #ipfs
- #ipfs-dev
- #ipfs-cluster
- #ipfs-gui
- #ipfs-in-web-browsers
- #ipfs-project
- #ipfs-infrastructure
- #ipfs-package-managers
- #ipfs-pinbot
- #gx
- #libp2p
- #ipld
You can also access these channels through the Matrix IRC Bridge
As the IPFS team is all over the world, we've picked a set of "working hours" during which we can overlap. The hours are:
16:00-19:00 Z/UTC daily or
18:00-21:00 CEST daily or
12:00-15:00 EST daily or
09:00-12:00 PDT daily
We aim to be available during these hours. Your mileage may vary.
All of our times are set according to the UTC timezone (or should be). This is much easier than adjusting times manually to accommodate different time zones, for a distributed team. If our calendar's location is set to Reykjavík, Iceland, it is because Iceland is always on UTC time. It is recommended that you know your timezone's difference from UTC for ease of scheduling. Sites like http://everytimezone.com can help with this.
Tools living in their own documents:
- Lead Maintainer Protocol
- Host a Call
- Coordination Toolkit
- How to create a Roadmap
- Resources for Distributed Teams
We use Zoom for our community calls. This allows us to stream directly to YouTube, and to have calls with more than 25 users. Zoom may require a download before you are able to join. If you click on a Zoom link to a meeting room, it will automatically suggest the software to download. Please let us know if you have any issues with Zoom.
Note: Screen Sharing in Zoom under X11 requires compositor. Users of minimalist tiling window managers (i3, awesome, dwm) will share a "black screen" by default. The fix is to use third-party compositor, eg. Compton.
Feel free to join in. All welcome. Open an issue!
This repository and all of our calls fall under the IPFS Code of Conduct.