Skip to content

Commit

Permalink
Bump develop with master (#50)
Browse files Browse the repository at this point in the history
* Add a matrix to system tests (#209)

* Add a matrix to system tests

* Add tests for rspec runner

* Introduce include

* Introduce exclude

* Setup exclude group matrix

* Run 12 tests in parallel

* Use destructuration

* Log to stdout

* Don't run on examples

* Add assets cache (#213)

* Add assets cache

* Remove commit sha from cache key

* Generate hash for assets

* Fix offenses

* Add packages

* Use cache hash as litteral

* Use lib assets as assets pattern

* Dry up

* Fix typo

* Fix offenses

* Add tests (#214)

* Run test in parallel (#212)

* Run test in parallel

* Fix offenses

* Fix tests

* Add task test:run_all

* Fix parallel execution

* Fix tests

* Fix assets hash (#217)

* Chain commands

* Upgrade workflow version

* Remove useless cache for yarn

* Remove useless key
# Conflicts:
#	.github/workflows/tests.yml
#	Gemfile.lock
#	lib/tasks/test.rake

* Refactor migrations tools (#329)

# Conflicts:
#	config/application.rb
#	lib/tasks/k8s.rake
#	lib/tasks/migrate.rake
#	lib/tasks/scaleway.rake

* Feat: add s3 host env (#341)

Co-authored-by: Armand Fardeau <[email protected]>

# Conflicts:
#	config/secrets.yml
#	config/storage.yml

* Avoid generating many images (#322)

* Remove duplicate entry (#323)

* Refactor Rack Attack configuration (#312)

* Add proxy and remote_ip to rack attack

* Add Rack Attack configuration

* Add unauthorized path for fail2ban

* Refactor Rack Attack configuration

* Load decidim-app config

* Fix rubocop offenses

* Allow to add proxy ip to Rack Attack and Action Dispatch safelist

* Add application.rb specs

* Update secrets.yml

* Add specs for DecidimApp config

* Add DecidimApp Rack Attack specs

* Remove spec file

* Add rack attack throttling specs

* Add specs for Fail2ban

* Revert changes in db/schema.rb

* Fix not interpreted error

* Remove trusted proxies configuration

* Remove trusted proxies configuration
# Conflicts:
#	config/initializers/decidim.rb
#	config/initializers/rack_attack.rb
#	config/locales/fr.yml

* Improves coverage (#330)

# Conflicts:
#	lib/initializers/sentry_setup.rb
#	spec/lib/sentry_setup_spec.rb

* Make task idempotent (#336)

Co-authored-by: Quentin Champenois <[email protected]>

* Add upgrade rake task (#337)

* Add upgrade task

* Add task

* Add pull request trigger (#342)

# Conflicts:
#	.github/workflows/ci_cd.yml

* Move to K8s namespace

# Conflicts:
#	lib/k8s_configuration_exporter.rb
#	lib/k8s_organization_exporter.rb
#	lib/tasks/decidim_app.rake
#	lib/tasks/k8s.rake
#	spec/lib/k8s/configuration_exporter_spec.rb
#	spec/lib/k8s/organization_exporter_spec.rb
#	spec/lib/tasks/decidim_app/k8s/export_configuration_tasks_spec.rb

* Fix dump_db task

* Fix dump path

* Use memcached store in production (#347)

# Conflicts:
#	docker-compose.yml

* Create organization, system admin and admin from YAML (#339)

Co-authored-by: Quentin Champenois <[email protected]>
Co-authored-by: quentinchampenois <[email protected]>

# Conflicts:
#	spec/lib/decidim/admin_creator_spec.rb
#	spec/lib/decidim/system_admin_creator_spec.rb
#	spec/lib/tasks/create_admin_task_spec.rb
#	spec/lib/tasks/create_system_admin_task_spec.rb

* Fix environment variables issue (#349)

* K8S - Check if secondary hosts are valid (#350)

* Fix secondary hosts checker (#351)

* K8S - Raise error if file does not exist (#353)

* Add install hook (#352)

* Use Rails cache instead of defining new one (#354)

* Update organization_exporter.rb (#357)

* Fix organization update (#356)

Co-authored-by: Quentin Champenois <[email protected]>

* Fix rack attack config (#358)

# Conflicts:
#	spec/system/confirmation_spec.rb

* Cleanup rake tasks (#288)

# Conflicts:
#	lib/tasks/repair_data.rake
#	lib/tasks/restore_dump.rake

* Replace HTTPS tests with HTTP (#359)

Co-authored-by: Armand Fardeau <[email protected]>

* Fix invalid users (#361)

* Exlude healthchecks from ssl (#363)

# Conflicts:
#	config/environments/production.rb

* Fix export when smtp settings are nil (#362)

* Refactor migrations tools (#329)

# Conflicts:
#	spec/lib/tasks/scaleway/storage/migrate_from_local_task_spec.rb

* Refactor Rack Attack configuration (#312)

* Add proxy and remote_ip to rack attack

* Add Rack Attack configuration

* Add unauthorized path for fail2ban

* Refactor Rack Attack configuration

* Load decidim-app config

* Fix rubocop offenses

* Allow to add proxy ip to Rack Attack and Action Dispatch safelist

* Add application.rb specs

* Update secrets.yml

* Add specs for DecidimApp config

* Add DecidimApp Rack Attack specs

* Remove spec file

* Add rack attack throttling specs

* Add specs for Fail2ban

* Revert changes in db/schema.rb

* Fix not interpreted error

* Remove trusted proxies configuration

* Remove trusted proxies configuration
# Conflicts:
#	config/initializers/decidim.rb
#	config/initializers/rack_attack.rb
#	spec/lib/decidim_app/rack_attack/fail2ban_spec.rb
#	spec/lib/decidim_app/rack_attack_spec.rb

* Improves coverage (#330)

# Conflicts:
#	spec/lib/decidim_app/rack_attack/fail2ban_spec.rb

* Make task idempotent (#336)

Co-authored-by: Quentin Champenois <[email protected]>
# Conflicts:
#	lib/decidim/admin_creator.rb
#	lib/decidim/system_admin_creator.rb

* Add upgrade rake task (#337)

* Add upgrade task

* Add task

* Move to K8s namespace

# Conflicts:
#	lib/k8s_configuration_exporter.rb
#	lib/k8s_organization_exporter.rb
#	lib/tasks/decidim_app.rake
#	lib/tasks/k8s.rake
#	spec/lib/k8s/configuration_exporter_spec.rb
#	spec/lib/k8s/organization_exporter_spec.rb
#	spec/lib/tasks/decidim_app/k8s/export_configuration_tasks_spec.rb

* Fix dump_db task

* Fix dump path

* Create organization, system admin and admin from YAML (#339)

Co-authored-by: Quentin Champenois <[email protected]>
Co-authored-by: quentinchampenois <[email protected]>

# Conflicts:
#	lib/decidim_app/config.rb
#	lib/decidim_app/k8s/commands/organization.rb
#	lib/decidim_app/k8s/configuration.rb
#	lib/decidim_app/k8s/organization_exporter.rb
#	lib/decidim_app/rack_attack.rb
#	spec/fixtures/k8s_configuration_example.yml
#	spec/lib/decidim/admin_creator_spec.rb
#	spec/lib/decidim/system_admin_creator_spec.rb
#	spec/lib/decidim_app/k8s/commands/organization_spec.rb
#	spec/lib/decidim_app/k8s/configuration_spec.rb
#	spec/lib/decidim_app/k8s/organization_exporter_spec.rb
#	spec/lib/tasks/create_admin_task_spec.rb
#	spec/lib/tasks/create_system_admin_task_spec.rb
#	spec/lib/tasks/decidim_app/k8s/export_configuration_tasks_spec.rb
#	spec/lib/tasks/decidim_app/k8s/external_install_or_reload_task_spec.rb
#	spec/lib/tasks/scaleway/storage/migrate_from_local_task_spec.rb

* Fix environment variables issue (#349)

# Conflicts:
#	lib/decidim_app/k8s/organization_exporter.rb
#	spec/lib/decidim_app/k8s/organization_exporter_spec.rb

* K8S - Check if secondary hosts are valid (#350)

# Conflicts:
#	lib/decidim_app/k8s/secondary_hosts_checker.rb
#	spec/lib/decidim_app/k8s/secondary_hosts_checker_spec.rb

* Fix secondary hosts checker (#351)

# Conflicts:
#	lib/decidim_app/k8s/secondary_hosts_checker.rb
#	spec/lib/decidim_app/k8s/secondary_hosts_checker_spec.rb

* K8S - Raise error if file does not exist (#353)

# Conflicts:
#	spec/lib/tasks/decidim_app/k8s/external_install_or_reload_task_spec.rb

* Add install hook (#352)

* Use Rails cache instead of defining new one (#354)

* Update organization_exporter.rb (#357)

* Fix organization update (#356)

Co-authored-by: Quentin Champenois <[email protected]>

# Conflicts:
#	lib/decidim_app/k8s/commands/organization.rb
#	lib/decidim_app/k8s/configuration.rb
#	spec/fixtures/k8s_configuration_example.yml
#	spec/lib/decidim_app/k8s/commands/organization_spec.rb
#	spec/lib/decidim_app/k8s/configuration_spec.rb

* Fix rack attack config (#358)

# Conflicts:
#	lib/decidim_app/config.rb
#	lib/decidim_app/rack_attack.rb
#	spec/lib/decidim_app/rack_attack_spec.rb

* Cleanup rake tasks (#288)

# Conflicts:
#	app/services/decidim/repair_nickname_service.rb
#	lib/tasks/restore_dump.rake
#	spec/services/decidim/repair_nickname_service_spec.rb

* Replace HTTPS tests with HTTP (#359)

Co-authored-by: Armand Fardeau <[email protected]>

* Fix invalid users (#361)

# Conflicts:
#	app/services/decidim/repair_nickname_service.rb
#	spec/services/decidim/repair_nickname_service_spec.rb

* Fix export when smtp settings are nil (#362)

* Revert "Add pull request trigger (#342)"

This reverts commit b4eb3f084c6353792956398057ce615dfac6f374.

* Refactor migrations tools (#329)

# Conflicts:
#	spec/lib/tasks/scaleway/storage/migrate_from_local_task_spec.rb

* Refactor Rack Attack configuration (#312)

* Add proxy and remote_ip to rack attack

* Add Rack Attack configuration

* Add unauthorized path for fail2ban

* Refactor Rack Attack configuration

* Load decidim-app config

* Fix rubocop offenses

* Allow to add proxy ip to Rack Attack and Action Dispatch safelist

* Add application.rb specs

* Update secrets.yml

* Add specs for DecidimApp config

* Add DecidimApp Rack Attack specs

* Remove spec file

* Add rack attack throttling specs

* Add specs for Fail2ban

* Revert changes in db/schema.rb

* Fix not interpreted error

* Remove trusted proxies configuration

* Remove trusted proxies configuration
# Conflicts:
#	config/initializers/decidim.rb
#	config/initializers/rack_attack.rb
#	spec/lib/decidim_app/rack_attack/fail2ban_spec.rb
#	spec/lib/decidim_app/rack_attack_spec.rb

* Improves coverage (#330)

# Conflicts:
#	spec/lib/decidim_app/rack_attack/fail2ban_spec.rb

* Make task idempotent (#336)

Co-authored-by: Quentin Champenois <[email protected]>
# Conflicts:
#	lib/decidim/admin_creator.rb
#	lib/decidim/system_admin_creator.rb

* Add upgrade rake task (#337)

* Add upgrade task

* Add task

* Add pull request trigger (#342)

* Move to K8s namespace

# Conflicts:
#	lib/k8s_configuration_exporter.rb
#	lib/k8s_organization_exporter.rb
#	lib/tasks/decidim_app.rake
#	lib/tasks/k8s.rake
#	spec/lib/k8s/configuration_exporter_spec.rb
#	spec/lib/k8s/organization_exporter_spec.rb
#	spec/lib/tasks/decidim_app/k8s/export_configuration_tasks_spec.rb

* Fix dump_db task

* Fix dump path

* Create organization, system admin and admin from YAML (#339)

Co-authored-by: Quentin Champenois <[email protected]>
Co-authored-by: quentinchampenois <[email protected]>

# Conflicts:
#	lib/decidim_app/config.rb
#	lib/decidim_app/k8s/commands/organization.rb
#	lib/decidim_app/k8s/configuration.rb
#	lib/decidim_app/k8s/organization_exporter.rb
#	lib/decidim_app/rack_attack.rb
#	spec/fixtures/k8s_configuration_example.yml
#	spec/lib/decidim/admin_creator_spec.rb
#	spec/lib/decidim/system_admin_creator_spec.rb
#	spec/lib/decidim_app/k8s/commands/organization_spec.rb
#	spec/lib/decidim_app/k8s/configuration_spec.rb
#	spec/lib/decidim_app/k8s/organization_exporter_spec.rb
#	spec/lib/tasks/create_admin_task_spec.rb
#	spec/lib/tasks/create_system_admin_task_spec.rb
#	spec/lib/tasks/decidim_app/k8s/export_configuration_tasks_spec.rb
#	spec/lib/tasks/decidim_app/k8s/external_install_or_reload_task_spec.rb
#	spec/lib/tasks/scaleway/storage/migrate_from_local_task_spec.rb

* Fix environment variables issue (#349)

# Conflicts:
#	lib/decidim_app/k8s/organization_exporter.rb
#	spec/lib/decidim_app/k8s/organization_exporter_spec.rb

* K8S - Check if secondary hosts are valid (#350)

# Conflicts:
#	lib/decidim_app/k8s/secondary_hosts_checker.rb
#	spec/lib/decidim_app/k8s/secondary_hosts_checker_spec.rb

* Fix secondary hosts checker (#351)

# Conflicts:
#	lib/decidim_app/k8s/secondary_hosts_checker.rb
#	spec/lib/decidim_app/k8s/secondary_hosts_checker_spec.rb

* K8S - Raise error if file does not exist (#353)

# Conflicts:
#	spec/lib/tasks/decidim_app/k8s/external_install_or_reload_task_spec.rb

* Add install hook (#352)

* Use Rails cache instead of defining new one (#354)

* Update organization_exporter.rb (#357)

* Fix organization update (#356)

Co-authored-by: Quentin Champenois <[email protected]>

# Conflicts:
#	lib/decidim_app/k8s/commands/organization.rb
#	lib/decidim_app/k8s/configuration.rb
#	spec/fixtures/k8s_configuration_example.yml
#	spec/lib/decidim_app/k8s/commands/organization_spec.rb
#	spec/lib/decidim_app/k8s/configuration_spec.rb

* Fix rack attack config (#358)

# Conflicts:
#	lib/decidim_app/config.rb
#	lib/decidim_app/rack_attack.rb
#	spec/lib/decidim_app/rack_attack_spec.rb

* Cleanup rake tasks (#288)

# Conflicts:
#	app/services/decidim/repair_nickname_service.rb
#	lib/tasks/restore_dump.rake
#	spec/services/decidim/repair_nickname_service_spec.rb

* Replace HTTPS tests with HTTP (#359)

Co-authored-by: Armand Fardeau <[email protected]>

* Fix invalid users (#361)

# Conflicts:
#	app/services/decidim/repair_nickname_service.rb
#	spec/services/decidim/repair_nickname_service_spec.rb

* Fix export when smtp settings are nil (#362)

* Revert "Add pull request trigger (#342)"

This reverts commit b4eb3f084c6353792956398057ce615dfac6f374.

* Fix offenses

* Fix sidekiq

* bump: Update rubocop rules

* fix: revert locales

* bump: Update docker-compose

* lint: Fix rubocop offenses in migrations

* lint: Fix rubocop offenses

* fix: Add missing graphql-ws

* fix: Update Gemfile

* fix: Authentication system specs

* fix: Revert missing trads

* fix: Revert removed trads

* fix: Ignore unused locales

* fix: Add en missing translations

* fix: Remove unused spec task

* fix: CI enforced locales

* fix: Downgrade chromedriver in CI

* fix: Switch to fr in create_registration specs

* fix: Switch to fr in system account specs

* fix: Move Chromedriver downgrade to system specs

* fix: Chromedriver version in CI

---------

Co-authored-by: Armand Fardeau <[email protected]>
Co-authored-by: Pierre Ozoux <[email protected]>
Co-authored-by: Quentin Champenois <[email protected]>
Co-authored-by: armandfardeau <[email protected]>
Co-authored-by: moustachu <[email protected]>
Co-authored-by: quentinchampenois <[email protected]>
  • Loading branch information
7 people authored Sep 7, 2023
1 parent bafac72 commit 587d28d
Show file tree
Hide file tree
Showing 120 changed files with 6,135 additions and 2,483 deletions.
1 change: 0 additions & 1 deletion .dockerignore
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,6 @@ node_modules
public/uploads
deploy
.rubocop*
.overloads
.erb-lint.yml
.env-example
.env
Expand Down
133 changes: 104 additions & 29 deletions .github/workflows/ci_cd.yml
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,20 @@ env:
RAILS_ENV: test
NODE_VERSION: 16.9.1
RUBYOPT: '-W:no-deprecated'
# Set locales available for i18n tasks
ENFORCED_LOCALES: "en,fr"
AVAILABLE_LOCALES: "en,fr"

jobs:
todo:
name: TODO
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v3
with:
fetch-depth: 1
- name: "TODO to Issue"
uses: "alstr/todo-to-issue-action@v4"
lint:
name: Lint code
runs-on: ubuntu-latest
Expand All @@ -26,13 +38,16 @@ jobs:
ruby_version: ${{ env.RUBY_VERSION }}
node_version: ${{ env.NODE_VERSION }}
tests:
strategy:
fail-fast: false
matrix:
slice: [ "0-2", "1-2" ]
name: Tests
runs-on: ubuntu-latest
if: "!startsWith(github.head_ref, 'chore/l10n')"
services:
postgres:
image: postgres:11
ports: [ "5432:5432" ]
ports: ["5432:5432"]
options: >-
--health-cmd pg_isready
--health-interval 10s
Expand All @@ -44,54 +59,115 @@ jobs:
DATABASE_USERNAME: postgres
DATABASE_PASSWORD: postgres
DATABASE_HOST: localhost
RAILS_ENV: test
# Set locales available for i18n tasks
ENFORCED_LOCALES: "en,fr"
steps:
- uses: rokroskar/[email protected]
if: "github.ref != 'refs/heads/master' || github.ref != 'refs/heads/develop'"
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- uses: actions/checkout@v2.0.0
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true
- uses: actions/setup-node@v1
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Get Yarn cache directory
id: yarn-cache-dir-path
run: echo "::set-output name=dir::$(yarn cache dir)"
- name: Use Yarn cache
uses: actions/cache@v2
id: yarn-cache
with:
path: ${{ steps.yarn-cache-dir-path.outputs.dir }}
key: yarn-${{ hashFiles('**/yarn.lock') }}
- name: Install dependencies
run: yarn install --prefer-offline --frozen-lockfile
- name: Create db
run: |
bundle exec rails db:create
bundle exec rails db:migrate
- name: Precompile assets
bundle exec rails parallel:create parallel:migrate
- name: Register cache hash
id: cache-hash
run: |
bundle exec rake assets:precompile
echo "::set-output name=hash::$(bundle exec rake test:assets_hash)"
- uses: OpenSourcePolitics/cache-precompile-action@master
with:
key: asset-cache-${{ runner.os }}-${{ steps.cache-hash.outputs.hash }}
- run: mkdir -p ./spec/tmp/screenshots
name: Create the screenshots folder
- uses: nanasess/[email protected]
- run: bundle exec rspec
- run: bundle exec rake "test:run[exclude, spec/system/**/*_spec.rb, ${{ matrix.slice }}]"
name: RSpec
- run: ./.github/upload_coverage.sh $DECIDIM_MODULE $GITHUB_EVENT_PATH
- run: ./.github/upload_coverage.sh decidim-app $GITHUB_EVENT_PATH
name: Upload coverage
- uses: actions/upload-artifact@v2-preview
- uses: actions/upload-artifact@v3
if: always()
with:
name: screenshots
path: ./spec/decidim_dummy_app/tmp/screenshots
path: ./spec/tmp/screenshots
- uses: actions/upload-artifact@v3
if: always()
with:
name: assets-manifest-${{ matrix.slice }}
path: ./tmp/assets_manifest.json
system_tests:
strategy:
matrix:
slice: [ "0-4", "1-4", "2-4", "3-4" ]
name: System tests
runs-on: ubuntu-latest
services:
postgres:
image: postgres:11
ports: ["5432:5432"]
options: >-
--health-cmd pg_isready
--health-interval 10s
--health-timeout 5s
--health-retries 5
env:
POSTGRES_PASSWORD: postgres
env:
DATABASE_USERNAME: postgres
DATABASE_PASSWORD: postgres
DATABASE_HOST: localhost
steps:
- uses: rokroskar/[email protected]
if: "github.ref != 'refs/heads/master' || github.ref != 'refs/heads/develop'"
env:
GITHUB_TOKEN: "${{ secrets.GITHUB_TOKEN }}"
- uses: actions/checkout@v3
with:
fetch-depth: 1
- uses: ruby/setup-ruby@v1
with:
ruby-version: ${{ env.RUBY_VERSION }}
bundler-cache: true
- uses: actions/setup-node@v3
with:
node-version: ${{ env.NODE_VERSION }}
- name: Install dependencies
run: yarn install --prefer-offline --frozen-lockfile
- name: Create db
run: |
bundle exec rails parallel:create parallel:migrate
- name: Register cache hash
id: cache-hash
run: |
echo "::set-output name=hash::$(bundle exec rake test:assets_hash)"
- uses: OpenSourcePolitics/cache-precompile-action@master
with:
key: asset-cache-${{ runner.os }}-${{ steps.cache-hash.outputs.hash }}
- run: mkdir -p ./spec/tmp/screenshots
name: Create the screenshots folder
# TODO: Use latest version
- uses: nanasess/setup-chromedriver@v2
- run: bundle exec rake "test:run[include, spec/system/**/*_spec.rb, ${{ matrix.slice }}]"
name: RSpec
- run: ./.github/upload_coverage.sh decidim-app $GITHUB_EVENT_PATH
name: Upload coverage
- uses: actions/upload-artifact@v3
if: always()
with:
name: screenshots
path: ./spec/tmp/screenshots
- uses: actions/upload-artifact@v3
if: always()
with:
name: assets-manifest-${{ matrix.slice }}
path: ./tmp/assets_manifest.json
test_build:
name: Test build docker image
runs-on: ubuntu-latest
Expand Down Expand Up @@ -124,7 +200,7 @@ jobs:
build_and_push_image_dev:
name: Build and push image to Registry
if: "github.ref == 'refs/heads/develop'"
needs: [ lint, tests, test_build ]
needs: [lint, tests, system_tests, test_build]
runs-on: ubuntu-latest
steps:
- uses: OpenSourcePolitics/build-and-push-images-action@master
Expand All @@ -136,13 +212,13 @@ jobs:
tag: "develop"
generate_release:
name: Generate release
needs: [ lint, tests, test_build ]
needs: [lint, tests, system_tests, test_build]
if: "github.ref == 'refs/heads/master'"
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@v2
- uses: mathieudutour/[email protected]
name: Bump vaersion and push tag
name: Bump version and push tag
id: tag_version
with:
github_token: ${{ secrets.GITHUB_TOKEN }}
Expand All @@ -160,4 +236,3 @@ jobs:
password: ${{ secrets.TOKEN }}
image_name: ${{ vars.IMAGE_NAME }}
tag: ${{ steps.tag_version.outputs.new_tag }}

6 changes: 6 additions & 0 deletions .rubocop_rails.yml
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,8 @@ Rails/ScopeArgs:

Rails/SkipsModelValidations:
Enabled: true
Exclude:
- db/migrate/*.rb

Rails/Validation:
Include:
Expand All @@ -95,3 +97,7 @@ Rails/Validation:
Rails/BulkChangeTable:
Exclude:
- db/**/*

RSpec/MultipleMemoizedHelpers:
Exclude:
- spec/**/**
43 changes: 32 additions & 11 deletions .rubocop_ruby.yml
Original file line number Diff line number Diff line change
Expand Up @@ -13,10 +13,10 @@ AllCops:
- "**/Gemfile"
- "**/Rakefile"
Exclude:
- "**/vendor/**/*"
- "vendor/**/*"
- "node_modules/**/*"
- "bin/**/*"
- "db/schema.rb"
- "bin/*"
# Default formatter will be used if no -f/--format option is given.
DefaultFormatter: progress
# Cop names are not displayed in offense messages by default. Change behavior
Expand Down Expand Up @@ -74,6 +74,10 @@ AllCops:
- "(?:^|/)spec/"
- "(?:^|/)test/"

Lint/SafeNavigationChain:
Exclude:
- lib/tasks/migrate.rake

# Indent private/protected/public as deep as method definitions
Layout/AccessModifierIndentation:
EnforcedStyle: indent
Expand Down Expand Up @@ -176,6 +180,15 @@ Layout/ParameterAlignment:
# But it can be overridden by setting this parameter
IndentationWidth: ~

Style/ArrayCoercion:
Description: >-
Use Array() instead of explicit Array check or [*var], when dealing
with a variable you want to treat as an Array, but you're not certain it's an array.
StyleGuide: '#array-coercion'
Safe: false
Enabled: false
VersionAdded: '0.88'

Style/AndOr:
# Whether `and` and `or` are banned only in conditionals (conditionals)
# or completely (always).
Expand Down Expand Up @@ -390,6 +403,10 @@ Style/Copyright:
Style/DocumentationMethod:
RequireForNonPublicMethods: false

Style/MixinUsage:
Exclude:
- "bin/*"

# Multi-line method chaining should be done with leading dots.
Layout/DotPosition:
EnforcedStyle: leading
Expand Down Expand Up @@ -504,6 +521,8 @@ Style/FormatStringToken:

Style/FrozenStringLiteralComment:
EnforcedStyle: always
Exclude:
- bin/*
SupportedStyles:
- never
# `always` will always add the frozen string literal comment to a file
Expand Down Expand Up @@ -1059,6 +1078,10 @@ Naming/VariableNumber:
- snake_case
- normalcase
- non_integer
Exclude:
- "**/*/dummy_authorization_handler.rb"
- "app/controllers/decidim/proposals/proposals_controller.rb"
- "spec/system/homepage_spec.rb"

# WordArray enforces how array literals of word-like strings should be expressed.
Style/WordArray:
Expand All @@ -1075,6 +1098,10 @@ Style/WordArray:
# The regular expression WordRegex decides what is considered a word.
WordRegex: !ruby/regexp '/\A[\p{Word}\n\t]+\z/'

Style/MutableConstant:
Exclude:
- "bin/overloads"

##################### Metrics ##################################

Metrics/AbcSize:
Expand Down Expand Up @@ -1183,8 +1210,8 @@ Layout/LineLength:
- http
- https
Exclude:
- "**/spec/**/*"
- "db/**/*"
- "spec/**/*"
- "db/schema.rb"

# Checks for unused block arguments
Lint/UnusedBlockArgument:
Expand Down Expand Up @@ -1215,14 +1242,11 @@ RSpec/ContextWording:
RSpec/DescribeClass:
Exclude:
- spec/gemfiles_spec.rb
- spec/js_bundles_spec.rb
- spec/webpacker_spec.rb
- spec/i18n_spec.rb
- "**/*/spec/**/*_badge_spec.rb"
- "**/tasks/**/*"

RSpec/EmptyExampleGroup:
Enabled: true

RSpec/ExampleLength:
Max: 49

Expand All @@ -1241,9 +1265,6 @@ RSpec/MessageSpies:
RSpec/MultipleExpectations:
Enabled: false

RSpec/MultipleMemoizedHelpers:
Max: 35

RSpec/NestedGroups:
Max: 7

Expand Down
Loading

0 comments on commit 587d28d

Please sign in to comment.