-
Notifications
You must be signed in to change notification settings - Fork 22
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
* Add governance, and update maintainers * Major documentation update Co-authored-by: Michael Kelly <[email protected]>
- Loading branch information
1 parent
b1584e4
commit 7d960ed
Showing
9 changed files
with
276 additions
and
204 deletions.
There are no files selected for viewing
This file was deleted.
Oops, something went wrong.
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,38 +7,34 @@ You can view and edit the source code by cloning this repository: | |
```bash | ||
git clone https://github.com/observiq/stanza.git | ||
``` | ||
|
||
## Pull Requests | ||
|
||
### How to Send Pull Requests | ||
### How to Submit Pull Requests | ||
|
||
Everyone is welcome to contribute code to `stanza` via | ||
GitHub pull requests (PRs). | ||
Everyone is welcome to contribute code to `stanza` via GitHub pull requests (PRs). | ||
|
||
To create a new PR, fork the project in GitHub and clone the upstream | ||
repo: | ||
To create a new PR, fork the project in GitHub and clone the upstream repo: | ||
|
||
```sh | ||
$ go get -d github.com/observiq/stanza | ||
``` | ||
|
||
This will put the project in `${GOPATH}/src/github.com/observiq/stanza`. You | ||
can alternatively use `git` directly with: | ||
This will put the project in `${GOPATH}/src/github.com/observiq/stanza`. You can alternatively use `git` directly with: | ||
|
||
```sh | ||
$ git clone https://github.com/observiq/stanza | ||
``` | ||
|
||
This would put the project in the `stanza` directory in | ||
current working directory. | ||
This would put the project in the `stanza` directory in current working directory. | ||
|
||
Enter the newly created directory and add your fork as a new remote: | ||
|
||
```sh | ||
$ git remote add <YOUR_FORK> [email protected]:<YOUR_GITHUB_USERNAME>/opentelemetry-go | ||
``` | ||
|
||
Check out a new branch, make modifications, run linters and tests, and | ||
push the branch to your fork: | ||
Check out a new branch, make modifications, run linters and tests, and push the branch to your fork: | ||
|
||
```sh | ||
$ git checkout -b <YOUR_BRANCH_NAME> | ||
|
@@ -51,13 +47,14 @@ $ git push <YOUR_FORK> <YOUR_BRANCH_NAME> | |
|
||
Open a pull request against the main `stanza` repo. | ||
|
||
|
||
### How to Receive Comments | ||
|
||
* If the PR is not ready for review, please put `[WIP]` in the title, | ||
tag it as `work-in-progress`, or mark it as | ||
[`draft`](https://github.blog/2019-02-14-introducing-draft-pull-requests/). | ||
* If the PR is not ready for review, please put `[WIP]` in the title, tag it as `work-in-progress`, or mark it as [`draft`](https://github.blog/2019-02-14-introducing-draft-pull-requests/). | ||
* If you're stuck, tag a maintainer and ask a question. We're here to help each other. | ||
* Make sure CI passes. | ||
|
||
|
||
### How to Get PRs Merged | ||
|
||
A PR is considered to be **ready to merge** when: | ||
|
@@ -66,14 +63,15 @@ A PR is considered to be **ready to merge** when: | |
* CI passes. | ||
* Major feedback is resolved. | ||
|
||
|
||
## Design Choices | ||
|
||
Best practices for developing a builtin operator are documented below, but for changes to | ||
the core agent, we are happy to discuss proposals in the issue tracker. | ||
Best practices for developing a builtin operator are documented below, but for changes to the core agent, we are happy to discuss proposals in the issue tracker. | ||
|
||
|
||
### Builtin Operator Development | ||
### Operator Development | ||
|
||
In order to write a builtin operator, follow these three steps: | ||
In order to write an operator, follow these three steps: | ||
1. Build a unique struct that satisfies the [`Operator`](operator/operator.go) interface. This struct will define what your operator does when executed in the pipeline. | ||
|
||
```go | ||
|
@@ -108,10 +106,11 @@ func init() { | |
} | ||
``` | ||
|
||
## Any tips for building operators? | ||
|
||
#### Any tips for building operators? | ||
We highly recommend that developers take advantage of [helpers](operator/helper) when building their operators. Helpers are structs that help satisfy common behavior shared across many operators. By embedding these structs, you can skip having to satisfy certain aspects of the `operator` and `config` interfaces. | ||
|
||
For example, almost all operators should embed the [BasicOperator](operator/helper/basic_operator.go) helper, as it provides simple functionality for returning an operator id and operator type. | ||
For example, almost all operators should embed the [BasicOperator](operator/helper/operator.go) helper, as it provides simple functionality for returning an operator id and operator type. | ||
|
||
```go | ||
// ExampleOperator is a basic operator, with a basic lifecycle, that consumes | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,44 @@ | ||
# Governance | ||
|
||
The governance model adopted in Stanza is influenced by many CNCF projects. | ||
|
||
## Principles | ||
|
||
- **Open**: Stanza is an open source community. | ||
- **Welcoming and respectful**: Stanza follows the [CNCF Code of Conduct](https://github.com/cncf/foundation/blob/master/code-of-conduct.md). | ||
- **Transparent and accessible**: Work and collaboration should be done in public. | ||
- **Merit**: Ideas and contributions are accepted according to their technical merit and alignment with project objectives, scope, and design principles. | ||
|
||
## Project Maintainers | ||
|
||
Maintainers are the first and foremost contributors that are committed to the success of Stanza project. Each maintainer should fulfill several of the following responsibilities: | ||
|
||
* Strive to make stanza widely while taking care not to unjustifiably inflate its scope. | ||
* Carefully consider input from the community and seek consensus with amongst maintainers. | ||
* Create and classify GitHub issues and perform pull request reviews for other maintainers and the community. | ||
* Use ones best judgement to apply all applicable [labels](https://github.com/observiq/stanza/labels) to each new GitHub issue. | ||
* Make sure that ongoing PRs are moving forward at the right pace or closing them if they are not moving in a productive direction. | ||
* Create releases of the library as necessary. | ||
|
||
## Process of becoming a maintainer | ||
|
||
* Understand that maintainers are expected to have a deep understanding of the project and that they should be able to independently fulfill maintainer responsibilities. | ||
* Talk to some of the existing [maintainers](MAINTAINERS.md). Explain that you are interested in becoming a maintainer and why you think you are a good fit for the role. | ||
* Contribute increasingly complicated PRs under the guidance of the existing maintainers. | ||
* When a maintainer believes you are ready, he or she may nominate you by creating a PR to add your to the list in [MAINTAINERS.md](MAINTAINERS.md). | ||
* Once the existing maintainers have reached consensus that the nominatee is ready for the role and approved the PR, it will be merged and the new maintainer becomes active. | ||
|
||
## Process of removing maintainer status | ||
|
||
* If a maintainer is no longer interested or cannot perform the maintainer duties listed above, they should volunteer to be moved to emeritus status. | ||
* In extreme cases a PR may be created to remove a maintainer. This PR must be approved by a 2/3 majority of maintainers to be approved. | ||
|
||
## Decision making process | ||
|
||
Decisions are made based on consensus between maintainers. Proposals and ideas should be submitted as a github issue or PR. | ||
|
||
In general, we prefer that technical issues and maintainer membership are amicably worked out between the persons involved. If a dispute cannot be decided independently, then a third-party maintainer (e.g. a mutual contact with some background on the issue, but not involved in the conflict) to arbitrate and the final decision will be made. Decision making process should be transparent to adhere to the principles of Stanza project. | ||
|
||
## Credits | ||
|
||
Some contents in this documents have been borrowed from the [OpenYurt](https://github.com/alibaba/openyurt) project. |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -7,4 +7,5 @@ This file lists the maintainers of the Stanza project. The responsibilities of m | |
| ---- | --------- | ----------- | | ||
| [Mike Kelly](mailto:[email protected]) | [mkelly](https://github.com/mkelly) | observIQ | | ||
| [Dan Jaglowski](mailto:[email protected]) | [djaglowski](https://github.com/djaglowski) | observIQ | | ||
| [Camden Cheek](mailto:[email protected]) | [camdencheek](https://github.com/camdencheek) | observIQ | | ||
| [Camden Cheek](mailto:[email protected]) | [camdencheek](https://github.com/camdencheek) | observIQ | | ||
| [Joseph Howell](mailto:[email protected]) | [jhowellbm](https://github.com/jhowellbm) | observIQ | |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.