Contributing to Superset

Superset is an Apache Software foundation project. The core contributors (or committers) to Superset communicate primarily in the following channels ( which can be joined by anyone):

More references:

Orientation

Here’s a list of repositories that contain Superset-related packages:

  • apache/superset is the main repository containing the apache-superset Python package distributed on pypi. This repository also includes Superset’s main TypeScript/JavaScript bundles and react apps under the superset-frontend folder.
  • github.com/apache-superset is the GitHub organization under which we manage Superset-related small tools, forks and Superset-related experimental ideas.

Types of Contributions

Report Bug

The best way to report a bug is to file an issue on GitHub. Please include:

  • Your operating system name and version.
  • Superset version.
  • Detailed steps to reproduce the bug.
  • Any details about your local setup that might be helpful in troubleshooting.

When posting Python stack traces, please quote them using Markdown blocks.

Please note that feature requests opened as GitHub Issues will be moved to Discussions.

Submit Ideas or Feature Requests

The best way is to start an “Ideas” Discussion thread on GitHub:

  • Explain in detail how it would work.
  • Keep the scope as narrow as possible, to make it easier to implement.
  • Remember that this is a volunteer-driven project, and that your contributions are as welcome as anyone’s :)

To propose large features or major changes to codebase, and help usher in those changes, please create a Superset Improvement Proposal (SIP). See template from SIP-0

Fix Bugs

Look through the GitHub issues. Issues tagged with #bug are open to whoever wants to implement them.

Implement Features

Look through the GitHub issues. Issues tagged with #feature are open to whoever wants to implement them.

Improve Documentation

Superset could always use better documentation, whether as part of the official Superset docs, in docstrings, docs/*.rst or even on the web as blog posts or articles. See Documentation for more details.

Add Translations

If you are proficient in a non-English language, you can help translate text strings from Superset’s UI. You can jump into the existing language dictionaries at superset/translations/<language_code>/LC_MESSAGES/messages.po, or even create a dictionary for a new language altogether. See Translating for more details.

Ask Questions

There is a dedicated apache-superset tag on StackOverflow. Please use it when asking questions.

Types of Contributors

Following the project governance model of the Apache Software Foundation (ASF), Apache Superset has a specific set of contributor roles:

PMC Member

A Project Management Committee (PMC) member is a person who has been elected by the PMC to help manage the project. PMC members are responsible for the overall health of the project, including community development, release management, and project governance. PMC members are also responsible for the technical direction of the project.

For more information about Apache Project PMCs, please refer to https://www.apache.org/foundation/governance/pmcs.html

Committer

A committer is a person who has been elected by the PMC to have write access (commit access) to the code repository. They can modify the code, documentation, and website and accept contributions from others.

The official list of committers and PMC members can be found here.

Contributor

A contributor is a person who has contributed to the project in any way, including but not limited to code, tests, documentation, issues, and discussions.

You can also review the Superset project’s guidelines for PMC member promotion here: https://github.com/apache/superset/wiki/Guidelines-for-promoting-Superset-Committers-to-the-Superset-PMC

Security Team

The security team is a selected subset of PMC members, committers and non-committers who are responsible for handling security issues.

New members of the security team are selected by the PMC members in a vote. You can request to be added to the team by sending a message to private@superset.apache.org. However, the team should be small and focused on solving security issues, so the requests will be evaluated on a case-by-case basis and the team size will be kept relatively small, limited to only actively security-focused contributors.

This security team must follow the ASF vulnerability handling process.

Each new security issue is tracked as a JIRA ticket on the ASF’s JIRA Superset security project

Security team members must:

  • Have an ICLA signed with Apache Software Foundation.
  • Not reveal information about pending and unfixed security issues to anyone (including their employers) unless specifically authorised by the security team members, e.g., if the security team agrees that diagnosing and solving an issue requires the involvement of external experts.

A release manager, the contributor overseeing the release of a specific version of Apache Superset, is by default a member of the security team. However, they are not expected to be active in assessing, discussing, and fixing security issues.

Security team members should also follow these general expectations:

  • Actively participate in assessing, discussing, fixing, and releasing security issues in Superset.
  • Avoid discussing security fixes in public forums. Pull request (PR) descriptions should not contain any information about security issues. The corresponding JIRA ticket should contain a link to the PR.
  • Security team members who contribute to a fix may be listed as remediation developers in the CVE report, along with their job affiliation (if they choose to include it).