Skip to content
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
843a010
Add material from discussions on CF Governance process
erget Jul 15, 2019
5882298
Reflow original constitution doc and move to root
erget Jul 17, 2019
c9fdb18
Incorporate changes from @JonathanGregory
erget Jul 18, 2019
5727342
Insert content from Daniel's original proposal
erget Jul 18, 2019
c58af37
Cosmetics and whitespace errors
erget Jul 18, 2019
df0f3eb
Merge branch 'master' into governance
erget Jul 18, 2019
1ef2457
Address group membership
erget Jul 19, 2019
5e6f986
Merge branch 'governance' of github.com:erget/cf-conventions into gov…
erget Jul 19, 2019
71a7da3
Fix typo
erget Jul 19, 2019
e5582a1
Describe mission and philosophy of CF
erget Jul 19, 2019
133cc87
Refine definition of Governance Panel
erget Jul 19, 2019
acc912d
Annual Meeting is important enough for caps
erget Jul 19, 2019
9cff180
Rename doc
erget Jul 19, 2019
7131241
Define responsibilities of Governance Panel
erget Jul 19, 2019
3e692f2
Specify responsibilities of Conventions Committee
erget Jul 19, 2019
ce3e743
Merge remote-tracking branch 'upstream/master' into governance
erget Sep 2, 2019
bbc52e4
Add summary role of moderator as per #151
erget Sep 2, 2019
469a971
State that help can be had for non-GitHub savvies
erget Sep 2, 2019
b8c7b59
Specify new version published at annual meeting.
erget Sep 3, 2019
e94a72c
Finalised constitution draft
erget Sep 3, 2019
1d7c55f
Insert checklist in PR template
erget Sep 3, 2019
adfadf1
Remove types descriptions - we use issue templates
erget Sep 3, 2019
33f8f50
Remove merge procedures
erget Sep 3, 2019
54a311a
Describe feature freeze
erget Sep 3, 2019
3d06b33
Update PR template.
erget Sep 3, 2019
b1f04b1
Tone down SemVer endorsement
erget Sep 19, 2019
0bc9499
Add associated PR to issue templates
erget Sep 30, 2019
e612409
Remove election of secretaries
erget Sep 30, 2019
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/defect-issue.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,5 @@ Change proposals should include the following information as applicable.
**Technical Proposal Summary:** Brief proposal overview
**Benefits:** Who or what will benefit from this proposal?
**Status Quo:** Discussion of the current state CF and other standards.
**Associated pull request:** Link to associated pull request, if present
**Detailed Proposal:** Complete proposal
1 change: 1 addition & 0 deletions .github/ISSUE_TEMPLATE/enhancement-issue.md
Original file line number Diff line number Diff line change
Expand Up @@ -17,4 +17,5 @@ Change proposals should include the following information as applicable.
**Technical Proposal Summary:** Brief proposal overview
**Benefits:** Who or what will benefit from this proposal?
**Status Quo:** Discussion of the current state CF and other standards.
**Associated pull request:** Link to associated pull request, if present
**Detailed Proposal:** Complete proposal
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/github-usage-issue.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ assignees: ''
---

Before submitting an issue be sure you have read and understand the github contributing guidelines: https://github.com/cf-convention/cf-conventions/blob/master/CONTRIBUTING.md and the rules for CF changes: http://cfconventions.org/rules.html

**Associated pull request:** Link to associated pull request, if present
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/style-issue.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ assignees: ''
---

Before submitting an issue be sure you have read and understand the github contributing guidelines: https://github.com/cf-convention/cf-conventions/blob/master/CONTRIBUTING.md and the rules for CF changes: http://cfconventions.org/rules.html

**Associated pull request:** Link to associated pull request, if present
2 changes: 2 additions & 0 deletions .github/ISSUE_TEMPLATE/typo-issue.md
Original file line number Diff line number Diff line change
Expand Up @@ -8,3 +8,5 @@ assignees: ''
---

Before submitting an issue be sure you have read and understand the github contributing guidelines: https://github.com/cf-convention/cf-conventions/blob/master/CONTRIBUTING.md and the rules for CF changes: http://cfconventions.org/rules.html

**Associated pull request:** Link to associated pull request, if present
12 changes: 11 additions & 1 deletion .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1 +1,11 @@
See issue #XXX for discussion of these changes.
Closes issue #XXX.

# Release checklist
- [ ] Authors updated in `cf-conventions.adoc`?
- [ ] Next version in `cf-conventions.adoc` up to date? Versioning inspired by [SemVer](https://semver.org).
- [ ] `history.adoc` up to date?
- [ ] Conformance document up-to-date?

# For maintainers
After the merge remember to delete the source branch.
Tags are set at the conclusion of the annual meeting; until then `master` always is a draft for the next version.
3 changes: 1 addition & 2 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
Expand Up @@ -20,6 +20,5 @@ from the project team.
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by
opening an issue or contacting one or more of the project maintainers.

This Code of Conduct is adapted from the Contributor Covenant
(http:contributor-covenant.org), version 1.0.0, available at
This Code of Conduct is adapted from the [Contributor Covenant](http://contributor-covenant.org), version 1.0.0, available at
http://contributor-covenant.org/version/1/0/0/
51 changes: 20 additions & 31 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,53 +1,42 @@
# Contributing to the NetCDF-CF conventions
# Contributing to the netCDF-CF Conventions

Dear CF community member,

Thank you for taking the time to consider making a contribution to the [cf-conventions](http://cfconventions.org/).
The NetCDF Climate and Forecasting conventions are a product by and for a broad community and your contribution is the key to their usefulness.
The netCDF Climate and Forecasting conventions are a product by and for a broad community and your contribution is the key to their usefulness.

This set of guidelines provides a brief overview of the practices and procedures that should be used in fixing, updating, or adding to the conventions.
This set of guidelines provides a brief overview of the practices and procedures that should be used in fixing, updating, or adding to the conventions.
It builds on the [rules for CF Convention changes.](http://cfconventions.org/rules.html)

As a prerequisite to this guide, please review the community's code of [conduct.](https://github.com/cf-convention/cf-conventions/blob/master/CODE_OF_CONDUCT.md)
The CF community takes great pride in respectful and collegial discourse. Any disrespectful or otherwise derogatory communication will not be tolerated.

## General Guidelines
These contribution guidelines are designed to make it easy to contribute to the CF Conventions and are tailored to the platform where they are hosted, GitHub.
They are intended to support your work and not to constrict you; if at any time you find them difficult to follow, ask for help.
Your contribution is valuable and the community will be happy to give a hand.

1. **A given proposal should be discussed as one issue.** It shouldn't fork or be superseded by another one, unless that reflects what has happened to the proposal.
## General guidelines for using GitHub to change the CF Conventions

1. **A given proposal should be discussed as one issue.** It shouldn't fork or be superseded by another one, unless that reflects what has happened to the proposal.
This is so it is easy to trace the discussion that led to a given agreed proposal.

2. **A proposal should convey the reasoning and effect on all relevant sections of the specification.**
An overview of all actual changes and the impact the changes have on the specification should be clear.
2. **A proposal should convey the reasoning and effect on all relevant sections of the specification.**
An overview of all actual changes and the impact the changes have on the specification should be clear.
Depending on the length and nature of the proposal, this may require different approaches as described below.

3. **In general, issues should be used for discussion of proposed changes and pull requests should be used for review of agreed upon changes.**
In other words, if the content or concept of what is being proposed needs to be vetted by the community it should be vetted in an issue.
3. **In general, issues should be used for discussion of proposed changes and pull requests should be used for review of agreed upon changes.**
In other words, if the content or concept of what is being proposed needs to be vetted by the community it should be vetted in an issue.
If the proposal is non-controversial (such as a typo correction) or has been agreed to in concept in an issue, then detailed review of the text may take place in a pull request.
Practically all changes should be documented and discussed in an issue fixed in a related pull request.

4. **Use [labels](https://github.com/cf-convention/cf-conventions/labels) on issues and pull requests.**
4. **Use [labels](https://github.com/cf-convention/cf-conventions/labels) on issues and pull requests.**
Currently this is achieved by using an appropriate issue template when creating a [new issue](https://github.com/cf-convention/cf-conventions/issues/new/choose).

## Issues and Pull Requests
Note that it takes a minimum of three weeks for a change to the content of the CF Conventions to be merged into the Convention's next version.
As the Conventions are published once a year, this means that the de facto "feature freeze" for a given version of the CF Conventions is three weeks before that year's annual meeting.

## Issues and pull requests

Issues should attempt to follow the guidelines here and in the issue template as much as possible.
All new pull requests should be submitted to the master branch and will be merged or closed as soon as agreement has been reached.
Issues should attempt to follow the guidelines in the issue template as much as possible.
All new pull requests should be submitted to the master branch and will be merged or closed as soon as agreement has been reached.
Use of other branches is at the discretion of the repository administrators.
The following cases describe potential patterns of use for issues and pull requests.

1. **Typo Fix** If the change is a non-controversial fix such as a typo, no issue is required as these changes do not appear in the convention history.
A pull request with the fix can be submitted directly.
Contributors not familiar with github can submit issues for typos and similar issues for others to fix.

2. **Single Section Change** In the case of a change concerning one to a few paragraphs, an issue should be opened that describes the problem and proposed fix.
If important to the issue, the problem text should be pasted in the body of the issue and proposed fix included.
A link to the line where the problem exists could also be included.
If the modification is non-controversial, a pull request could be opened simultaneously.
Discussion of the proposal should take place in one issue.
Final review should take place in the pull request and the issue closed when the pull request is merged.

3. **Changes Spanning Multiple Sections** If reasonable, changes concerning multiple sections should follow the pattern described in Single Section Change.
If explicitly listing proposed changes is not practical, general guideline 2 should be followed to document the proposal.
Depending on the nature of the proposal, interested community members can decide what the most effective tool is for development and review of specification changes.
Tools used for development of significant changes are up to those contributing and reviewing it.
Note that there is a rendered "rich-diff" view of a pull request that can be helpful for review of large contributions.
139 changes: 139 additions & 0 deletions constitution.adoc
Original file line number Diff line number Diff line change
@@ -0,0 +1,139 @@
= CF Constitution

== Introduction

The CF Conventions' mission is to benefit of its users by enabling them to encode data products that are unambiguous, concise, understandable, and interoperable.
The CF Community embraces a philosophy of producing excellence by maintaining an open and welcoming culture and an environment that promotes debate and inquiry in a respectful, bold and intellectually rigorous fashion.
This is reflected in the community's https://github.com/cf-convention/cf-conventions/blob/master/CODE_OF_CONDUCT.md[Code of Conduct].

This constitution sets forth the mechanisms that are used in order to ensure that the Conventions can evolve in order to meet its users' needs.

== People involved in the CF governance process

The following groups are involved in the CF governance processes:

* CF Governance Panel
* Conventions Committee
* Standard Name Committee

The following sections describe the specific roles of people in these groups.

The officers in each group are:

* A chair, responsible for chairing meetings and communicating on the group's behalf;
* A secretary, responsible for ensuring that meetings are properly minuted, maintaining the documents the group is responsible for, and ensuring that formal rules are adhered to; and
* Other members who contribute to the work of the group.
This may include officers who are appointed by the group in order to have responsibility for specific tasks.

All bodies involved in the CF governance process carry out debates and make decisions in a way that is visible and transparent to all interested parties.
They maintain permanent, public records of these items and all versions of all documents they are responsible for.

In addition, the following groups exist or can be created as needed in order to support the progress and evolutions of the CF Conventions:

* Project teams
* Community at large

These groups do not have officers and have no commitment to maintain records.

== Composition of groups involved in CF governance

Each year, at the Annual Meeting, the term of the longest serving member in the Governance Panel and each Committee ends.
The Governance Panel can appoint volunteers to positions in the Governance Panel and any Committee at any time.
Likewise, a member of any group may resign at any time.
A member can volunteer for membership in any group as many times as they like.

The Chair of each group is elected by vote within the group at the Annual Meeting.
Membership in one group does not preclude membership in others.

Any group member can delegate their duties to a qualified delegate.

Project teams can be appointed from volunteers by the CF Governance Panel and any Committee.
Membership in a project team expires when the member resigns or the project team is dissolved.

Contributions to any group involved in the CF governance process are tracked in a dedicated document by the secretary of the relevant group.
Project teams fall in the responsibility of the group that created them.

=== Roles and responsibilities

==== The CF Governance Panel

The Governance Panel promotes the use of CF within the community of users who make use of or could profit from using the CF Conventions.
It has no special responsibility for or influence on the technical content of the CF Conventions or Standard Name Table.

Its duties include:

* organising an Annual Meeting for discussing issues relevant to the CF Conventions;
* encouraging support of CF by benevolent organisations;
* exploring funding mechanisms for CF activities;
* representing CF to other organisations;
* appointing volunteers to the various groups involved in CF governance that have the expertise and interests relevant to their work in those bodies;
* encouraging representation of different communities and geographic regions within the governance bodies in its purview;
* publishing the Constitution;
* maintaining public lists of the members of all groups involved in CF governance.

==== The Conventions Committee

The Conventions Committee develops and maintains the CF Conventions on behalf of the user community.
It ensures that the CF Conventions evolve in line with the mission and philosophy of CF and the needs of the user community.
It also ensures that the Conventions remain coherent, implementable, and verifiable.

Its duties include:

* moderating and contributing to discussions of proposed changes to the CF Conventions;
* approving or rejecting proposed changes to the CF Conventions;
* publishing new versions of the CF Conventions.

===== Moderating proposals to change the CF Conventions

Anyone who has an idea of how to improve the CF Conventions can propose a change as outlined in https://github.com/cf-convention/cf-conventions/blob/master/CONTRIBUTING.md[the contribution guidelines].
Once such a proposal has been made, a moderator of the ensuing discussion is sought from the Conventions Committee.

The moderator has the duty to

* ensure that the discussion surrounding the proposal is in line with the CF Community's philosophy and https://github.com/cf-convention/cf-conventions/blob/master/CODE_OF_CONDUCT.md[Code of Conduct];
* invite relevant experts to take part in the discussion;
* summarise the ongoing discussion periodically;
* manage the voting process to accept or reject the proposal when a motion is raised to adopt the proposal's text.

===== Approving or rejecting proposed changes to the CF Conventions

When a member of the CF community feels that a proposed change has been sufficiently discussed and refined, they may make a motion to adopt it.
If this motion is seconded by a member of the Conventions Committee, others within the community have three weeks to voice concerns against its adoption.
If after three weeks no concerns have been voiced, the motion qualifies as approved and is accepted for publishing in the next release of hte Conventions.
If objections are voiced, at the end of the three weeks a vote is held on whether to accept the proposal.
The proposal is then accepted or rejected based on simple majority.

===== Publishing new versions of the CF Conventions

The CF Conventions are updated, if changes have been accepted, at the conclusion of the Annual Meeting.
Exceptionally, updates can be released acyclically if there is a pressing need.

==== The Standard Names Committee

The Standard Names Committee defines CF standard names and maintains controlled vocabulary in the appendices to the CF Conventions.
It pursues pursues interoperability with other controlled vocabularies and ontologies.
Its duties include:

* maintaining the contents and format of the standard name table;
* evaluating proposed standard names;
* publishing new versions of the standard names table as needed.

==== Project teams

Project teams can be created by the CF Governance Panel and any of the existing Committees.
They have a specific mandate and scope and are entrusted with completing specific tasks within a limited duration.
There are no limits on their size or membership.
After their defined duration has expired, a project team is dissolved.
If it has not been able to complete all of its tasks, a new project team can be created.

Examples for tasks that might be completed by an project team are:

* migrating between technical platforms (e.g. Trac to GitHub);
* upgrading the CF Checker;
* setting up DOI usage in CF;
* other tasks as needed.

==== Community at large

The CF Conventions are designed to benefit their user community and the community at large is invited to contribute to the Conventions and the Standard Name Tables by participating in online discussions, attending meetings, proposing changes, or taking part in any other way they deem appropriate and useful.
Community members participate on a best effort basis and have no responsibility to fulfil.