README.md in potassium-6.0.0 vs README.md in potassium-6.1.0
- old
+ new
@@ -14,11 +14,14 @@
Use the `potassium create` command to create a new project:
$ potassium create <project-name>
-> It's important to note that it will perform a version check before running to ensure that you're using the latest potassium. Also, if you feel that it's too slow, you may need to update rubygems: `gem update --system`.
+> Please note:
+> 1. Potassium will perform a version check before running to ensure that you are using the latest potassium.
+> 2. If you feel that it's too slow, you may need to update rubygems: `gem update --system`.
+> 3. Potassium uses node under the hood, so a check will also be performed to ensure you are running the supported version.
### Adding recipes to an existing project
Use the `potassium install` command to add a recipe to a project:
@@ -34,73 +37,68 @@
## What's inside Potassium?
Potassium Rails apps includes the following gems and technologies:
-- [Ruby](https://www.ruby-lang.org) Set the project ruby version based on http://ruby.platan.us/latest
-- [dotenv](https://github.com/bkeepers/dotenv) load environmental variables in development
-- [Yarn](https://yarnpkg.com) for frontend assets packages.
-- [EditorConfig](http://editorconfig.org) for keeping all our editor configurations the same.
-- [pry](http://pryrepl.org) and [pry-byebug](https://github.com/deivid-rodriguez/pry-byebug) for a less painful debugging experience.
-- [RSpec](http://rspec.info) for unit and integration testing.
-- [FactoryBot](https://github.com/thoughtbot/factory_bot) for test factories.
-- [Guard](http://guardgem.org) for continuous testing and other watch-related tasks.
-- [AWS-SDK](https://github.com/aws/aws-sdk-ruby) for file uploads, sdks, etc and because we use AWS.
+- [dotenv](https://github.com/bkeepers/dotenv) for loading environmental variables in development
+- [Yarn](https://yarnpkg.com) for frontend assets packages
+- [EditorConfig](http://editorconfig.org) for keeping all our editor configurations the same
+- [pry](http://pryrepl.org) and [pry-byebug](https://github.com/deivid-rodriguez/pry-byebug) for a less painful debugging experience
+- [RSpec](http://rspec.info) for unit and integration testing
+- [FactoryBot](https://github.com/thoughtbot/factory_bot) for test factories
+- [Guard](http://guardgem.org) for continuous testing and other watch-related tasks
+- [AWS-SDK](https://github.com/aws/aws-sdk-ruby) for file uploads, sdks, etc and because we use AWS
- [Puma](https://github.com/puma/puma) to serve HTTP requests
- [Rack Timeout](https://github.com/heroku/rack-timeout) to abort requests that are
taking too long
-- [Tzinfo-Data](https://github.com/tzinfo/tzinfo-data) for update timezone information
-- [Faker](https://github.com/stympy/faker) for create development data
+- [Tzinfo-Data](https://github.com/tzinfo/tzinfo-data) for updating timezone information
+- [Faker](https://github.com/stympy/faker) for creating development data
-The following optional integrations are added too:
+The following optional integrations are also added:
-- [PostgreSQL](http://www.postgresql.org) or [MySQL](https://www.mysql.com) for the database.
-- [Devise](https://github.com/plataformatec/devise) for authentication.
-- [ActiveAdmin](http://activeadmin.info) for admin interfaces.
-- [ActiveAdminAddons](https://github.com/platanus/activeadmin_addons) for some help with ActiveAdmin.
-- [Pundit](https://github.com/elabs/pundit) for role-based authorization.
-- [DelayedJob](https://github.com/collectiveidea/delayed_job) to execute longer tasks in the background.]
-- [Sidekiq](https://github.com/mperham/sidekiq) a simple, efficient background processing for Ruby.
+- [PostgreSQL](http://www.postgresql.org) or [MySQL](https://www.mysql.com) for the database
+- [Devise](https://github.com/plataformatec/devise) for authentication
+- [ActiveAdmin](http://activeadmin.info) for admin interfaces
+- [ActiveAdminAddons](https://github.com/platanus/activeadmin_addons) for some help with ActiveAdmin
+- [Pundit](https://github.com/elabs/pundit) for role-based authorization
+- [DelayedJob](https://github.com/collectiveidea/delayed_job) to execute longer tasks in the background
+- [Sidekiq](https://github.com/mperham/sidekiq) a simple, efficient background processing for Ruby
- [Sidekiq-scheduler](https://github.com/moove-it/sidekiq-scheduler) to run scheduled processes
- Mailing configuration for [AWS SES](https://github.com/aws/aws-sdk-rails)
and [Sendgrid](https://github.com/platanus/send_grid_mailer) with recipient interceptor support
- [Sentry](https://sentry.io) to monitor exceptions and errors
- [Vue.js](https://vuejs.org) or [Angular 2](https://angular.io/) for frontend development
+- Creates the Github repository of your choice for the project. A local git repository will always be created.
A few more things are added to the project:
- A [low database connection pool limit][pool]
-- Setup continuous integration in [CircleCI](circle-ci) to run tests.
-- Create the github repository for the project (it used `hub` under the hood)
+- Setup continuous integration in [CircleCI](circle-ci) to run tests
- A `bin/setup` script to setup things on a newly cloned project
- A `bin/cibuild` script to run continuous integration build on CI
- A `db:fake_data:load` rake task to load fake data for development
[pool]: https://devcenter.heroku.com/articles/concurrency-and-database-connections
### API support
The optional API support includes:
-- [Responders](https://github.com/plataformatec/responders) for dry-ing our api controllers.
-- [Versionist](https://github.com/bploetz/versionist) for some flexible api versioning.
-- [ActiveModel::Serializers](https://github.com/rails-api/active_model_serializers) for record serialization.
-- [Simple Token Authentication](https://github.com/gonzalo-bulnes/simple_token_authentication) for stateless API authentication.
+- [Responders](https://github.com/plataformatec/responders) for dry-ing our api controllers
+- [Versionist](https://github.com/bploetz/versionist) for some flexible api versioning
+- [ActiveModel::Serializers](https://github.com/rails-api/active_model_serializers) for record serialization
+- [Simple Token Authentication](https://github.com/gonzalo-bulnes/simple_token_authentication) for stateless API authentication
### Heroku
When you choose to deploy to heroku a few extra things are added for the project.
- - Adds the [Rails Stdout Logging][logging-gem] gem
- to configure the app to log to standard out,
- which is how [Heroku's logging][heroku-logging] works.
+ - Adds the [Rails Stdout Logging][logging-gem] gem to configure the app to log to standard out, which is how [Heroku's logging][heroku-logging] works
- Adds a [Procfile][procfile] to define the processes to run in heroku
- - Setup continuous integration using docker and herokuish to maintain better
- parity between testing and production environments
- - Adds a `.buildpacks` file with the default buildpacks to use. It use the
- following buildpacks:
- - Adds a `bin/release` file with the release phase script to run specific tasks before the app is deployed completely, for example `rails db:migrate:with_data`.
+ - Setup continuous integration using docker and herokuish to maintain better parity between testing and production environments
+ - Adds a `bin/release` file with the release phase script to run specific tasks before the app is deployed completely, for example `rails db:migrate:with_data`
+ - Adds a `.buildpacks` file with the default buildpacks to use. It use the following buildpacks:
| index | buildpack | description |
|-------|-----------|-------------|
| 1. | [nodejs][heroku-buildpack-nodejs] | to support javascript package management with `yarn` and `webpack` based asset compiling |
| 2. | [ruby-version][heroku-buildpack-ruby-version] | to support the use of `.ruby-version` file to instruct heroku which ruby version to use |
@@ -108,11 +106,11 @@
Also the heroku applications are created
- Creates a `staging` and `production` applications
- Creates a pipeline and assign the above application to the `staging`
- and `production` stages.
+ and `production` stages
- Setup initial configuration variables
- Set the application buildpack to the [multi-buildpack][heroku-buildpack-multi]
You'll need to manually
@@ -124,15 +122,13 @@
In order to CicleCI start building the project on each push you need tell circle ci.
Go to https://circleci.com/add-projects, choose the repository from the list and hit
**Build Project**
-### Hound CI
+#### ReviewDog
-In order to Hound start checking your project's PRs you need enable that repository.
-Go to https://monkeyci.platan.us, choose the repository from the list and hit
-**Activate**
+In order to enable code linting via CircleCI and ReviewDog, you need to activate the **Only build pull requests** option under the `Advanced settings` section for your project.
[logging-gem]: https://github.com/heroku/rails_stdout_logging
[heroku-logging]: https://devcenter.heroku.com/articles/logging#writing-to-your-log
[procfile]: https://devcenter.heroku.com/articles/procfile
[heroku-buildpack-ruby-version]: http://github.com/platanus/heroku-buildpack-ruby-version
@@ -147,17 +143,17 @@
This is useful when you are adding new recipes to Potassium, and you want to use the `potassium create` command, to check the new functionality without pain.
To achieve this you need to run, **In the Potassium's root path**, the `bin/potassium_test create` instead of `potassium create` command.
This command, will do the same as `potassium create` but first:
-- Will drop any existent database of the test app.
-- Will remove the directory containing a previous version of the test app.
+- Will drop any existent database of the test app
+- Will remove the directory containing a previous version of the test app
It's important to remember that `bin/potassium_test create`:
- Does not receive an `app_path` param. It always creates the test project inside `/tmp/dummy_app`
-- Can receive the same options as `potassium create`.
+- Can receive the same options as `potassium create`
- Runs with options with a default value. This is to avoid the "asking part" of the creation process. You need to enable what you want to test like this: `$ bin/potassium_test create --clockwork`
## Contributing
If you want to add functionality please go to
@@ -171,6 +167,6 @@
potassium is maintained by [platanus](http://platan.us).
## License
-Potassium is © 2014 platanus, spa. It is free software and may be redistributed under the terms specified in the LICENSE file.
+Potassium is © 2014 Platanus, SPA. It is free software and may be redistributed under the terms specified in the LICENSE file.