|
| 1 | +# Contributing to Dash Cytoscape |
| 2 | + |
| 3 | +## Getting Started |
| 4 | + |
| 5 | +Refer to the [readme](README.md) for installation and development instructions. |
| 6 | + |
| 7 | +## Coding Style |
| 8 | + |
| 9 | +Please lint any additions to Python code with `pylint` and `flake8`. |
| 10 | + |
| 11 | +## Pull Request Guidelines |
| 12 | + |
| 13 | +Use the [GitHub flow][] when proposing contributions to this repository (i.e. create a feature branch and submit a PR against the master branch). |
| 14 | + |
| 15 | +## Running the Tests |
| 16 | + |
| 17 | +_To be added_ |
| 18 | + |
| 19 | + |
| 20 | +## Making a contribution |
| 21 | +_For larger features, your contribution will have a higher likelihood of getting merged if you create an issue to discuss the changes that you'd like to make before you create a pull request._ |
| 22 | + |
| 23 | +Create a pull request and tag the Plotly team (`@plotly/dash_bio`) and tag / request review from [@xhlulu](https://github.com/xhlulu). |
| 24 | + |
| 25 | +After a review has been done and your changes have been approved, create a prerelease and comment in the PR. Version numbers should follow [semantic versioning][]. |
| 26 | + |
| 27 | +To publish or create a prerelease: |
| 28 | + |
| 29 | +1. Check `MANIFEST.in` has all of the extra files (like CSS) |
| 30 | +2. Bump version numbers in `package.json`, update the `CHANGELOG.md`, and make a pull request |
| 31 | +3. Once the pull request is merged into master: |
| 32 | +4. Build |
| 33 | +```npm run build:all``` |
| 34 | +5. Create distribution tarball |
| 35 | +```python setup.py sdist``` |
| 36 | +6. Copy the tarball into a separate folder and try to install it and run the examples: |
| 37 | +```cp dist/dash-cytoscape-0.0.1.tar.gz ../temp |
| 38 | +cp usage.py ../temp |
| 39 | +cd ../temp |
| 40 | +source venv/bin/activate |
| 41 | +pip install dash-cytoscape-0.0.1.tar.gz |
| 42 | +python usage.py |
| 43 | +``` |
| 44 | +7. If the examples work, then publish: |
| 45 | +```npm publish |
| 46 | +twine upload dist/dash-cytoscape-0.0.1.tar.gz |
| 47 | +``` |
| 48 | +8. Tag your release with git: |
| 49 | +```git tag -a 'v0.0.1' -m 'v0.0.1' |
| 50 | +git push origin master --follow-tags |
| 51 | +``` |
| 52 | +9. Verify that the publish worked by installing it: |
| 53 | +```cd ../temp |
| 54 | +pip install dash-cytoscape==0.0.1 |
| 55 | +python usage.py |
| 56 | +``` |
| 57 | + |
| 58 | + |
| 59 | +Make a post in the [Dash Community Forum][] |
| 60 | + * Title it `":mega: Announcement! New <Your Feature> - Feedback Welcome"` |
| 61 | + * In the description, link to the PR and any relevant issue(s) |
| 62 | + * Pin the topic so that it appears at the top of the forum for two weeks |
| 63 | + |
| 64 | +## [Checklists](http://rs.io/unreasonable-effectiveness-of-checklists/) |
| 65 | +**Beginner tip:** _Copy and paste this section as a comment in your PR, then check off the boxes as you go!_ |
| 66 | +### Pre-Merge checklist |
| 67 | +- [ ] If changes are significant, a release candidate has been created and posted to Slack, the Plotly forums, and at the very top of the pull request. |
| 68 | +- [ ] Two people have :dancer:'d the pull request. You can be one of these people if you are a Dash core contributor. |
| 69 | + |
| 70 | +### Post-Merge checklist |
| 71 | +- [ ] You have tagged the release using `git tag v<version_number>` _(for the contributor merging the PR)_. |
| 72 | +- [ ] You have pushed this tag using `git push <tag_name>` _(for the contributor merging the PR)_. |
| 73 | +- [ ] You have deleted the branch. |
| 74 | + |
| 75 | +### Pre-Release checklist |
| 76 | +- [ ] Everything in the Pre-Merge checklist is completed. (Except the last two if this is a release candidate). |
| 77 | +- [ ] `git remote show origin` shows you are in the correct repository. |
| 78 | +- [ ] `git branch` shows that you are on the expected branch. |
| 79 | +- [ ] `git status` shows that there are no unexpected changes. |
| 80 | +- [ ] `dash/version.py` is at the correct version. |
| 81 | + |
| 82 | +### Release Step |
| 83 | +- `python setup.py sdist` to build. |
| 84 | +- `twine upload dist/<the_version_you_just_built>` to upload to PyPi. |
| 85 | + |
| 86 | +### Post-Release checklist |
| 87 | +- [ ] You have closed all issues that this pull request solves, and commented the new version number users should install. |
| 88 | +- [ ] If significant enough, you have created an issue about documenting the new feature or change and you have added it to the [Documentation] project. |
| 89 | +- [ ] You have created a pull request in [Dash Docs] with the new release of your feature by editing that project's [`requirements.txt` file](https://github.com/plotly/dash-docs/blob/master/requirements.txt) and you have assigned `@chriddyp` to review. |
| 90 | + |
| 91 | +## Financial Contributions |
| 92 | + |
| 93 | +Dash, and many of Plotly's open source products, have been funded through direct sponsorship by companies. [Get in touch] about funding feature additions, consulting, or custom app development. |
| 94 | + |
| 95 | +[Dash Core Components]: https://dash.plot.ly/dash-core-components |
| 96 | +[Dash HTML Components]: https://github.com/plotly/dash-html-components |
| 97 | +[write your own components]: https://dash.plot.ly/plugins |
| 98 | +[Dash Component Biolerplate]: https://github.com/plotly/dash-component-boilerplate |
| 99 | +[issues]: https://github.com/plotly/dash-core-components/issues |
| 100 | +[GitHub flow]: https://guides.github.com/introduction/flow/ |
| 101 | +[eslintrc-react.json]: https://github.com/plotly/dash-components-archetype/blob/master/config/eslint/eslintrc-react.json |
| 102 | +[contributors]: https://github.com/plotly/dash-core-components/graphs/contributors |
| 103 | +[semantic versioning]: https://semver.org/ |
| 104 | +[Dash Community Forum]: https://community.plot.ly/c/dash |
| 105 | +[Confirmation Modal component]: https://github.com/plotly/dash-core-components/pull/211#issue-195280462 |
| 106 | +[Confirmation Modal announcement]: https://community.plot.ly/t/announcing-dash-confirmation-modal-feedback-welcome/11627 |
| 107 | +[Get in touch]: https://plot.ly/products/consulting-and-oem |
| 108 | +[Documentation]: https://github.com/orgs/plotly/projects/8 |
| 109 | +[Dash Docs]: https://github.com/plotly/dash-docs |
0 commit comments