mirror of
https://github.com/apache/superset.git
synced 2026-05-22 08:15:36 +00:00
Copilot flagged two stragglers on editors.md where the previous file-by-file conversion stopped halfway. Sweeping for the same pattern across the active content tree found 76 bare relative internal links total — 14 in this PR's already-modified files (Copilot's two plus twelve more) and 62 in unchanged files. Why the build doesn't catch this ───────────────────────────────── `onBrokenLinks: 'throw'` (set in this PR) only validates *file-based* markdown references — links whose URL ends in `.md` / `.mdx`. Those go through Docusaurus's file resolver, which can prove the target exists. Bare relative URL paths like `[Foo](../foo)` skip that resolver entirely; Docusaurus emits them as raw hrefs. The browser then resolves them against the *current* page URL, and for trailing-slash routes that almost always lands in the wrong directory. Page navigates client-side and 404s. The linkinator job in CI *can* catch these, but it's `continue-on-error: true` so findings are advisory. What this commit does ────────────────────── 1. Fix all 76 bare relative internal links across the active docs tree by appending `.md` to each one (preserving anchors / query strings). All 76 targets resolved to real files; no link targets changed, only the form of the reference. 2. Fix the component-page generator. 54 of the 76 bare links lived in two auto-generated index files (`components/ui/index.mdx` and `components/design-system/index.mdx`). The next regeneration would have undone the manual fixes without this. The two emission sites in `generate-superset-components.mjs` now emit `.md`-suffixed links; comment at the call site explains why. 3. Add `docs/scripts/lint-docs-links.mjs` — fast source-level linter that scans `.md`/`.mdx` files under the active content trees (skipping `versioned_docs/` snapshots) and fails if it finds any markdown link whose URL starts with `./` or `../` and does not end in `.md`/`.mdx`. Excludes asset paths (.png, .json, etc.) and ignores fenced code blocks. Wired up as `yarn lint:docs-links`. 4. Add a `Lint docs links` step to `superset-docs-verify.yml`, running before the build step so PRs that introduce the pattern fail in seconds rather than at build-time / not at all. Blocking, not advisory — exactly the gap linkinator's `continue-on-error` leaves open. Verified ──────── - `yarn lint:docs-links` exits 0 on the cleaned tree - Re-introducing one bare link makes the linter report the exact file:line with the offending URL, exit code 1 - All 76 originally-flagged targets resolved to real `.md` / `.mdx` files; only the form of the reference changed
167 lines
8.3 KiB
Markdown
167 lines
8.3 KiB
Markdown
---
|
|
title: Overview
|
|
sidebar_position: 1
|
|
---
|
|
|
|
<!--
|
|
Licensed to the Apache Software Foundation (ASF) under one
|
|
or more contributor license agreements. See the NOTICE file
|
|
distributed with this work for additional information
|
|
regarding copyright ownership. The ASF licenses this file
|
|
to you under the Apache License, Version 2.0 (the
|
|
"License"); you may not use this file except in compliance
|
|
with the License. You may obtain a copy of the License at
|
|
|
|
http://www.apache.org/licenses/LICENSE-2.0
|
|
|
|
Unless required by applicable law or agreed to in writing,
|
|
software distributed under the License is distributed on an
|
|
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
|
KIND, either express or implied. See the License for the
|
|
specific language governing permissions and limitations
|
|
under the License.
|
|
-->
|
|
|
|
# Contributing
|
|
|
|
Superset is an [Apache Software foundation](https://www.apache.org/theapacheway/index.html) project.
|
|
The core contributors (or committers) to Superset communicate primarily in the following channels (which can be joined by anyone):
|
|
|
|
- [Mailing list](https://lists.apache.org/list.html?dev@superset.apache.org)
|
|
- [Apache Superset Slack community](http://bit.ly/join-superset-slack)
|
|
- [GitHub issues](https://github.com/apache/superset/issues)
|
|
- [GitHub pull requests](https://github.com/apache/superset/pulls)
|
|
- [GitHub discussions](https://github.com/apache/superset/discussions)
|
|
- [Superset Community Calendar](https://superset.apache.org/community)
|
|
|
|
More references:
|
|
|
|
- [Superset Wiki (code guidelines and additional resources)](https://github.com/apache/superset/wiki)
|
|
|
|
## Orientation
|
|
|
|
Here's a list of repositories that contain Superset-related packages:
|
|
|
|
- [apache/superset](https://github.com/apache/superset)
|
|
is the main repository containing the `apache_superset` Python package
|
|
distributed on
|
|
[pypi](https://pypi.org/project/apache_superset/). This repository
|
|
also includes Superset's main TypeScript/JavaScript bundles and react apps under
|
|
the [superset-frontend](https://github.com/apache/superset/tree/master/superset-frontend)
|
|
folder.
|
|
- [github.com/apache-superset](https://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](https://help.github.com/articles/creating-and-highlighting-code-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](https://github.com/apache/superset/discussions/categories/ideas) 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](https://github.com/apache/superset/issues/5602)
|
|
|
|
### 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](./howtos.md#contributing-to-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](./howtos.md#contributing-translations) for more details.
|
|
|
|
### Ask Questions
|
|
|
|
There is a dedicated [`apache-superset` tag](https://stackoverflow.com/questions/tagged/apache-superset) on [StackOverflow](https://stackoverflow.com/). 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](https://projects.apache.org/committee.html?superset).
|
|
|
|
### 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](https://apache.org/security/committers.html#asf-project-security-for-committers).
|
|
|
|
Each new security issue is tracked as a JIRA ticket on the [ASF's JIRA Superset security project](https://issues.apache.org/jira/secure/RapidBoard.jspa?rapidView=588&projectKey=SUPERSETSEC)
|
|
|
|
Security team members must:
|
|
|
|
- Have an [ICLA](https://www.apache.org/licenses/contributor-agreements.html) 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).
|
|
|
|
## Getting Started
|
|
|
|
Ready to contribute? Here's how to get started:
|
|
|
|
1. **[Set up your environment](./development-setup.md)** - Get Superset running locally
|
|
2. **[Find something to work on](#types-of-contributions)** - Pick an issue or feature
|
|
3. **[Submit your contribution](./submitting-pr.md)** - Create a pull request
|
|
4. **[Follow guidelines](./guidelines.md)** - Ensure code quality
|
|
|
|
Welcome to the Apache Superset community! 🚀
|