5 changed files with 240 additions and 3 deletions
@ -0,0 +1,94 @@ |
|||||
|
# Contributing |
||||
|
|
||||
|
### So, you want to contribute to Neutrino? |
||||
|
|
||||
|
Thank you for wanting to help out with Neutrino! We are very happy that you want to contribute and have put together |
||||
|
this guide to help you get started. We want to do our best to help you make successful contribution and be part of our |
||||
|
team. |
||||
|
|
||||
|
### Participation Conduct |
||||
|
|
||||
|
In order to ensure everyone has a fair, pleasant, and inclusive experience contributing to Neutrino, we ask that you |
||||
|
abide by our [community participation guidelines](CODE_OF_CONDUCT.md), based on the |
||||
|
[Contributor Covenant](http://contributor-covenant.org/). Please read and understand it for everyone's benefit. |
||||
|
|
||||
|
Following these guidelines helps to communicate that you respect the time of the developers managing |
||||
|
and developing Neutrino. In return, we will show you respect in addressing your issue, assessing changes, |
||||
|
and helping you finalize your pull requests. |
||||
|
|
||||
|
### What we need |
||||
|
|
||||
|
There is always room for improvement and expansion in Neutrino. Some things that could always help: |
||||
|
|
||||
|
- Triaging and fixing bugs |
||||
|
- Adding tests to Neutrino which can help ensure it functions properly with new contributions |
||||
|
- Keeping core presets up to date with the best Webpack and Babel options |
||||
|
- Expanding documentation, writing tutorials, and creating example projects |
||||
|
- Something else, of course! |
||||
|
|
||||
|
### What we probably don't need |
||||
|
|
||||
|
While we are happy to review **any** contribution, there are some things that are best left as an external project: |
||||
|
|
||||
|
- _Additional presets_. While neutrino-dev does contain a number of core presets, we created and maintain these because |
||||
|
they were core to most of the projects we personally work on. If there are more presets you believe should be maintained |
||||
|
by the core, then feel free to raise an issue and we can discuss! Most likely though, additional presets can be |
||||
|
externally maintained and published to npm. It still has the same reach potential as bringing it into the core, without |
||||
|
raising the maintenance burden for Neutrino unnecessarily. |
||||
|
- _Scaffolding and boilerplates._ The goal of Neutrino is to remove over-reliance on boilerplates, instead opting to |
||||
|
push users into consuming presets. Neutrino itself will not add commands to scaffold out new projects or create |
||||
|
boilerplate repositories. We do keep a collection of examples-as-documentation for getting started with Neutrino |
||||
|
presets, but do not wish to govern project structure more than necessary. These types of projects can be maintained |
||||
|
externally. |
||||
|
|
||||
|
## Support |
||||
|
|
||||
|
Neutrino team members and contributors are here to help you! Should you need assistance or have questions in using |
||||
|
Neutrino or its core presets, please consider asking on Stack Overflow or other channel rather than filing issues. We |
||||
|
would prefer to keep our GitHub issues clear for bugs, feature requests, discussions, and relevant information related |
||||
|
to its development. |
||||
|
|
||||
|
## Guidelines |
||||
|
|
||||
|
- Please make a good-faith effort to ensure that code that goes into neutrino-dev follows the existing patterns and |
||||
|
quality that is already present in the repository. |
||||
|
- Create issues for any major changes and enhancements that you wish to make. Discuss things transparently and get |
||||
|
community feedback. |
||||
|
- Strive for code to be readable. Prefer following functional programming paradigms over object-oriented ones where |
||||
|
possible. |
||||
|
- Keep feature versions as small as possible, preferably one new feature per version. |
||||
|
|
||||
|
## Getting started |
||||
|
|
||||
|
Most contributions will involve working with the neutrino-dev codebase. Please refer to the [development |
||||
|
documentation](/contributing/development.md) for technical details on getting started. |
||||
|
|
||||
|
## Filing bugs and issues |
||||
|
|
||||
|
When filing an issue, try to answer these questions: |
||||
|
|
||||
|
- What version of Neutrino are you using? |
||||
|
- Are you trying to use any presets? If so, which ones, and what versions? |
||||
|
- Are you using the Yarn client or the npm client? What version? |
||||
|
- What version of Node.js are you using? |
||||
|
- What operating system are you using? |
||||
|
- What did you do? |
||||
|
- What did you expect to happen? |
||||
|
- What actually happened, contrary to your expectations? |
||||
|
|
||||
|
## Feature Requests or Enhancements |
||||
|
|
||||
|
Please file an issue describing your request in detail: |
||||
|
|
||||
|
- What is the goal of the change? |
||||
|
- What are the pros and cons of the change? |
||||
|
- Could this dramatically improve the experience of our users? |
||||
|
|
||||
|
Please be open to discussion, and we will respect your time by fairly evaluating your request. In the event that your |
||||
|
request is deemed to not be acceptable to move forward, please understand that isn't a criticism of you as a person, |
||||
|
but rather that the idea in its present form may not be right at this time. We respect you and your ideas, and will |
||||
|
always encourage contributors to continue to make proposals. |
||||
|
|
||||
|
## Code review process |
||||
|
|
||||
|
Code is reviewed by Neutrino team members for quality, conformance to existing patterns, and functionality. |
@ -0,0 +1,74 @@ |
|||||
|
# Contributor Covenant Code of Conduct |
||||
|
|
||||
|
## Our Pledge |
||||
|
|
||||
|
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. |
||||
|
|
||||
|
## Our Standards |
||||
|
|
||||
|
Examples of behavior that contributes to creating a positive environment |
||||
|
include: |
||||
|
|
||||
|
* Using welcoming and inclusive language |
||||
|
* Being respectful of differing viewpoints and experiences |
||||
|
* Gracefully accepting constructive criticism |
||||
|
* Focusing on what is best for the community |
||||
|
* Showing empathy towards other community members |
||||
|
|
||||
|
Examples of unacceptable behavior by participants include: |
||||
|
|
||||
|
* The use of sexualized language or imagery and unwelcome sexual attention or |
||||
|
advances |
||||
|
* Trolling, insulting/derogatory comments, and personal or political attacks |
||||
|
* Public or private harassment |
||||
|
* Publishing others' private information, such as a physical or electronic |
||||
|
address, without explicit permission |
||||
|
* Other conduct which could reasonably be considered inappropriate in a |
||||
|
professional setting |
||||
|
|
||||
|
## Our Responsibilities |
||||
|
|
||||
|
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. |
||||
|
|
||||
|
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. |
||||
|
|
||||
|
## Scope |
||||
|
|
||||
|
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. |
||||
|
|
||||
|
## Enforcement |
||||
|
|
||||
|
Instances of abusive, harassing, or otherwise unacceptable behavior may be |
||||
|
reported by contacting the project lead at eli@mozilla.com. All |
||||
|
complaints will be reviewed and investigated and will result in a response that |
||||
|
is deemed necessary and 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. |
||||
|
|
||||
|
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. |
||||
|
|
||||
|
## Attribution |
||||
|
|
||||
|
This Code of Conduct is adapted from the [Contributor Covenant][homepage], version 1.4, |
||||
|
available at [http://contributor-covenant.org/version/1/4][version] |
||||
|
|
||||
|
[homepage]: http://contributor-covenant.org |
||||
|
[version]: http://contributor-covenant.org/version/1/4/ |
@ -0,0 +1,68 @@ |
|||||
|
# Developing Neutrino |
||||
|
|
||||
|
Developing and contributing to Neutrino and its core presets is done through our monorepo located at |
||||
|
https://github.com/mozilla-neutrino/neutrino-dev. The code is broken up into a couple different sections: |
||||
|
packages and documentation. |
||||
|
|
||||
|
_Note: In this guide, commands executable from the command line are prepended with `❯`. Lines not starting |
||||
|
with this symbol show sample console output from running the previous command._ |
||||
|
|
||||
|
## Getting started |
||||
|
|
||||
|
The first step to start developing neutrino-dev is forking the repository to your own GitHub account. |
||||
|
|
||||
|
<a href="https://github.com/mozilla-neutrino/neutrino-dev/fork" target="_blank">Fork mozilla-neutrino/neutrino-dev on GitHub</a> |
||||
|
|
||||
|
Once that is done, you can clone your copy of the repository on your computer, replacing `USER` with the username |
||||
|
of the account you forked the repository to: |
||||
|
|
||||
|
```bash |
||||
|
❯ git clone git@github.com:USER/neutrino-dev.git |
||||
|
❯ cd neutrino-dev |
||||
|
``` |
||||
|
|
||||
|
## Making changes |
||||
|
|
||||
|
When you make changes to neutrino-dev, you should make them in a branch separate from `master`. Start from the |
||||
|
master branch and create a new branch for your changes. |
||||
|
|
||||
|
_Example: You want to create a core preset for JavaScript Standard Style. You need a new branch for this work._ |
||||
|
|
||||
|
```bash |
||||
|
❯ git checkout -b standard-style |
||||
|
Switched to a new branch 'standard-style' |
||||
|
``` |
||||
|
|
||||
|
While making changes, be sure to test your code out for expected operation. If possible or applicable, write a |
||||
|
test that can verify these changes in the future. |
||||
|
|
||||
|
## Submitting a pull request |
||||
|
|
||||
|
Once you are satisified with your changes, you should commit them and submit a pull request. Use `git add` |
||||
|
in order to add files that should be commited. Give your changes a descriptive but not overly verbose message. |
||||
|
|
||||
|
```bash |
||||
|
❯ git add . |
||||
|
❯ git commit -m "Feature: Adding new core preset for JavaScript Standard Style" |
||||
|
❯ git push origin standard-style |
||||
|
``` |
||||
|
|
||||
|
Now if you open the GitHub page for your repository, GitHub should display a button to open a pull request for |
||||
|
the branch and commit you just pushed. When filling out the details of the pull request, try to be as descriptive |
||||
|
as possible, following our detailed [contribution guidelines](/contributing/README.md). |
||||
|
|
||||
|
## Receiving updates |
||||
|
|
||||
|
If you need to update your local copy of neutrino-dev to be in sync with the main neutrino-dev repository, you |
||||
|
will want to fetch upstream changes. Add the main neutrino-dev repo as an upstream to your local copy, then fetch |
||||
|
the latest changes from the master branch. |
||||
|
|
||||
|
```bash |
||||
|
❯ git checkout master |
||||
|
❯ git remote add upstream https://github.com/mozilla-neutrino/neutrino-dev.git |
||||
|
❯ git pull upstream master |
||||
|
``` |
||||
|
|
||||
|
## Congrats! |
||||
|
|
||||
|
You just made a contribution to Neutrino! We are so happy to have your help! :tada: |
Loading…
Reference in new issue