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
Changes from 2 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
75 changes: 75 additions & 0 deletions GOVERNANCE.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# 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-Altair](https://github.com/altair-viz/altair), [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 spread across the [vega](https://github.com/vega) and [altair-viz](https://github.com/altair-viz) GitHub organizations.

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

## People

We define three levels of people 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 have write access and can push directly to branches on GitHub. They are expected to follow development guidelines, review pull requests, and participate in discussions. 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 appropriate list below. 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.

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

[Admins](#admins) are also maintainers.

#### [Vega](https://github.com/vega) GitHub Organization Maintainers

* @fandu-db
* @joelostblom
* @jonmmease
* @keckelt
* @mattijn
* @yhoonkim
domoritz marked this conversation as resolved.
Show resolved Hide resolved

#### [Altair-Viz](https://github.com/altair-viz) GitHub Organization Maintainers

* @jonmmease
domoritz marked this conversation as resolved.
Show resolved Hide resolved

### Admins

Admins are maintainers who can also make 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).

To become an admin, a maintainer must be nominated and approved by the existing admins using the same process as for maintainers.

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

The current admins are:

#### [Vega](https://github.com/vega) GitHub Organization Admins

* @arvind
* @domoritz
* @jheer
* @kanitw
* @lsh
domoritz marked this conversation as resolved.
Show resolved Hide resolved

#### [Altair-Viz](https://github.com/altair-viz) GitHub Organization Admins

* @binste
* @ChristopherDavisUCI
* @jakevdp
* @joelostblom
* @mattijn
* @stsievert
domoritz marked this conversation as resolved.
Show resolved Hide resolved

## 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.