Initial revision.
This commit is contained in:
		
							parent
							
								
									2c66cc9d57
								
							
						
					
					
						commit
						ec4a60a965
					
				
					 3 changed files with 357 additions and 0 deletions
				
			
		
							
								
								
									
										83
									
								
								CODE_OF_CONDUCT.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										83
									
								
								CODE_OF_CONDUCT.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,83 @@ | ||||||
|  | # Project CHIP Open Source Code of Conduct | ||||||
|  | 
 | ||||||
|  | This Project CHIP Open Source Code of Conduct applies to all those contributing | ||||||
|  | to, participating in, or maintaining the Project CHIP open source project, | ||||||
|  | including Zigbee Alliance members and non-members. | ||||||
|  | 
 | ||||||
|  | ## Our Pledge | ||||||
|  | 
 | ||||||
|  | In the interest of fostering an open and welcoming environment, we as | ||||||
|  | contributors and maintainers pledge to make participation in our project and our | ||||||
|  | community a harassment-free experience for everyone, regardless of age, body | ||||||
|  | size, disability, ethnicity, sex characteristics, gender identity and | ||||||
|  | expression, level of experience, education, socio-economic status, nationality, | ||||||
|  | personal appearance, race, religion, or sexual identity and orientation. | ||||||
|  | 
 | ||||||
|  | ## Our Standards | ||||||
|  | 
 | ||||||
|  | Examples of behavior that contributes to creating a positive environment | ||||||
|  | include: | ||||||
|  | 
 | ||||||
|  | -   Using welcoming and inclusive language | ||||||
|  | -   Being respectful of differing viewpoints and experiences | ||||||
|  | -   Gracefully accepting constructive criticism | ||||||
|  | -   Focusing on what is best for the community | ||||||
|  | -   Showing empathy towards other community members | ||||||
|  | 
 | ||||||
|  | Examples of unacceptable behavior by participants include: | ||||||
|  | 
 | ||||||
|  | -   The use of violent threats, abusive, discriminatory, or derogatory language | ||||||
|  | -   The use of sexualized language or imagery and unwelcome sexual attention or | ||||||
|  |     advances | ||||||
|  | -   Trolling, insulting/derogatory comments, and personal or political attacks | ||||||
|  | -   Public or private harassment | ||||||
|  | -   Publishing others' private information, such as a physical or electronic | ||||||
|  |     address, without explicit permission | ||||||
|  | -   Posting of violent content | ||||||
|  | -   Engaging in unwanted physical contact | ||||||
|  | -   Other conduct which could reasonably be considered inappropriate in a | ||||||
|  |     professional setting | ||||||
|  | -   Advocating for or encouraging any of the above behaviors | ||||||
|  | 
 | ||||||
|  | ## Our Responsibilities | ||||||
|  | 
 | ||||||
|  | Project maintainers are expected to take appropriate and fair corrective action | ||||||
|  | in response to any instances of unacceptable behavior. Project maintainers have | ||||||
|  | the right and responsibility to remove, edit, or reject comments, commits, code, | ||||||
|  | wiki edits, issues, and other contributions that are not aligned to this Code of | ||||||
|  | Conduct, or to ban temporarily or permanently any contributor for other | ||||||
|  | behaviors that they deem inappropriate, threatening, offensive, or harmful. | ||||||
|  | 
 | ||||||
|  | ## Scope | ||||||
|  | 
 | ||||||
|  | This Code of Conduct applies within all project spaces, and it also applies when | ||||||
|  | an individual is representing the project or its community in public spaces. | ||||||
|  | Examples of representing a project or community include using an official | ||||||
|  | project e-mail address, posting via an official social media account, or acting | ||||||
|  | as an appointed representative at an online or offline event. Representation of | ||||||
|  | a project may be further defined and clarified by project maintainers. | ||||||
|  | 
 | ||||||
|  | ## Enforcement | ||||||
|  | 
 | ||||||
|  | Instances of abusive, harassing, or otherwise unacceptable behavior may be | ||||||
|  | reported by contacting the Project CHIP open source team at [INSERT EMAIL | ||||||
|  | ADDRESS]. All complaints will be reviewed and investigated and will result in a | ||||||
|  | response that is deemed necessary and appropriate to the circumstances. The | ||||||
|  | Project CHIP open source team should maintain confidentiality with regard to the | ||||||
|  | reporter of an incident. Further details of specific enforcement policies may be | ||||||
|  | posted separately. | ||||||
|  | 
 | ||||||
|  | Project maintainers who do not follow or enforce the Code of Conduct in good | ||||||
|  | faith may face temporary or permanent repercussions as determined by Project | ||||||
|  | CHIP open source leadership. | ||||||
|  | 
 | ||||||
|  | ## Attribution | ||||||
|  | 
 | ||||||
|  | This Code of Conduct is adapted from the [Contributor Covenant][homepage], | ||||||
|  | version 1.4, available at | ||||||
|  | https://www.contributor-covenant.org/version/1/4/code-of-conduct.html | ||||||
|  | 
 | ||||||
|  | [homepage]: https://www.contributor-covenant.org | ||||||
|  | 
 | ||||||
|  | For answers to common questions about this code of conduct, see | ||||||
|  | https://www.contributor-covenant.org/faq | ||||||
							
								
								
									
										270
									
								
								CONTRIBUTING.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										270
									
								
								CONTRIBUTING.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,270 @@ | ||||||
|  | # Contributing to Matter (formerly Project CHIP) | ||||||
|  | 
 | ||||||
|  | Want to contribute? Great! First, read this page (including the small print at | ||||||
|  | the end). By submitting a pull request, you represent that you have the right to | ||||||
|  | license your contribution to the Connectivity Standards Alliance and the | ||||||
|  | community, and agree by submitting the patch that your contributions are | ||||||
|  | licensed under the [Apache 2.0 license](./LICENSE). Before submitting the pull | ||||||
|  | request, please make sure you have tested your changes and that they follow the | ||||||
|  | project guidelines for contributing code. | ||||||
|  | 
 | ||||||
|  | # Contributing as an Open Source Contributor | ||||||
|  | 
 | ||||||
|  | As an open source contributor you can report bugs and request features in the | ||||||
|  | [Issue Tracker](https://github.com/project-chip/connectedhomeip/issues), as well | ||||||
|  | as contribute bug fixes and features that do not impact Matter specification as | ||||||
|  | a pull request. For example: ports of Matter to add APIs to alternative | ||||||
|  | programming languages (e.g. Java, JS), hardware ports, or an optimized | ||||||
|  | implementation of existing functionality. For features that impact the | ||||||
|  | specification, please join Matter work group within the Connectivity Standards | ||||||
|  | Alliance. The requirements to become an open source contributor of the | ||||||
|  | [Matter Repository](https://github.com/project-chip/connectedhomeip) are: | ||||||
|  | 
 | ||||||
|  | -   Agree to the [Code of Conduct](./CODE_OF_CONDUCT.md) | ||||||
|  | -   Agree to the [License](./LICENSE) | ||||||
|  | -   Have signed the | ||||||
|  |     [Matter Working Group CLA](https://gist.github.com/clapre/65aa9fc63981da765039e0bb7e8701be) | ||||||
|  | 
 | ||||||
|  | # Contributing as a Connectivity Standards Alliance Matter Working Group Member | ||||||
|  | 
 | ||||||
|  | As a participant of the Connectivity Standards Alliance Matter Working Group, | ||||||
|  | you can attend Working Group meetings, propose changes to the Matter | ||||||
|  | specification, and contribute code for approved updates to the specification. | ||||||
|  | The requirements to become a member of the | ||||||
|  | [Matter Repository](https://github.com/project-chip/connectedhomeip) are: | ||||||
|  | 
 | ||||||
|  | -   Must be a [Participant member](http://www.zigbeealliance.org/join) or higher | ||||||
|  |     of the Connectivity Standards Alliance | ||||||
|  | -   Must be a Matter Working Group member | ||||||
|  | -   Have signed the Alliance Matter Working Group CLA | ||||||
|  | -   Have approval from your company's official approver | ||||||
|  | 
 | ||||||
|  | # Bugs | ||||||
|  | 
 | ||||||
|  | If you find a bug in the source code, you can help us by | ||||||
|  | [submitting a GitHub Issue](https://github.com/project-chip/connectedhomeip/issues/new). | ||||||
|  | The best bug reports provide a detailed description of the issue and | ||||||
|  | step-by-step instructions for predictably reproducing the issue. Even better, | ||||||
|  | you can | ||||||
|  | [submit a Pull Request](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#submitting-a-pull-request) | ||||||
|  | with a fix. | ||||||
|  | 
 | ||||||
|  | # New Features | ||||||
|  | 
 | ||||||
|  | You can request a new feature by | ||||||
|  | [submitting a GitHub Issue](https://github.com/project-chip/connectedhomeip/issues/new). | ||||||
|  | If you would like to implement a new feature, please consider the scope of the | ||||||
|  | new feature: | ||||||
|  | 
 | ||||||
|  | -   _Large feature_: first | ||||||
|  |     [submit a GitHub Issue](https://github.com/project-chip/connectedhomeip/issues/new) | ||||||
|  |     and communicate your proposal so that the community can review and provide | ||||||
|  |     feedback. Getting early feedback will help ensure your implementation work | ||||||
|  |     is accepted by the community. This will also allow us to better coordinate | ||||||
|  |     our efforts and minimize duplicated effort. | ||||||
|  | -   _Small feature_: can be implemented and directly | ||||||
|  |     [submitted as a Pull Request](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#submitting-a-pull-request). | ||||||
|  | 
 | ||||||
|  | # Contributing Code | ||||||
|  | 
 | ||||||
|  | Matter follows the "Fork-and-Pull" model for accepting contributions. | ||||||
|  | 
 | ||||||
|  | ### Initial Setup | ||||||
|  | 
 | ||||||
|  | Setup your GitHub fork and continuous-integration services: | ||||||
|  | 
 | ||||||
|  | 1. Fork the [Matter repository](https://github.com/project-chip/connectedhomeip) | ||||||
|  |    by clicking "Fork" on the web UI. | ||||||
|  | 
 | ||||||
|  | 2. All contributions must pass all checks and reviews to be accepted. | ||||||
|  | 
 | ||||||
|  | Setup your local development environment: | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | # Clone your fork | ||||||
|  | git clone git@github.com:<username>/connectedhomeip.git | ||||||
|  | 
 | ||||||
|  | # Configure upstream alias | ||||||
|  | git remote add upstream git@github.com:project-chip/connectedhomeip.git | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | ### Submitting a Pull Request | ||||||
|  | 
 | ||||||
|  | #### Branch | ||||||
|  | 
 | ||||||
|  | For each new feature, create a working branch: | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | # Create a working branch for your new feature | ||||||
|  | git branch --track <branch-name> origin/master | ||||||
|  | 
 | ||||||
|  | # Checkout the branch | ||||||
|  | git checkout <branch-name> | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | #### Create Commits | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | # Add each modified file you'd like to include in the commit | ||||||
|  | git add <file1> <file2> | ||||||
|  | 
 | ||||||
|  | # Create a commit | ||||||
|  | git commit | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | This will open up a text editor where you can craft your commit message. | ||||||
|  | 
 | ||||||
|  | #### Upstream Sync and Clean Up | ||||||
|  | 
 | ||||||
|  | Prior to submitting your pull request, you might want to do a few things to | ||||||
|  | clean up your branch and make it as simple as possible for the original | ||||||
|  | repository's maintainer to test, accept, and merge your work. | ||||||
|  | 
 | ||||||
|  | If any commits have been made to the upstream master branch, you should rebase | ||||||
|  | your development branch so that merging it will be a simple fast-forward that | ||||||
|  | won't require any conflict resolution work. | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | # Fetch upstream master and merge with your repository's master branch | ||||||
|  | git checkout master | ||||||
|  | git pull upstream master | ||||||
|  | 
 | ||||||
|  | # If there were any new commits, rebase your development branch | ||||||
|  | git checkout <branch-name> | ||||||
|  | git rebase master | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | Now, it may be desirable to squash some of your smaller commits down into a | ||||||
|  | small number of larger more cohesive commits. You can do this with an | ||||||
|  | interactive rebase: | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | # Rebase all commits on your development branch | ||||||
|  | git checkout <branch-name> | ||||||
|  | git rebase -i master | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | This will open up a text editor where you can specify which commits to squash. | ||||||
|  | 
 | ||||||
|  | #### Push and Test | ||||||
|  | 
 | ||||||
|  | ```bash | ||||||
|  | # Checkout your branch | ||||||
|  | git checkout <branch-name> | ||||||
|  | 
 | ||||||
|  | # Push to your GitHub fork: | ||||||
|  | git push origin <branch-name> | ||||||
|  | ``` | ||||||
|  | 
 | ||||||
|  | This will trigger the continuous-integration checks. You can view the results in | ||||||
|  | the respective services. Note that the integration checks will report failures | ||||||
|  | on occasion. | ||||||
|  | 
 | ||||||
|  | ### Review Requirements | ||||||
|  | 
 | ||||||
|  | #### Documentation Best Practices | ||||||
|  | 
 | ||||||
|  | Matter uses Doxygen to markup (or markdown) all C, C++, Objective C, Objective | ||||||
|  | C++, Perl, Python, and Java code. Read our | ||||||
|  | [Doxygen Best Practices, Conventions, and Style](https://github.com/project-chip/connectedhomeip/blob/master/docs/style/DOXYGEN.adoc) | ||||||
|  | 
 | ||||||
|  | #### Submit Pull Request | ||||||
|  | 
 | ||||||
|  | Once you've validated the CI results, go to the page for your fork on GitHub, | ||||||
|  | select your development branch, and click the pull request button. If you need | ||||||
|  | to make any adjustments to your pull request, just push the updates to GitHub. | ||||||
|  | Your pull request will automatically track the changes on your development | ||||||
|  | branch and update. | ||||||
|  | 
 | ||||||
|  | #### Merge Requirements | ||||||
|  | 
 | ||||||
|  | -   Github Workflows pass | ||||||
|  | -   Builds pass | ||||||
|  | -   Tests pass | ||||||
|  | -   Linting passes | ||||||
|  | -   Code style passes | ||||||
|  | 
 | ||||||
|  | When can I merge? After these have been satisfied, a reviewer will merge the PR | ||||||
|  | into master | ||||||
|  | 
 | ||||||
|  | #### Documentation | ||||||
|  | 
 | ||||||
|  | Documentation undergoes the same review process as code See the | ||||||
|  | [Documentation Style Guide](https://github.com/project-chip/connectedhomeip/blob/master/docs/STYLE_GUIDE.md) | ||||||
|  | for more information on how to author and format documentation for contribution. | ||||||
|  | 
 | ||||||
|  | ## Merge Processes | ||||||
|  | 
 | ||||||
|  | Merges require at least 3 approvals from unique require-reviewers lists, and all | ||||||
|  | CI tests passing. | ||||||
|  | 
 | ||||||
|  | ### Shorter Reviews | ||||||
|  | 
 | ||||||
|  | Development Lead & Vice Leads can merge a change with fewer then the required | ||||||
|  | approvals have been submitted. | ||||||
|  | 
 | ||||||
|  | A separate "fast track" label will be created that will only require a single | ||||||
|  | checkbox to be set, this label shall only be set by the Development Lead, and/or | ||||||
|  | Vice Lead (unless they’re both unavailable, in which case a replacement can be | ||||||
|  | temporarily appointed) | ||||||
|  | 
 | ||||||
|  | "Day" here means "business day" (i.e. PRs on friday do not get fast-tracked | ||||||
|  | faster). | ||||||
|  | 
 | ||||||
|  | ### Fast track types | ||||||
|  | 
 | ||||||
|  | ### Trivial changes | ||||||
|  | 
 | ||||||
|  | Small changes or changes that do not affect the main functionality of the code | ||||||
|  | can be fast tracked immediately. Examples: | ||||||
|  | 
 | ||||||
|  | -   Adding/removing documentation (.md files) | ||||||
|  | -   Adding tests (may include small reorganization/method adding/changes to | ||||||
|  |     enable testability): | ||||||
|  |     -   certification tests | ||||||
|  |     -   stability tests | ||||||
|  |     -   integration tests | ||||||
|  |     -   functional tests | ||||||
|  |     -   Test scripts | ||||||
|  |     -   Additional tests following a pattern (e.g. YAML tests) | ||||||
|  | -   Adding/updating/fixing tooling to aid in development | ||||||
|  | -   Re-running code generation | ||||||
|  | -   Code readability refactors: | ||||||
|  |     -   renaming enum/classes/structure members | ||||||
|  |     -   moving constant header location | ||||||
|  |     -   Obviously trivial build rule changes (e.g. adding missing files to build | ||||||
|  |         rules) | ||||||
|  |     -   Changing comments | ||||||
|  |     -   Adding/removing includes (include what you need and only what you need | ||||||
|  |         rules) | ||||||
|  | -   Pulling new third-party repo files | ||||||
|  | -   Platform vendors/maintainers adding platform features/logic/bug fixes to | ||||||
|  |     their own platforms | ||||||
|  | -   Most changes to existing docker files (pulling new versions, reorganizing) | ||||||
|  | -   Most changes to new dockerfile version in workflows | ||||||
|  | 
 | ||||||
|  | #### Fast track changes | ||||||
|  | 
 | ||||||
|  | Larger functionality changes are allowed to be fast tracked with these | ||||||
|  | requirements/restrictions: | ||||||
|  | 
 | ||||||
|  | -   Require at least 1 day to have passed since the creation of the PR | ||||||
|  | -   Require at least 1 checkmark from someone familiar with the code or problem | ||||||
|  |     space | ||||||
|  |     -   This requirement shall be dropped after a PR is 3 days old with stale or | ||||||
|  |         no feedback. | ||||||
|  | -   Code is sufficiently covered by automated tests (or impossible to | ||||||
|  |     automatically test with a very solid reason for this - e.g. changes to BLE | ||||||
|  |     parameters cannot be automatically tested, but should have been manually | ||||||
|  |     verified) | ||||||
|  | 
 | ||||||
|  | Fast tracking these changes will involve resolving any obviously 'resolved' | ||||||
|  | comments (judgment call here: were they replied to or addressed) and merging the | ||||||
|  | change. | ||||||
|  | 
 | ||||||
|  | Any "request for changes" marker will always be respected unless obviously | ||||||
|  | resolved (i.e. author marked "requesting changes because of X and X was done in | ||||||
|  | the PR") | ||||||
|  | 
 | ||||||
|  | -   This requirement shall be dropped after a PR is 3 days old with stale or no | ||||||
|  |     feedback. | ||||||
							
								
								
									
										4
									
								
								README.md
									
										
									
									
									
										Normal file
									
								
							
							
						
						
									
										4
									
								
								README.md
									
										
									
									
									
										Normal file
									
								
							|  | @ -0,0 +1,4 @@ | ||||||
|  | # matter-rs: The Rust Implementaion of Matter | ||||||
|  | 
 | ||||||
|  |  [](https://raw.githubusercontent.com/project-chip/matter-rs/main/LICENSE) | ||||||
|  | 
 | ||||||
		Loading…
	
	Add table
		
		Reference in a new issue