Skip to content
This repository was archived by the owner on Nov 18, 2024. It is now read-only.

Commit ac22a2f

Browse files
committed
Issue #10: Add tbd-project-template files:
* CODEOWNERS * LICENSE * CODE_OF_CONDUCT * CONTRIBUTING * GOVERNANCE * README
1 parent b6177b0 commit ac22a2f

File tree

6 files changed

+630
-26
lines changed

6 files changed

+630
-26
lines changed

CODEOWNERS

+4-5
Original file line numberDiff line numberDiff line change
@@ -1,16 +1,15 @@
11
# This CODEOWNERS file denotes the project leads
22
# and encodes their responsibilities for code review.
33

4+
# Instructions: At a minimum, replace the '@GITHUB_USER_NAME_GOES_HERE'
5+
# here with at least one project lead.
6+
47
# Lines starting with '#' are comments.
58
# Each line is a file pattern followed by one or more owners.
69
# The format is described: https://github.blog/2017-07-06-introducing-code-owners/
710

811
# These owners will be the default owners for everything in the repo.
9-
* @ALRubinger
10-
* @csuwildcat
11-
* @decentralgabe
12-
* @hdou731
13-
* @mistermoe
12+
* @GITHUB_USER_NAME_GOES_HERE
1413

1514

1615
# -----------------------------------------------

CODE_OF_CONDUCT.md

+136
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,136 @@
1+
2+
# TBD Code of Conduct
3+
4+
TBD builds infrastructure for the next wave of innovation in financial services — which we believe will be decentralized, permissionless, and non-custodial. This means opening the global economy to everyone. We extend the same principles of inclusion to our developer ecosystem. We are excited to build with you. So we will ensure our community is truly open, transparent and inclusive. Because of the global nature of our project, diversity and inclusivity is paramount to our success. We not only welcome diverse perspectives, we **need** them!
5+
6+
The code of conduct below reflects the expectations for ourselves and for our community.
7+
8+
9+
## Our Pledge
10+
11+
We as members, contributors, and leaders pledge to make participation in our
12+
community a harassment-free experience for everyone, regardless of age, physical appearance, visible or invisible disability, ethnicity, sex characteristics, gender
13+
identity and expression, level of experience, education, socio-economic status,
14+
nationality, personal appearance, race, caste, color, religion, or sexual
15+
identity and orientation.
16+
17+
We pledge to act and interact in ways that contribute to an open, welcoming,
18+
diverse, inclusive, and healthy community.
19+
20+
## Our Standards
21+
22+
Examples of behavior that contributes to a positive environment for our
23+
community include:
24+
25+
* Demonstrating empathy and kindness toward other people
26+
* Being respectful and welcoming of differing opinions, viewpoints, and experiences
27+
* Giving and gracefully accepting constructive feedback
28+
* Accepting responsibility and apologizing to those affected by our mistakes,
29+
and learning from the experience
30+
* Focusing on what is best not just for us as individuals, but for the overall
31+
community
32+
33+
Examples of unacceptable behavior include:
34+
35+
* The use of sexualized language or imagery, and sexual attention or advances of
36+
any kind
37+
* Trolling, insulting or derogatory comments, and personal or political attacks
38+
* Public or private harassment
39+
* Publishing others' private information, such as a physical or email address,
40+
without their explicit permission
41+
* Other conduct which could reasonably be considered inappropriate in a
42+
professional setting
43+
44+
## Enforcement Responsibilities
45+
46+
The TBD Open Source Governance Committee (GC) is responsible for clarifying and enforcing our standards of
47+
acceptable behavior and will take appropriate and fair corrective action in
48+
response to any behavior that they deem inappropriate, threatening, offensive,
49+
or harmful.
50+
51+
The GC has the right and responsibility to remove, edit, or reject
52+
comments, commits, code, wiki edits, issues, and other contributions that are
53+
not aligned to this Code of Conduct, and will communicate reasons for moderation
54+
decisions when appropriate.
55+
56+
## Scope
57+
58+
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, or any space where the project is listed as part of your profile.
59+
60+
## Enforcement
61+
62+
Instances of abusive, harassing, or otherwise unacceptable behavior may be
63+
reported to the TBD Open Source Governance Committee (GC) at
64+
`tbd-open-source-governance@@squareup.com`.
65+
All complaints will be reviewed and investigated promptly and fairly.
66+
67+
The GC is obligated to respect the privacy and security of the
68+
reporter of any incident.
69+
70+
## Enforcement Guidelines
71+
72+
The GC will follow these Community Impact Guidelines in determining
73+
the consequences for any action they deem in violation of this Code of Conduct:
74+
75+
### 1. Correction
76+
77+
**Community Impact**: Use of inappropriate language or other behavior deemed
78+
unprofessional or unwelcome in the community.
79+
80+
**Consequence**: A private, written warning from the GC, providing
81+
clarity around the nature of the violation and an explanation of why the
82+
behavior was inappropriate. A public apology may be requested.
83+
84+
### 2. Warning
85+
86+
**Community Impact**: A violation through a single incident or series of
87+
actions.
88+
89+
**Consequence**: A warning with consequences for continued behavior. No
90+
interaction with the people involved, including unsolicited interaction with
91+
those enforcing the Code of Conduct, for a specified period of time. This
92+
includes avoiding interactions in community spaces as well as external channels
93+
like social media and forums.
94+
95+
Although this list cannot be exhaustive, we explicitly honor diversity in age, culture, ethnicity, gender identity or expression, language, national origin, political beliefs, profession, race, religion, sexual orientation, socioeconomic status, and technical ability. We will not tolerate discrimination based on any of the protected characteristics above, including participants with disabilities.
96+
97+
Violating these terms may lead to a temporary or permanent ban.
98+
99+
### 3. Temporary Ban
100+
101+
**Community Impact**: A serious violation of community standards, including
102+
sustained inappropriate behavior.
103+
104+
**Consequence**: A temporary ban from any sort of interaction or public
105+
communication with the community for a specified period of time. No public or
106+
private interaction with the people involved, including unsolicited interaction
107+
with those enforcing the Code of Conduct, is allowed during this period.
108+
Violating these terms may lead to a permanent ban.
109+
110+
### 4. Permanent Ban
111+
112+
**Community Impact**: Demonstrating a pattern of violation of community
113+
standards, including sustained inappropriate behavior, harassment of an
114+
individual, or aggression toward or disparagement of classes of individuals.
115+
116+
**Consequence**: A permanent ban from any sort of public interaction within the
117+
community.
118+
119+
## Attribution
120+
121+
This Code of Conduct is adapted from the [Contributor Covenant][homepage],
122+
version 2.1, available at
123+
[https://www.contributor-covenant.org/version/2/1/code_of_conduct.html][v2.1].
124+
125+
Community Impact Guidelines were inspired by
126+
[Mozilla's code of conduct enforcement ladder][Mozilla CoC].
127+
128+
For answers to common questions about this code of conduct, see the FAQ at
129+
[https://www.contributor-covenant.org/faq][FAQ]. Translations are available at
130+
[https://www.contributor-covenant.org/translations][translations].
131+
132+
[homepage]: https://www.contributor-covenant.org
133+
[v2.1]: https://www.contributor-covenant.org/version/2/1/code_of_conduct.html
134+
[Mozilla CoC]: https://github.com/mozilla/diversity
135+
[FAQ]: https://www.contributor-covenant.org/faq
136+
[translations]: https://www.contributor-covenant.org/translations

CONTRIBUTING.md

+186
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,186 @@
1+
# Contribution Guide
2+
3+
There are many ways to be an open source contributor, and we're here to help you on your way! You may:
4+
5+
* Propose ideas in our [discussion forums](LINK_HERE) ___***FIX LINK AND REMOVE THIS NOTICE***___
6+
* Raise an issue or feature request in our [issue tracker](LINK_HERE) ___***FIX LINK AND REMOVE THIS NOTICE***___
7+
* Help another contributor with one of their questions, or a code review
8+
* Suggest improvements to our Getting Started documentation by supplying a Pull Request
9+
* Evangelize our work together in conferences, podcasts, and social media spaces.
10+
11+
This guide is for you.
12+
13+
## Development Prerequisites
14+
15+
___***UPDATE TABLE OF PROJECT DEPS AND INSTALLATION NOTES***___
16+
17+
| Requirement | Tested Version | Installation Instructions |
18+
|-------------|----------------|------------------------------------------------------|
19+
| Go | 1.17.6 |[go.dev](https://go.dev/doc/tutorial/compile-install) |
20+
| Mage | 1.12.1 |[magefile.org](https://magefile.org/) |
21+
| Java | 17.0.2 | Below, recommended via [SDKMan](https://sdkman.io) |
22+
23+
### Go
24+
25+
This project is written in Go, a modern, open source programming language.
26+
27+
You may verify your `go` installation via the terminal:
28+
29+
```
30+
$> go version
31+
go version go1.17.6 darwin/amd64
32+
```
33+
34+
If you do not have go, we recommend installing it by:
35+
36+
#### MacOS
37+
38+
##### Homebrew
39+
```
40+
$> brew install go
41+
```
42+
43+
### Mage
44+
45+
The build is run by Mage.
46+
47+
You may verify your `mage` installation via the terminal:
48+
49+
```
50+
$> mage --version
51+
Mage Build Tool 1.12.1
52+
Build Date: 2021-12-15T21:00:02Z
53+
Commit: 2f1ec40
54+
built with: go1.17.6
55+
```
56+
57+
#### MacOS
58+
59+
##### Homebrew
60+
61+
```
62+
$> brew install mage
63+
```
64+
65+
### Java
66+
67+
This project is written in Java, a typesafe, compiled programming language.
68+
69+
You may verify your `java` installation via the terminal by running `java -version`.
70+
71+
If you do not have Java, we recommend installing it
72+
via [SDKMan](https://sdkman.io/install). This is a project which will allow you
73+
to easily install the Java Development Kit (JDK), runtime (JRE), and related frameworks,
74+
build tools, and runtimes.
75+
76+
After you've installed SDKMan, you may install Java:
77+
78+
#### SDKMan (cross-platform instructions)
79+
80+
```shell
81+
$> sdk install java
82+
...
83+
Do you want java 17.0.2-open to be set as default? (Y/n): Y
84+
Setting java 17.0.2-open as default.
85+
```
86+
87+
You may test your installation:
88+
89+
```shell
90+
$> java -version
91+
openjdk version "17.0.2" 2022-01-18
92+
OpenJDK Runtime Environment (build 17.0.2+8-86)
93+
OpenJDK 64-Bit Server VM (build 17.0.2+8-86, mixed mode, sharing)
94+
```
95+
96+
---
97+
**NOTE**
98+
99+
You may additionally look for other Java versions to install by running `sdk list java`:
100+
101+
...or other installation candidates like Apache Ant, Apache Maven, etc, by running `sdk list`.
102+
103+
Consult the SDKMan documentation for more info.
104+
105+
---
106+
107+
## Build (Mage)
108+
109+
```
110+
$> mage build
111+
```
112+
113+
## Build (Java / Gradle)
114+
115+
### macOS / Linux
116+
```shell
117+
$> ./gradlew build
118+
```
119+
120+
### Windows
121+
```shell
122+
$> gradlew.bat build
123+
```
124+
125+
## Test (Mage)
126+
127+
```
128+
$> mage test
129+
```
130+
131+
## Test (Java / Gradle)
132+
133+
### macOS / Linux
134+
```shell
135+
$> ./gradlew test
136+
```
137+
138+
### Windows
139+
```shell
140+
$> gradlew.bat test
141+
```
142+
143+
---
144+
**NOTE**
145+
146+
You may also combine Gradle build targets in one call, like:
147+
148+
```shell
149+
$> ./gradlew clean build test
150+
```
151+
152+
---
153+
154+
## Communications
155+
156+
### Issues
157+
158+
Anyone from the community is welcome (and encouraged!) to raise issues via [GitHub Issues](LINK_HERE) ___***FIX LINK AND REMOVE THIS NOTICE***___.
159+
160+
### Discussions
161+
162+
Design discussions and proposals take place on [GitHub Discussions](LINK_HERE) ___***FIX LINK AND REMOVE THIS NOTICE***___.
163+
164+
We advocate an asynchronous, written debate model - so write up your thoughts and invite the community to join in!
165+
166+
### Continuous Integration
167+
168+
Build and Test cycles are run on every commit to every branch on [CircleCI](LINK_HERE).
169+
170+
___***FIX LINK ABOVE AND REMOVE THIS NOTICE***___
171+
172+
## Contribution
173+
174+
We review contributions to the codebase via GitHub's Pull Request mechanism. We have the following guidelines to ease your experience and help our leads respond quickly to your valuable work:
175+
176+
* Start by proposing a change either in Issues (most appropriate for small change requests or bug fixes) or in Discussions (most appropriate for design and architecture considerations, proposing a new feature, or where you'd like insight and feedback)
177+
* Cultivate consensus around your ideas; the project leads will help you pre-flight how beneficial the proposal might be to the project. Developing early buy-in will help others understand what you're looking to do, and give you a a greater chance of your contributions making it into the codebase! No one wants to see work done in an area that's unlikely to be incorporated into the codebase.
178+
* Fork the repo into your own namespace/remote
179+
* Work in a dedicated feature branch. Atlassian wrote a great [description of this workflow](https://www.atlassian.com/git/tutorials/comparing-workflows/feature-branch-workflow)
180+
* When you're ready to offer your work to the project, first:
181+
* Squash your commits into a single one (or an appropriate small number of commits), and rebase atop the upstream `main` branch. This will limit the potential for merge conflicts during review, and helps keep the audit trail clean. A good writeup for how this is done is [here](https://medium.com/@slamflipstrom/a-beginners-guide-to-squashing-commits-with-git-rebase-8185cf6e62ec), and if you're having trouble - feel free to ask a member or the community for help or leave the commits as-is, and flag that you'd like rebasing assistance in your PR! We're here to support you.
182+
* Open a PR in the project to bring in the code from your feature branch.
183+
* The maintainers noted in the `CODEOWNERS` file will review your PR and optionally open a discussion about its contents before moving forward.
184+
* Remain responsive to follow-up questions, be open to making requested changes, and...
185+
* You're a contributor!
186+
* And remember to respect everyone in our global development community. Guidelines are established in our `CODE_OF_CONDUCT.md`.

0 commit comments

Comments
 (0)