We're excited that you're interested in contributing to Fundamental NGX! Your contribution can make this library even better. Please read the guidelines regarding contributions:
If you find a bug or some other issue with any part of the library, please submit an issue. Before doing so, please make sure that:
- The issue is not a duplicate issue.
- The issue has not been fixed in a newer release of the library.
- The issue is reproducible.
- Your explanation is clear and complete.
- You provide example code and/or screenshots (recommended).
If you meet the above criteria, you can submit issues with our GitHub issue tracker. Please use labels to categorize your issue.
You can also use the issue tracker to request a new feature or enhancement. Even if you want to implement the feature yourself, please first submit an issue detailing your proposal so that we may discuss it with you and the community before moving forward. Please use labels when creating feature requests.
GitHub offers labels to categorize issues. You can use the following labels:
Labels for issue categories:
- bug: Issues in the code.
- documentation: Issues with the documentation.
- enhancement: Enhancement requests.
Status of open issues:
- (no label): The default status.
- unconfirmed: The issue needs to be confirmed as being a bug or future enhancement.
- approved: The issue is confirmed as being a bug to be fixed or enhancement to be developed.
- author action: The issue's creator needs to provide additional information.
- contribution welcome: The fix or enhancement is approved and you are invited to contribute to it.
Status of closed issues:
- fixed: A fix for the issue was provided.
- duplicate: The issue is also reported in a different ticket and is being managed there.
- invalid: The reported issue will not be addressed.
- works: The issue cannot be reproduced, or the feature is working as expected.
- wontfix: The issue will not be fixed.
You are welcome to contribute code to Fundamental NGX in order to fix issues or to add new features.
There are three important things to consider:
- You must be aware of the Apache License (which describes contributions) and agree to the Contributors License Agreement. This is common practice in all major Open Source projects. If you are an individual contributor, use CLA assistant. CLA assistant is an open source tool that integrates with GitHub and enables a one-click-experience for accepting the CLA. If you are contributing on behalf of a company, see the Company Contributors section below for details.
- You must follow code style, quality, and product standards requirements. You can find more information on the coding guidelines below.
When you contribute (code, documentation, or anything else), you must be aware that your contribution is covered by the same Apache 2.0 License that is applied to Fundamental NGX itself. In particular, you need to agree to the Individual Contributor License Agreement, which can be found here. (This applies to all contributors, including those contributing on behalf of a company). If you agree to its content, you simply have to click on the link posted by the CLA assistant as a comment to the pull request. Click it to check the CLA and, if you agree to it, accept it on the following screen. CLA assistant saves this decision for upcoming contributions and notifies you if there is any change to the CLA in the meantime.
If employees of a company contribute code, in addition to the individual agreement above, there needs to be one company agreement submitted. This is mainly for the protection of the contributing employees.
A company representative authorized to do so needs to download, fill out, and print the Corporate Contributor License Agreement form. Then either:
- Scan it and e-mail it to opensource@sap.com and openui5@sap.com,
- Fax it to: +49 6227 78-45813,
- Send it by mail to: Industry Standards & Open Source Team, Dietmar-Hopp-Allee 16, 69190 Walldorf, Germany.
The form lists all employees who are authorized to contribute on behalf of your company. When this list changes, please let us know.
You must follow the coding style as best you can when submitting code. Take note of naming conventions, separation of concerns, and formatting rules. You can use the code formatter Prettier to handle some of this for you automatically. You can find the Prettier configuration file, which defines some simple formatting rules, in the root repository.
- Make sure the issue you've filed in the [issue tracker] has the label "contribution welcome" - otherwise, it is not ready to be worked on.
- Fork the Fundamental NGX repository to your GitHub account.
- Create a branch for your issue or feature, and commit or push your changes on that branch.
- Follow the Angular commit message guidelines.
- Create a Pull Request from your forked repository to github.com/SAP/fundamental-ngx. In the subject of the pull request, briefly describe the bug fix or enhancement you're contributing. In the pull request description, please provide a link to the issue in the issue tracker.
- Follow the link posted by the CLA assistant to your pull request and accept it, as described above.
- Wait for our code review and approval. We may ask you for additional commits, or make changes to your pull request ourselves.
- Note that the Fundamental NGX developers also have their regular duties so, depending on the required effort for reviewing, testing, and clarification, this may take a while.
- Once the change has been approved, we inform you in a comment.
- Your pull request cannot be merged directly into the branch (internal SAP processes), but is merged internally and immediately appears in the public repository as well.
- We close the pull request. You can then delete the now obsolete branch.