|
1 | | -# Contributing to this project |
| 1 | +# Contributing to Hyperstack |
2 | 2 |
|
3 | | -We welcome and encourage contribution and would be delighted if you participated in this project. |
| 3 | +We welcome and encourage contribution and would be delighted if you participated in this project. |
| 4 | +If you're new to Hyperstack but have experience with Ruby (and Rails) and would like to contribute then start with the [ToDo tutorial](https://hyperstack.org/edge/docs/tutorials/todo) |
| 5 | +that way you understand the basic capabilities and lingo of Hyperstack. |
4 | 6 |
|
5 | | -## If you think you can improve the docs |
| 7 | +Next would be to start an experimental project that's based on the *edge* Hyperstack codebase. |
| 8 | +If you just want to build a website with Hyperstack without contributing to Hyperstack itself you're better of sticking to released versions of Hyperstack. |
| 9 | +But presuming you do want to contribute you can change you `Gemfile` in the following way to get your project on *edge*. |
6 | 10 |
|
7 | | -Each page on the website has an 'Improve this page' button which will create a PR against the correct file and the correct branch. |
| 11 | +```ruby |
| 12 | +git 'https://github.com/hyperstack-org/hyperstack', branch: 'edge', glob: 'ruby/*/*.gemspec' do |
| 13 | + gem 'rails-hyperstack' |
| 14 | + gem 'hyper-component' |
| 15 | + gem 'hyper-i18n' |
| 16 | + gem 'hyper-model' |
| 17 | + gem 'hyper-operation' |
| 18 | + gem 'hyper-router' |
| 19 | + gem 'hyper-state' |
| 20 | + gem 'hyperstack-config' |
| 21 | + gem 'hyper-trace', group: :development |
| 22 | +end |
| 23 | + |
| 24 | +gem 'foreman', group: :development |
| 25 | +``` |
| 26 | +The *edge* branch is the latest work in progress, where specs (automated tests) are passing, for the individual gem. |
| 27 | +The difference between *edge* and *master*, is that *master* guarantees that all specs across all gems pass, plus *master* is the branch from which new versions are released. |
| 28 | + |
| 29 | +With this configuration you can track development of Hyperstack itself and discuss changes with the other developers. |
| 30 | +It's the basic starting point from which you can make different types of contributions listed below under the separate headings. |
| 31 | + |
| 32 | +## If you would like to contribute code to Hyperstack |
| 33 | + |
| 34 | +With the `Gemfile` configuration above you can track Hyperstack development. But you can't contribute code. |
| 35 | + |
| 36 | +For that you need to `git clone https://github.com/hyperstack-org/hyperstack.git` |
| 37 | +Cd into the directory `cd hyperstack` |
| 38 | +And change to the *edge* branch: `git checkout edge` (*edge* is the default branch but just to be sure). |
| 39 | + |
| 40 | +Now you're free to fix bugs and create new features. |
| 41 | +Reconfigure the `Gemfile` of your website project with a [filesystem path](https://bundler.io/gemfile.html) to create a local development environment. |
| 42 | +``` |
| 43 | +TODO: Actually provide an example Gemfile.. |
| 44 | +``` |
| 45 | +And if your improvements could be interesting to others then push it to Github and create a pull request. |
| 46 | +Then keep reminding the existing developers that you would like your code pulled into the Hyperstack repository. |
| 47 | +When they find the time to look at it and like your code they will kindly ask you to also write some specs before your code is merged. That's a good thing, your code is considered valuable, but does require those tests. |
| 48 | +Please understand that your code can also be rejected because it has security issues, is slow, hard to maintain or buggy (among other things). |
| 49 | +Nobody likes it when this happens, but it can happen. If what you're trying to achieve is making sense then please keep at it. |
| 50 | +If you have wild out of the box ideas that would not match Hyperstack then please use the power to fork away and prove your ideas independently. |
| 51 | +But Hyperstack and Opal are quite happily pushing boundaries, so we might like your crazy ideas. |
| 52 | + |
| 53 | +**Pro tip:** Talk trough your plans for changes before writing a lot of code. Push a few small fixes before starting mayor rewrites. |
| 54 | + |
| 55 | +Hyperstack's [license is MIT](https://github.com/hyperstack-org/hyperstack/blob/edge/LICENSE). All code contributions must be under this license. If code is submitted under a different open source license then this must be explicitly stated. Preferably with an explanation why it can't be MIT. |
| 56 | + |
| 57 | +## If you would like to improve the Hyperstack documentation |
| 58 | + |
| 59 | +Each page on [the website](https://hyperstack.org) has an ***Improve this page*** button which will allow you to edit the underlying markdown file on Github and create a ***pull request***. This is to make it as easy as possible to contribute to the documentation. |
| 60 | +And make small fixes quickly. |
| 61 | + |
| 62 | +If you're planning on making sustained contributions to the documentation we would suggest to do a `git clone https://github.com/hyperstack-org/hyperstack.git` as documented above with code contributions. |
| 63 | +Most documentation is written in .md files under the docs directory and can be edited with dedicated markdown editors or even plain text editors. |
| 64 | +Push your changes and create a ***pull request*** as if it's a code contribution. |
8 | 65 |
|
9 | 66 | ## If you think you can improve the website |
10 | 67 |
|
11 | | -Please create an issue describing your plans and reach out to us in the Gitter chat. Our goal for this site is that it acts as a showcase for all that Hyperstack can do, so your creativity is very welcome. |
| 68 | +The website's code can be found in [this repository](https://github.com/hyperstack-org/website). |
| 69 | +By running `git clone https://github.com/hyperstack-org/website.git` you can check out your own copy. |
| 70 | +Please note that this repository does not contain the documentation. The website pulls the most recent markdown files from the *edge* hyperstack repository. |
| 71 | + |
| 72 | +Before you write code to change the website, please create an issue describing your plans and reach out to us in the Gitter chat. Our goal for this site is that it acts as a showcase for all that Hyperstack can do, so your creativity is very welcome. |
| 73 | + |
| 74 | +## If you found a possible bug |
12 | 75 |
|
13 | | -## If you find a bug |
| 76 | +You can ask on [gitter chat](https://gitter.im/ruby-hyperloop/chat) if you're making a mistake or actually found a bug. |
| 77 | +Also check the GitHub issue list and if you don't find it mentioned there, please create an issue. |
| 78 | +If you can reproduce the problem in a branch you push to GitHub we will love you even more. |
14 | 79 |
|
15 | | -Please check the issue list and if you do not find it mentioned there, please create an issue. |
| 80 | +We also have a [feature matrix](https://github.com/hyperstack-org/hyperstack/blob/edge/docs/feature_matrix.md), which is an attempt to list known issues and the current status. |
| 81 | +Having people expanding and maintaining this table would be excellent. |
16 | 82 |
|
17 | | -## If you would like to contribute to this project |
| 83 | +## If you would like to fix a bug |
18 | 84 |
|
19 | | -Please see the list of issues labelled 'Help Wanted' as a start. There is always tons to do so we would appreciate the help. |
| 85 | +Please ask in [gitter chat](https://gitter.im/ruby-hyperloop/chat) if you need pointers. There is always tons to do so we would appreciate the help. |
| 86 | +You can see the list of GitHub issues labelled '[Help Wanted](https://github.com/hyperstack-org/hyperstack/issues?q=is%3Aopen+is%3Aissue+label%3A%22help+wanted%22)' |
| 87 | +or look at the [feature matrix](https://github.com/hyperstack-org/hyperstack/blob/edge/docs/feature_matrix.md) for things that have the status 'bugged'. |
0 commit comments