diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md index 4b853fcff4..6bdbc4af05 100644 --- a/CONTRIBUTING.md +++ b/CONTRIBUTING.md @@ -12,12 +12,13 @@ project codebases, issue trackers, chat-rooms, and mailing lists. ## Getting Started -Administrate is a Rails Engine, but ships with everything needed to contribute -and test new changes. +Administrate is a [Rails Engine][], but ships with everything needed to +contribute and test new changes. To maintain compatibility with multiple dependency versions, we use [Appraisal][]. +[Rails Engine]: https://guides.rubyonrails.org/engines.html [Appraisal]: https://github.com/thoughtbot/appraisal ### Opening a PR @@ -29,6 +30,9 @@ To maintain compatibility with multiple dependency versions, we use 4. Make your changes, 5. Push your fork and open a pull request. +A good PR will solve the smallest problem it possibly can, have good test +coverage and (where necessary) have internationalisation support. + ### Running the application locally Administrate's demo application can be run like any Rails application: @@ -41,14 +45,10 @@ This will start the application defined in `spec/example_app`. ## Repository Structure -This repository contains both the source code for Administrate, -and a demo Rails app that uses Administrate. -The demo app is [hosted publicly on Heroku][demo]. - -- The gem's source code lives in the `app` and `lib` subdirectories. -- The demo app is nested within `spec/example_app`. -- The guides as seen at - [https://administrate-prototype.herokuapp.com][prototype_heroku] live as +* The gem's source code lives in the `app` and `lib` subdirectories. +* The demo app is nested within `spec/example_app`. +* The guides as seen at + [https://administrate-demo.herokuapp.com][docs] live as markdown files in the `docs` subdirectory. Rails configuration files have been changed @@ -57,19 +57,22 @@ so running the server or deploying to Heroku works normally. With this structure, developing a typical feature looks like: -- Add tests in `spec/` -- Implement a feature in `administrate/` -- Exercise the feature using the demo rails app (`spec/example_app/app/`) +* Add tests in `spec/` +* Implement a feature in `administrate/` +* Exercise the feature using the demo rails app (`spec/example_app/app/`) + +[demo]: https://administrate-prototype.herokuapp.com/admin +[docs]: https://administrate-prototype.herokuapp.com ## Front-end Architecture This project uses: -- Sass -- [BEM]-style CSS selectors, with [namespaces] -- Autoprefixer -- SCSS-Lint, with [Hound] ([configuration](.scss-lint.yml)) -- A variety of CSS units: +* Sass +* [BEM]-style CSS selectors, with [namespaces] +* Autoprefixer +* SCSS-Lint, with [Hound] ([configuration](.scss-lint.yml)) +* A variety of CSS units: - `em` for typographical-related elements - `rem` for lengths related to components - `px` for borders, text shadows, etc.