Skip to content

Commit 7710db2

Browse files
authored
Merge branch 'main' into patch-1
2 parents ae8fddc + 53bb0eb commit 7710db2

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

50 files changed

+3224
-1323
lines changed

.github/CODE_OF_CONDUCT.md

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
# Code of Conduct
2+
3+
To ensure we maintain a welcome and thriving environment to collaborate we’ve come up with some general guidelines that apply to participants in the Cloud Foundry community.
4+
5+
This markdown file is taken from the [online code of conduct](https://www.cloudfoundry.org/code-of-conduct/). If deviations occur, please alert the project and consider the online version to be the correct source.
6+
7+
## Guidelines
8+
9+
**Act Professionally**: Be courteous, respectful and polite to fellow community members: no racial, gender, or other abuse will be tolerated.
10+
11+
**We value diversity and inclusiveness**: Make everyone in our community feel welcome, regardless of their background and the extent of their contributions, and do everything possible to encourage participation in our community. We do not tolerate exclusionary behavior.
12+
13+
**Be careful in the words that we choose**: Whether we are participating as professionals or volunteers, we value professionalism in all interactions, and take responsibility for our own speech. Be kind to others. Do not insult or put down other participants. Harassment and other exclusionary behavior are not acceptable. This includes, but is not limited to:
14+
15+
- Violent threats or language directed against another person.
16+
- Sexist, racist, or otherwise discriminatory jokes and language.
17+
- Posting sexually explicit or violent material.
18+
- Posting (or threatening to post) other people’s personally identifying information (“doxing”).
19+
- Sharing private content without prior consent, such as emails sent privately or non-publicly, or unlogged forums such as private IMs.
20+
- Personal insults, especially those using racist or sexist terms.
21+
- Unwelcome sexual attention.
22+
- Bullying or repeated harassment of others. In general, if someone asks you to stop, then stop.
23+
- Advocating for, staying silent about, not reporting, or encouraging, any of the above behavior.
24+
25+
**Keep it legal**: Share only content that you own, do not share private or sensitive information, and do not break the law.
26+
27+
**Stay on topic**: Make sure that you are posting to the correct channel and avoid off-topic discussions. Remember when you update an issue or respond to an email you are potentially sending to a large number of people.
28+
29+
**Respect all Cloud Foundry community forums**: The previous list applies to all forms of interaction including, but not limited to: participation in the Dojos, social media such as Twitter, IRC, the mailing lists, the issue tracker, review comments, and any other forum that is used by the community. Events that take place in public spaces, such as conferences and meetup groups, will generally have their own code of conduct or similar community guidelines. As such, the guidelines for a specific event should be followed.
30+
31+
**Step down considerately**: Members of every project come and go, and Cloud Foundry is no different. When somebody leaves or disengages from the project, in whole or in part, we ask that they do so in a way that minimizes disruption to the project. This means they should tell people they are leaving and take the proper steps to ensure that others can pick up where they left off.
32+
33+
**Keep in mind**: Your work will be used by other people, and you, in turn, will depend on the work of others.
34+
35+
Decisions that you make will often affect others in the community.
36+
37+
Disagreements happen, but should not be an excuse for poor behavior and bad manners. When disagreements do happen, work together to solve them effectively and with comity.
38+
39+
People may not understand jokes, sarcasm, and oblique references in the same way that you do. So remember that and be kind to the other members of the community.
40+
41+
Sexist, racist, and other prejudicial or exclusionary comments are not welcome in the community.
42+
43+
You are participating in an open source software project of a global scope. Please keep in mind how words, the tone of statements and sarcasm may be interpreted (or misinterpreted) by others.
44+
45+
## Report an Incident
46+
47+
To report incidents or to appeal reports of incidents, send an email to [[email protected]](mailto:[email protected]). Please include any available relevant information, including links to any publicly accessible material relating to the matter. Every effort will be taken to ensure a safe and collegial environment in which to collaborate on matters relating to the Foundation. In order to protect the community, the Foundation reserves the right to take appropriate action, potentially including the removal of an individual from any and all participation in the project. The Foundation will work towards an equitable resolution in the event of a misunderstanding.
48+
49+
## Credits
50+
51+
This code of conduct is based on the example policy from the Geek Feminism wiki, created by the Ada Initiative and other volunteers, as well as several other policies, including the Ohio LinuxFest anti-harassment policy, written by Esther Filderman and Beth Lynn Eicher, and the Con Anti-Harassment Project. Mary Gardiner, Valerie Aurora, Sarah Smith, and Donna Benjamin generalized the policies and added supporting material. Many members of LinuxChix, Geek Feminism and other groups contributed to this work. Additional thanks to the Ubuntu, Chef, Puppet, Docker, CouchDB and OpenStack communities for providing inspiration for these guidelines.

.github/ISSUE_TEMPLATE/toc-candidate-nomination.md

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -9,6 +9,8 @@ assignees: ''
99

1010
Candidate Name: [name of person being nominated]
1111

12+
Candidate GitHub Username: [GitHub username of person being nominated]
13+
1214
Affiliation: [employer of candidate]
1315

1416
Nomination Statement: [Describe why this person (or you!) would make a good member of the TOC]

.github/workflows/org-management-check-prs.yml

Lines changed: 10 additions & 39 deletions
Original file line numberDiff line numberDiff line change
@@ -3,51 +3,22 @@ on:
33
pull_request:
44
paths:
55
- 'org/*'
6+
- 'toc/TOC.md'
7+
- 'toc/working-groups/*.md'
68

79
jobs:
8-
peribolos-check:
10+
org-config-generation-check:
911
runs-on: ubuntu-18.04
10-
services:
11-
ghproxy:
12-
image: rkoster/ghproxy
13-
options: >-
14-
--mount type=bind,source=/etc/passwd,target=/etc/passwd,readonly
15-
--mount type=bind,source=/etc/group,target=/etc/group,readonly
16-
ports:
17-
- 8888:8888
18-
volumes:
19-
- ${{ github.workspace }}/ghproxy-cache:/cache
2012
steps:
21-
- name: ghproxy-cache
22-
uses: actions/cache@v3
13+
- name: Set up Python ${{ matrix.python-version }}
14+
uses: actions/setup-python@v3
2315
with:
24-
path: ${{ github.workspace }}/ghproxy-cache
25-
key: ghproxy-cache-${{ github.run_number }}
26-
restore-keys: |
27-
ghproxy-cache-
16+
python-version: 3.9
2817
- uses: actions/checkout@v2
2918
with:
3019
path: community
31-
- name: write github token
20+
- name: Generate github org configuration
3221
run: |
33-
echo "${GH_TOKEN}" > token
34-
env:
35-
GH_TOKEN: ${{ secrets.GH_TOKEN }}
36-
- name: peribolos-check
37-
uses: docker://gcr.io/k8s-prow/peribolos
38-
with:
39-
entrypoint: /ko-app/peribolos
40-
args: >-
41-
--confirm=false
42-
--github-endpoint http://ghproxy:8888
43-
--required-admins=thelinuxfoundation
44-
--min-admins=5
45-
--github-token-path=token
46-
--require-self=false
47-
--config-path=community/org/cloudfoundry.yml
48-
--fix-org
49-
--fix-org-members
50-
--fix-repos
51-
--fix-teams
52-
--fix-team-members
53-
--fix-team-repos
22+
python -m pip install --upgrade pip
23+
pip install -r community/org/requirements.txt
24+
python community/org/org_management.py -o cloudfoundry.out.yml
Lines changed: 57 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,57 @@
1+
name: 'Dump Github Organization Settings'
2+
on:
3+
workflow_dispatch
4+
5+
jobs:
6+
generate-peribolos-dump:
7+
runs-on: ubuntu-18.04
8+
concurrency:
9+
group: peribolos
10+
services:
11+
ghproxy:
12+
image: rkoster/ghproxy
13+
options: >-
14+
--mount type=bind,source=/etc/passwd,target=/etc/passwd,readonly
15+
--mount type=bind,source=/etc/group,target=/etc/group,readonly
16+
ports:
17+
- 8888:8888
18+
volumes:
19+
- ${{ github.workspace }}/ghproxy-cache:/cache
20+
steps:
21+
- name: ghproxy-cache
22+
uses: actions/cache@v3
23+
with:
24+
path: ${{ github.workspace }}/ghproxy-cache
25+
key: ghproxy-cache-${{ github.run_number }}
26+
restore-keys: |
27+
ghproxy-cache-
28+
- uses: actions/checkout@v3
29+
with:
30+
fetch-depth: 0 # full clone so a PR can be created if needed
31+
path: community
32+
- name: write github private key
33+
run: |
34+
echo "${GH_PRIVATE_KEY}" > private_key
35+
echo "${GH_TOKEN}" > token
36+
env:
37+
GH_TOKEN: ${{ secrets.GH_TOKEN }}
38+
GH_PRIVATE_KEY: ${{ secrets.GH_PRIVATE_KEY }}
39+
- name: generate-peribolos-dump
40+
uses: docker://gcr.io/k8s-prow/peribolos
41+
with:
42+
entrypoint: /bin/sh
43+
# Switch back to app auth once following PR gets merged: https://github.com/kubernetes/test-infra/pull/24882
44+
# args: --dump-full --dump cloudfoundry --github-app-id=${{ secrets.GH_APP_ID }} --github-app-private-key-path=private_key > org/cloudfoundry.yml
45+
args: -c "/ko-app/peribolos --dump-full --dump cloudfoundry --github-endpoint http://ghproxy:8888 --github-token-path=token > community/org/cloudfoundry.yml"
46+
- name: Create Pull Request
47+
uses: peter-evans/create-pull-request@v4
48+
with:
49+
path: community
50+
add-paths: org/cloudfoundry.yml
51+
commit-message: Run peribolos -dump-full
52+
branch: peribolos-dump
53+
draft: true
54+
title: 'Sync org/cloudfoundry.yml with reality'
55+
body: |
56+
This PR contains a fresh peribolos dump.
57+
PR is intended for debugging. Don't merge as-is because parts of the cloudfoundry org configuration are generated from WG charters.

.github/workflows/org-management.yml

Lines changed: 14 additions & 32 deletions
Original file line numberDiff line numberDiff line change
@@ -5,6 +5,8 @@ on:
55
- 'main'
66
paths:
77
- 'org/*'
8+
- 'toc/TOC.md'
9+
- 'toc/working-groups/*.md'
810
- '.github/workflows/org-management.yml'
911
schedule:
1012
- cron: '0 */5 * * *'
@@ -32,10 +34,18 @@ jobs:
3234
key: ghproxy-cache-${{ github.run_number }}
3335
restore-keys: |
3436
ghproxy-cache-
35-
- uses: actions/checkout@v2
37+
- name: Set up Python ${{ matrix.python-version }}
38+
uses: actions/setup-python@v3
39+
with:
40+
python-version: 3.9
41+
- uses: actions/checkout@v3
3642
with:
37-
fetch-depth: 0 # full clone so a PR can be created if needed
3843
path: community
44+
- name: Generate github org configuration
45+
run: |
46+
python -m pip install --upgrade pip
47+
pip install -r community/org/requirements.txt
48+
python community/org/org_management.py -o cloudfoundry.out.yml
3949
- name: write github private key
4050
run: |
4151
echo "${GH_PRIVATE_KEY}" > private_key
@@ -44,7 +54,6 @@ jobs:
4454
GH_TOKEN: ${{ secrets.GH_TOKEN }}
4555
GH_PRIVATE_KEY: ${{ secrets.GH_PRIVATE_KEY }}
4656
- name: peribolos
47-
continue-on-error: true
4857
id: peribolos
4958
uses: docker://gcr.io/k8s-prow/peribolos
5059
with:
@@ -57,38 +66,11 @@ jobs:
5766
--github-app-id=${{ secrets.GH_APP_ID }}
5867
--github-app-private-key-path=private_key
5968
--require-self=false
60-
--config-path=community/org/cloudfoundry.yml
69+
--config-path=cloudfoundry.out.yml
6170
--fix-org
6271
--fix-org-members
6372
--fix-repos
6473
--fix-teams
6574
--fix-team-members
6675
--fix-team-repos
67-
- name: debug
68-
run: echo "${{ toJSON(steps.peribolos.outcome == 'failure') }}"
69-
- name: generate-peribolos-dump
70-
if: ${{ steps.peribolos.outcome == 'failure' }}
71-
uses: docker://gcr.io/k8s-prow/peribolos
72-
with:
73-
entrypoint: /bin/sh
74-
# Switch back to app auth once following PR gets merged: https://github.com/kubernetes/test-infra/pull/24882
75-
# args: --dump-full --dump cloudfoundry --github-app-id=${{ secrets.GH_APP_ID }} --github-app-private-key-path=private_key > org/cloudfoundry.yml
76-
args: -c "/ko-app/peribolos --dump-full --dump cloudfoundry --github-endpoint http://ghproxy:8888 --github-token-path=token > community/org/cloudfoundry.yml"
77-
- name: Create Pull Request
78-
if: ${{ steps.peribolos.outcome == 'failure' }}
79-
uses: peter-evans/create-pull-request@v4
80-
with:
81-
path: community
82-
add-paths: org/cloudfoundry.yml
83-
commit-message: Run peribolos -dump-full
84-
branch: peribolos-dump
85-
title: 'Sync org/cloudfoundry.yml with reality'
86-
body: |
87-
Peribolos failed to sync here: https://github.com/${{github.repository}}/actions/runs/${{github.run_id}}
88-
89-
This PR contains a fresh periobos dump which once merged should resolve the sync issues.
90-
- name: Fail job on sync failure
91-
if: ${{ steps.peribolos.outcome == 'failure' }}
92-
run: |
93-
echo "sync job failed, dump PR created"
94-
exit 1
76+
--allow-repo-archival

.gitignore

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,6 @@
11

22
toc/elections/2021/private.csv
33
/.secrets
4+
.vscode
5+
__pycache__
6+
cloudfoundry.out.yml

elections/2021/TOC/README.md

Lines changed: 62 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,62 @@
1+
# 2021 CFF TOC Election Guide
2+
3+
## Overview
4+
5+
Each year, the CFF technical community holds an election for open seats on the
6+
Technical Oversight Committee (TOC). The rules governing this election are set in the
7+
[CFF's project charter](../../../governing-board/charter.md) (See section 7(b) and 7(e)
8+
for the relevant details).
9+
10+
This guide exists to serve as a guide to this year's election process.
11+
12+
## Schedule
13+
14+
| Date | Event |
15+
| -------------------------- | ------------------------ |
16+
| May 11 | Announcement of Election (at least 4 weeks before results) |
17+
| May 11 through May 28 | Candidate nomination period (at least 2 weeks long and ending 2 weeks before results |
18+
| June 1 | Election Begins via email ballots (alow 2 work days to prepare election system) |
19+
| June 15 | Election Closes (at least 2 weeks after election begins) |
20+
| *June 17* | Announcement of Results (at least 2 work days after election ends) |
21+
22+
## Candidate Processes
23+
24+
**Nominations**
25+
26+
Every eligible voter can nominate candidates for the TOC, and we encourage you to do so. If you are
27+
eligible to serve on the TOC, you can self nominate! If you want to nominate someone else, do so as
28+
well!
29+
30+
You can nominate someone for the TOC by [submitting an issue using this template](https://github.com/cloudfoundry/community/issues/new?assignees=&labels=election&template=toc-candidate-nomination.md&title=TOC+Candidate+Nomination+for+%5BPerson+Name%5D).
31+
32+
The deadline is May 28th to be nominated (and for the nominee to indicate acceptance).
33+
34+
It is strongly recommended that you confirm that a nominee is interested and willing
35+
to accept the nomination prior to submitting the nomination issue.
36+
37+
**Confirming Nominee Eligibility**
38+
39+
Once a nomination is received, the CFF staff will contact the nominee to confirm acceptance
40+
of the nomination. If the nominee accepts, they will be added to the list of nominees at the bottom
41+
of this file. The nomination issue will be closed, noting if the nominee accepted or declined the
42+
nomination.
43+
44+
## Voting Process
45+
46+
The election will be conducted using a time-limited [Condorcet](https://civs.cs.cornell.edu/rp.html) ranking
47+
on [CIVS](http://civs.cs.cornell.edu/) using the Schulze method.
48+
49+
Voters will receive an email with a ballot link. Voters will have until the end of the election cycle
50+
to submit their ballot.
51+
52+
## Election Results
53+
54+
The newly elected body will be announced via [email protected] on 17 Jun, 2021.
55+
56+
Following the announcement, the raw voting results and winners will be published.
57+
58+
## Nominees
59+
60+
| Name | Organization/Company | GitHub |
61+
|:----------:|:--------------------:|:--------:|
62+
| Name | Employer | [@githubid](https://github.com/githubid) |
File renamed without changes.

elections/2021/TOC/results.md

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,50 @@
1+
# 2021 CFF Technical Oversight Committee Election Results
2+
3+
Many thanks to everyone who took the time to register and vote in the first Cloud Foundry Foundation annual election for our newly forming Technical Oversight Committee (TOC). I also extend my deep thanks to all of the nominees who agreed to run in the election. Overall, our community’s participation in this election process was outstanding (especially given that this was our first time doing this!)
4+
5+
And with that preamble, I’m pleased to announce our first CFF Technical Oversight Committee will be:
6+
7+
* Eric Malm (VMware)
8+
* David Stevenson (VMware)
9+
* Jan von Loewenstein (SAP)
10+
* Stephan Merker (SAP)
11+
* Lee Porte (GOV.UK)
12+
13+
Congratulations to Eric, David, Jan, Stephan and Lee! I’m looking forward to working with you to get the TOC up and running.
14+
15+
## Details
16+
17+
One of the [primary principles](https://github.com/cloudfoundry/community/blob/main/toc/PRINCIPLES.md) that our technical governance process is based on is transparency. That applies to the election process and results themselves, with the only exception being that ballot records are anonymous.
18+
19+
With that in mind, here are the election details:
20+
21+
Election Supervisor: Chip Childers
22+
23+
Announced end of poll: June 15, 2021
24+
25+
Actual time poll closed: 6/15/2021, 8:07:44 PM ET
26+
27+
Private poll (125 authorized voters)
28+
29+
Actual votes cast: 98
30+
31+
Complete results of the election, using the Schulze rules for Condorcet completion, are:
32+
33+
1. Eric Malm (Condorcet winner: wins contests with all other choices)
34+
2. David Stevenson loses to Eric Malm by 62–22
35+
3. Jan von Loewenstein loses to Eric Malm by 73–22, loses to David Stevenson by 60–34
36+
4. Stephan Merker loses to Eric Malm by 70–25, loses to Jan von Loewenstein by 46–31
37+
5. Beyhan Veli loses to Eric Malm by 72–23, loses to Stephan Merker by 42–35
38+
6. Lee Porte loses to Eric Malm by 83–8, loses to Beyhan Veli by 48–41
39+
7. Andrew Edgar loses to Eric Malm by 82–10, loses to Lee Porte by 43–41
40+
8. Daniel Vaughan loses to Eric Malm by 90–1, loses to Andrew Edgar by 58–14
41+
42+
Our TOC rules for a maximum of 2 TOC members from the same employer must be applied to these results, placing Lee Porte on the TOC instead of Beyhan Veli.
43+
44+
Eric and David were the top two nominees of the group, meaning that both of them will have the full two year TOC member term. Jan, Stephan and Lee will each have a one year term, and their seats on the TOC will be up for election again in 2022. Keep in mind that this difference in term lengths only applies to this first election. In 2022, those three TOC seats will be elected for the standard TOC member term of two years. Of course, Jan, Stephan and Lee will be more than welcome to run in 2022.
45+
46+
Records of all cast ballots are available in [CSV format here](ballots.csv).
47+
48+
## 2022-05-17 Amendment
49+
50+
In the TOC meeting on May 17th, 2022, the TOC decided it would be more equitable to distribute the seats with the 2021-2023 terms evenly between the VMware and the SAP representatives. The TOC also decided to allocate the 2-year seat to Stephan Merker, since Jan von Loewenstein intends not to run for a continued position on the TOC after the 2021-2022 term.

0 commit comments

Comments
 (0)