Upstream first development#

Changes in open source software can flow in two directions, upstream and downstream. Here’s how we use those terms:

  • Upstream refers to the original open source project where a community of users and developers maintain the original code.

  • Downstream refers to any projects, products, or services that are derived from that original open source project.

Upstream first is an approach to developing software that starts by contributing changes to the upstream code first. Here’s how it works:

  • Developers need to make permanent improvements or fixes in their downstream code over time.

  • They make those changes starting in the original open source project (upstream).

  • After the open source project accepts those changes, the developers then pull that updated code into their downstream code.

  • Other downstream code based on the same upstream can benefit from that same contribution.


NOTE: When there’s an urgent need for a fix, developers may develop a patch directly on the downstream code, but that’s considered temporary.