How we manage new open-source projects
The purpose of this document is to provide transparency on how Porsche is
managing new open-source projects and the standards we're endorsing to foster
healthy communities. The intended audience is both interested visitors as well
as employees of Porsche AG and subsidiaries.
Preliminary steps
We support and encourage our employees to launch and maintain new FOSS projects.
Our employees can find more information on our contribution policy in our
corporate wiki.
Our GitHub flow
We consider the default branch of our projects as stable/working and protect this
with a minimal set of the following branch protection rules:
- Require a pull request before merging
- Require 1 approval
- Require status checks to pass before merging
- Require branches to be up to date before merging
- Do not allow bypassing the above settings
More information on our GitHub flow can be found in the Porsche Development
Guidance.
To contribute to an open-source project maintained by Porsche, please fork the
repository, commit your changes to a separate branch and get them merged into
the default branch via a reviewed pull request. More information on how to
contribute to our projects can be found in the CONTRIBUTING.md file of the
particular project.
Necessary files and documents
The following files and documents are generally included in all our open-source projects:
A pull request template
.github/PULL_REQUEST_TEMPLATE.md:
### Pull Request Checklist
- [ ] I have read and accept the [Contributor License Agreement](https://opensource.porsche.com/docs/cla)
Further requirements may be included in our pull request templates, but the
checkbox "I have read and accept the Contributor License Agreement" is
always required.
The unmodified license text of the FOSS project in a file named
LICENSE.md.
A
README.md that introduces and explains the FOSS
project. We're following the makeareadme.com
template for writing good READMEs.
A file
CONTRIBUTING.md that explains how to contribute to
the FOSS project.
If third-party components are distributed as a bundled
release, a compulsory Open Source Software Notice in a file named
NOTICE.txt.
Fostering a welcoming community
Contributions to our open-source projects, may it be reporting issues or
contributing changes, are highly appreciated! To foster a welcoming
community, we encourage our maintainers to
triage new issues created by you in a timely manner, and
address pull requests in a timely manner. If a pull request needs change or a
pipeline fails, we make sure to indicate a hint on how to resolve them.
Release Management
By incorporating a minimal release management, we give others the chance to rely
on our Porsche FOSS projects. This includes
tagging the main branch and releasing whenever reasonable,
adopting a suitable versioning scheme, e.g. Semantic
Versioning,
indicating breaking changes, and
publishing release notes that reflect all changes, offering a hint on
upgradability and giving credit to all contributors.
Further Reading
Recommended Practices for Hosting and Managing Open Source Projects on GitHub
(linuxfoundation.org)
Recommended Community Standards by
GitHub