Skip to content

Commit

Permalink
Add governance artefacts to tremor-benchmark repo
Browse files Browse the repository at this point in the history
Signed-off-by: Darach Ennis <[email protected]>
  • Loading branch information
darach committed Jun 16, 2021
1 parent 7f4d4fb commit 97c6dee
Show file tree
Hide file tree
Showing 6 changed files with 447 additions and 0 deletions.
4 changes: 4 additions & 0 deletions CODEOWNERS
Original file line number Diff line number Diff line change
@@ -0,0 +1,4 @@
# Tremor code owners core team
* @anupdhml @darach @Licenser @mfelsche
# Tremor benchmark continuous integration contributors
* @humancalico
44 changes: 44 additions & 0 deletions CODE_OF_CONDUCT.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,44 @@
# The Tremor Code of Conduct

A version of this document [can be found online](https://docs.tremor.rs/CodeOfConduct).

## Conduct

**Contact**: [[email protected]](mailto:[email protected]?subject=Tremor+Moderator+Team)

* We are committed to providing a friendly, safe and welcoming environment for all, regardless of level of experience, gender identity and expression, sexual orientation, disability, personal appearance, body size, race, ethnicity, age, religion, nationality, or other similar characteristic.
* On tremor-chat, please avoid using overtly sexual nicknames or other nicknames that might detract from a friendly, safe and welcoming environment for all.
* Please be kind and courteous. There's no need to be mean or rude.
* Respect that people have differences of opinion and that every design or implementation choice carries a trade-off and numerous costs. There is seldom a right answer.
* Please keep unstructured critique to a minimum. If you have solid ideas you want to experiment with, make a fork and see how it works.
* We will exclude you from interaction if you insult, demean or harass anyone. That is not welcome behavior. We interpret the term "harassment" as including the definition in the [Citizen Code of Conduct](http://citizencodeofconduct.org/); if you have any lack of clarity about what might be included in that concept, please read their definition. In particular, we don't tolerate behavior that excludes people in socially marginalized groups.
* Private harassment is also unacceptable. No matter who you are, if you feel you have been or are being harassed or made uncomfortable by a community member, please contact one of the channel ops or any of the [Tremor moderation team][mod_team] immediately. Whether you're a regular contributor or a newcomer, we care about making this community a safe place for you and we've got your back.
* Likewise any spamming, trolling, flaming, baiting or other attention-stealing behavior is not welcome.

## Moderation


These are the policies for upholding our community's standards of conduct. If you feel that a thread needs moderation, please contact the [Tremor moderation team][mod_team].

1. Remarks that violate the Tremor standards of conduct, including hateful, hurtful, oppressive, or exclusionary remarks, are not allowed. (Cursing is allowed, but never targeting another user, and never in a hateful manner.)
2. Remarks that moderators find inappropriate, whether listed in the code of conduct or not, are also not allowed.
3. Moderators will first respond to such remarks with a warning.
4. If the warning is unheeded, the user will be "kicked," i.e., kicked out of the communication channel to cool off.
5. If the user comes back and continues to make trouble, they will be banned, i.e., indefinitely excluded.
6. Moderators may choose at their discretion to un-ban the user if it was a first offense and they offer the offended party a genuine apology.
7. If a moderator bans someone and you think it was unjustified, please take it up with that moderator, or with a different moderator, **in private**. Complaints about bans in-channel are not allowed.
8. Moderators are held to a higher standard than other community members. If a moderator creates an inappropriate situation, they should expect less leeway than others.

In the Tremor community we strive to go the extra step to look out for each other. Don't just aim to be technically unimpeachable, try to be your best self. In particular, avoid flirting with offensive or sensitive issues, particularly if they're off-topic; this all too often leads to unnecessary fights, hurt feelings, and damaged trust; worse, it can drive people away from the community entirely.

And if someone takes issue with something you said or did, resist the urge to be defensive. Just stop doing what it was they complained about and apologize. Even if you feel you were misinterpreted or unfairly accused, chances are good there was something you could've communicated better — remember that it's your responsibility to make your fellow tremolos comfortable. Everyone wants to get along and we are all here first and foremost because we want to talk about cool technology. You will find that people will be eager to assume good intent and forgive as long as you earn their trust.

The enforcement policies listed above apply to all official Tremor venues; including official tremor-chat channels (#tremor, #tremor-internals, #tremor-tools, #tremor-libs, #tremor-beginners, #tremor-docs, #tremor-community, #tremor-lang); GitHub repositories under tremor-rs; and all forums under tremo.rs. For other projects adopting the Tremor Code of Conduct, please contact the maintainers of those projects for enforcement. If you wish to use this code of conduct for your own project, consider explicitly mentioning your moderation policy or making a copy with your own moderation policy so as to avoid confusion.

*Adapted from the [Node.js Policy on Trolling](http://blog.izs.me/post/30036893703/policy-on-trolling) as well as the [Contributor Covenant v1.3.0](https://www.contributor-covenant.org/version/1/3/0/).*

[mod_team]: https://www.tremor.rs/community/teams/#moderation-mod

## Origins

This code of conduct is derived from the Rust Language Community code of conduct that [can be found here](https://www.rust-lang.org/conduct.html)
215 changes: 215 additions & 0 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,215 @@
# Contributing to Tremor

[contributing-to-tremor]: #contributing-to-tremor

Thank you for your interest in contributing to the Tremor project! There are many ways to
contribute, and we appreciate all of them. Here's links to the primary ways to contribute
to the Tremor project as an external contributor:

- [Contributing to Tremor](#contributing-to-tremor)
- [Feature Requests](#feature-requests)
- [Bug Reports](#bug-reports)
- [The Build System](#the-build-system)
- [Pull Requests](#pull-requests)
- [External Dependencies](#external-dependencies)
- [Writing Documentation](#writing-documentation)
- [Issue Triage](#issue-triage)
- [Out-of-tree Contributions](#out-of-tree-contributions)
- [Tremor Chat](#tremor-chat)

If you have questions, please make a query hop on over to [Tremor Chat][tremor-chat].

As a reminder, all contributors are expected to follow our [Code of Conduct][code-of-conduct].

If this is your first time contributing, we would like to thank you for spending time
on the project! Please reach out directly to any core project member if you would like
any guidance or assistance.

[code-of-conduct]: https://docs.tremor.rs/CodeOfConduct

## Feature Requests

[feature-requests]: #feature-requests

To request a change to the way that Tremor works, please head over
to the [RFCs repository](https://github.com/tremor-rs/tremor-rfcs) and view the
[README](https://github.com/tremor-rs/tremor-rfcs/blob/main/README.md)
for instructions.

## Bug Reports

[bug-reports]: #bug-reports

While bugs are unfortunate, they're a reality in software. We can't fix what we
don't know about, so please report liberally. If you're not sure if something
is a bug or not, feel free to file a bug anyway.

**If you believe reporting your bug publicly represents a security risk to Tremor users,
please follow our [instructions for reporting security vulnerabilities](https://docs.tremor.rs/policies/security)**.

If you have the chance, before reporting a bug, please [search existing
issues](https://github.com/tremor-rs/tremor-runtime/search?q=&type=Issues&utf8=%E2%9C%93),
as it's possible that someone else has already reported your error. This doesn't
always work, and sometimes it's hard to know what to search for, so consider this
extra credit. We won't mind if you accidentally file a duplicate report.

Similarly, to help others who encountered the bug find your issue,
consider filing an issue with a descriptive title, which contains information that might be unique to it.
This can be the language or compiler feature used, the conditions that trigger the bug,
or part of the error message if there is any.
An example could be: **"impossible case reached" on match expression in tremor scripting language**.

Opening an issue is as easy as following [this
link](https://github.com/tremor-rs/tremor-runtime/issues/new) and filling out the fields.
Here's a template that you can use to file a bug, though it's not necessary to
use it exactly:

```
<short summary of the bug>
I tried this code:
<code sample that causes the bug>
I expected to see this happen: <explanation>
Instead, this happened: <explanation>
## Meta
`tremor-script --version`:
Backtrace:
```

All three components are important: what you did, what you expected, what
happened instead. Please include the output of `tremor --version`,
which includes important information about what platform you're on, what
version of Rust you're using, etc.

Sometimes, a backtrace is helpful, and so including that is nice. To get
a backtrace, set the `RUST_BACKTRACE` environment variable to a value
other than `0`. The easiest way to do this is to invoke `tremor` like this:

```bash
$ RUST_BACKTRACE=1 tremor...
```

## The Build System

For info on how to configure and build the project, please see [the tremor build guide][tremor-build-guide].
This guide contains info for contributions to the project and the standard facilities. It also lists some
really useful commands to the build system, which could save you a lot of time.

[tremor-build-guide]: http://docs.tremor.rs/development/quick-start/

## Pull Requests

[pull-requests]: #pull-requests

Pull requests are the primary mechanism we use to change Tremor. GitHub itself
has some [great documentation][about-pull-requests] on using the Pull Request feature.
We use the "fork and pull" model [described here][development-models], where
contributors push changes to their personal fork and create pull requests to
bring those changes into the source repository.

[about-pull-requests]: https://help.github.com/articles/about-pull-requests/
[development-models]: https://help.github.com/articles/about-collaborative-development-models/

Please make pull requests against the `main` branch.

Tremor follows a no merge policy, meaning, when you encounter merge
conflicts you are expected to always rebase instead of merge.
E.g. always use rebase when bringing the latest changes from
the main branch to your feature branch.
Also, please make sure that fixup commits are squashed into other related
commits with meaningful commit messages.

GitHub allows [closing issues using keywords][closing-keywords]. This feature
should be used to keep the issue tracker tidy. However, it is generally preferred
to put the "closes #123" text in the PR description rather than the issue commit;
particularly during rebasing, citing the issue number in the commit can "spam"
the issue in question.

[closing-keywords]: https://help.github.com/en/articles/closing-issues-using-keywords

Please make sure your pull request is in compliance with Tremor's style
guidelines by running

$ sh ./contrib/pre-commit

Make this check before every pull request (and every new commit in a pull
request); you can add [git hooks](https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks)
before every push to make sure you never forget to make this check.

All pull requests are reviewed by another person.

If you want to request that a specific person reviews your pull request,
you can add an `r?` to the pull request description. For example, [Darach Ennis][darach] usually reviews
documentation changes. So if you were to make a documentation change, add

r? @darach

to the end of the pull request description. This is entirely optional.

After someone has reviewed your pull request, they will leave an annotation
on the pull request with an `r+`. It will look something like this:

r+

Once your merge request is approved it will enter the merge queue

[darach]: https://github.com/darach

Speaking of tests, tremor has a comprehensive test suite. More information about
it can be found [here][https://github.com/tremor-rs/tremor-www-docs/blob/main/docs/development/testing.md].

### External Dependencies

Currently building the Tremor project will also build the following external projects:

- [clippy](https://github.com/rust-lang/rust-clippy)
- [rustfmt](https://github.com/rust-lang/rustfmt)

Breakage is not allowed in released branches and must be addressed before a PR is merged.

## Writing Documentation

Documentation improvements are very welcome. The source of `docs.tremor.rs`
is located in the [tremor docs repo](https://github.com/tremor-rs/tremor-www-docs). Documentation pull requests function in the same way as other pull requests.

To find documentation-related issues, sort by the [doc label][tremor-doc-label].

[tremor-doc-label]: https://github.com/tremor-rs/tremor-www-docs/issues?q=is%3Aopen%20is%3Aissue%20label%3Adoc

Additionally, contributions to the [tremor-guide] are always welcome. Contributions
can be made directly [here](https://github.com/tremor-rs/tremor-www-docs) repo. The issue
tracker in that repo is also a great way to find things that need doing.

## Issue Triage

Sometimes, an issue will stay open, even though the bug has been fixed. And
sometimes, the original bug may go stale because something has changed in the
meantime.

It can be helpful to go through older bug reports and make sure that they are
still valid. Load up an older issue, double check that it's still true, and
leave a comment letting us know if it is or is not. The [least recently
updated sort][lru] is good for finding issues like this.

[lru]: https://github.com/tremor-rs/tremor-runtime/issues?q=is%3Aissue+is%3Aopen+sort%3Aupdated-asc

## Out-of-tree Contributions

There are a number of other ways to contribute to Tremor that don't deal with
this repository.

Answer questions in the _Get Help!_ channels from the [Tremor Chat][tremor-chat].

Participate in the [RFC process](https://github.com/tremor-rs/tremor-rfcs).

## Tremor Chat

[tremor-chat]: #tremor-chat

Join the tremor community [discord](https://bit.ly/tremor-discord)
8 changes: 8 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,8 @@
** tremor-benchmark **

This repository contains code for our continuous integration system that enables our project
benchmarks to be executed on a CNCF Cluster bare metal Equinix machine via github actions.

This tool was conceived and developed by [Akshat Agarwal]([humancalico]) for the LFX Spring 2021 mentorship program.

[humancalico]: https://github.com/humancalico
75 changes: 75 additions & 0 deletions SECURITY.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,75 @@
# Security

The tremor project follows strict coding practices that help to reduce the incidence,
surface and likelihood of direct or indirect security risks to users of the software.

Specifically:

* Tremor favors safe over unsafe rust code.
* Safe code is generally considered the better option
* Unless, performance critical concerns on the hot path suggest otherwise
* Over time, unsafe code should be displaced with safe code
* Tremor is conservative on matters of code health.
* Clippy is pedantic mode is mandated for all rust code
* Property based testing, model-based testing and fuzz-testing are used
* Additional audits for code quality are in force
* Static analysis
* Tremor analyses external library dependencies for all direct and indirect dependencies
* Tremor logs and reports all LICENSE, CVE and other violations both in our CI code and using other tools
* Additional dynamic and static analysis methods can be added to broaden/deepen coverage


# Non Recommendation

We do *not* recommend running tremor outside of corporate firewalls at this time.

Although every care is taken to ensure there are no security flaws within the code-base
tremor, to date, has been designed with deployment in secure, well-defended environments
with active intrusion detection and defenses run by security professionals.


# Recommendation

We do recommend running tremor in secured environments following the best practices of
the organization and deployment platform. For example, the security blueprints for deploying
secure services to Amazon's infrastructure should be followed when deploying to AWS. The
security blueprints for the Google Cloud Platform should be followed when deploying to GCP.

Where tremor is deployed into bespoke bare metal data centers, tremor should be treated as
software that is not secure in and of itself. A secured environment should be provided for
it to run within.

# Future

Contributions to tremor security are very welcome, highly encouraged and we would be
delighted to accept contributions that move our security roadmap priority.

# Disclosing Security Issues

Safety is a core principle of Tremor, and one of the prime reasons why we adopted the
Rust Programming language to write Tremor. To that end, we would like to ensure that
Tremor has a secure implementation with no inherent security issues.

Thank you for taking the time to responsibly disclose any issues you find.

All security bugs in the tremor project should be reported by email to <a href="mailto:[email protected]">[email protected]</a>. This list is delivered to a small team. Your email will be acknowledged within 24 hours, and you’ll receive a more detailed response to your email within 48 hours indicating the next steps in handling your report.

If you would like, you can encrypt your report using a public key. This key can be requested from the security
team via direct email, or through contacting us on our slack community and requesting same.

Be sure to use a descriptive subject line in email to avoid having your report missed. After the initial reply
to your report, the security team will endeavor to keep you informed of the progress being made towards a fix
and full announcement.

## Public keys for disclosures


If you have not received a reply to your email within 48 hours, or have not heard from the security team for the past five days, there are a few steps you can take (in order):

Contact the current security coordinator (Darach Ennis) directly [pgp key](https://pgp.mit.edu/pks/lookup?op=get&search=0x962FAC01B6989EBB).
Contact the back-up contact (Heinz Gies) directly [pgp key](https://keys.openpgp.org/vks/v1/by-fingerprint/71C9D7794FCEAC9D77AC4F6FE21BB9BD3F38481E).

Post a friendly reminder on the community slack.

Please note that discussion forums are public areas. When escalating in these venues, please do not
discuss your issue. Simply say that you’re trying to get a hold of someone from the security team.
Loading

0 comments on commit 97c6dee

Please sign in to comment.