Skip to content

Commit c2951df

Browse files
authored
Merge pull request #233 from LoopPerfect/improvement/pretty-repo
improvement/pretty-repo
2 parents 0bbf1ad + 867c47f commit c2951df

File tree

7 files changed

+465
-23
lines changed

7 files changed

+465
-23
lines changed

CLA.md

Lines changed: 45 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,45 @@
1+
# Buckaroo contributor agreement
2+
3+
The Buckaroo Agreement (this **"Agreement"**) applies to any Contribution you make to any Work.
4+
5+
This is a binding legal agreement on you and any organization you represent. If you are signing this Agreement on behalf of your employer or other organization, you represent and warrant that you have the authority to agree to this Agreement on behalf of the organization.
6+
7+
8+
## 1. Definitions
9+
10+
**"Contribution"** means any original work, including any modification of or addition to an existing work, that you submit to Buckaroo in any manner for inclusion in any Work.
11+
12+
**"Buckaroo", "we"** and **"use"** means LoopPerfect Ltd.
13+
14+
**"Work"** means any project, work or materials owned or managed by LoopPerfect Ltd.
15+
16+
**"You"** and **"your"** means you and any organization on whose behalf you are entering this Agreement.
17+
18+
19+
## 2. Copyright Assignment, License and Waiver
20+
21+
**(a) Assignment.** By submitting a Contribution, you assign to Buckaroo all right, title and interest in any copyright you have in the Contribution, and you waive any rights, including any moral rights, database rights, etc., that may affect your ownership of the copyright in the Contribution.
22+
23+
**(b) License to Buckaroo.** If your assignment in Section 2(a) is ineffective for any reason, you grant to us and to any recipient of any Work distributed by use, a perpetual, worldwide, transferable, non-exclusive, no-charge, royalty-free, irrevocable, and sub-licensable licence to use, reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute Contributions and any derivative work created based on a Contribution. If your license grant is ineffective for any reason, you irrevocably waive and covenant to not assert any claim you may have against us, our successors in interest, and any of our direct or indirect licensees and customers, arising out of our, our successors in interest's, or any of our direct or indirect licensees' or customers' use, reproduction, preparation of derivative works, public display, public performance, sublicense, and distribution of a Contribution. You also agree that we may publicly use your name and the name of any organization on whose behalf you're entering into this Agreement in connection with publicizing the Work.
24+
25+
**(c) License to you.** We grant to you a perpetual, worldwide, transferable, non-exclusive, no-charge, royalty-free, irrevocable, and sub-licensable license to use, reproduce, prepare derivative works of, publicly display, publicly perform, sublicense, and distribute a Contribution and any derivative works you create based on a Contribution.
26+
27+
28+
## 3. Patent License
29+
You grant to us and to any recipient of any Work distributed by us, a perpetual, worldwide, transferable, non-exclusive, no-charge, royalty-free, irrevocable, and sub-licensable patent license to make, have made, use, sell, offer to sell, import, and otherwise transfer the Contribution in whole or in part, along or included in any Work under any patent you own, or license from a third party, that is necessarily infringed by the Contribution or by combination of the Contribution with any Work.
30+
31+
32+
## 4. Your Representation and Warranties.
33+
By submitting a Contribution, you represent and warrant that: (a) each Contribution you submit is an original work and you can legally grant the rights set out in this Agreement; (b) the Contribution does not, and any exercise of the rights granted by you will not, infringe any third party's intellectual property or other right; and (c) you are not aware of any claims, suits, or actions pertaining to the Contribution. You will notify us immediately if you become aware or have reason to believe that any of your representations and warranties is or becomes inaccurate.
34+
35+
36+
## 5. Intellectual Property
37+
Except for the assignment and licenses set forth in this Agreement, this Agreement does not transfer any right, title or interest in any intellectual property right of either party to the other. If you choose to provide us with suggestions, ideas for improvement, recommendations or other feedback, on any Work we may use your feedback without any restriction or payment.
38+
39+
40+
## Miscellaneous
41+
English law governs this Agreement, excluding any applicable conflict of laws rules or principles, and the parties agree to the exclusive jurisdiction of the courts in England, UK. This Agreement does not create a partnership, agency relationship, or joint venture between the parties. We may assign this Agreement without notice or restriction. If any provision of this Agreement is unenforcable, that provision will be modified to render it enforceable to the extent possible to effect the parties' intention and the remaining provisions will not be affected. The parties may amend this Agreement only in a written amendment signed by both parties. This Agreement comprises the parties' entire agreement relating to the subject matter of this Agreement.
42+
43+
**Agreed and accepted on my behalf and on behalf of my organization**
44+
45+
Our contributor agreement is based on the [mongoDB contributor agreement](https://www.mongodb.com/legal/contributor-agreement).

CODE_OF_CONDUCT.md

Lines changed: 46 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,46 @@
1+
# Contributor Covenant Code of Conduct
2+
3+
## Our Pledge
4+
5+
In the interest of fostering an open and welcoming environment, we as contributors and maintainers pledge to making participation in our project and our community a harassment-free experience for everyone, regardless of age, body size, disability, ethnicity, gender identity and expression, level of experience, nationality, personal appearance, race, religion, or sexual identity and orientation.
6+
7+
## Our Standards
8+
9+
Examples of behavior that contributes to creating a positive environment include:
10+
11+
* Using welcoming and inclusive language
12+
* Being respectful of differing viewpoints and experiences
13+
* Gracefully accepting constructive criticism
14+
* Focusing on what is best for the community
15+
* Showing empathy towards other community members
16+
17+
Examples of unacceptable behavior by participants include:
18+
19+
* The use of sexualized language or imagery and unwelcome sexual attention or advances
20+
* Trolling, insulting/derogatory comments, and personal or political attacks
21+
* Public or private harassment
22+
* Publishing others' private information, such as a physical or electronic address, without explicit permission
23+
* Other conduct which could reasonably be considered inappropriate in a professional setting
24+
25+
## Our Responsibilities
26+
27+
Project maintainers are responsible for clarifying the standards of acceptable behavior and are expected to take appropriate and fair corrective action in response to any instances of unacceptable behavior.
28+
29+
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.
30+
31+
## Scope
32+
33+
This Code of Conduct applies both within project spaces and in public spaces when an individual is representing the project or its community. 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.
34+
35+
## Enforcement
36+
37+
Instances of abusive, harassing, or otherwise unacceptable behavior may be reported by contacting the project team at hello@buckaroo.pm. The project team will review and investigate all complaints, and will respond in a way that it deems appropriate to the circumstances. The project team is obligated to maintain confidentiality with regard to the reporter of an incident. Further details of specific enforcement policies may be posted separately.
38+
39+
Project maintainers who do not follow or enforce the Code of Conduct in good faith may face temporary or permanent repercussions as determined by other members of the project's leadership.
40+
41+
## Attribution
42+
43+
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, available at [http://contributor-covenant.org/version/1/4][version]
44+
45+
[homepage]: http://contributor-covenant.org
46+
[version]: http://contributor-covenant.org/version/1/4/

CONTRIBUTING.md

Lines changed: 160 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,160 @@
1+
# Contributing to Buckaroo 🎉
2+
3+
Hello! Thanks for taking the time to contribute to Buckaroo. Buckaroo is a community project, and will only succeed through the work of contributors such as yourself. This guide will help you get started.
4+
5+
6+
## Important Resources
7+
8+
The Buckaroo project is spread across a few different repositories:
9+
10+
1. [LoopPerfect/buckaroo](https://github.com/LoopPerfect/buckaroo) contains the source-code for the Buckaroo client that users install on their machines.
11+
2. [LoopPerfect/buckaroo-wishlist](https://github.com/LoopPerfect/buckaroo-wishlist) is an issue-tracker where users can suggest recipes for inclusion in the official cookbook.
12+
3. [LoopPerfect/homebrew-lp](https://github.com/LoopPerfect/homebrew-lp) is the [Homebrew](https://brew.sh/) (and [Linuxbrew](http://linuxbrew.sh/)) tap that contains the Buckaroo formula.
13+
14+
Official packages live in a [dedicated GitHub account](https://github.com/buckaroo-pm/).
15+
16+
17+
## Getting Help
18+
19+
If you need quick interaction, a good avenue for talking to the developers is [Gitter.im](https://gitter.im/LoopPerfect/buckaroo). If you have a complex problem, reporting an issue is the best route.
20+
21+
22+
## Reporting Issues
23+
24+
Since Buckaroo has a few different components, it is important that issues are reported in the right place.
25+
26+
* Report **installation problems** to the [buckaroo issue tracker](https://github.com/LoopPerfect/buckaroo/issues).
27+
* Report **bugs in the client** to the [buckaroo issue tracker](https://github.com/LoopPerfect/buckaroo/issues).
28+
* Report **issues with a specific package** to that package's issue tracker.
29+
* Report **package requests** to the [buckaroo-wishlist](https://github.com/LoopPerfect/buckaroo-wishlist/issues).
30+
* Report **feature requests** to the [buckaroo issue tracker](https://github.com/LoopPerfect/buckaroo/issues).
31+
32+
If you are not sure, just report to the [buckaroo issue tracker](https://github.com/LoopPerfect/buckaroo/issues). 😌
33+
34+
35+
### Security
36+
37+
If you have a sensitive issue, such as a security bug, please send an email to security@buckaroo.pm.
38+
39+
40+
## Making a Contribution
41+
42+
The procedure for contributing to Buckaroo is:
43+
44+
1. Fork [LoopPerfect/buckaroo](https://github.com/LoopPerfect/buckaroo) on GitHub
45+
2. Make some changes, adding unit-tests where appropriate
46+
3. Ensure that all tests pass
47+
4. Make a pull request (usually to `master`)
48+
5. Bask in the kudos! 👏👑
49+
50+
51+
## What should I work on?
52+
53+
We endeavor to keep [the issue tracker](https://github.com/LoopPerfect/buckaroo/issues) up-to-date, so that is the best place to start. Keep an eye out for [issues marked "help wanted"](https://github.com/LoopPerfect/buckaroo/labels/help%20wanted).
54+
55+
### First-time Contributor ❤️
56+
57+
First-time contributor? Take a look at the issue tracker for [issues marked "first commit"](https://github.com/LoopPerfect/buckaroo/labels/first%20commit) for smaller, self-contained tasks. We would also be happy to walk you through any of the existing code on [Gitter.im](https://gitter.im/LoopPerfect/buckaroo).
58+
59+
### Packages
60+
61+
Another way to contribute is by writing packages! Because Buckaroo is decentralized, you can do this in your repo without approvals from us. However, we can also help guide the process on [Gitter.im](https://gitter.im/LoopPerfect/buckaroo).
62+
63+
If you are looking for a library to port, [the wishlist](https://github.com/LoopPerfect/buckaroo-wishlist) is a good place to start.
64+
65+
### Your Own Feature
66+
67+
If you would like to contribute a feature that you have thought of, please [create an issue](https://github.com/LoopPerfect/buckaroo/issues) first so that we can ensure the design is in-keeping with the general direction of Buckaroo.
68+
69+
## Environment
70+
71+
Development of Buckaroo requires [F# and dotNET Core](https://docs.microsoft.com/en-us/dotnet/fsharp/get-started/get-started-command-line). We also recommend [Visual Studio Code](https://code.visualstudio.com/) and [Ionide](http://ionide.io/) for code-completion features.
72+
73+
To fetch the source-code:
74+
75+
```bash=
76+
git clone https://github.com/LoopPerfect/buckaroo.git
77+
cd buckaroo
78+
```
79+
80+
To build the project:
81+
82+
```bash=
83+
dotnet build ./buckaroo-cli
84+
```
85+
86+
To run the project:
87+
88+
```bash=
89+
dotnet run --project ./buckaroo-cli
90+
```
91+
92+
93+
### Which branch should I use? 🤔
94+
95+
The convention for branches in Buckaroo is:
96+
97+
* `master` - the very latest code with the latest features, but not recommended for production use
98+
* `release/version` - the branch from which a release version is tagged
99+
* `bugfix/bug` - a branch for fixing a specific bug
100+
* `feature/widget` - a branch for implementing a specific feature
101+
* `improvement/widget` - a branch for making a specific improvement, such as refactoring
102+
103+
Most developers should branch from `master` in order to have their changes included in the next release.
104+
105+
If you would like to patch an old release, you should branch off of `release/version`.
106+
107+
108+
## Testing
109+
110+
Buckaroo uses automated testing and [Travis CI](https://travis-ci.org/LoopPerfect/buckaroo) to prevent regressions.
111+
112+
To run the tests:
113+
114+
```bash=
115+
dotnet test
116+
```
117+
118+
## Bundling
119+
120+
Releases are bundled using [Warp](https://github.com/dgiagio/warp):
121+
122+
```bash=
123+
wget -O warp-packer https://github.com/dgiagio/warp/releases/download/v0.3.0/macos-x64.warp-packer
124+
./warp-packer
125+
```
126+
127+
To create a release for macOS:
128+
129+
```bash=
130+
dotnet publish ./buckaroo-cli/ -c Release -r osx-x64
131+
./warp-packer --arch macos-x64 --exec buckaroo-cli --input_dir ./buckaroo-cli/bin/Release/netcoreapp2.1/osx-x64 --output buckaroo-macos
132+
./buckaroo-macos
133+
```
134+
135+
136+
## Making a Pull Request
137+
138+
Once your submission is ready, you should make a pull request on GitHub to the appropriate branch.
139+
140+
* If you are implementing a new feature or bug-fix for the next release, then you should `base` your pull request on `master`.
141+
142+
* If you are making a bug-fix for an old release, you should `base` on the appropriate `release/version` branch.
143+
144+
We review pull requests within 24 hours.
145+
146+
147+
## Releases
148+
149+
Buckaroo releases are semantically versioned Git tags. You can see [the releases on GitHub](https://github.com/LoopPerfect/buckaroo/releases).
150+
151+
Each release has a corresponding branch named `release/version`. This allows `master` to progress beyond the current release, whilst still allowing for easy patching of old versions.
152+
153+
154+
### Installing a Cutting-edge Release ✋⚠️
155+
156+
If you would like to use the latest version of Buckaroo from `master`, then you can do this using [Homebrew](https://brew.sh/) or [Linuxbrew](http://linuxbrew.sh/):
157+
158+
```bash=
159+
brew install --HEAD loopperfect/lp/buckaroo
160+
```

0 commit comments

Comments
 (0)