Everyone is encouraged to participate in the Trino project. Anyone can influence the project by simply being involved in the discussions about new features, the roadmap, architecture, and problems they are facing. The various roles described here do not carry more weight in these discussions, and instead we try to always work towards consensus. The Trino project has a strong vision and development philosophy that helps to guide discussions and allows us to reach consensus. When we can’t come to consensus, we work to figure out what we agree on, and what we don’t. Then we move forward by building what we agree on, which helps everyone better understand the parts we don’t agree on, and hopefully builds empathy at the same time.
The following describes the expectations and duties of the various roles.
This is the most important role. Very simply put, participants are those who show up and join in discussions about the project. Users, developers, and administrators can all be participants, as can literally anyone who has the time, energy, and passion to become involved. Participants suggest improvements and new features. They report bugs, regressions, performance issues, and so on. They work to make Trino better for everyone.
Expectations and duties:
A contributor submits changes to Trino. The full contribution process is described here.
Expectations and duties:
You can view all contributors on GitHub.
A reviewer reads a proposed change to Trino, and assesses how well the change aligns with the Trino vision and guidelines. This includes everything from high level project vision to low level code style. Everyone is invited and encouraged to review others’ contributions – you don’t need to be a maintainer for that.
Expectations and duties:
In Trino, maintainer is an active role. A maintainer is responsible for merging code only after ensuring it has been reviewed thoroughly and aligns with the Trino vision and guidelines. In addition to merging code, a maintainer actively participates in discussions and reviews. Being a maintainer does not grant additional rights in the project to make changes, set direction, or anything else that does not align with the direction of the project. Instead, a maintainer is expected to bring these to the project participants as needed to gain consensus. The maintainer role is for an individual, so if a maintainer changes employers, the role is retained. However, if a maintainer is no longer actively involved in the project, their maintainer status will be reviewed.
Expectations and duties:
An Apache Hive committer did an excellent write up on their process and much of this aligns with our philosophy on maintainers. Read about it.
Trino maintainers typically focus on the core trino repository, but many also work across other projects in the trinodb organization and upstream projects such as airlift, and assist with the trinodb subprojects.
The following community members are Trino maintainers:
Full name | |
---|---|
dain | Dain Sundstrom |
ebyhr | Yuya Ebihara |
electrum | David Phillips |
findepi | Piotr Findeisen |
hashhar | Ashhar Hasan |
kasiafi | Kasia Findeisen |
kokosing | Grzegorz Kokosiński |
losipiuk | Łukasz Osipiuk |
martint | Martin Traverso |
mosabua | Manfred Moser |
pettyjamesm | James Petty |
Praveen2112 | Praveen Krishna |
raunaqmorarka | Raunaq Morarka |
sopel39 | Karol Sobczak |
wendigo | Mateusz Gajewski |
A subproject maintainer on the Trino project is a maintainer with limited scope in terms of access to specific repositories within the trinodb GitHub organization. The scope is also limited in terms of the used technologies.
Subproject maintainers only have merge access on a specific subproject repository. Subproject repositories cover a subset of the overall scope of the Trino project. They are often associated to a specific aspect of running the project or a technology stack and integration for Trino.
Examples for subproject repositories are the trino.io website source or the grafana-trino repository for the Trino Grafana data source plugin. Other potential subprojects are trino-python-client, trino-go-client, and charts.
Expectations and duties:
The expectations and duties of a subproject maintainer are identical to those of a maintainer, but limited to the subproject repository and the related technologies.
The following subproject repositories and subproject maintainers are configured:
aws-proxy - Proxy for AWS S3
charts - Helm charts for Trino
grafana-trino - Grafana data source plugin for Trino
trino.io - Trino website
trino-gateway - Trino Gateway load balancer and router
trino-go-client - Trino client fo Go
trino-js-client - Trino client for Javascript
The language lead is the maintainer specifically responsible for maintaining the
SQL language implementation in Trino. Trino attempts to adhere to the ANSI SQL
specification and related extensions and conventions as closely as possible.
Because SQL is the primary interface for Trino users, the language lead serves
as the sole decision maker regarding SQL language decisions. The primary
objective for this role is to maintain compatibility between versions and ensure
adherence to the SQL standard. All pull requests making changes or additions to
Trino SQL syntax, types, and function library must have the syntax-needs-review
label and be reviewed by the language lead.
Martin Traverso martint is the language lead.
The file system lead is the maintainer specifically responsible for maintaining
the TrinoFileSystem
APIs for accessing files and file systems, typically used
in the object storage
connectors.
The TrinoFileSystem
APIs are carefully designed to contain only the operations
needed by Trino, and with a goal of each operation being simple to understand,
fully documented, and thoroughly tested. These APIs replace the legacy Hadoop
FileSystem APIs. With the new APIs, the project improves developer productivity,
because you can rely on the documented behavior and be confident this is
verified by tests. Additionally, the clarity of the requirements for the APIs
empowers developers to add support for additional file systems.
To maintain this simplicity, the APIs are only changed and expanded in a very conservative and careful manner. Any such changes of the API and its behavior musted be reviewed and approved by the file system lead.
David Phillips electrum is the file system lead.
Common among other open source projects, the role of benevolent dictator for life (BDFL) empowers particularly esteemed maintainers to act as the ultimate authority for technical decisions. In circumstances where the maintainers are divided or uncertain about how to proceed on a given issue, final say will defer to the benevolent dictators.
Expectations and duties:
Dain Sundstrom dain, David Phillips electrum, and Martin Traverso martint are the BDFLs.
The Trino Software Foundation is the governing authority of the entire Trino project. Though it does not get involved in day-to-day discussions or technical decisions, it maintains oversight of the project and intellectual property. You can read more about the Trino Software Foundation here.