Contributing To TensorFlow: SIGs, RFCs, Testing, and Docs

Posted by Edd Wilder-James

TensorFlow is where it is today because of many amazing open source contributions via GitHub, with over 1,800 contributors to date. Over the last year we recognized the opportunity to better support the many contributors who want to help TensorFlow. At the 2018 TensorFlow Dev Summit, I outlined plans for creating Special Interest Groups, and a public design review process called TensorFlow RFCs (Requests For Comment.)

At the start of 2019, we now have six Special Interest Groups up and running, and have published over 20 RFCs. In addition to that, we have communities of contributors focused on documentation, and on testing the forthcoming TensorFlow 2.0 release. Read on to find out what these groups do, and how you can become involved.

TensorFlow RFCs

TensorFlow RFCs are now the main way that the project discusses design direction. When a new API or feature is conceived, it is posted as a pull request to GitHub, for a period of comment and review. This gives us a central way to talk about design, and a lightweight process for anybody wanting to introduce non-trivial changes into the TensorFlow project.

This is a significant step forward for transparency in design: in our transition to TensorFlow 2.0, all key changes have been published and discussed through the RFC process. And it’s not only driven by the core TensorFlow team, RFCs have been published by community contributors and SIGs, too. As TensorFlow continues to grow, the RFC process will be important glue between all the project groups, and the main way to consult with others on prospective change.

You can get involved with the RFC process by joining the contributor developers’ group, where each RFC is announced. The Github RFC project board is also a great place to find a snapshot of where each RFC is in the process.

Snapshot of the GitHub project board for TensorFlow RFCs

Special Interest Groups (SIGs)

TensorFlow is used in many diverse environments and applications. SIGs exist to support areas of development that lay outside of the core direction of TensorFlow, but are important to users and the broad TensorFlow ecosystem. In 2018, we first piloted the program with SIG Build, for packagers, distributors and site maintainers of TensorFlow, and later in the year added more SIGs as part of the transition to TensorFlow 2.0. Current SIGs include:

  • SIG Addons: ops, layers, metrics, losses and optimizers that conform to the TensorFlow API and add new functionality not available in core TensorFlow.
  • SIG Build: supporting the build, test, packaging and distribution of TensorFlow, including 3rd party builds for alternate architectures.
  • SIG IO: support for file systems and data formats outside of core TensorFlow, including Apache Ignite, Kafka & Hadoop, and AWS Kinesis data streams.
  • SIG Networking: support for different network fabrics and protocols, e.g. MPI.
  • SIG Rust: for collaboration on the development of TensorFlow’s Rust bindings.
  • SIG TensorBoard: for collaboration around TensorBoard, the visualization tool for TensorFlow.

Most SIGs are led by members of the open source community, and also include some core TensorFlow team members to ensure the work links back effectively to the project. If you would like to get involved in any of the Special Interest Groups, please feel free to join their mailing lists and introduce yourself, or reach out to any of the leaders, who are named in each group’s charter.

To see what the SIGs have accomplished recently, check out posts like this one, which are regularly sent to the contributor developers’ group.

Testing and Documentation

Open source contribution is broader than just submitting code: there are important parts to play in helping advance TensorFlow’s documentation, and in testing upcoming releases. If you’re looking for a way to get started as part of the TensorFlow contributor community, these are great places to start.

As the TensorFlow 2.0 release is being developed, we need to ensure it gets tested broadly in the user community. The TensorFlow 2.0 Testing group is helping with just that. If you like living on the edge and trying things out, you can help by testing early TensorFlow 2.0 snapshots and reporting your experiences. The group also meets weekly in a video call, with news updates on progress, and guest talks from developers from the core project and other SIGs. To get started, just join the group and turn up to a meeting.

Documentation is the single biggest factor in open source software adoption, and many folks are interested in helping write new docs, create examples, or translate existing documentation. We’re excited to figure out ways to bring more folks on board as documentation contributors, so created the documentation group to start that collaboration. If this interests you, please join the community, and read the documentation contributor guide.

And, as ever, if you’re interested in helping out other users by being a community expert, you can join in with giving great advice on the TensorFlow tag on StackOverflow, our official forum for answering TensorFlow questions.

Get involved

TensorFlow has always been shaped by the community, and we’re excited to build on several years of great contribution with our new community groups and processes. Thank you to every contributor for their support to date, and we look forward to welcoming many more into the project!

If you have any questions about getting involved, feel free to ask on the developers’ group, or reach out to me and the TensorFlow community team.