Third-party contributions are essential for a successful open API definition. Reference implementations will also help Application developers, NOS vendors and Merchant Silicon providers to adhere to and create inter-operable solutions.
New functionality is typically directed toward changes to the protocol buffers with a corresponding change to the reference implementation to demonstrate how it is used. The intent is to do basic validation of the protocol buffers with the basic tests. Full blown error checking and regression would be done with the python simulator. Other reference implementation may be added by the community to confirm or demonstrate approaches such as with c++ or go clients and servers.
- Contributer License Agreement and Code Signing
This software is distributed under a permissive open source license to allow it to be used in any projects, whether open source or proprietary. Contributions to the project are welcome and it is important to maintain clear record of contributions and terms under which they are licensed.
To indicate your acceptance of Developer's Certificate of Origin 1.1 terms, please add the following line to the end of the commit message for each contribution you make to the project:
Signed-off-by : Your Name [email protected]
For information we have copied the Certificate of Origin 1.1 here:
Developer's Certificate of Origin 1.1
By making a contribution to this project, I certify that:
(a) The contribution was created in whole or inpart by me and I
have the right to submit it under the open source license indicated
in the file: or
(b) The contribution is based upon previous work that, to the best
of my knowledge, is covered under an appropriate open source license
and I have the right under that license to submit that work with
modifications, whether created in whole or part by me, under the same
open source license (unless I am permitted to submit under a different
license), as indicated in the file; or
(c) The contribution was provided directly to me by some other person
who certified (a), (b) or (c) I have not modified it.
(d) I understand and agree that this project and the contribution are
public and that a record of the contribution (including all personal
information I submit with it, including my sign-off)is maintained
indefinitely and may be redistributed consistent with this project or
the open source license(s) involved.
- Make sure you have a GitHub account.
- Create an issue in the github repository issues tab for your issue if one does not already exist.
- Clearly describe the issue including steps to reproduce when it is a bug.
- Make sure you fill in the earliest version that you know has the issue.
- Fork the repository on GitHub.
-
Create a topic branch from where you want to base your work.
- This is usually the master branch.
- Only target release branches if you are certain your fix must be on that branch.
- To quickly create a topic branch based on master, run
git checkout -b fix/master/my_contribution master
. Please avoid working directly on themaster
branch.
-
Make commits of logical and atomic units.
-
Check for unnecessary whitespace with
git diff --check
before committing. -
Make sure your commit messages are in the proper format. If the commit addresses an issue filed in the, start the first line of the commit with the issue number in parentheses.
-
Make sure you have added the necessary tests for your changes.
For trivial changes, it is not always necessary to create a new issue in github.
In this case, it is appropriate to start the first line of a
commit with one of (docs)
, (maint)
, or (packaging)
instead of a ticket
number.
If a issue exists for the documentation commit, you can include it
after the (docs)
token.
(docs)(DOCUMENT-000) Add docs commit example to CONTRIBUTING
There is no example for contributing a documentation commit
to the repository. This is a problem because the contributor
is left to assume how a commit of this nature may appear.
The first line is a real-life imperative statement with '(docs)' in
place of what would have been the PUP project ticket number in a
non-documentation related commit. The body describes the nature of
the new documentation or comments added.
For commits that address trivial repository maintenance tasks or packaging
issues, start the first line of the commit with (maint)
or (packaging)
,
respectively.
- Sign your code indicating agreement to the Contributer Code of Conduct In the future we may use a Contributer License Agreement as well.
- Push your changes to a topic branch in your fork of the repository.
- Submit a pull request to the github repository.
- Update the related issue to mark that you have submitted code and are ready for it to be reviewed.
- The core team looks at pull requests on a regular basis.
- After feedback has been given we expect responses within two weeks. After two weeks we may close the pull request if it isn't showing any activity.
By running tests in advance and by engaging with peer review for prospective changes, your contributions have a high probability of becoming long lived parts of the the project.
If the code change results in a test failure, we will make our best effort to correct the error. If a fix cannot be determined and committed within 24 hours of its discovery, the commit(s) responsible may be reverted, at the discretion of the committer and maintainers. This action would be taken to help maintain passing states in our testing pipelines.
- Changes resulting in test pipeline failures will be reverted if they cannot be resolved within one business day.