comparison mupdf-source/thirdparty/curl/docs/GOVERNANCE.md @ 2:b50eed0cc0ef upstream

ADD: MuPDF v1.26.7: the MuPDF source as downloaded by a default build of PyMuPDF 1.26.4. The directory name has changed: no version number in the expanded directory now.
author Franz Glasner <fzglas.hg@dom66.de>
date Mon, 15 Sep 2025 11:43:07 +0200
parents
children
comparison
equal deleted inserted replaced
1:1d09e1dec1d9 2:b50eed0cc0ef
1 # Decision making in the curl project
2
3 A rough guide to how we make decisions and who does what.
4
5 ## BDFL
6
7 This project was started by and has to some extent been pushed forward over
8 the years with Daniel Stenberg as the driving force. It matches a standard
9 BDFL (Benevolent Dictator For Life) style project.
10
11 This setup has been used due to convenience and the fact that is has worked
12 fine this far. It is not because someone thinks of it as a superior project
13 leadership model. It will also only continue working as long as Daniel manages
14 to listen in to what the project and the general user population wants and
15 expects from us.
16
17 ## Legal entity
18
19 There is no legal entity. The curl project is just a bunch of people scattered
20 around the globe with the common goal to produce source code that creates
21 great products.
22
23 The copyrights in the project are owned by the individuals and organizations
24 that wrote those parts of the code.
25
26 ## Decisions
27
28 The curl project is not a democracy, but everyone is entitled to state their
29 opinion and may argue for their sake within the community.
30
31 All and any changes that have been done or will be done are eligible to bring
32 up for discussion, to object to or to praise. Ideally, we find consensus for
33 the appropriate way forward in any given situation or challenge.
34
35 If there is no obvious consensus, a maintainer who's knowledgeable in the
36 specific area will take an "executive" decision that they think is the right
37 for the project.
38
39 ## Key roles
40
41 ### Maintainers
42
43 A maintainer in the curl project is an individual who has been given
44 permissions to push commits to one of the git repositories.
45
46 Maintainers are free to push commits to the repositories at their own will.
47 Maintainers are however expected to listen to feedback from users and any
48 change that is non-trivial in size or nature *should* be brought to the
49 project as a PR to allow others to comment/object before merge.
50
51 ### Former maintainers
52
53 A maintainer who stops being active in the project will at some point get
54 their push permissions removed. We do this for security reasons but also to
55 make sure that we always have the list of maintainers as "the team that push
56 stuff to curl".
57
58 Getting push permissions removed is not a punishment. Everyone who ever worked
59 on maintaining curl is considered a hero, for all time hereafter.
60
61 ### Security team members
62
63 We have a security team. That's the team of people who are subscribed to the
64 curl-security mailing list; the receivers of security reports from users and
65 developers. This list of people will vary over time but should be skilled
66 developers familiar with the curl project.
67
68 The security team works best when it consists of a small set of active
69 persons. We invite new members when the team seems to need it, and we also
70 expect to retire security team members as they "drift off" from the project or
71 just find themselves unable to perform their duties there.
72
73 ### Server admins
74
75 We run a web server, a mailing list and more on the curl project's primary
76 server. That physical machine is owned and run by Haxx. Daniel is the primary
77 admin of all things curl related server stuff, but Björn Stenberg and Linus
78 Feltzing serve as backup admins for when Daniel is gone or unable.
79
80 The primary server is paid for by Haxx. The machine is physically located in a
81 server bunker in Stockholm Sweden, operated by the company Portlane.
82
83 The web site contents are served to the web via Fastly and Daniel is the
84 primary curl contact with Fastly.
85
86 ### BDFL
87
88 That's Daniel.
89
90 # Maintainers
91
92 A curl maintainer is a project volunteer who has the authority and rights to
93 merge changes into a git repository in the curl project.
94
95 Anyone can aspire to become a curl maintainer.
96
97 ### Duties
98
99 There are no mandatory duties. We hope and wish that maintainers consider
100 reviewing patches and help merging them, especially when the changes are
101 within the area of personal expertise and experience.
102
103 ### Requirements
104
105 - only merge code that meets our quality and style guide requirements.
106 - *never* merge code without doing a PR first, unless the change is "trivial"
107 - if in doubt, ask for input/feedback from others
108
109 ### Recommendations
110
111 - please enable 2fa on your github account to reduce risk of malicious source
112 code tampering
113 - consider enabling signed git commits for additional verification of changes
114
115 ### Merge advice
116
117 When you're merging patches/PRs...
118
119 - make sure the commit messages follow our template
120 - squash patch sets into a few logical commits even if the PR didn't, if
121 necessary
122 - avoid the "merge" button on github, do it "manually" instead to get full
123 control and full audit trail (github leaves out you as "Committer:")
124 - remember to credit the reporter and the helpers!
125
126 ## Who are maintainers?
127
128 The [list of maintainers](https://github.com/orgs/curl/people). Be aware that
129 the level of presence and activity in the project vary greatly between
130 different individuals and over time.
131
132 ### Become a maintainer?
133
134 If you think you can help making the project better by shouldering some
135 maintaining responsibilities, then please get in touch.
136
137 You will be expected to be familiar with the curl project and its ways of
138 working. You need to have gotten a few quality patches merged as a proof of
139 this.
140
141 ### Stop being a maintainer
142
143 If you (appear to) not be active in the project anymore, you may be removed as
144 a maintainer. Thank you for your service!