Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Merge branch 'master' of git://github.com/opencontainers/project-template into merge-project-template #274

Closed
wants to merge 49 commits into from

Conversation

wking
Copy link
Contributor

@wking wking commented Nov 17, 2016

To fulfill the TOB's:

Both of the proposed projects would incorporate the Governance and Releases processes from the OCI project template: https://github.com/opencontainers/project-template.

which was approved with this vote.

Generated with something like my earlier suggestion:

$ git pull git://github.com/opencontainers/project-template.git master
$ git checkout --ours .pullapprove.yml README.md
$ git checkout --theirs CONTRIBUTING.md LICENSE MAINTAINERS_GUIDE.md
$ git add .pullapprove.yml CONTRIBUTING.md LICENSE MAINTAINERS_GUIDE.md README.md
$ git commit

I think there are a few improvements we could make to these template docs, but the TOB vote happened before I'd floated those. If/when they land, we can pull the updated versions into this repository via a follow-up merge.

caniszczyk and others added 30 commits May 3, 2016 11:42
Signed-off-by: Chris Aniszczyk <caniszczyk@gmail.com>
…ing-guidelines

Add contributing and maintainer guidelines.
And excessive trailing newlines.  These came in with fcc7f42 (Add
contributing and maintainer guidelines, 2016-05-03, opencontainers#1), because we
don't have Git validation yet [1].

[1]: opencontainers/project-template#2

Signed-off-by: W. Trevor King <wking@tremily.us>
For small projects like ocitools a strict requirement would just be
busywork.  And the risk here (a submitted PR that would have been
rejected or redirected in a leader issue) is a risk assumed by the
submitter (who sunk time in the wrong direction) and not much cost to
the maintainers.

Signed-off-by: W. Trevor King <wking@tremily.us>
Folks have been dragging this around from the soft limit in
git-commit(1) and git.git's Documentation/SubmittingPatches without
believing it.  Looking at the git.git history through v2.3.4 (git log
--no-merges --format=%s v2.3.4), we have 29853 commits, with 56% ≤ 50
chars and 94% ≤ 70 chars.  Projects that want limits should enforce
them with CI tests (e.g. runtime-spec uses git-validation, which has a
soft limit at 72 and a hard limit at 90 [1]).

[1]: https://github.com/vbatts/git-validation/blob/be3aee994370184fd98e455abfe0948d6f45f793/rules/shortsubject/shortsubject.go#L24-L35

Signed-off-by: W. Trevor King <wking@tremily.us>
CONTRIBUTING: Make leader-issues optional
Small, young projects like ocitools may not have grown a test suite
yet.  Don't make writing a Go test suite a requirement for submitting
a PR.

Also allow for other test frameworks, since Go's framework may not be
the best fit for all projects, which may not even include Go code.

Signed-off-by: W. Trevor King <wking@tremily.us>
…mmary-limit

CONTRIBUTING: Don't specify a 50-char limit
MAINTAINERS_GUIDE: Remove trailing whitespace
CONTRIBUTING: Make the test requirements contingent on an existing suite
For runtime-spec, there are often PRs that pickup and reroll another
user's commits (e.g. opencontainers/runtime-spec#337). As long as the
Signed-off-by entries are there (for the DCO) and the new PR
references the earlier work (to avoid maintainer confusion), I see no
problem with this sort of collaboration.

I thought about replacing the old wording with words like the above
paragraph, but it seemed overly prescriptive.

Signed-off-by: W. Trevor King <wking@tremily.us>
CONTRIBUTING: Allow collaborative pull requests
Apart from being a sign of respect to other maintainers, it also ensures
that *all* pull requests get equal amounts of review -- no matter who
wrote them. Maintainers should know better than to make broken
patchsets, but it's also a sign of respect to the community that all
pull requests have equal treatment.

Signed-off-by: Aleksa Sarai <asarai@suse.de>
This is a proposed process for approval of new releases of
specifications and projects from the OCI.

The creation of this process is designed to clarify how a release gets
created and who needs to sign off.
I got some feedback from folks that some motivation early in the
document might be helpful for why the process encourages regular
communication.
Requiring applications wait 1 week to get feedback before making a release,
removing "business day" wording @cyphar, @stevvooe, and @wking were in the
discussion.[1]

[1] opencontainers/tob#15 (comment)
Requiring the _minimum_ process for a major release to be 3 rcs and a
final release. This will establish a _minimum_ timeline of 1 month to
get to a release assuming zero required changes.  @stevvooe, @wking were
in this discussion.

opencontainers/tob#15 (comment)
Changing the release goal for projects to a "SHOULD monthly release"
from the original bi-weekly. @diogomonica, @stevvooe, @mrunalp,
@RobDolinMS were in that discussion

opencontainers/tob#15 (comment)
Fix up the language around REJECTs so it is easier to understand. The
basic premise is that a release may continue with REJECTs if 2/3 of the
maintainers vote to make the release. But, the maintainers SHOULD
discuss and allow time for any REJECTs to become LGTMs. Spread over two
discussions:

[1](https://github.com/opencontainers/tob/pull/15/files/bdfa70d70f093146bc730be2576586ec8ed57cca#r66519789)
and
[2](https://github.com/opencontainers/tob/pull/15/files/bdfa70d70f093146bc730be2576586ec8ed57cca#r66668148)
The intention of the voting members language is to ensure that releases
can proceed even if people are unresponsive, on vacation, etc without
ambiguity. This is similar to how the TOB operates.

Identified by @wking here: opencontainers/tob#15 (comment)
Based on discussion with wking and mrunalp participating and Stephen Day
acking in IRC: opencontainers/tob#15 (comment)
This addresses @stevvooe's concern about GitHub issues being the only
medium for discussion of a reject. @wking and @philips were involved in
this discussion:

opencontainers/tob#15 (comment)
Projects have a happy path and a slow path. The happy path is a release
with maintainers agreeing and a timeout. The slow path has rejects and
quorums. Based on discussion with @wking

opencontainers/tob#15 (comment)
Instead of being prescriptive provide suggestions instead for how to
provide release REJECTS feedback. Based on feedback from Stephen Day and
@wking.
wking and others added 8 commits July 12, 2016 11:24
This is useful for more than release approval. For example, it's
useful for updating the project governance document itself [1].

I've also tried to address Jason's other points, except for defining a
"breaking change" (since that is tied up in [2]).

New wording about motions and whatnot is pulled from Roberts' [3], see
proposing a motion (RRoO I.4, p33) and seconding a motion (RRoO I.5,
p36).

The subject templates I just made up on my own after thinking over the
initial proposal emails (e.g. [4]). I also pulled in the one-sentence
pattern [5] since I was touching so much.

[1]: https://groups.google.com/a/opencontainers.org/d/msg/dev/ik3MIDWq4Us/Zx1JUStXBAAJ
     Subject: Re: Vote Required: OCI Image Spec Release Process
     Date: Fri, 24 Jun 2016 16:58:58 -0700
     Message-ID: <CAFi6z1HAkKbnMoAXubyGusQJ_MromgpQ4qHCQ3R9_NwZNYBX5w@mail.gmail.com>
[2]: opencontainers/tob#16
[3]: http://archive.org/details/Robertsrulesofor00robe_201303
[4]: https://groups.google.com/a/opencontainers.org/forum/#!topic/dev/ik3MIDWq4Us
     Subject: Vote Required: OCI Image Spec Release Process
     Date: Thu, 23 Jun 2016 15:56:40 +0000
     Message-ID: <CAD2oYtNnW+hP7Q3NPBdYHOKfigU0pvbgcphKPhRB=ZfQBwX8VA@mail.gmail.com>
[5]: opencontainers/tob#15 (comment)

Signed-off-by: W. Trevor King <wking@tremily.us>
Split files into governance and releases and outline the maintainers of
the GOVERNANCE doc itself.

Signed-off-by: Brandon Philips <brandon.philips@coreos.com>
…releases-docs

Add governance and releases docs
Signed-off-by: Antonio Murdaca <runcom@redhat.com>
The sign-off requirement catches us up with fcc7f42 (Add contributing
and maintainer guidelines, 2016-05-03, opencontainers#1).  The author ignore catches
us up with c82a2e7 (MAINTAINERS: disallow self-LGTMs, 2016-05-27,
opencontainers#13).

The push reset catches us up with opencontainers/runtime-spec@aa9f3a26
(Add PullApprove checks, 2016-05-26, opencontainers/runtime-spec#458),
opencontainers/image-spec@95a46754d (Add PullApprove support to
enforce review, 2016-06-01, opencontainers/image-spec#101) and
opencontainers/runc@e2fd7c11 (Add PullApprove support, 2016-05-26,
opencontainers/runc#847).

Signed-off-by: W. Trevor King <wking@tremily.us>
.pullapprove.yml: Reset on push, ignore authors, and require sign-offs
…late into merge-project-template

To fulfill the TOB's [1]:

  Both of the proposed projects would incorporate the Governance and
  Releases processes from the OCI project template:
  https://github.com/opencontainers/project-template.

which was approved with this vote [2].

Generated with:

  $ git pull git://github.com/opencontainers/project-template.git master
  $ git checkout --ours .pullapprove.yml README.md
  $ git checkout --theirs CONTRIBUTING.md LICENSE MAINTAINERS_GUIDE.md
  $ git add .pullapprove.yml CONTRIBUTING.md LICENSE MAINTAINERS_GUIDE.md README.md
  $ git commit

I think there are a few improvements we could make to these template
docs [3,4,5], but the TOB vote happened before I'd floated those.
If/when they land, we can pull the updated versions into this
repository via a follow-up merge.

* 'master' of git://github.com/opencontainers/project-template: (33 commits)
  .pullapprove.yml: Reset on push, ignore authors, and require sign-offs
  GOVERNANCE.md: fix typo
  GOVERNANCE and RELEASES: split the files
  project-governance: Make voting more generic
  proposals: release approval process explain security@ email
  proposal: fix a typo
  proposals: release-approval-process fix a grammar thing
  release-approval: Add non-spec unanimous quorum reduction
  release-approval: Shuffle to make more DRY
  proposals: release-approval-process: fixup additional typos
  proposals: release approval process: improve REJECT feedback
  proposals: release approval process: add information to projects
  proposals: release approval process: add language about mailing list
  proposals: release approval process: add quorum language
  proposals: release-approval-process: add voting members language
  proposals: release approval process: clarify utility of GitHub
  proposals: release approval process: use consistent language for rejects
  proposals: release approval process: one month pre-releases
  proposals: release approval process 3 rcs required
  proposals: release approval process to one week for apps
  ...

Conflicts:
	.pullapprove.yml
	CONTRIBUTING.md
	LICENSE
	MAINTAINERS_GUIDE.md
	README.md

[1]: https://github.com/opencontainers/tob/blob/8997b1aa221b3b61d4305bede41c257b879bdeeb/proposals/tools.md#governance-and-releases
[2]: https://groups.google.com/a/opencontainers.org/forum/#!topic/tob/rZ4luMa-pxY
     Subject: VOTE Required: approve new projects: image-tools, runtime-tools
     Date: Wed, 07 Sep 2016 22:37:32 +0000
     Message-ID: <CAD2oYtMLMFQouEVU7HTO-EKnW6vKu82dGT+0mziXZzCyqngj=A@mail.gmail.com>
[3]: opencontainers/project-template#18
     Subject: GOVERNANCE: Proposing a motion is a LGTM by default
[4]: opencontainers/project-template#19
     Subject: GOVERNANCE: Drop the co-sponsor requirement
[5]: opencontainers/project-template#20
     Subject: MAINTAINERS_GUIDE|CONTRIBUTING: Make generic enough for all OCI Projects

Signed-off-by: W. Trevor King <wking@tremily.us>
@wking
Copy link
Contributor Author

wking commented Nov 17, 2016

The project-template history we're pulling in here is missing a number of Signed-off-bys, but I don't think there's anything we can do about that. All of the non-merge commits missing signoffs are authored by @philips and @caniszczyk. Both of them are long-time OCI contributors, and the missing Signed-off-bys are almost certainly accidental oversight. If it would help and they approve, I'm happy to add their Signed-off-bys to the merge commit at the tip of this PR.

@wking wking mentioned this pull request Nov 17, 2016
76 tasks
@liangchenye
Copy link
Member

I know that you want to keep committers' records. But can we just add them ('GOVERNANCE.md' here for example) to runtime-tools?

@@ -176,7 +175,18 @@

END OF TERMS AND CONDITIONS

Copyright 2015 The Linux Foundation.
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We don't need to change the current 'LICENSE' to a template 'LICENSE' o we will lose our copyright owner

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This section of LICENSE is introducing a per-file copyright blurb template, you don't have to update the entry in LICENSE itself. As a fairly canonical example, see here.

The copyright holder isn't actually the LF for most (any?) of the content. It should really be “{project} contributors” or “the OCI technical community” or some such.

@@ -24,9 +24,13 @@ Fork the repo and make changes on your fork in a feature branch:
- If it's a feature branch, create an enhancement issue to announce your
intentions, and name it XXX-something where XXX is the number of the issue.

Submit unit tests for your changes. Go has a great test framework built in; use
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

+1 for removing this.

@wking
Copy link
Contributor Author

wking commented Nov 18, 2016

On Fri, Nov 18, 2016 at 02:22:57AM -0800, 梁辰晔 (Liang Chenye) wrote:

I know that you want to keep committers' records. But can we just
add them ('GOVERNANCE.md' here for example) to runtime-tools?

I like keeping the commit records, but I also like easy updates when
there are upstream changes. With the merge-based approach I'm using
here, future project-templates can get pulled in with:

$ git pull git://github.com/opencontainers/project-template.git master

Then Git can figure out what has changed (e.g. just GOVERNANCE.md, or
maybe MAINTAINERS_GUIDE.md and .pullapprove.yml, or whatever). If you
cherry-pick by file you have to figre that out manually. You also
have to detect and resolve conflicts manually.

So using the merge-based approach seems like it saves some work. Does
it have any downsides (besides us having to push past PullApprove to
work around some sloppy project-template commits)?

@Mashimiao
Copy link

I don't think it's a good idea to merge project-template.
Project-template only just a template for OCI projects creating.
And in my opinion, project-template will not be frequent updated, different projects has its own files.
There is no need to import total files and git log from project-template, it just adds problems for project management.

@wking
Copy link
Contributor Author

wking commented Nov 22, 2016

On Mon, Nov 21, 2016 at 09:38:20PM -0800, Ma Shimiao wrote:

And in my opinion, project-template will not be frequent updated…

Possibly true, but there are a few updated in the pipe which I think
are useful 1.

… different projects has its own files.

I agree with @crosbymichael that it's good to avoid fragmentation as
much as possible 2.

There is no need to import total files and git log from
project-template, it just adds problems for project management.

What sort of problems? I think it makes staying in sync easier, but
shrug, it's your project ;).

cyphar and others added 3 commits November 30, 2016 20:30
The security@opencontainers.org mailing list is for *maintainers only*,
and is to be used for technical discussion about potential security
issues. It is not a place for the TOB to have votes about
specification-related business, simply because it is not sane to include
people who are not maintainers of projects in critical security
discussions of said projects.

If in the future we discover that we need to have a place to vote on
security issues, the TOB can do that on their own private mailing list.
For now, we should focus on making sure that security disclosures on
*actual shipping code* is actually done properly.

Signed-off-by: Aleksa Sarai <asarai@suse.de>
…dling

*: clarify how security issues are handled
Extending the earlier softening in 0548361 (CONTRIBUTING: Make
leader-issues optional, 2016-05-19, opencontainers#6), because nobody cares about
the XXX- prefix.  Checking the recent history of all OCI project
repos:

  $ for REPO in image-spec image-tools runc runtime-spec runtime-tools;
  > do
  >   (
  >     cd "${REPO} &&
  >     git fetch origin &&
  >     BRANCHES=$(git log --first-parent --oneline origin/master | sed 's/^.* from //') &&
  >     echo "${REPO} branches: $(echo "${BRANCHES}" | wc -l)" &&
  >     echo "${REPO} numbered: $(echo "${BRANCHES}" | grep '/[0-9]' | wc -l)"
  >   );
  > done
  image-spec branches: 276
  image-spec numbered: 1
  image-tools branches: 27
  image-tools numbered: 0
  runc branches: 1299
  runc numbered: 21
  runtime-spec branches: 391
  runtime-spec numbered: 4
  runtime-tools branches: 232
  runtime-tools numbered: 3

Signed-off-by: W. Trevor King <wking@tremily.us>
philips and others added 2 commits January 17, 2017 19:02
CONTRIBUTING: Remove branch-naming suggestions
…late into merge-project-template

Generated with:

  $ git pull --log git://github.com/opencontainers/project-template.git master

* 'master' of git://github.com/opencontainers/project-template:
  CONTRIBUTING: Remove branch-naming suggestions
  *: clarify how security issues are handled

Signed-off-by: W. Trevor King <wking@tremily.us>
@wking
Copy link
Contributor Author

wking commented Jan 18, 2017 via email

@Mashimiao
Copy link

Mashimiao commented Jul 3, 2017

Rejected

Rejected with PullApprove

@Mashimiao Mashimiao closed this Jul 3, 2017
@wking wking mentioned this pull request Jul 26, 2017
wking added a commit to wking/opencontainer-runtime-spec that referenced this pull request Apr 6, 2018
Generated with:

  $ git remote add project-template git://github.com/opencontainers/project-template.git
  $ git fetch project-template
  $ git show --oneline project-template/master
  61d73a3 (project-template/master) Merge pull request opencontainers#40 from wking/minor-patch-bullet
  $ git merge --squash --allow-unrelated-histories project-template/master
  $ git checkout HEAD -- .pullapprove.yml MAINTAINERS README.md RELEASES.md
  $ git checkout project-template/master -- GOVERNANCE.md LICENSE
  $ emacs README.md CONTRIBUTING.md # unify around project-template's CONTRIBUTING.md approach
  $ emacs meeting.ics  # update link to point at CONTRIBUTING.md#meetings
  $ git commit -sv

I personally prefer non-squash merges to preserve history and ease
future updates, but that approach has not been popular within the OCI
[1,2], so I'm going with a squash-merge here.

I'm sticking with the local RELEASES.md, because it uses four-space
indents.  I've filed [3] to upstream that change.

I've also filed [4] upstreaming our local wording change from 70ba4e6
(meeting: Bump January meeting from the 3rd to the 10th, 2017-12-07,
opencontainers#943).

I've also fixed the GOVERNANCE.md security link in flight with [5].

I've left the other in-flight project-template changes alone [6].

I've wrapped the URL in meetings.ics to avoid [7]:

  Line length should not be longer than 75 characters near line opencontainers#33
  Reference: RFC 5545 3.1. Content Lines

[1]: opencontainers/go-digest#20 (comment)
[2]: opencontainers/runtime-tools#274 (comment)
[3]: opencontainers/project-template#54
[4]: opencontainers/project-template#55
[5]: opencontainers/project-template#34
[6]: https://github.com/opencontainers/project-template/pulls
[7]: https://icalendar.org/validator.html

Signed-off-by: W. Trevor King <wking@tremily.us>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

8 participants