This repository has no description
1# This file documents the subsystem maintainers of the Ghostty project
2# along with the responsibilities of a maintainer and how one can become
3# a maintainer.
4#
5# Ghostty follows a subsystem maintainer model where distinguished
6# contributors (with mutual agreement) are designated as maintainers of a
7# specific subset of the project. A subsystem maintainer has more privileges
8# and authority over a specific part of the project than a regular
9# contributor and deference is given to them when making decisions about
10# their subsystem.
11#
12# Ultimately Ghostty has a BDFL (Benevolent Dictator For Life) model
13# currently with @mitchellh as the BDFL. The BDFL has the final say in all
14# decisions and may override a maintainer's decision if necessary. I like to
15# say its a BDFLFN (Benevolent Dictator For Life "For Now") model because
16# long term I'd like to see the project be more community driven. But for
17# now, early in its life, we're going with this model.
18#
19# ## Privileges
20#
21# - Authority to approve or reject pull requests in their subsystem.
22# - Authority to moderate issues and discussions in their subsystem.
23# - Authority to make roadmap and design decisions about their subsystem
24# with input only from other subsystem maintainers.
25#
26# In all scenarios, the BDFL doesn't need to be consulted for decisions
27# but may revert or override decisions if necessary. The expectation is
28# that maintainers will be trusted to make the right decisions for their
29# subsystem and this will be rare.
30#
31# ## Responsibilities
32#
33# Subsystem maintainership is a voluntary role and maintainers are not
34# expected to dedicate any amount of time to the project. However, if a
35# maintainer is inactive for a long period of time, they may be removed from
36# the maintainers list to avoid bitrot or outdated information.
37#
38# Maintainers are expected to be exemplary members of the community and
39# should be respectful, helpful, and professional in all interactions.
40# This is both in regards to the community at large as well as other
41# subsystem maintainers as well as @mitchellh.
42#
43# As technical leaders, maintainers are expected to be mindful about
44# breaking changes, performance, user impact, and other technical
45# considerations in their subsystem. They should be considerate of large
46# changes and should be able to justify their decisions.
47#
48# Notably, maintainers have NO OBLIGATION to review pull requests or issues
49# in their subsystem. They have full discretion to review or not review
50# anything they want. This isn't a job! It is a role of trust and authority
51# and the expectation is that maintainers will use their best judgement.
52#
53# ## Becoming a Maintainer
54#
55# Maintainer candidates are noticed and proposed by the community. Anyone
56# may propose themselves or someone else as a maintainer. The BDFL along
57# with existing maintainers will discuss and decide.
58#
59# Generally, we want to see consistent high quality contributions to a
60# specific subsystem before considering someone as a maintainer. There isn't
61# an exact number of contributions or time period required but generally
62# we're looking for an order of a dozen or more contributions over a period of
63# months, at least.
64#
65# # Subsystem List
66#
67# The subsystems don't fully cover the entirety of the Ghostty project but
68# are created organically as experts in certain areas emerge. If you feel
69# you are an expert in a certain area and would like to be a maintainer,
70# please reach out to @mitchellh on Discord.
71#
72# (Alphabetical order)
73#
74# - @ghostty-org/font - All things font related including discovery,
75# rasterization, shaping, coloring, etc.
76#
77# - @ghostty-org/gtk - Anything GTK-related in the project, primarily
78# the GTK apprt. Also includes X11/Wayland integrations and general
79# Linux support.
80#
81# - @ghostty-org/localization/* - Anything related to localization
82# for a specific locale.
83#
84# - @ghosty-org/localization/manager - Manage all localization tasks
85# and tooling. They are not responsible for any specific locale but
86# are responsible for the overall localization process and tooling.
87#
88# - @ghostty-org/macos - The Ghostty macOS app and any macOS-specific
89# features, configurations, etc.
90#
91# - @ghostty-org/packaging/snap - Ghostty snap packaging
92# (https://snapcraft.io/ghostty)
93#
94# - @ghostty-org/renderer - Ghostty rendering subsystem, including the
95# rendering abstractions as well as specific renderers like OpenGL
96# and Metal.
97#
98# - @ghostty-org/shell - Ghostty shell integration, including shell
99# completions, shell detection, and any other shell interactions.
100#
101# - @ghostty-org/terminal - The terminal emulator subsystem, including
102# subprocess management and pty handling, escape sequence parsing,
103# key encoding, etc.
104#
105# ## Outside of Ghostty
106#
107# Other "subsystems" exist outside of Ghostty and will not be represented
108# in this CODEOWNERS file:
109#
110# - @ghostty-org/discord-bot - Maintainers of the Ghostty Discord bot.
111#
112# - @ghostty-org/website - Maintainers of the Ghostty website.
113
114# Font
115/src/font/ @ghostty-org/font
116/pkg/fontconfig/ @ghostty-org/font
117/pkg/freetype/ @ghostty-org/font
118/pkg/harfbuzz/ @ghostty-org/font
119
120# GTK
121/src/apprt/gtk/ @ghostty-org/gtk
122/src/os/cgroup.zig @ghostty-org/gtk
123/src/os/flatpak.zig @ghostty-org/gtk
124/dist/linux/ @ghostty-org/gtk
125
126# macOS
127#
128# This includes libghostty because the macOS apprt is built on top of
129# libghostty and often requires or is impacted by changes to libghostty.
130# macOS subsystem maintainers are expected to only work on libghostty
131# insofar as it impacts the macOS apprt.
132/include/ghostty.h @ghostty-org/macos
133/src/apprt/embedded.zig @ghostty-org/macos
134/src/os/cf_release_thread.zig @ghostty-org/macos
135/src/os/macos.zig @ghostty-org/macos
136/macos/ @ghostty-org/macos
137/dist/macos/ @ghostty-org/macos
138/pkg/apple-sdk/ @ghostty-org/macos
139/pkg/macos/ @ghostty-org/macos
140/.swiftlint.yml @ghostty-org/macos
141
142# Renderer
143/src/renderer.zig @ghostty-org/renderer
144/src/renderer/ @ghostty-org/renderer
145/pkg/glslang/ @ghostty-org/renderer
146/pkg/opengl/ @ghostty-org/renderer
147/pkg/spirv-cross/ @ghostty-org/renderer
148/pkg/wuffs/ @ghostty-org/renderer
149
150# Shell
151/src/shell-integration/ @ghostty-org/shell
152/src/termio/shell_integration.zig @ghostty-org/shell
153
154# Terminal
155/src/simd/ @ghostty-org/terminal
156/src/input/KeyEncoder.zig @ghostty-org/terminal
157/src/terminal/ @ghostty-org/terminal
158/src/terminfo/ @ghostty-org/terminal
159/src/termio/ @ghostty-org/terminal
160/src/unicode/ @ghostty-org/terminal
161/src/Surface.zig @ghostty-org/terminal
162/src/surface_mouse.zig @ghostty-org/terminal
163
164# Localization
165/po/README_TRANSLATORS.md @ghostty-org/manager # *localization* manager.
166/po/com.mitchellh.ghostty.pot @ghostty-org/manager
167/src/os/i18n_locales.zig @ghostty-org/manager
168/po/be.po @ghostty-org/be_BY
169/po/bg.po @ghostty-org/bg_BG
170/po/ca.po @ghostty-org/ca_ES
171/po/de.po @ghostty-org/de_DE
172/po/es_AR.po @ghostty-org/es_AR
173/po/es_BO.po @ghostty-org/es_BO
174/po/es_ES.po @ghostty-org/es_ES
175/po/eu.po @ghostty-org/eu_ES
176/po/fr.po @ghostty-org/fr_FR
177/po/ga.po @ghostty-org/ga_IE
178/po/he.po @ghostty-org/he_IL
179/po/hr.po @ghostty-org/hr_HR
180/po/hu.po @ghostty-org/hu_HU
181/po/id.po @ghostty-org/id_ID
182/po/it.po @ghostty-org/it_IT
183/po/ja.po @ghostty-org/ja_JP
184/po/kk.po @ghostty-org/kk_KZ
185/po/ko_KR.po @ghostty-org/ko_KR
186/po/lt.po @ghostty-org/lt_LT
187/po/lv.po @ghostty-org/lv_LV
188/po/mk.po @ghostty-org/mk_MK
189/po/nb.po @ghostty-org/nb_NO
190/po/nl.po @ghostty-org/nl_NL
191/po/pl.po @ghostty-org/pl_PL
192/po/pt_BR.po @ghostty-org/pt_BR
193/po/ru.po @ghostty-org/ru_RU
194/po/tr.po @ghostty-org/tr_TR
195/po/uk.po @ghostty-org/uk_UA
196/po/vi.po @ghostty-org/vi_VN
197/po/zh_CN.po @ghostty-org/zh_CN
198/po/zh_TW.po @ghostty-org/zh_TW
199
200# Packaging - Snap
201/snap/ @ghostty-org/snap