Skip to content

Commit

Permalink
Ready README.md for open source (#1000)
Browse files Browse the repository at this point in the history
* Cleanup

* Updating text

* Updating files

* Removing this for now

* Removing these placeholders

* Updating based on feedback

* Updating license text

* Removing this config

* Updating CLA

* Removing tests

* Adding CircleCI badge

* Shield style
  • Loading branch information
woody-apple authored Jul 1, 2020
1 parent b3e6965 commit d4a0615
Show file tree
Hide file tree
Showing 10 changed files with 109 additions and 246 deletions.
203 changes: 56 additions & 147 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,106 +1,58 @@
# Contributing to CHIP
# Contributing to Project Connected Home over IP

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 Zigbee and the community, and agree by submitting
the patch that your contributions are licensed under the
[Apache 2.0 license](./LICENSE).
license your contribution to the Zigbee 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 the Project CHIP
specification as a pull request. For example: ports of Project CHIP 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 Project CHIP work group within the Zigbee Alliance.
The requirements to become an open source contributor of the
[Project CHIP Repository](https://github.com/project-chip/connectedhomeip) are:

Before submitting the pull request, please make sure you have tested your
changes and that they follow the project
[guidelines for contributing code](#pull-request-requirements).

## Becoming a Member

Currently these are the requirements to becoming a member of the
[Project-CHIP Repository](https://github.com/project-chip/connectedhomeip)

- Must be a member of the Zigbee Alliance CHIP TSG Working Group
- Have signed the Zigbee CHIP WG CLA
- Have signed up as a Tiger team member in one of the follow roles: Lead, Spec
Writer, Developer (or exception granted), Code Approvers, or Support Staff
- Have approval from your company's official approver
- Agree to the [Code of Conduct](./CODE_OF_CONDUCT.md)
- Agree to the [License](./LICENSE)
- Have signed the
[Zigbee Project CHIP Working Group CLA](https://gist.github.com/clapre/65aa9fc63981da765039e0bb7e8701be)

## Becoming a Contributor
# Contributing as a Zigbee Alliance Project CHIP Working Group Member

Currently these are the requirements to becoming a member of the
[Project-CHIP Repository](https://github.com/project-chip/connectedhomeip)
As a participant of the Zigbee Alliance Project CHIP working group, you can
attend working group meetings, propose changes to the Project CHIP
specification, and contribute code for approved updates to the specification.
The requirements to become a member of the
[Project CHIP Repository](https://github.com/project-chip/connectedhomeip) are:

- Must be a member of the Zigbee Alliance CHIP TSG Working Group
- Have signed the Zigbee CHIP WG CLA
- Agree to the [Code of Conduct](./CODE_OF_CONDUCT.md)
- Agree to the [License](./LICENSE)
- Have signed up as a Tiger team member in one of the follow roles: Lead, Spec
Writer, Developer (or exception granted), Code Approvers, or Support Staff
- Must be a [Participant member](http://www.zigbeealliance.org/join) or higher
of the Zigbee Alliance
- Must be a Project CHIP Working Group member
- Have signed the Zigbee Project CHIP Work Group CLA
- Have approval from your company's official approver

## Getting Started

This repository contains the source code that implements the CHIP specification.
It scalably implements the specification that may be used on a wide range of
platforms including Android/iOS and Darwin/Linux down to embedded MCU-based
platforms running FreeRTOS and LwIP.

The source code can be built to generate:

- **Libraries** that can be built for iOS, Android or desktop (Linux/Mac)
targets. These libraries could further be integrated into applications that
talk _CHIP_.
- **Firmwares/Embedded Applications** that can be built for the supported
embedded platforms.
- **Desktop Application** that can be used in conjunction with the embedded
applications above to validate the end-to-end CHIP workflow.

### Building your first application

- Building the firmware: This repository implements the CHIP specification on
3 transports: 802.15.4 Thread, BLE and Wi-Fi. The examples/ directory
contains example applications for all these 3 transports using 3 embedded
platforms. Please visit their respective directories for instructions on how
to build and deploy on these platforms.
- NRF5 (for 802.15.4 Thread): in
[examples/lock-app/nrf5](examples/lock-app/nrf5)
- EFR32 (for BLE): in [examples/lock-app/efr32](examples/lock-app/efr32)
- ESP32 (for Wi-Fi or BLE): in
[examples/wifi-echo/server/esp32](examples/wifi-echo/server/esp32)
- Building the host utility: The host utility can be used in conjunction with
the embedded platform for end-to-end validation. Please visit the
[examples/chip-tool](examples/chip-tool) directory for further instructions.

### Where should I begin?

- Good First Issue: Certain issues are marked with a label
[Good First Issue](https://github.com/project-chip/connectedhomeip/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22).
These issues are what we believe may be good starting points for getting
your hands dirty.
- TODOs: Most items that will require work are captured in the GitHub issues
of this project. This serves as a good TODO list for the next steps.
- Milestones: A list of
[milestones](https://github.com/project-chip/connectedhomeip/milestones) are
maintained in this project. This should provide some idea of where things
are headed. Note that given the early days of this project, most of these
are not hard deadlines.

### Where is the spec?

- The specification is evolving in various tiger teams. Members belonging to
various tiger teams may contribute experimental code for the general
direction where the spec is headed. Once a specification is fairly
finalised, it will be available/committed in the [docs/specs](docs/specs).

## Bugs
# 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](#submitting-a-pull-request) with a fix.
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
# 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:

Expand All @@ -110,20 +62,20 @@ new feature:
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](#submitting-a-pull-request).
[submitted as a Pull Request](https://github.com/project-chip/connectedhomeip/blob/master/CONTRIBUTING.md#submitting-a-pull-request).

## Contributing Code
# Contributing Code

CHIP follows the "Fork-and-Pull" model for accepting contributions.
Project CHIP follows the "Fork-and-Pull" model for accepting contributions.

### Initial Setup

Setup your GitHub fork and continuous-integration services:

1. Fork the [CHIP repository](https://github.com/project-chip/connectedhomeip)
by clicking "Fork" on the web UI.
1. Fork the
[Project CHIP 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.

Expand Down Expand Up @@ -209,53 +161,13 @@ 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.

#### Pull Request Requirements

CHIP considers there to be a few different types of pull requests:

- Trivial bug fix
- - Description 1
- - Description 2
- Small Bug fix
- - Description 1
- - Description 2
- Bug Fix
- - Description 1
- - Description 2
- Significant Change
- - Description 1
- - Description 2
- Feature
- - Description 1
- - Description 2
- Architecture Change
- - Description 1
- - Description 2

### Prior to review, all changes require:

- [GitHub Workflows](.github/workflows) pass
- [Certification Tests](tests/certification/README.md) pass
- [Fuzz Tests](tests/fuzz/README.md) pass
- [Integration Tests](tests/integration/README.md) pass
- Linting passes
- Code style passes

### Review Requirements

Each type of change has unique additional requirements, here's a table of those:

| Type | Reviewer Requirements | New Unit Tests | New Certification Tests | New Fuzz Tests | New Integration Tests |
| ------------------- | -------------------------------------- | -------------- | ----------------------- | -------------- | --------------------- |
| Trivial bug fix | 3 [approved reviewers](./REVIEWERS.md) | | | | |
| Small Bug fix | 3 [approved reviewers](./REVIEWERS.md) | | | | |
| Bug Fix | 3 [approved reviewers](./REVIEWERS.md) | | | | |
| Significant Change | 3 [approved reviewers](./REVIEWERS.md) | | | | |
| Feature | 3 [approved reviewers](./REVIEWERS.md) | | | | |
| Architecture Change | 3 [approved reviewers](./REVIEWERS.md) | | | | |
#### Documentation Best Practices

Note: Where multiple reviewers are required, each reviewer must be from a
different member company.
Project CHIP 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

Expand All @@ -267,20 +179,17 @@ branch and update.

#### Merge Requirements

- Passes [Review Requirements](#review-requirements)
- [GitHub Workflows](.github/workflows) pass
- [Certification Tests](tests/certification/README.md) pass
- [Fuzz Tests](tests/fuzz/README.md) pass
- [Integration Tests](tests/integration/README.md) pass
- Github Workflows pass
- Builds pass
- Tests pass
- Linting passes
- Code style passes

**When can I merge?** After these have been satisfied, any reviewer, or the
originator can merge the PR into master.

### Documentation
When can I merge? After these have been satisfied, a reviewer will merge the PR
into master

Documentation undergoes the same review process as code
#### Documentation

See the [Documentation Style Guide](docs/STYLE_GUIDE.md) for more information on
how to author and format documentation for contribution.
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.
4 changes: 0 additions & 4 deletions CONTRIBUTORS.md

This file was deleted.

1 change: 0 additions & 1 deletion Makefile.am
Original file line number Diff line number Diff line change
Expand Up @@ -34,7 +34,6 @@ SUBDIRS = \
examples \
third_party \
src \
tests \
docs \
$(NULL)

Expand Down
Loading

0 comments on commit d4a0615

Please sign in to comment.