JAX Enhancement Proposals (JEPs)#

Most changes can be discussed with simple issues/discussions and pull requests.

Some changes though are a bit larger in scope or require more discussion, and these should be implemented as JEP. This allows for writing longer documents that can be discussed in a pull request themselves.

The structure of JEPs is kept as lightweight as possible to start and might be extended later on.

When you should use a JEP#

  • When your change requires a design doc. We prefer collecting the designs as JEPs for better discoverability and further reference.

  • When your change requires extensive discussion. It’s fine to have relatively short discussions on issues or pull requests, but when the discussion gets longer this becomes unpractical for later digestion. JEPs allow to update the main document with a summary of the discussion and these updates can be discussed themselves in the pull request adding the JEP.

How to start a JEP#

First, create an issue with the JEP label. All pull requests that relate to the JEP (i.e. adding the JEP itself as well as any implementing pull requests) should be linked to this issue.

Then create a pull request that adds a file named %d-{short-title}.md - with the number being the issue number.

Several early JEPs were converted in hindsight from other documentation, issues, and pull requests, so they might not exactly reflect the process outlined above.