OpenJFX is a single project and any committer should feel comfortable proposing changes and patches to any part of this project. We will have a single set of processes that apply to the entire project. However that does not mean that it is a free-for-all.
Owners and Reviewers
OpenJFX consists of a few high level components that come together to form the toolkit. While there is a single project lead, there are are multiple component leads. Component leads are responsible for the technical direction of the component and have the final say when resolving design issues (subject to project lead override). Within a component, there are different functional areas. Each area has an owner and at least one reviewer. The owner is the person assigned to the area who is responsible for fixing problems and implementing new features in that area. A reviewer is a person who can work in the same area and has knowledge of the design and implementation. There may be more than one reviewer but there is only a single owner. This allows minor technical disputes to be resolved without escalation. Component areas align with the "modules" such as Graphics, Base, Controls, FXML, etc. Functional areas might be broken out in any way we see fit, such as this set of UI controls is one functional area and another set is another area. Prism pipelines can be broken out into different functional areas, etc.
Code Ownership
Code ownership in OpenJFX is not strict in the sense that a committer cannot make a change anywhere in OpenJFX, however this is frowned upon. If a committer who is not an owner or reviewer decides to work on an area or has a set of changes that cross component boundaries, owners, other reviewers and the project lead are notified that this works is going on. This allows them to understand the sorts of changes that they are expected to see.
The following table is incomplete:
Module | Component Lead | Component | Owner | Reviewer |
Base | Martin | Base | Martin | David |
|
| Base, Beans | Martin | David |
|
| Base, Collections | Martin | David |
|
| Base, Events | Martin | David |
|
| Base, Logging | Martin | David |
|
|
|
|
|
Builders | Martin | Builders | Martin | David |
|
|
|
|
|
BuildSrc | Kevin | Build Files | Kevin | Felipe, David H |
JSL Compiler | Jim | Chien, Felipe | ||
Controls | Jonathan | Controls | Jonathan | Leif, David, Chien, Martin |
Controls, Label / Labeled | Leif | Jonathan | ||
Controls, Buttons | Leif | Jonathan | ||
Controls, DatePicker | Leif | Jonathan | ||
Controls, TextField / TextArea | Leif | Jonathan | ||
Controls, ListView / TreeView/ TableView / TreeTableView | Jonathan | Martin, David | ||
|
| Controls, Accessibility | Felipe | Anthony, Jonathan, Joe |
Controls, i18n | Leif | Jonathan | ||
|
| Controls, Charts | Jonathan | David, Leonid |
|
| Controls, CSS | David | Jonathan |
|
| Controls, Touch | Jonathan | Martin, Anthony |
|
| Controls, Two-level focus | Seeon | Jonathan, Lisa |
|
| Controls, Virtual Keyboard | Seeon | Jonathan, Lisa |
|
| Controls, Look and Feel | Jonathan |
|
|
| Controls, Menus | Jonathan |
|
Deploy | David Dehaven | Deploy | David Dehaven | Dano |
|
|
|
|
|
Design Time | Martin | Design Time | Martin | Jonathan, David |
|
|
|
|
|
FXML | Martin | FXML | Martin | David |
|
|
|
|
|
FXPackager | Danno | FXPackager | Danno | Chris B |
|
|
|
|
|
Graphics | Kevin | Graphics | Kevin | Jim, Felipe, Chien |
|
| Graphics, 3D | Chien | Kevin, Jim |
|
| Graphics, Camera | Chien | Jim, Kevin |
|
| Graphics, Animation | Martin | Jim, Kevin |
|
| Graphics, App Model | Kevin | Steve |
|
| Graphics, Canvas | Jim | Felipe |
|
| Graphics, Concurrent | Martin | Kevin, Steve |
Graphics, Drag and Drop | - | - | ||
|
| Graphics, Effects | Jim | Kevin |
|
| Graphics, Geometry | Jim | Chien |
Graphics, Gestures | Seeon | Martin | ||
|
| Graphics, Glass | Anthony | Vadim, Steve, Felipe, Artem, Petr, Alexander Z. Martin |
|
| Graphics, Glass Lens | Dave | Rafi, Lisa |
Graphics, Glass Monocle | Daniel | Lisa | ||
|
| Graphics, Android | - | - |
|
| Graphics, iOS | - | - |
|
| Graphics, Image | Jim | Felipe |
|
| Graphics, Input Events | Felipe | Anthony, Jonathan |
|
| Graphics, JSObject | Kevin | Felipe, Lenid |
|
| Graphics, Layout | Martin | Jonathan |
|
| Graphics, Menu | Jonathan | Felipe, Chien |
|
| Graphics, Mirroring | Felipe | Leif, Jim, Steve |
|
| Graphics, Paint | Jim | Felipe |
Graphics, Picking | Martin | Jim, Kevin | ||
|
| Graphics, Pisces | Jim | Chien |
|
| Graphics, Pixel Shaders | Jim | Chien |
|
| Graphics, Print | Phil | Felipe, Kevin |
|
| Graphics, Prism Common | Jim | Kevin, Felipe |
|
| Graphics, Prism D3D | Vadim | Chien, Kevin |
|
| Graphics, Prism ES2 | Chien | Kevin, Jim |
|
| Graphics, Prism ES2 EGLFB | Lisa | Chien, Dave |
|
| Graphics, Prism J2D | Jim | Chien, Kevin |
|
| Graphics, Prism SW | Chien | Jim, Kevin |
|
| Graphics, Quantum | Kevin | Anthony, Felipe, Steve |
|
| Graphics, Render Graph (NG) | Jim | Felipe, Chien, Martin |
|
| Graphics, Robot | Anthony | Steve |
|
| Graphics, Scene Graph | Martin | Kevin |
|
| Graphics, Shape | Jim | Chien |
|
| Graphics, Swing | Anthony | Steve, Vadim, Anton, Artem |
|
| Graphics, SWT | Steve | Anthony, Anton, Artem |
|
| Graphics, Text | Felipe | Vadim, Steve |
Graphics Touch | Martin | Anthony | ||
|
| Graphics, Font | Felipe | Vadim, Steve |
|
| Graphics, Transform | Jim | Chien, Kevin |
|
| Graphics, Traversal | Jonathan | David |
|
|
|
|
|
JMX | n/a | JMX | - | - |
|
|
|
|
|
Media | Kirill | Media | Kirill | Alex M |
|
|
|
|
|
Web | Leonid | Web | Leonid | Anton, Vadim, Peter Z |
Samples | Lisa | Samples | Lisa | David, Debbie, Alexander K |