⚠️ wip
From opening a bug report to creating a pull request: every contribution is appreciated and welcome. This document is here to answer most questions when it comes to contribute to this project.
If you have any questions not answered by this document, contact us on our chat or open an issue
Phenomic has adopted a Code of Conduct that we expect project participants to adhere to. Please read the full text so that you can understand what actions will and will not be tolerated.
We also welcome financial contributions in full transparency on our open collective. Anyone can file an expense. If the expense makes sense for the development of the community, it will be "merged" in the ledger of our open collective by the core contributors and the person who filed the expense will be reimbursed.
➡️ opencollective.com/phenomic
Thank you to all the people who have already contributed to phenomic!
Thank you to all our backers! [Become a backer]
Thank you to all our sponsors! (please ask your company to also support this open source project by becoming a sponsor)
The core team will be monitoring for pull requests and reviewing changes.
Before submitting a pull request, please make sure the following is done…
-
Fork the repo and create your branch from
master
. A guide on how to fork a repository: https://help.github.com/articles/fork-a-repo/Open your terminal (e.g. Terminal, Git Bash or Git Shell) and type:
git clone https://github.com/<your_username>/phenomic cd phenomic git checkout -b my_branch
Note: Replace
<your_username>
with your GitHub username -
Phenomic uses Yarn for running development scripts. If you haven't already done so, please install yarn.
To check your version of Yarn and ensure it's installed you can type:
yarn --version
⚠️ We currently require yarn >= v1.0.0 -
Run
yarn
. This will install all dependencies and prepare the repository to be ready for serious shit.yarn
-
If you've added code that should be tested, add tests.
-
If you've added/changed APIs, update the documentation accordingly.
-
Ensure the entire test suite passes via
yarn test
.
If you are making changes to the website or documentation, test the website
folder and run the server to check if your changes are being displayed
accurately.
You can run a development server to check if the changes you made are being
displayed accurately by running yarn website:start
.
You can modify website/*
code and get real times update in your browser.
Keep in mind that whenever you modify Phenomic core/plugins you might need to restart the dev server. If you are doing change to Phenomic using the website as a playground, you may need to transpile sources. See below for more informations.
Phenomic is written with ES2015+ and is using babel for transpilation. In order to have up to date code for real world usage, you need to start a watcher from the root of the project
yarn watch
This will update transpilated files as soon as you modify one.
From Phenomic git repo
yarn links
This should create local links for each packages.
Then, in your project:
yarn link @phenomic/core @phenomic/preset-react-app ...
You should probably add all others direct @phenomic/*
deps from your
package.json
if necessary.
Then run your project via yarn start
, and don't forget to restart dev server
if necessary (if you change the code of Phenomic itself).
We are using GitHub Issues for our public bugs. We will keep a close eye on this and try to make it clear when we have a work in progress. Before filing a new issue, try to make sure your problem doesn't already exist.
The best way to get your bug fixed is to provide a reduced test case. Please provide a public repository with a runnable example. Then feel free to open an issue.
If you find a security issue, please first contact us directly before opening a public issue.
Update necessary bsconfig.json
(eg: packages/reason/bsconfig.json
) version
number and stage the file in git (so release script gets it).
yarn release
The command will guide you.
Once it's done, go to https://github.com/phenomic/phenomic/releases. Click on
the new created tag and Edit tag
to create release notes.
The way to create notes is easy. Just go to https://github.com/phenomic/phenomic/commits/master and sort interesting commits (since last release) in the template below that you will use as notes:
# 🎉 No breaking changes 🎉
or
# 💥 Includes _Breaking changes_
Blah blah
## 💥 Breaking changes
* [`@phenomic/PLUGIN_NAMEEEE`: AWESOME_MESSAGE](https://github.com/phenomic/phenomic/commit/HASSSSHHHHHHHHHHH),
by @DOERRRRR, reported|requested by @REPORTERRRRR (in [#XXXXXXX](https://github.com/phenomic/phenomic/issues/XXXXXXX))
## 🐛 Bugfixes
...
## 👍 Improvements
...
## 🔥 New plugins
...
## ✨ New features
...
## 🌟 New Examples
...
- Chat - #phenomic on Gitter.
- Email - contact (at) phenomic (dot) io
- Prettier is used to avoid bikeshedding on quotes or semicolons.
- Eslint is used to help to keep the codebase clean, with a strong config.
- Prefer ES6 syntax when possible.
- Use Flow types.
By contributing to Phenomic, you agree that your contributions will be licensed under its MIT license.