mirror of
				https://gitea.com/Lydanne/buildx.git
				synced 2025-11-04 18:13:42 +08:00 
			
		
		
		
	The "reference" package was moved to a separate module, which was extracted
from b9b19409cf
Also update compose-go, which also switched to distribution/reference;
full diff: https://github.com/compose-spec/compose-go/compare/v1.18.3...v1.18.4
Signed-off-by: Sebastiaan van Stijn <github@gone.nl>
		
	
		
			
				
	
	
		
			145 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
			
		
		
	
	
			145 lines
		
	
	
		
			6.7 KiB
		
	
	
	
		
			Markdown
		
	
	
	
	
	
# distribution/reference Project Governance
 | 
						|
 | 
						|
Distribution [Code of Conduct](./CODE-OF-CONDUCT.md) can be found here.
 | 
						|
 | 
						|
For specific guidance on practical contribution steps please
 | 
						|
see our [CONTRIBUTING.md](./CONTRIBUTING.md) guide.
 | 
						|
 | 
						|
## Maintainership
 | 
						|
 | 
						|
There are different types of maintainers, with different responsibilities, but
 | 
						|
all maintainers have 3 things in common:
 | 
						|
 | 
						|
1) They share responsibility in the project's success.
 | 
						|
2) They have made a long-term, recurring time investment to improve the project.
 | 
						|
3) They spend that time doing whatever needs to be done, not necessarily what
 | 
						|
is the most interesting or fun.
 | 
						|
 | 
						|
Maintainers are often under-appreciated, because their work is harder to appreciate.
 | 
						|
It's easy to appreciate a really cool and technically advanced feature. It's harder
 | 
						|
to appreciate the absence of bugs, the slow but steady improvement in stability,
 | 
						|
or the reliability of a release process. But those things distinguish a good
 | 
						|
project from a great one.
 | 
						|
 | 
						|
## Reviewers
 | 
						|
 | 
						|
A reviewer is a core role within the project.
 | 
						|
They share in reviewing issues and pull requests and their LGTM counts towards the
 | 
						|
required LGTM count to merge a code change into the project.
 | 
						|
 | 
						|
Reviewers are part of the organization but do not have write access.
 | 
						|
Becoming a reviewer is a core aspect in the journey to becoming a maintainer.
 | 
						|
 | 
						|
## Adding maintainers
 | 
						|
 | 
						|
Maintainers are first and foremost contributors that have shown they are
 | 
						|
committed to the long term success of a project. Contributors wanting to become
 | 
						|
maintainers are expected to be deeply involved in contributing code, pull
 | 
						|
request review, and triage of issues in the project for more than three months.
 | 
						|
 | 
						|
Just contributing does not make you a maintainer, it is about building trust
 | 
						|
with the current maintainers of the project and being a person that they can
 | 
						|
depend on and trust to make decisions in the best interest of the project.
 | 
						|
 | 
						|
Periodically, the existing maintainers curate a list of contributors that have
 | 
						|
shown regular activity on the project over the prior months. From this list,
 | 
						|
maintainer candidates are selected and proposed in a pull request or a
 | 
						|
maintainers communication channel.
 | 
						|
 | 
						|
After a candidate has been announced to the maintainers, the existing
 | 
						|
maintainers are given five business days to discuss the candidate, raise
 | 
						|
objections and cast their vote. Votes may take place on the communication
 | 
						|
channel or via pull request comment. Candidates must be approved by at least 66%
 | 
						|
of the current maintainers by adding their vote on the mailing list. The
 | 
						|
reviewer role has the same process but only requires 33% of current maintainers.
 | 
						|
Only maintainers of the repository that the candidate is proposed for are
 | 
						|
allowed to vote.
 | 
						|
 | 
						|
If a candidate is approved, a maintainer will contact the candidate to invite
 | 
						|
the candidate to open a pull request that adds the contributor to the
 | 
						|
MAINTAINERS file. The voting process may take place inside a pull request if a
 | 
						|
maintainer has already discussed the candidacy with the candidate and a
 | 
						|
maintainer is willing to be a sponsor by opening the pull request. The candidate
 | 
						|
becomes a maintainer once the pull request is merged.
 | 
						|
 | 
						|
## Stepping down policy
 | 
						|
 | 
						|
Life priorities, interests, and passions can change. If you're a maintainer but
 | 
						|
feel you must remove yourself from the list, inform other maintainers that you
 | 
						|
intend to step down, and if possible, help find someone to pick up your work.
 | 
						|
At the very least, ensure your work can be continued where you left off.
 | 
						|
 | 
						|
After you've informed other maintainers, create a pull request to remove
 | 
						|
yourself from the MAINTAINERS file.
 | 
						|
 | 
						|
## Removal of inactive maintainers
 | 
						|
 | 
						|
Similar to the procedure for adding new maintainers, existing maintainers can
 | 
						|
be removed from the list if they do not show significant activity on the
 | 
						|
project. Periodically, the maintainers review the list of maintainers and their
 | 
						|
activity over the last three months.
 | 
						|
 | 
						|
If a maintainer has shown insufficient activity over this period, a neutral
 | 
						|
person will contact the maintainer to ask if they want to continue being
 | 
						|
a maintainer. If the maintainer decides to step down as a maintainer, they
 | 
						|
open a pull request to be removed from the MAINTAINERS file.
 | 
						|
 | 
						|
If the maintainer wants to remain a maintainer, but is unable to perform the
 | 
						|
required duties they can be removed with a vote of at least 66% of the current
 | 
						|
maintainers. In this case, maintainers should first propose the change to
 | 
						|
maintainers via the maintainers communication channel, then open a pull request
 | 
						|
for voting. The voting period is five business days. The voting pull request
 | 
						|
should not come as a surpise to any maintainer and any discussion related to
 | 
						|
performance must not be discussed on the pull request.
 | 
						|
 | 
						|
## How are decisions made?
 | 
						|
 | 
						|
Docker distribution is an open-source project with an open design philosophy.
 | 
						|
This means that the repository is the source of truth for EVERY aspect of the
 | 
						|
project, including its philosophy, design, road map, and APIs. *If it's part of
 | 
						|
the project, it's in the repo. If it's in the repo, it's part of the project.*
 | 
						|
 | 
						|
As a result, all decisions can be expressed as changes to the repository. An
 | 
						|
implementation change is a change to the source code. An API change is a change
 | 
						|
to the API specification. A philosophy change is a change to the philosophy
 | 
						|
manifesto, and so on.
 | 
						|
 | 
						|
All decisions affecting distribution, big and small, follow the same 3 steps:
 | 
						|
 | 
						|
* Step 1: Open a pull request. Anyone can do this.
 | 
						|
 | 
						|
* Step 2: Discuss the pull request. Anyone can do this.
 | 
						|
 | 
						|
* Step 3: Merge or refuse the pull request. Who does this depends on the nature
 | 
						|
of the pull request and which areas of the project it affects.
 | 
						|
 | 
						|
## Helping contributors with the DCO
 | 
						|
 | 
						|
The [DCO or `Sign your work`](./CONTRIBUTING.md#sign-your-work)
 | 
						|
requirement is not intended as a roadblock or speed bump.
 | 
						|
 | 
						|
Some contributors are not as familiar with `git`, or have used a web
 | 
						|
based editor, and thus asking them to `git commit --amend -s` is not the best
 | 
						|
way forward.
 | 
						|
 | 
						|
In this case, maintainers can update the commits based on clause (c) of the DCO.
 | 
						|
The most trivial way for a contributor to allow the maintainer to do this, is to
 | 
						|
add a DCO signature in a pull requests's comment, or a maintainer can simply
 | 
						|
note that the change is sufficiently trivial that it does not substantially
 | 
						|
change the existing contribution - i.e., a spelling change.
 | 
						|
 | 
						|
When you add someone's DCO, please also add your own to keep a log.
 | 
						|
 | 
						|
## I'm a maintainer. Should I make pull requests too?
 | 
						|
 | 
						|
Yes. Nobody should ever push to master directly. All changes should be
 | 
						|
made through a pull request.
 | 
						|
 | 
						|
## Conflict Resolution
 | 
						|
 | 
						|
If you have a technical dispute that you feel has reached an impasse with a
 | 
						|
subset of the community, any contributor may open an issue, specifically
 | 
						|
calling for a resolution vote of the current core maintainers to resolve the
 | 
						|
dispute. The same voting quorums required (2/3) for adding and removing
 | 
						|
maintainers will apply to conflict resolution.
 |