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

Governance for the Vega Organization #2

Merged
merged 19 commits into from
Dec 12, 2023
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
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
9 changes: 9 additions & 0 deletions ADMINS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
# Admins

This document lists the Admins of the Project. Admins may be added once approved by the existing Admins as described in the [Governance document](GOVERNANCE.md). By adding your name to this list you are agreeing to abide by the Project governance documents and to abide by all of the Organization's polices, including the [code of conduct](CODE_OF_CONDUCT.md).

* @arvind
* @domoritz
* @jheer
* @kanitw
* @lsh
41 changes: 41 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,41 @@
# Vega Project Governance

## Scope and Goals

This governance document describes the governance model for [Vega](https://github.com/vega/vega), [Vega-Lite](https://github.com/vega/vega-lite), [Vega-Embed](https://github.com/vega/vega-embed), [Vega-Datsets](https://github.com/vega/vega-datasets), [Vega-Themes](https://github.com/vega/vega-themes), and [Vega-Tooltips](https://github.com/vega/vega-tooltip). These projects are collectively referred to as the "Vega projects" in this document. The Vega projects are in the [vega](https://github.com/vega) GitHub organizations.

The [Vega-Altair](https://github.com/altair-viz/altair) project's governance model is documented at [altair-viz/altair/governance](https://github.com/altair-viz/altair/blob/main/governance/project-docs/GOVERNANCE.md).

Our goal is to encourage a diverse community of contributors and users to participate in the development of the Vega projects.

## Roles

We define three levels of roles in the Vega projects: Contributors, Maintainers, and Admins. We expect everyone to adhere to our [Code of Conduct](CODE_OF_CONDUCT.md).

### Contributors

Contributors are anyone who makes a contribution to a Vega project via GitHub. This includes filing issues, sending pull requests, and participating in discussions. There are no requirements to participate and we encourage everyone to contribute. You do not have to be a Maintainer to send a pull request.

### Maintainers

Maintainers belong to all or some subset of Vega projects. Maintainers are responsible for organizing activities around developing, maintaining, and updating the project. Maintainers have write access and can push directly to branches on GitHub. Maintainers also have access to specific developer channels on Slack.

To become a Maintainer, a contributor must be nominated by an existing Maintainer and approved by a majority of Maintainers via Slack reactions within 7 days (simple majority of responses). A new Maintainer should be added to 1) the GitHub team, 2) the Slack channel, and 3) the [maintainers.md file](MAINTAINERS.md). We want more people to become Maintainers and lower the barrier the enter. If you are interested in becoming a Maintainer, please reach out to an existing Maintainer.
Copy link
Member

Choose a reason for hiding this comment

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

via Slack reactions

Is this slack reaction private within the maintainer channel? (Otherwise, I doubt if anyone will feel comfortable "thumbing down" in public.)

Copy link
Member Author

Choose a reason for hiding this comment

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

Yes, it's in the private channel.

domoritz marked this conversation as resolved.
Show resolved Hide resolved
domoritz marked this conversation as resolved.
Show resolved Hide resolved

Maintainers who are inactive for more than six months may be removed from the maintainer list.

### Admins

Admins are maintainers who can make and are responsible for releases. Admins are [owners of the GitHub organization](https://docs.github.com/en/organizations/managing-peoples-access-to-your-organization-with-roles/roles-in-an-organization#organization-owners).
Copy link
Member

Choose a reason for hiding this comment

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

Not sure what "who can make" means? I don't think we have a Makefile anymore?

Copy link
Member Author

Choose a reason for hiding this comment

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

I meant to say "who can release new versions and are also responsible for doing so". I think in general we should say that any power also comes with the corresponding responsibility. So if you can release new versions, you are also expected to make releases when necessary.

"Make a release" === "release a new version". I didn't mean to imply any relationship to Make. Can you edit the text to make it clearer?


To become an Admin, a Maintainer must be nominated and approved by the existing Admins using the same process as for Maintainers. Admins are listed in the [admins.md file](ADMINS.md).

Admins who are inactive for a year may be removed from the Admin list.

## Project-specific development guidelines

Each Vega project may have its own development guidelines in a `CONTRIBUTING.md` file. For example, [Vega-Lite's contributing guide](https://github.com/vega/vega-lite/blob/main/CONTRIBUTING.md) describes design and development principles.

## Decision-making process

Major technical decisions should be made in public using GitHub discussions or GitHub issues. While we use [Slack](https://bit.ly/join-vega-slack-2022) for more direct discussions, any results should be documented on GitHub where they are accessible to everyone. Note that we don't pay for Slack and so any discussions disappear after 90 days.
Copy link
Member

@kanitw kanitw Oct 17, 2023

Choose a reason for hiding this comment

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

  • I think we need some RFC template so people know to enumerate alternative design etc.
    Github issue is generally quite ineffective to enumerate such options.

Copy link
Member Author

Choose a reason for hiding this comment

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

Slack is even worse for it and doesn't even have templates. And yes, I agree having some template would be useful but it should be lightweight. I honestly think our pull request templates are not as useful as we had hoped (people don't fill it out and it clutters the pull request description).

Copy link
Member

Choose a reason for hiding this comment

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

I agree that our PR template hasn't worked well because it's heavyweight (lots of checkboxes). I think one other reason is because the wording/structure makes it a little unclear how to actually fill things out (e.g., reads like instructions, with links to advice that need to be deleted; some checkboxes, some bullet points; and, unclear where one should add a description of the PR, etc.).

So, we could use something more lightweight like:

## PR Description

## Checklist

- [ ] This PR is atomic (i.e., it fixes one issue at a time).
- [ ] The title is a concise [semantic commit message](https://www.conventionalcommits.org/) (e.g. "fix: correctly handle undefined properties").
- [ ] `yarn test` runs successfully
... etc

Copy link
Member Author

Choose a reason for hiding this comment

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

17 changes: 17 additions & 0 deletions MAINTAINERS.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,17 @@
# Maintainers

This document lists the Maintainers of the Project. Maintainers may be added once approved by the existing maintainers as described in the [Governance document](GOVERNANCE.md). By adding your name to this list you are agreeing to abide by the Project governance documents and to abide by all of the Organization's polices, including the [code of conduct](CODE_OF_CONDUCT.md).

* @arvind
* @domoritz
* @fandu-db
* @jheer
* @joelostblom
* @jonmmease
* @kanitw
* @keckelt
* @lsh
* @mattijn
* @yhoonkim

The Vega-Altair project also has maintainers which are listed at [altair-viz/altair/governance/project-docs/MAINTAINERS.md](https://github.com/altair-viz/altair/blob/main/governance/project-docs/MAINTAINERS.md).