New upstream version 9.2.10+dfsg
20
.babelrc
Normal file
|
@ -0,0 +1,20 @@
|
|||
{
|
||||
"presets": [
|
||||
["latest", { "es2015": { "modules": false } }],
|
||||
"stage-2"
|
||||
],
|
||||
"env": {
|
||||
"coverage": {
|
||||
"plugins": [
|
||||
["istanbul", {
|
||||
"exclude": [
|
||||
"spec/javascripts/**/*"
|
||||
]
|
||||
}],
|
||||
["transform-define", {
|
||||
"process.env.BABEL_ENV": "coverage"
|
||||
}]
|
||||
]
|
||||
}
|
||||
}
|
||||
}
|
10
.eslintignore
Normal file
|
@ -0,0 +1,10 @@
|
|||
/builds/
|
||||
/coverage/
|
||||
/coverage-javascript/
|
||||
/node_modules/
|
||||
/public/
|
||||
/tmp/
|
||||
/vendor/
|
||||
karma.config.js
|
||||
webpack.config.js
|
||||
/app/assets/javascripts/locale/**/*.js
|
33
.eslintrc
Normal file
|
@ -0,0 +1,33 @@
|
|||
{
|
||||
"env": {
|
||||
"jquery": true,
|
||||
"browser": true,
|
||||
"es6": true
|
||||
},
|
||||
"extends": "airbnb-base",
|
||||
"globals": {
|
||||
"_": false,
|
||||
"gl": false,
|
||||
"gon": false,
|
||||
"localStorage": false
|
||||
},
|
||||
"plugins": [
|
||||
"filenames",
|
||||
"import",
|
||||
"html",
|
||||
"promise"
|
||||
],
|
||||
"settings": {
|
||||
"html/html-extensions": [".html", ".html.raw", ".vue"],
|
||||
"import/resolver": {
|
||||
"webpack": {
|
||||
"config": "./config/webpack.config.js"
|
||||
}
|
||||
}
|
||||
},
|
||||
"rules": {
|
||||
"filenames/match-regex": [2, "^[a-z0-9_]+$"],
|
||||
"no-multiple-empty-lines": ["error", { "max": 1 }],
|
||||
"promise/catch-or-return": "error"
|
||||
}
|
||||
}
|
|
@ -1,3 +1,5 @@
|
|||
*.erb
|
||||
lib/gitlab/sanitizers/svg/whitelist.rb
|
||||
lib/gitlab/diff/position_tracer.rb
|
||||
app/policies/project_policy.rb
|
||||
app/models/concerns/relative_positioning.rb
|
||||
|
|
2
.gitattributes
vendored
|
@ -1,2 +0,0 @@
|
|||
CHANGELOG.md merge=union
|
||||
*.js.es6 gitlab-language=javascript
|
10
.gitignore
vendored
|
@ -1,10 +1,13 @@
|
|||
*.log
|
||||
*.swp
|
||||
*.mo
|
||||
*.edit.po
|
||||
.DS_Store
|
||||
.bundle
|
||||
.chef
|
||||
.directory
|
||||
/.envrc
|
||||
eslint-report.html
|
||||
/.gitlab_shell_secret
|
||||
.idea
|
||||
/.rbenv-version
|
||||
|
@ -29,6 +32,7 @@
|
|||
/config/unicorn.rb
|
||||
/config/secrets.yml
|
||||
/config/sidekiq.yml
|
||||
/config/registry.key
|
||||
/coverage/*
|
||||
/coverage-javascript/
|
||||
/db/*.sqlite3
|
||||
|
@ -37,15 +41,19 @@
|
|||
/doc/code/*
|
||||
/dump.rdb
|
||||
/log/*.log*
|
||||
/node_modules/
|
||||
/nohup.out
|
||||
/public/assets/
|
||||
/public/uploads.*
|
||||
/public/uploads/
|
||||
/shared/artifacts/
|
||||
/spec/javascripts/fixtures/blob/pdf/
|
||||
/rails_best_practices_output.html
|
||||
/tags
|
||||
/tmp/*
|
||||
/vendor/bundle/*
|
||||
/builds/*
|
||||
/builds*
|
||||
/shared/*
|
||||
/.gitlab_workhorse_secret
|
||||
/webpack-report/
|
||||
/locale/**/LC_MESSAGES
|
||||
|
|
612
.gitlab-ci.yml
|
@ -1,232 +1,381 @@
|
|||
image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3-git-2.7-phantomjs-2.1"
|
||||
image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.3.3-golang-1.8-git-2.7-phantomjs-2.1-node-7.1-postgresql-9.6"
|
||||
|
||||
cache:
|
||||
key: "ruby-231"
|
||||
key: "ruby-233"
|
||||
paths:
|
||||
- vendor/ruby
|
||||
|
||||
variables:
|
||||
MYSQL_ALLOW_EMPTY_PASSWORD: "1"
|
||||
# retry tests only in CI environment
|
||||
RSPEC_RETRY_RETRY_COUNT: "3"
|
||||
RAILS_ENV: "test"
|
||||
NODE_ENV: "test"
|
||||
SIMPLECOV: "true"
|
||||
SETUP_DB: "true"
|
||||
USE_BUNDLE_INSTALL: "true"
|
||||
GIT_DEPTH: "20"
|
||||
GIT_SUBMODULE_STRATEGY: "none"
|
||||
PHANTOMJS_VERSION: "2.1.1"
|
||||
GET_SOURCES_ATTEMPTS: "3"
|
||||
KNAPSACK_RSPEC_SUITE_REPORT_PATH: knapsack/${CI_PROJECT_NAME}/rspec_report-master.json
|
||||
KNAPSACK_SPINACH_SUITE_REPORT_PATH: knapsack/${CI_PROJECT_NAME}/spinach_report-master.json
|
||||
|
||||
before_script:
|
||||
- source ./scripts/prepare_build.sh
|
||||
- cp config/gitlab.yml.example config/gitlab.yml
|
||||
- bundle --version
|
||||
- '[ "$USE_BUNDLE_INSTALL" != "true" ] || retry bundle install --without postgres production --jobs $(nproc) "${FLAGS[@]}"'
|
||||
- retry gem install knapsack
|
||||
- '[ "$SETUP_DB" != "true" ] || bundle exec rake db:drop db:create db:schema:load db:migrate add_limits_mysql'
|
||||
- source scripts/utils.sh
|
||||
- source scripts/prepare_build.sh
|
||||
|
||||
stages:
|
||||
- build
|
||||
- prepare
|
||||
- test
|
||||
- post-test
|
||||
- pages
|
||||
|
||||
# Prepare and merge knapsack tests
|
||||
# Predefined scopes
|
||||
.dedicated-runner: &dedicated-runner
|
||||
tags:
|
||||
- gitlab-org
|
||||
|
||||
.knapsack-state: &knapsack-state
|
||||
services: []
|
||||
variables:
|
||||
SETUP_DB: "false"
|
||||
USE_BUNDLE_INSTALL: "false"
|
||||
KNAPSACK_S3_BUCKET: "gitlab-ce-cache"
|
||||
cache:
|
||||
key: "knapsack"
|
||||
paths:
|
||||
- knapsack/
|
||||
- knapsack/
|
||||
artifacts:
|
||||
expire_in: 31d
|
||||
paths:
|
||||
- knapsack/
|
||||
- knapsack/
|
||||
|
||||
knapsack:
|
||||
<<: *knapsack-state
|
||||
stage: prepare
|
||||
script:
|
||||
- mkdir -p knapsack/
|
||||
- '[[ -f knapsack/rspec_report.json ]] || echo "{}" > knapsack/rspec_report.json'
|
||||
- '[[ -f knapsack/spinach_report.json ]] || echo "{}" > knapsack/spinach_report.json'
|
||||
.use-pg: &use-pg
|
||||
services:
|
||||
- postgres:9.2
|
||||
- redis:alpine
|
||||
|
||||
update-knapsack:
|
||||
<<: *knapsack-state
|
||||
stage: post-test
|
||||
script:
|
||||
- scripts/merge-reports knapsack/rspec_report.json knapsack/rspec_node_*.json
|
||||
- scripts/merge-reports knapsack/spinach_report.json knapsack/spinach_node_*.json
|
||||
- rm -f knapsack/*_node_*.json
|
||||
only:
|
||||
- master
|
||||
|
||||
# Execute all testing suites
|
||||
|
||||
.use-db: &use-db
|
||||
.use-mysql: &use-mysql
|
||||
services:
|
||||
- mysql:latest
|
||||
- redis:alpine
|
||||
|
||||
.only-master-and-ee-or-mysql: &only-master-and-ee-or-mysql
|
||||
only:
|
||||
- /mysql/
|
||||
- master@gitlab-org/gitlab-ce
|
||||
- master@gitlab/gitlabhq
|
||||
- tags@gitlab-org/gitlab-ce
|
||||
- tags@gitlab/gitlabhq
|
||||
- //@gitlab-org/gitlab-ee
|
||||
- //@gitlab/gitlab-ee
|
||||
|
||||
# Skip all jobs except the ones that begin with 'docs/'.
|
||||
# Used for commits including ONLY documentation changes.
|
||||
# https://docs.gitlab.com/ce/development/writing_documentation.html#testing
|
||||
.except-docs: &except-docs
|
||||
except:
|
||||
- /^docs\/.*/
|
||||
|
||||
.rspec-knapsack: &rspec-knapsack
|
||||
stage: test
|
||||
<<: *use-db
|
||||
<<: *dedicated-runner
|
||||
script:
|
||||
- bundle exec rake assets:precompile 2>/dev/null
|
||||
- JOB_NAME=( $CI_BUILD_NAME )
|
||||
- export CI_NODE_INDEX=${JOB_NAME[1]}
|
||||
- export CI_NODE_TOTAL=${JOB_NAME[2]}
|
||||
- export KNAPSACK_REPORT_PATH=knapsack/rspec_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
|
||||
- JOB_NAME=( $CI_JOB_NAME )
|
||||
- export CI_NODE_INDEX=${JOB_NAME[-2]}
|
||||
- export CI_NODE_TOTAL=${JOB_NAME[-1]}
|
||||
- export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_${JOB_NAME[1]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
|
||||
- export KNAPSACK_GENERATE_REPORT=true
|
||||
- cp knapsack/rspec_report.json ${KNAPSACK_REPORT_PATH}
|
||||
- export CACHE_CLASSES=true
|
||||
- cp ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}
|
||||
- knapsack rspec "--color --format documentation"
|
||||
artifacts:
|
||||
expire_in: 31d
|
||||
when: always
|
||||
paths:
|
||||
- knapsack/
|
||||
- coverage/
|
||||
- coverage/
|
||||
- knapsack/
|
||||
- tmp/capybara/
|
||||
|
||||
.rspec-knapsack-pg: &rspec-knapsack-pg
|
||||
<<: *rspec-knapsack
|
||||
<<: *use-pg
|
||||
<<: *except-docs
|
||||
|
||||
.rspec-knapsack-mysql: &rspec-knapsack-mysql
|
||||
<<: *rspec-knapsack
|
||||
<<: *use-mysql
|
||||
<<: *only-master-and-ee-or-mysql
|
||||
<<: *except-docs
|
||||
|
||||
.spinach-knapsack: &spinach-knapsack
|
||||
stage: test
|
||||
<<: *use-db
|
||||
<<: *dedicated-runner
|
||||
script:
|
||||
- bundle exec rake assets:precompile 2>/dev/null
|
||||
- JOB_NAME=( $CI_BUILD_NAME )
|
||||
- export CI_NODE_INDEX=${JOB_NAME[1]}
|
||||
- export CI_NODE_TOTAL=${JOB_NAME[2]}
|
||||
- export KNAPSACK_REPORT_PATH=knapsack/spinach_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
|
||||
- JOB_NAME=( $CI_JOB_NAME )
|
||||
- export CI_NODE_INDEX=${JOB_NAME[-2]}
|
||||
- export CI_NODE_TOTAL=${JOB_NAME[-1]}
|
||||
- export KNAPSACK_REPORT_PATH=knapsack/${CI_PROJECT_NAME}/${JOB_NAME[0]}_${JOB_NAME[1]}_node_${CI_NODE_INDEX}_${CI_NODE_TOTAL}_report.json
|
||||
- export KNAPSACK_GENERATE_REPORT=true
|
||||
- cp knapsack/spinach_report.json ${KNAPSACK_REPORT_PATH}
|
||||
- export CACHE_CLASSES=true
|
||||
- cp ${KNAPSACK_SPINACH_SUITE_REPORT_PATH} ${KNAPSACK_REPORT_PATH}
|
||||
- knapsack spinach "-r rerun" || retry '[[ -e tmp/spinach-rerun.txt ]] && bundle exec spinach -r rerun $(cat tmp/spinach-rerun.txt)'
|
||||
artifacts:
|
||||
expire_in: 31d
|
||||
when: always
|
||||
paths:
|
||||
- knapsack/
|
||||
- coverage/
|
||||
- coverage/
|
||||
- knapsack/
|
||||
- tmp/capybara/
|
||||
|
||||
rspec 0 20: *rspec-knapsack
|
||||
rspec 1 20: *rspec-knapsack
|
||||
rspec 2 20: *rspec-knapsack
|
||||
rspec 3 20: *rspec-knapsack
|
||||
rspec 4 20: *rspec-knapsack
|
||||
rspec 5 20: *rspec-knapsack
|
||||
rspec 6 20: *rspec-knapsack
|
||||
rspec 7 20: *rspec-knapsack
|
||||
rspec 8 20: *rspec-knapsack
|
||||
rspec 9 20: *rspec-knapsack
|
||||
rspec 10 20: *rspec-knapsack
|
||||
rspec 11 20: *rspec-knapsack
|
||||
rspec 12 20: *rspec-knapsack
|
||||
rspec 13 20: *rspec-knapsack
|
||||
rspec 14 20: *rspec-knapsack
|
||||
rspec 15 20: *rspec-knapsack
|
||||
rspec 16 20: *rspec-knapsack
|
||||
rspec 17 20: *rspec-knapsack
|
||||
rspec 18 20: *rspec-knapsack
|
||||
rspec 19 20: *rspec-knapsack
|
||||
|
||||
spinach 0 10: *spinach-knapsack
|
||||
spinach 1 10: *spinach-knapsack
|
||||
spinach 2 10: *spinach-knapsack
|
||||
spinach 3 10: *spinach-knapsack
|
||||
spinach 4 10: *spinach-knapsack
|
||||
spinach 5 10: *spinach-knapsack
|
||||
spinach 6 10: *spinach-knapsack
|
||||
spinach 7 10: *spinach-knapsack
|
||||
spinach 8 10: *spinach-knapsack
|
||||
spinach 9 10: *spinach-knapsack
|
||||
|
||||
# Execute all testing suites against Ruby 2.1
|
||||
.ruby-21: &ruby-21
|
||||
image: "dev.gitlab.org:5005/gitlab/gitlab-build-images:ruby-2.1-git-2.7-phantomjs-2.1"
|
||||
<<: *use-db
|
||||
only:
|
||||
- master
|
||||
cache:
|
||||
key: "ruby21"
|
||||
paths:
|
||||
- vendor/ruby
|
||||
|
||||
.rspec-knapsack-ruby21: &rspec-knapsack-ruby21
|
||||
<<: *rspec-knapsack
|
||||
<<: *ruby-21
|
||||
|
||||
.spinach-knapsack-ruby21: &spinach-knapsack-ruby21
|
||||
.spinach-knapsack-pg: &spinach-knapsack-pg
|
||||
<<: *spinach-knapsack
|
||||
<<: *ruby-21
|
||||
<<: *use-pg
|
||||
<<: *except-docs
|
||||
|
||||
rspec 0 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 1 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 2 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 3 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 4 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 5 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 6 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 7 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 8 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 9 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 10 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 11 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 12 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 13 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 14 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 15 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 16 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 17 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 18 20 ruby21: *rspec-knapsack-ruby21
|
||||
rspec 19 20 ruby21: *rspec-knapsack-ruby21
|
||||
.spinach-knapsack-mysql: &spinach-knapsack-mysql
|
||||
<<: *spinach-knapsack
|
||||
<<: *use-mysql
|
||||
<<: *only-master-and-ee-or-mysql
|
||||
<<: *except-docs
|
||||
|
||||
spinach 0 10 ruby21: *spinach-knapsack-ruby21
|
||||
spinach 1 10 ruby21: *spinach-knapsack-ruby21
|
||||
spinach 2 10 ruby21: *spinach-knapsack-ruby21
|
||||
spinach 3 10 ruby21: *spinach-knapsack-ruby21
|
||||
spinach 4 10 ruby21: *spinach-knapsack-ruby21
|
||||
spinach 5 10 ruby21: *spinach-knapsack-ruby21
|
||||
spinach 6 10 ruby21: *spinach-knapsack-ruby21
|
||||
spinach 7 10 ruby21: *spinach-knapsack-ruby21
|
||||
spinach 8 10 ruby21: *spinach-knapsack-ruby21
|
||||
spinach 9 10 ruby21: *spinach-knapsack-ruby21
|
||||
# Trigger a package build on omnibus-gitlab repository
|
||||
|
||||
build-package:
|
||||
services: []
|
||||
variables:
|
||||
SETUP_DB: "false"
|
||||
USE_BUNDLE_INSTALL: "false"
|
||||
stage: build
|
||||
when: manual
|
||||
script:
|
||||
# If no branch in omnibus is specified, trigger pipeline against master
|
||||
- if [ -z "$OMNIBUS_BRANCH" ] ; then export OMNIBUS_BRANCH=master ;fi
|
||||
- echo "token=${BUILD_TRIGGER_TOKEN}" > version_details
|
||||
- echo "ref=${OMNIBUS_BRANCH}" >> version_details
|
||||
- echo "variables[ALTERNATIVE_SOURCES]=true" >> version_details
|
||||
- echo "variables[GITLAB_VERSION]=${CI_COMMIT_SHA}" >> version_details
|
||||
# Collect version details of all components
|
||||
- for f in *_VERSION; do echo "variables[$f]=$(cat $f)" >> version_details; done
|
||||
# Trigger the API and pass values collected above as parameters to it
|
||||
- cat version_details | tr '\n' '&' | curl -X POST https://gitlab.com/api/v4/projects/20699/trigger/pipeline --data-binary @-
|
||||
- rm version_details
|
||||
|
||||
# Prepare and merge knapsack tests
|
||||
knapsack:
|
||||
<<: *knapsack-state
|
||||
<<: *dedicated-runner
|
||||
<<: *except-docs
|
||||
stage: prepare
|
||||
script:
|
||||
- mkdir -p knapsack/${CI_PROJECT_NAME}/
|
||||
- wget -O $KNAPSACK_RSPEC_SUITE_REPORT_PATH http://${KNAPSACK_S3_BUCKET}.s3.amazonaws.com/$KNAPSACK_RSPEC_SUITE_REPORT_PATH || rm $KNAPSACK_RSPEC_SUITE_REPORT_PATH
|
||||
- wget -O $KNAPSACK_SPINACH_SUITE_REPORT_PATH http://${KNAPSACK_S3_BUCKET}.s3.amazonaws.com/$KNAPSACK_SPINACH_SUITE_REPORT_PATH || rm $KNAPSACK_SPINACH_SUITE_REPORT_PATH
|
||||
- '[[ -f $KNAPSACK_RSPEC_SUITE_REPORT_PATH ]] || echo "{}" > ${KNAPSACK_RSPEC_SUITE_REPORT_PATH}'
|
||||
- '[[ -f $KNAPSACK_SPINACH_SUITE_REPORT_PATH ]] || echo "{}" > ${KNAPSACK_SPINACH_SUITE_REPORT_PATH}'
|
||||
|
||||
update-knapsack:
|
||||
<<: *knapsack-state
|
||||
<<: *dedicated-runner
|
||||
stage: post-test
|
||||
script:
|
||||
- scripts/merge-reports ${KNAPSACK_RSPEC_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/rspec_pg_node_*.json
|
||||
- scripts/merge-reports ${KNAPSACK_SPINACH_SUITE_REPORT_PATH} knapsack/${CI_PROJECT_NAME}/spinach_pg_node_*.json
|
||||
- '[[ -z ${KNAPSACK_S3_BUCKET} ]] || scripts/sync-reports put $KNAPSACK_S3_BUCKET $KNAPSACK_RSPEC_SUITE_REPORT_PATH $KNAPSACK_SPINACH_SUITE_REPORT_PATH'
|
||||
- rm -f knapsack/${CI_PROJECT_NAME}/*_node_*.json
|
||||
only:
|
||||
- master@gitlab-org/gitlab-ce
|
||||
- master@gitlab-org/gitlab-ee
|
||||
- master@gitlab/gitlabhq
|
||||
- master@gitlab/gitlab-ee
|
||||
|
||||
setup-test-env:
|
||||
<<: *use-pg
|
||||
<<: *dedicated-runner
|
||||
<<: *except-docs
|
||||
stage: prepare
|
||||
script:
|
||||
- node --version
|
||||
- yarn install --pure-lockfile
|
||||
- bundle exec rake gitlab:assets:compile
|
||||
- bundle exec ruby -Ispec -e 'require "spec_helper" ; TestEnv.init'
|
||||
artifacts:
|
||||
expire_in: 7d
|
||||
paths:
|
||||
- node_modules
|
||||
- public/assets
|
||||
- tmp/tests
|
||||
|
||||
rspec pg 0 20: *rspec-knapsack-pg
|
||||
rspec pg 1 20: *rspec-knapsack-pg
|
||||
rspec pg 2 20: *rspec-knapsack-pg
|
||||
rspec pg 3 20: *rspec-knapsack-pg
|
||||
rspec pg 4 20: *rspec-knapsack-pg
|
||||
rspec pg 5 20: *rspec-knapsack-pg
|
||||
rspec pg 6 20: *rspec-knapsack-pg
|
||||
rspec pg 7 20: *rspec-knapsack-pg
|
||||
rspec pg 8 20: *rspec-knapsack-pg
|
||||
rspec pg 9 20: *rspec-knapsack-pg
|
||||
rspec pg 10 20: *rspec-knapsack-pg
|
||||
rspec pg 11 20: *rspec-knapsack-pg
|
||||
rspec pg 12 20: *rspec-knapsack-pg
|
||||
rspec pg 13 20: *rspec-knapsack-pg
|
||||
rspec pg 14 20: *rspec-knapsack-pg
|
||||
rspec pg 15 20: *rspec-knapsack-pg
|
||||
rspec pg 16 20: *rspec-knapsack-pg
|
||||
rspec pg 17 20: *rspec-knapsack-pg
|
||||
rspec pg 18 20: *rspec-knapsack-pg
|
||||
rspec pg 19 20: *rspec-knapsack-pg
|
||||
|
||||
rspec mysql 0 20: *rspec-knapsack-mysql
|
||||
rspec mysql 1 20: *rspec-knapsack-mysql
|
||||
rspec mysql 2 20: *rspec-knapsack-mysql
|
||||
rspec mysql 3 20: *rspec-knapsack-mysql
|
||||
rspec mysql 4 20: *rspec-knapsack-mysql
|
||||
rspec mysql 5 20: *rspec-knapsack-mysql
|
||||
rspec mysql 6 20: *rspec-knapsack-mysql
|
||||
rspec mysql 7 20: *rspec-knapsack-mysql
|
||||
rspec mysql 8 20: *rspec-knapsack-mysql
|
||||
rspec mysql 9 20: *rspec-knapsack-mysql
|
||||
rspec mysql 10 20: *rspec-knapsack-mysql
|
||||
rspec mysql 11 20: *rspec-knapsack-mysql
|
||||
rspec mysql 12 20: *rspec-knapsack-mysql
|
||||
rspec mysql 13 20: *rspec-knapsack-mysql
|
||||
rspec mysql 14 20: *rspec-knapsack-mysql
|
||||
rspec mysql 15 20: *rspec-knapsack-mysql
|
||||
rspec mysql 16 20: *rspec-knapsack-mysql
|
||||
rspec mysql 17 20: *rspec-knapsack-mysql
|
||||
rspec mysql 18 20: *rspec-knapsack-mysql
|
||||
rspec mysql 19 20: *rspec-knapsack-mysql
|
||||
|
||||
spinach pg 0 10: *spinach-knapsack-pg
|
||||
spinach pg 1 10: *spinach-knapsack-pg
|
||||
spinach pg 2 10: *spinach-knapsack-pg
|
||||
spinach pg 3 10: *spinach-knapsack-pg
|
||||
spinach pg 4 10: *spinach-knapsack-pg
|
||||
spinach pg 5 10: *spinach-knapsack-pg
|
||||
spinach pg 6 10: *spinach-knapsack-pg
|
||||
spinach pg 7 10: *spinach-knapsack-pg
|
||||
spinach pg 8 10: *spinach-knapsack-pg
|
||||
spinach pg 9 10: *spinach-knapsack-pg
|
||||
|
||||
spinach mysql 0 10: *spinach-knapsack-mysql
|
||||
spinach mysql 1 10: *spinach-knapsack-mysql
|
||||
spinach mysql 2 10: *spinach-knapsack-mysql
|
||||
spinach mysql 3 10: *spinach-knapsack-mysql
|
||||
spinach mysql 4 10: *spinach-knapsack-mysql
|
||||
spinach mysql 5 10: *spinach-knapsack-mysql
|
||||
spinach mysql 6 10: *spinach-knapsack-mysql
|
||||
spinach mysql 7 10: *spinach-knapsack-mysql
|
||||
spinach mysql 8 10: *spinach-knapsack-mysql
|
||||
spinach mysql 9 10: *spinach-knapsack-mysql
|
||||
|
||||
# Other generic tests
|
||||
|
||||
.ruby-static-analysis: &ruby-static-analysis
|
||||
variables:
|
||||
SIMPLECOV: "false"
|
||||
SETUP_DB: "false"
|
||||
USE_BUNDLE_INSTALL: "true"
|
||||
|
||||
.exec: &exec
|
||||
.rake-exec: &rake-exec
|
||||
<<: *ruby-static-analysis
|
||||
<<: *dedicated-runner
|
||||
<<: *except-docs
|
||||
stage: test
|
||||
script:
|
||||
- bundle exec $CI_BUILD_NAME
|
||||
- bundle exec rake $CI_JOB_NAME
|
||||
|
||||
rubocop: *exec
|
||||
rake haml_lint: *exec
|
||||
rake scss_lint: *exec
|
||||
rake brakeman: *exec
|
||||
rake flay: *exec
|
||||
license_finder: *exec
|
||||
rake downtime_check: *exec
|
||||
rake ce_to_ee_merge_check:
|
||||
<<: *exec
|
||||
only:
|
||||
- branches
|
||||
static-analysis:
|
||||
<<: *ruby-static-analysis
|
||||
<<: *dedicated-runner
|
||||
<<: *except-docs
|
||||
stage: test
|
||||
script:
|
||||
- rm -r node_modules
|
||||
- yarn install --pure-lockfile
|
||||
- scripts/static-analysis
|
||||
|
||||
# Documentation checks:
|
||||
# - Check validity of relative links
|
||||
# - Make sure cURL examples in API docs use the full switches
|
||||
docs lint:
|
||||
image: "registry.gitlab.com/gitlab-org/gitlab-build-images:nanoc-bootstrap-ruby-2.4-alpine"
|
||||
stage: test
|
||||
<<: *dedicated-runner
|
||||
cache: {}
|
||||
dependencies: []
|
||||
before_script: []
|
||||
script:
|
||||
- scripts/lint-doc.sh
|
||||
- mv doc/ /nanoc/content/
|
||||
- cd /nanoc
|
||||
# Build HTML from Markdown
|
||||
- bundle exec nanoc
|
||||
# Check the internal links
|
||||
- bundle exec nanoc check internal_links
|
||||
|
||||
downtime_check:
|
||||
<<: *rake-exec
|
||||
except:
|
||||
- master
|
||||
- tags
|
||||
- /^[\d-]+-stable(-ee)?$/
|
||||
- /^docs\/*/
|
||||
|
||||
ee_compat_check:
|
||||
<<: *rake-exec
|
||||
only:
|
||||
- branches@gitlab-org/gitlab-ce
|
||||
except:
|
||||
- master
|
||||
- tags
|
||||
- /^[\d-]+-stable(-ee)?$/
|
||||
allow_failure: yes
|
||||
cache:
|
||||
key: "ee_compat_check_repo"
|
||||
paths:
|
||||
- ee_compat_check/ee-repo/
|
||||
artifacts:
|
||||
name: "${CI_JOB_NAME}_${CI_COMIT_REF_NAME}_${CI_COMMIT_SHA}"
|
||||
when: on_failure
|
||||
expire_in: 10d
|
||||
paths:
|
||||
- ee_compat_check/patches/*.patch
|
||||
|
||||
rake db:migrate:reset:
|
||||
.db-migrate-reset: &db-migrate-reset
|
||||
stage: test
|
||||
<<: *use-db
|
||||
<<: *dedicated-runner
|
||||
<<: *except-docs
|
||||
script:
|
||||
- rake db:migrate:reset
|
||||
- bundle exec rake db:migrate:reset
|
||||
|
||||
rake db:seed_fu:
|
||||
rake pg db:migrate:reset:
|
||||
<<: *db-migrate-reset
|
||||
<<: *use-pg
|
||||
|
||||
rake mysql db:migrate:reset:
|
||||
<<: *db-migrate-reset
|
||||
<<: *use-mysql
|
||||
|
||||
.db-rollback: &db-rollback
|
||||
stage: test
|
||||
<<: *use-db
|
||||
<<: *dedicated-runner
|
||||
<<: *except-docs
|
||||
script:
|
||||
- bundle exec rake db:rollback STEP=120
|
||||
- bundle exec rake db:migrate
|
||||
|
||||
rake pg db:rollback:
|
||||
<<: *db-rollback
|
||||
<<: *use-pg
|
||||
|
||||
rake mysql db:rollback:
|
||||
<<: *db-rollback
|
||||
<<: *use-mysql
|
||||
|
||||
.db-seed_fu: &db-seed_fu
|
||||
stage: test
|
||||
<<: *dedicated-runner
|
||||
<<: *except-docs
|
||||
variables:
|
||||
SIZE: "1"
|
||||
SETUP_DB: "false"
|
||||
|
@ -241,64 +390,91 @@ rake db:seed_fu:
|
|||
paths:
|
||||
- log/development.log
|
||||
|
||||
teaspoon:
|
||||
rake pg db:seed_fu:
|
||||
<<: *db-seed_fu
|
||||
<<: *use-pg
|
||||
|
||||
rake mysql db:seed_fu:
|
||||
<<: *db-seed_fu
|
||||
<<: *use-mysql
|
||||
|
||||
rake gitlab:assets:compile:
|
||||
stage: test
|
||||
<<: *use-db
|
||||
<<: *dedicated-runner
|
||||
<<: *except-docs
|
||||
dependencies: []
|
||||
variables:
|
||||
NODE_ENV: "production"
|
||||
RAILS_ENV: "production"
|
||||
SETUP_DB: "false"
|
||||
USE_DB: "false"
|
||||
SKIP_STORAGE_VALIDATION: "true"
|
||||
WEBPACK_REPORT: "true"
|
||||
script:
|
||||
- curl --silent --location https://deb.nodesource.com/setup_6.x | bash -
|
||||
- apt-get install --assume-yes nodejs
|
||||
- npm install --global istanbul
|
||||
- teaspoon
|
||||
- bundle exec rake yarn:install gitlab:assets:compile
|
||||
artifacts:
|
||||
name: webpack-report
|
||||
expire_in: 31d
|
||||
paths:
|
||||
- webpack-report/
|
||||
|
||||
rake karma:
|
||||
stage: test
|
||||
<<: *use-pg
|
||||
<<: *dedicated-runner
|
||||
<<: *except-docs
|
||||
variables:
|
||||
BABEL_ENV: "coverage"
|
||||
script:
|
||||
- rm -r node_modules
|
||||
- yarn install --pure-lockfile
|
||||
- bundle exec rake karma
|
||||
coverage: '/^Statements *: (\d+\.\d+%)/'
|
||||
artifacts:
|
||||
name: coverage-javascript
|
||||
expire_in: 31d
|
||||
paths:
|
||||
- coverage-javascript/default/
|
||||
- coverage-javascript/
|
||||
|
||||
lint-doc:
|
||||
.migration-paths: &migration-paths
|
||||
stage: test
|
||||
image: "phusion/baseimage:latest"
|
||||
before_script: []
|
||||
script:
|
||||
- scripts/lint-doc.sh
|
||||
|
||||
bundler:check:
|
||||
stage: test
|
||||
<<: *ruby-static-analysis
|
||||
script:
|
||||
- bundle check
|
||||
|
||||
bundler:audit:
|
||||
stage: test
|
||||
<<: *ruby-static-analysis
|
||||
only:
|
||||
- master
|
||||
script:
|
||||
- "bundle exec bundle-audit check --update --ignore OSVDB-115941"
|
||||
|
||||
migration paths:
|
||||
stage: test
|
||||
<<: *use-db
|
||||
<<: *dedicated-runner
|
||||
variables:
|
||||
SETUP_DB: "false"
|
||||
only:
|
||||
- master@gitlab-org/gitlab-ce
|
||||
- master@gitlab-org/gitlab-ee
|
||||
- master@gitlab/gitlabhq
|
||||
- master@gitlab/gitlab-ee
|
||||
script:
|
||||
- git checkout HEAD .
|
||||
- git fetch --tags
|
||||
- git checkout v8.5.9
|
||||
- 'echo test: unix:/var/opt/gitlab/redis/redis.socket > config/resque.yml'
|
||||
- bundle install --without postgres production --jobs $(nproc) "${FLAGS[@]}" --retry=3
|
||||
- rake db:drop db:create db:schema:load db:seed_fu
|
||||
- git checkout $CI_BUILD_REF
|
||||
- rake db:migrate
|
||||
- git fetch origin v8.14.10
|
||||
- git checkout -f FETCH_HEAD
|
||||
- bundle install $BUNDLE_INSTALL_FLAGS
|
||||
- bundle exec rake db:drop db:create db:schema:load db:seed_fu
|
||||
- git checkout $CI_COMMIT_SHA
|
||||
- bundle install $BUNDLE_INSTALL_FLAGS
|
||||
- . scripts/prepare_build.sh
|
||||
- bundle exec rake db:migrate
|
||||
|
||||
migration pg paths:
|
||||
<<: *migration-paths
|
||||
<<: *use-pg
|
||||
|
||||
migration mysql paths:
|
||||
<<: *migration-paths
|
||||
<<: *use-mysql
|
||||
|
||||
coverage:
|
||||
stage: post-test
|
||||
services: []
|
||||
<<: *dedicated-runner
|
||||
<<: *except-docs
|
||||
variables:
|
||||
SETUP_DB: "false"
|
||||
USE_BUNDLE_INSTALL: "true"
|
||||
script:
|
||||
- bundle exec scripts/merge-simplecov
|
||||
coverage: '/LOC \((\d+\.\d+%)\) covered.$/'
|
||||
artifacts:
|
||||
name: coverage
|
||||
expire_in: 31d
|
||||
|
@ -306,53 +482,66 @@ coverage:
|
|||
- coverage/index.html
|
||||
- coverage/assets/
|
||||
|
||||
# Trigger docs build
|
||||
trigger_docs:
|
||||
lint:javascript:report:
|
||||
<<: *dedicated-runner
|
||||
<<: *except-docs
|
||||
stage: post-test
|
||||
before_script: []
|
||||
script:
|
||||
- find app/ spec/ -name '*.js' -exec sed --in-place 's|/\* eslint-disable .*\*/||' {} \; # run report over all files
|
||||
- yarn run eslint-report || true # ignore exit code
|
||||
artifacts:
|
||||
name: eslint-report
|
||||
expire_in: 31d
|
||||
paths:
|
||||
- eslint-report.html
|
||||
|
||||
# Trigger docs build
|
||||
# https://gitlab.com/gitlab-com/doc-gitlab-com/blob/master/README.md#deployment-process
|
||||
trigger_docs:
|
||||
stage: post-test
|
||||
image: "alpine"
|
||||
<<: *dedicated-runner
|
||||
before_script:
|
||||
- apk update && apk add curl
|
||||
variables:
|
||||
GIT_STRATEGY: "none"
|
||||
cache: {}
|
||||
artifacts: {}
|
||||
script:
|
||||
- "curl -X POST -F token=${DOCS_TRIGGER_TOKEN} -F ref=master https://gitlab.com/api/v3/projects/38069/trigger/builds"
|
||||
only:
|
||||
- master
|
||||
|
||||
# Notify slack in the end
|
||||
|
||||
notify:slack:
|
||||
stage: post-test
|
||||
variables:
|
||||
SETUP_DB: "false"
|
||||
USE_BUNDLE_INSTALL: "false"
|
||||
script:
|
||||
- ./scripts/notify_slack.sh "#builds" "Build on \`$CI_BUILD_REF_NAME\` failed! Commit \`$(git log -1 --oneline)\` See <https://gitlab.com/gitlab-org/$(basename "$PWD")/commit/"$CI_BUILD_REF"/builds>"
|
||||
when: on_failure
|
||||
- "HTTP_STATUS=$(curl -X POST -F token=${DOCS_TRIGGER_TOKEN} -F ref=master -F variables[PROJECT]=${CI_PROJECT_NAME} --silent --output curl.log --write-out '%{http_code}' https://gitlab.com/api/v3/projects/1794617/trigger/builds)"
|
||||
- if [ "${HTTP_STATUS}" -ne "201" ]; then echo "Error ${HTTP_STATUS}"; cat curl.log; echo; exit 1; fi
|
||||
only:
|
||||
- master@gitlab-org/gitlab-ce
|
||||
- tags@gitlab-org/gitlab-ce
|
||||
- master@gitlab-org/gitlab-ee
|
||||
- tags@gitlab-org/gitlab-ee
|
||||
|
||||
pages:
|
||||
before_script: []
|
||||
stage: pages
|
||||
<<: *dedicated-runner
|
||||
dependencies:
|
||||
- coverage
|
||||
- teaspoon
|
||||
- rake karma
|
||||
- rake gitlab:assets:compile
|
||||
- lint:javascript:report
|
||||
script:
|
||||
- mv public/ .public/
|
||||
- mkdir public/
|
||||
- mv coverage public/coverage-ruby
|
||||
- mv coverage-javascript/default/ public/coverage-javascript/
|
||||
- mv coverage/ public/coverage-ruby/ || true
|
||||
- mv coverage-javascript/ public/coverage-javascript/ || true
|
||||
- mv eslint-report.html public/ || true
|
||||
- mv webpack-report/ public/webpack-report/ || true
|
||||
artifacts:
|
||||
paths:
|
||||
- public
|
||||
only:
|
||||
- master
|
||||
- master@gitlab-org/gitlab-ce
|
||||
- master@gitlab-org/gitlab-ee
|
||||
|
||||
# Insurance in case a gem needed by one of our releases gets yanked from
|
||||
# rubygems.org in the future.
|
||||
cache gems:
|
||||
<<: *dedicated-runner
|
||||
only:
|
||||
- tags
|
||||
variables:
|
||||
|
@ -362,3 +551,6 @@ cache gems:
|
|||
artifacts:
|
||||
paths:
|
||||
- vendor/cache
|
||||
only:
|
||||
- master@gitlab-org/gitlab-ce
|
||||
- master@gitlab-org/gitlab-ee
|
||||
|
|
|
@ -1,3 +1,17 @@
|
|||
Please read this!
|
||||
|
||||
Before opening a new issue, make sure to search for keywords in the issues
|
||||
filtered by the "regression" or "bug" label:
|
||||
|
||||
- https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name%5B%5D=regression
|
||||
- https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name%5B%5D=bug
|
||||
|
||||
and verify the issue you're about to submit isn't a duplicate.
|
||||
|
||||
Please remove this notice if you're confident your issue isn't a duplicate.
|
||||
|
||||
------
|
||||
|
||||
### Summary
|
||||
|
||||
(Summarize the bug encountered concisely)
|
||||
|
@ -6,14 +20,14 @@
|
|||
|
||||
(How one can reproduce the issue - this is very important)
|
||||
|
||||
### Expected behavior
|
||||
|
||||
(What you should see instead)
|
||||
|
||||
### Actual behavior
|
||||
### What is the current *bug* behavior?
|
||||
|
||||
(What actually happens)
|
||||
|
||||
### What is the expected *correct* behavior?
|
||||
|
||||
(What you should see instead)
|
||||
|
||||
### Relevant logs and/or screenshots
|
||||
|
||||
(Paste any relevant logs - please use code blocks (```) to format console output,
|
||||
|
@ -21,8 +35,27 @@ logs, and code as it's very hard to read otherwise.)
|
|||
|
||||
### Output of checks
|
||||
|
||||
(If you are reporting a bug on GitLab.com, write: This bug happens on GitLab.com)
|
||||
|
||||
#### Results of GitLab environment info
|
||||
|
||||
<details>
|
||||
<pre>
|
||||
|
||||
(For installations with omnibus-gitlab package run and paste the output of:
|
||||
`sudo gitlab-rake gitlab:env:info`)
|
||||
|
||||
(For installations from source run and paste the output of:
|
||||
`sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
|
||||
|
||||
</pre>
|
||||
</details>
|
||||
|
||||
#### Results of GitLab application Check
|
||||
|
||||
<details>
|
||||
<pre>
|
||||
|
||||
(For installations with omnibus-gitlab package run and paste the output of:
|
||||
`sudo gitlab-rake gitlab:check SANITIZE=true`)
|
||||
|
||||
|
@ -31,14 +64,11 @@ logs, and code as it's very hard to read otherwise.)
|
|||
|
||||
(we will only investigate if the tests are passing)
|
||||
|
||||
#### Results of GitLab environment info
|
||||
|
||||
(For installations with omnibus-gitlab package run and paste the output of:
|
||||
`sudo gitlab-rake gitlab:env:info`)
|
||||
|
||||
(For installations from source run and paste the output of:
|
||||
`sudo -u git -H bundle exec rake gitlab:env:info RAILS_ENV=production`)
|
||||
</pre>
|
||||
</details>
|
||||
|
||||
### Possible fixes
|
||||
|
||||
(If you can, link to the line of code that might be responsible for the problem)
|
||||
|
||||
/label ~bug
|
||||
|
|
|
@ -1,3 +1,16 @@
|
|||
Please read this!
|
||||
|
||||
Before opening a new issue, make sure to search for keywords in the issues
|
||||
filtered by the "feature proposal" label:
|
||||
|
||||
- https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name%5B%5D=feature+proposal
|
||||
|
||||
and verify the issue you're about to submit isn't a duplicate.
|
||||
|
||||
Please remove this notice if you're confident your issue isn't a duplicate.
|
||||
|
||||
------
|
||||
|
||||
### Description
|
||||
|
||||
(Include problem, use cases, benefits, and/or goals)
|
||||
|
@ -5,3 +18,15 @@
|
|||
### Proposal
|
||||
|
||||
### Links / references
|
||||
|
||||
### Documentation blurb
|
||||
|
||||
(Write the start of the documentation of this feature here, include:
|
||||
|
||||
1. Why should someone use it; what's the underlying problem.
|
||||
2. What is the solution.
|
||||
3. How does someone use this
|
||||
|
||||
During implementation, this can then be copied and used as a starter for the documentation.)
|
||||
|
||||
/label ~"feature proposal"
|
||||
|
|
17
.gitlab/issue_templates/Research Proposal.md
Normal file
|
@ -0,0 +1,17 @@
|
|||
### Background:
|
||||
|
||||
(Include problem, use cases, benefits, and/or goals)
|
||||
|
||||
**What questions are you trying to answer?**
|
||||
|
||||
**Are you looking to verify an existing hypothesis or uncover new issues you should be exploring?**
|
||||
|
||||
**What is the backstory of this project and how does it impact the approach?**
|
||||
|
||||
**What do you already know about the areas you are exploring?**
|
||||
|
||||
**What does success look like at the end of the project?**
|
||||
|
||||
### Links / references:
|
||||
|
||||
/label ~"UX research"
|
|
@ -7,10 +7,10 @@ exclude:
|
|||
|
||||
linters:
|
||||
AltText:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
ClassAttributeWithStaticValue:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
ClassesBeforeIds:
|
||||
enabled: false
|
||||
|
@ -29,14 +29,14 @@ linters:
|
|||
enabled: true
|
||||
|
||||
FinalNewline:
|
||||
enabled: false
|
||||
enabled: true
|
||||
present: true
|
||||
|
||||
HtmlAttributes:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
ImplicitDiv:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
LeadingCommentSpace:
|
||||
enabled: false
|
||||
|
@ -46,7 +46,7 @@ linters:
|
|||
max: 80
|
||||
|
||||
MultilinePipe:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
MultilineScript:
|
||||
enabled: true
|
||||
|
@ -77,13 +77,13 @@ linters:
|
|||
- Style/WhileUntilModifier
|
||||
|
||||
RubyComments:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
SpaceBeforeScript:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
SpaceInsideHashAttributes:
|
||||
enabled: false
|
||||
enabled: true
|
||||
style: space
|
||||
|
||||
Indentation:
|
||||
|
@ -94,10 +94,10 @@ linters:
|
|||
enabled: true
|
||||
|
||||
TrailingWhitespace:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
UnnecessaryInterpolation:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
UnnecessaryStringOutput:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
|
330
.rubocop.yml
|
@ -17,21 +17,19 @@ AllCops:
|
|||
# Exclude some GitLab files
|
||||
Exclude:
|
||||
- 'vendor/**/*'
|
||||
- 'node_modules/**/*'
|
||||
- 'db/*'
|
||||
- 'db/fixtures/**/*'
|
||||
- 'tmp/**/*'
|
||||
- 'bin/**/*'
|
||||
- 'lib/backup/**/*'
|
||||
- 'lib/ci/backup/**/*'
|
||||
- 'lib/tasks/**/*'
|
||||
- 'lib/ci/migrate/**/*'
|
||||
- 'lib/email_validator.rb'
|
||||
- 'lib/gitlab/upgrader.rb'
|
||||
- 'lib/gitlab/seeder.rb'
|
||||
- 'generator_templates/**/*'
|
||||
- 'builds/**/*'
|
||||
|
||||
# Gems in consecutive lines should be alphabetically sorted
|
||||
Bundler/OrderedGems:
|
||||
Enabled: false
|
||||
|
||||
##################### Style ##################################
|
||||
# Style #######################################################################
|
||||
|
||||
# Check indentation of private/protected visibility modifiers.
|
||||
Style/AccessModifierIndentation:
|
||||
|
@ -54,6 +52,16 @@ Style/AlignArray:
|
|||
Style/AlignHash:
|
||||
Enabled: true
|
||||
|
||||
# Here we check if the parameters on a multi-line method call or
|
||||
# definition are aligned.
|
||||
Style/AlignParameters:
|
||||
Enabled: false
|
||||
|
||||
# Whether `and` and `or` are banned only in conditionals (conditionals)
|
||||
# or completely (always).
|
||||
Style/AndOr:
|
||||
Enabled: true
|
||||
|
||||
# Use `Array#join` instead of `Array#*`.
|
||||
Style/ArrayJoin:
|
||||
Enabled: true
|
||||
|
@ -78,15 +86,24 @@ Style/BeginBlock:
|
|||
Style/BlockComments:
|
||||
Enabled: true
|
||||
|
||||
# Put end statement of multiline block on its own line.
|
||||
Style/BlockEndNewline:
|
||||
Enabled: true
|
||||
|
||||
# Avoid using {...} for multi-line blocks (multiline chaining is # always
|
||||
# ugly). Prefer {...} over do...end for single-line blocks.
|
||||
Style/BlockDelimiters:
|
||||
Enabled: true
|
||||
|
||||
# Put end statement of multiline block on its own line.
|
||||
Style/BlockEndNewline:
|
||||
Enabled: true
|
||||
|
||||
# This cop checks for braces around the last parameter in a method call
|
||||
# if the last parameter is a hash.
|
||||
Style/BracesAroundHashParameters:
|
||||
Enabled: false
|
||||
|
||||
# This cop checks for uses of the case equality operator(===).
|
||||
Style/CaseEquality:
|
||||
Enabled: false
|
||||
|
||||
# Indentation of when in a case/when/[else/]end.
|
||||
Style/CaseIndentation:
|
||||
Enabled: true
|
||||
|
@ -105,7 +122,7 @@ Style/ClassAndModuleChildren:
|
|||
|
||||
# Enforces consistent use of `Object#is_a?` or `Object#kind_of?`.
|
||||
Style/ClassCheck:
|
||||
Enabled: false
|
||||
Enabled: true
|
||||
|
||||
# Use self when defining module/class methods.
|
||||
Style/ClassMethods:
|
||||
|
@ -115,10 +132,26 @@ Style/ClassMethods:
|
|||
Style/ClassVars:
|
||||
Enabled: true
|
||||
|
||||
# This cop checks for methods invoked via the :: operator instead
|
||||
# of the . operator (like FileUtils::rmdir instead of FileUtils.rmdir).
|
||||
Style/ColonMethodCall:
|
||||
Enabled: true
|
||||
|
||||
# This cop checks that comment annotation keywords are written according
|
||||
# to guidelines.
|
||||
Style/CommentAnnotation:
|
||||
Enabled: false
|
||||
|
||||
# Indentation of comments.
|
||||
Style/CommentIndentation:
|
||||
Enabled: true
|
||||
|
||||
# Check for `if` and `case` statements where each branch is used for
|
||||
# assignment to the same variable when using the return of the
|
||||
# condition can be used instead.
|
||||
Style/ConditionalAssignment:
|
||||
Enabled: true
|
||||
|
||||
# Constants should use SCREAMING_SNAKE_CASE.
|
||||
Style/ConstantName:
|
||||
Enabled: true
|
||||
|
@ -131,13 +164,19 @@ Style/DefWithParentheses:
|
|||
Style/Documentation:
|
||||
Enabled: false
|
||||
|
||||
# This cop checks for uses of double negation (!!) to convert something
|
||||
# to a boolean value. As this is both cryptic and usually redundant, it
|
||||
# should be avoided.
|
||||
Style/DoubleNegation:
|
||||
Enabled: false
|
||||
|
||||
# Align elses and elsifs correctly.
|
||||
Style/ElseAlignment:
|
||||
Enabled: true
|
||||
|
||||
# Use empty lines between defs.
|
||||
Style/EmptyLineBetweenDefs:
|
||||
Enabled: false
|
||||
Enabled: true
|
||||
|
||||
# Don't use several empty lines in a row.
|
||||
Style/EmptyLines:
|
||||
|
@ -155,14 +194,14 @@ Style/EmptyLinesAroundBlockBody:
|
|||
Style/EmptyLinesAroundClassBody:
|
||||
Enabled: true
|
||||
|
||||
# Keeps track of empty lines around module bodies.
|
||||
Style/EmptyLinesAroundModuleBody:
|
||||
Enabled: true
|
||||
|
||||
# Keeps track of empty lines around method bodies.
|
||||
Style/EmptyLinesAroundMethodBody:
|
||||
Enabled: true
|
||||
|
||||
# Keeps track of empty lines around module bodies.
|
||||
Style/EmptyLinesAroundModuleBody:
|
||||
Enabled: true
|
||||
|
||||
# Avoid the use of END blocks.
|
||||
Style/EndBlock:
|
||||
Enabled: true
|
||||
|
@ -195,24 +234,28 @@ Style/For:
|
|||
# Checks if there is a magic comment to enforce string literals
|
||||
Style/FrozenStringLiteralComment:
|
||||
Enabled: false
|
||||
|
||||
# Do not introduce global variables.
|
||||
Style/GlobalVars:
|
||||
Enabled: true
|
||||
Exclude:
|
||||
- 'lib/backup/**/*'
|
||||
- 'lib/tasks/**/*'
|
||||
|
||||
# Prefer Ruby 1.9 hash syntax `{ a: 1, b: 2 }`
|
||||
# over 1.8 syntax `{ :a => 1, :b => 2 }`.
|
||||
Style/HashSyntax:
|
||||
Enabled: true
|
||||
|
||||
# Do not use if x; .... Use the ternary operator instead.
|
||||
Style/IfWithSemicolon:
|
||||
Enabled: true
|
||||
|
||||
# Checks that conditional statements do not have an identical line at the
|
||||
# end of each branch, which can validly be moved out of the conditional.
|
||||
Style/IdenticalConditionalBranches:
|
||||
Enabled: true
|
||||
|
||||
# Do not use if x; .... Use the ternary operator instead.
|
||||
Style/IfWithSemicolon:
|
||||
Enabled: true
|
||||
|
||||
# Checks the indentation of the first line of the right-hand-side of a
|
||||
# multi-line assignment.
|
||||
Style/IndentAssignment:
|
||||
|
@ -253,7 +296,7 @@ Style/ModuleFunction:
|
|||
# Checks that the closing brace in an array literal is either on the same line
|
||||
# as the last array element, or a new line.
|
||||
Style/MultilineArrayBraceLayout:
|
||||
Enabled: false
|
||||
Enabled: true
|
||||
EnforcedStyle: symmetrical
|
||||
|
||||
# Avoid multi-line chains of blocks.
|
||||
|
@ -267,7 +310,7 @@ Style/MultilineBlockLayout:
|
|||
# Checks that the closing brace in a hash literal is either on the same line as
|
||||
# the last hash element, or a new line.
|
||||
Style/MultilineHashBraceLayout:
|
||||
Enabled: false
|
||||
Enabled: true
|
||||
EnforcedStyle: symmetrical
|
||||
|
||||
# Do not use then for multi-line if/unless.
|
||||
|
@ -292,12 +335,21 @@ Style/MultilineMethodDefinitionBraceLayout:
|
|||
|
||||
# Checks indentation of binary operations that span more than one line.
|
||||
Style/MultilineOperationIndentation:
|
||||
Enabled: false
|
||||
Enabled: true
|
||||
EnforcedStyle: indented
|
||||
|
||||
# Avoid multi-line `? :` (the ternary operator), use if/unless instead.
|
||||
Style/MultilineTernaryOperator:
|
||||
Enabled: true
|
||||
|
||||
# This cop checks whether some constant value isn't a
|
||||
# mutable literal (e.g. array or hash).
|
||||
Style/MutableConstant:
|
||||
Enabled: true
|
||||
Exclude:
|
||||
- 'db/migrate/**/*'
|
||||
- 'db/post_migrate/**/*'
|
||||
|
||||
# Favor unless over if for negative conditions (or control flow or).
|
||||
Style/NegatedIf:
|
||||
Enabled: true
|
||||
|
@ -338,12 +390,12 @@ Style/OpMethod:
|
|||
Style/ParenthesesAroundCondition:
|
||||
Enabled: true
|
||||
|
||||
# Checks for parentheses that seem not to serve any purpose.
|
||||
Style/RedundantParentheses:
|
||||
# Checks for an obsolete RuntimeException argument in raise/fail.
|
||||
Style/RedundantException:
|
||||
Enabled: true
|
||||
|
||||
# Don't use return where it's not required.
|
||||
Style/RedundantReturn:
|
||||
# Checks for parentheses that seem not to serve any purpose.
|
||||
Style/RedundantParentheses:
|
||||
Enabled: true
|
||||
|
||||
# Don't use semicolons to terminate expressions.
|
||||
|
@ -400,6 +452,10 @@ Style/SpaceBeforeComment:
|
|||
Style/SpaceBeforeSemicolon:
|
||||
Enabled: true
|
||||
|
||||
# Checks for spaces inside square brackets.
|
||||
Style/SpaceInsideBrackets:
|
||||
Enabled: true
|
||||
|
||||
# Use spaces inside hash literal braces - or don't.
|
||||
Style/SpaceInsideHashLiteralBraces:
|
||||
Enabled: true
|
||||
|
@ -436,6 +492,10 @@ Style/Tab:
|
|||
Style/TrailingBlankLines:
|
||||
Enabled: true
|
||||
|
||||
# This cop checks for trailing comma in array and hash literals.
|
||||
Style/TrailingCommaInLiteral:
|
||||
Enabled: false
|
||||
|
||||
# Checks for %W when interpolation is not needed.
|
||||
Style/UnneededCapitalW:
|
||||
Enabled: true
|
||||
|
@ -471,15 +531,23 @@ Style/WhileUntilModifier:
|
|||
|
||||
# Use %w or %W for arrays of words.
|
||||
Style/WordArray:
|
||||
Enabled: false
|
||||
Enabled: true
|
||||
|
||||
#################### Metrics ################################
|
||||
# Use `proc` instead of `Proc.new`.
|
||||
Style/Proc:
|
||||
Enabled: true
|
||||
|
||||
# Metrics #####################################################################
|
||||
|
||||
# A calculated magnitude based on number of assignments,
|
||||
# branches, and conditions.
|
||||
Metrics/AbcSize:
|
||||
Enabled: true
|
||||
Max: 60
|
||||
Max: 57.08
|
||||
|
||||
# This cop checks if the length of a block exceeds some maximum value.
|
||||
Metrics/BlockLength:
|
||||
Enabled: false
|
||||
|
||||
# Avoid excessive block nesting.
|
||||
Metrics/BlockNesting:
|
||||
|
@ -494,7 +562,7 @@ Metrics/ClassLength:
|
|||
# of test cases needed to validate a method.
|
||||
Metrics/CyclomaticComplexity:
|
||||
Enabled: true
|
||||
Max: 17
|
||||
Max: 16
|
||||
|
||||
# Limit lines to 80 characters.
|
||||
Metrics/LineLength:
|
||||
|
@ -518,23 +586,23 @@ Metrics/PerceivedComplexity:
|
|||
Enabled: true
|
||||
Max: 18
|
||||
|
||||
|
||||
#################### Lint ################################
|
||||
|
||||
# Checks for useless access modifiers.
|
||||
Lint/UselessAccessModifier:
|
||||
Enabled: true
|
||||
|
||||
# Checks for attempts to use `private` or `protected` to set the visibility
|
||||
# of a class method, which does not work.
|
||||
Lint/IneffectiveAccessModifier:
|
||||
Enabled: false
|
||||
# Lint ########################################################################
|
||||
|
||||
# Checks for ambiguous operators in the first argument of a method invocation
|
||||
# without parentheses.
|
||||
Lint/AmbiguousOperator:
|
||||
Enabled: true
|
||||
|
||||
# This cop checks for ambiguous regexp literals in the first argument of
|
||||
# a method invocation without parentheses.
|
||||
Lint/AmbiguousRegexpLiteral:
|
||||
Enabled: false
|
||||
|
||||
# This cop checks for assignments in the conditions of
|
||||
# if/while/until.
|
||||
Lint/AssignmentInCondition:
|
||||
Enabled: false
|
||||
|
||||
# Align block ends correctly.
|
||||
Lint/BlockAlignment:
|
||||
Enabled: true
|
||||
|
@ -572,6 +640,10 @@ Lint/ElseLayout:
|
|||
Lint/EmptyEnsure:
|
||||
Enabled: true
|
||||
|
||||
# Checks for the presence of `when` branches without a body.
|
||||
Lint/EmptyWhen:
|
||||
Enabled: true
|
||||
|
||||
# Align ends correctly.
|
||||
Lint/EndAlignment:
|
||||
Enabled: true
|
||||
|
@ -584,10 +656,6 @@ Lint/EndInMethod:
|
|||
Lint/EnsureReturn:
|
||||
Enabled: true
|
||||
|
||||
# The use of eval represents a serious security risk.
|
||||
Lint/Eval:
|
||||
Enabled: true
|
||||
|
||||
# Catches floating-point literals too large or small for Ruby to represent.
|
||||
Lint/FloatOutOfRange:
|
||||
Enabled: true
|
||||
|
@ -596,11 +664,20 @@ Lint/FloatOutOfRange:
|
|||
Lint/FormatParameterMismatch:
|
||||
Enabled: true
|
||||
|
||||
# This cop checks for *rescue* blocks with no body.
|
||||
Lint/HandleExceptions:
|
||||
Enabled: false
|
||||
|
||||
# Checks for adjacent string literals on the same line, which could better be
|
||||
# represented as a single string literal.
|
||||
Lint/ImplicitStringConcatenation:
|
||||
Enabled: true
|
||||
|
||||
# Checks for attempts to use `private` or `protected` to set the visibility
|
||||
# of a class method, which does not work.
|
||||
Lint/IneffectiveAccessModifier:
|
||||
Enabled: false
|
||||
|
||||
# Checks for invalid character literals with a non-escaped whitespace
|
||||
# character.
|
||||
Lint/InvalidCharacterLiteral:
|
||||
|
@ -614,6 +691,10 @@ Lint/LiteralInCondition:
|
|||
Lint/LiteralInInterpolation:
|
||||
Enabled: true
|
||||
|
||||
# This cop checks for uses of *begin...end while/until something*.
|
||||
Lint/Loop:
|
||||
Enabled: false
|
||||
|
||||
# Do not use nested method definitions.
|
||||
Lint/NestedMethodDefinition:
|
||||
Enabled: true
|
||||
|
@ -643,6 +724,11 @@ Lint/RescueException:
|
|||
Lint/ShadowedException:
|
||||
Enabled: false
|
||||
|
||||
# This cop looks for use of the same name as outer local variables
|
||||
# for block arguments or block local variables.
|
||||
Lint/ShadowingOuterLocalVariable:
|
||||
Enabled: false
|
||||
|
||||
# Checks for Object#to_s usage in string interpolation.
|
||||
Lint/StringConversionInInterpolation:
|
||||
Enabled: true
|
||||
|
@ -651,16 +737,36 @@ Lint/StringConversionInInterpolation:
|
|||
Lint/UnderscorePrefixedVariableName:
|
||||
Enabled: true
|
||||
|
||||
# This cop checks for using Fixnum or Bignum constant
|
||||
Lint/UnifiedInteger:
|
||||
Enabled: true
|
||||
|
||||
# Checks for rubocop:disable comments that can be removed.
|
||||
# Note: this cop is not disabled when disabling all cops.
|
||||
# It must be explicitly disabled.
|
||||
Lint/UnneededDisable:
|
||||
Enabled: false
|
||||
|
||||
# This cop checks for unneeded usages of splat expansion
|
||||
Lint/UnneededSplatExpansion:
|
||||
Enabled: false
|
||||
|
||||
# Unreachable code.
|
||||
Lint/UnreachableCode:
|
||||
Enabled: true
|
||||
|
||||
# This cop checks for unused block arguments.
|
||||
Lint/UnusedBlockArgument:
|
||||
Enabled: false
|
||||
|
||||
# This cop checks for unused method arguments.
|
||||
Lint/UnusedMethodArgument:
|
||||
Enabled: false
|
||||
|
||||
# Checks for useless access modifiers.
|
||||
Lint/UselessAccessModifier:
|
||||
Enabled: true
|
||||
|
||||
# Checks for useless assignment to a local variable.
|
||||
Lint/UselessAssignment:
|
||||
Enabled: true
|
||||
|
@ -681,8 +787,7 @@ Lint/UselessSetterCall:
|
|||
Lint/Void:
|
||||
Enabled: true
|
||||
|
||||
|
||||
##################### Performance ############################
|
||||
# Performance #################################################################
|
||||
|
||||
# Use `casecmp` rather than `downcase ==`.
|
||||
Performance/Casecmp:
|
||||
|
@ -701,6 +806,22 @@ Performance/LstripRstrip:
|
|||
Performance/RangeInclude:
|
||||
Enabled: true
|
||||
|
||||
# This cop identifies the use of a `&block` parameter and `block.call`
|
||||
# where `yield` would do just as well.
|
||||
Performance/RedundantBlockCall:
|
||||
Enabled: true
|
||||
|
||||
# This cop identifies use of `Regexp#match` or `String#match in a context
|
||||
# where the integral return value of `=~` would do just as well.
|
||||
Performance/RedundantMatch:
|
||||
Enabled: true
|
||||
|
||||
# This cop identifies places where `Hash#merge!` can be replaced by
|
||||
# `Hash#[]=`.
|
||||
Performance/RedundantMerge:
|
||||
Enabled: true
|
||||
MaxKeyValuePairs: 1
|
||||
|
||||
# Use `sort` instead of `sort_by { |x| x }`.
|
||||
Performance/RedundantSortBy:
|
||||
Enabled: true
|
||||
|
@ -720,8 +841,18 @@ Performance/StringReplacement:
|
|||
Performance/TimesMap:
|
||||
Enabled: true
|
||||
|
||||
# Security ####################################################################
|
||||
|
||||
##################### Rails ##################################
|
||||
# This cop checks for the use of JSON class methods which have potential
|
||||
# security issues.
|
||||
Security/JSONLoad:
|
||||
Enabled: true
|
||||
|
||||
# This cop checks for the use of *Kernel#eval*.
|
||||
Security/Eval:
|
||||
Enabled: true
|
||||
|
||||
# Rails #######################################################################
|
||||
|
||||
# Enables Rails cops.
|
||||
Rails:
|
||||
|
@ -739,8 +870,19 @@ Rails/Date:
|
|||
|
||||
# Prefer delegate method for delegations.
|
||||
Rails/Delegate:
|
||||
Enabled: true
|
||||
|
||||
# This cop checks dynamic `find_by_*` methods.
|
||||
Rails/DynamicFindBy:
|
||||
Enabled: false
|
||||
|
||||
# This cop enforces that 'exit' calls are not used within a rails app.
|
||||
Rails/Exit:
|
||||
Enabled: true
|
||||
Exclude:
|
||||
- lib/gitlab/upgrader.rb
|
||||
- 'lib/backup/**/*'
|
||||
|
||||
# Prefer `find_by` over `where.first`.
|
||||
Rails/FindBy:
|
||||
Enabled: true
|
||||
|
@ -753,9 +895,25 @@ Rails/FindEach:
|
|||
Rails/HasAndBelongsToMany:
|
||||
Enabled: true
|
||||
|
||||
# This cop is used to identify usages of http methods like `get`, `post`,
|
||||
# `put`, `patch` without the usage of keyword arguments in your tests and
|
||||
# change them to use keyword args.
|
||||
Rails/HttpPositionalArguments:
|
||||
Enabled: false
|
||||
|
||||
# Checks for calls to puts, print, etc.
|
||||
Rails/Output:
|
||||
Enabled: true
|
||||
Exclude:
|
||||
- lib/gitlab/seeder.rb
|
||||
- lib/gitlab/upgrader.rb
|
||||
- 'lib/backup/**/*'
|
||||
- 'lib/tasks/**/*'
|
||||
|
||||
# This cop checks for the use of output safety calls like html_safe and
|
||||
# raw.
|
||||
Rails/OutputSafety:
|
||||
Enabled: false
|
||||
|
||||
# Checks for incorrect grammar when using methods like `3.day.ago`.
|
||||
Rails/PluralizationGrammar:
|
||||
|
@ -769,12 +927,24 @@ Rails/ReadWriteAttribute:
|
|||
Rails/ScopeArgs:
|
||||
Enabled: true
|
||||
|
||||
##################### RSpec ##################################
|
||||
# This cop checks for the use of Time methods without zone.
|
||||
Rails/TimeZone:
|
||||
Enabled: false
|
||||
|
||||
# This cop checks for the use of old-style attribute validation macros.
|
||||
Rails/Validation:
|
||||
Enabled: true
|
||||
|
||||
# RSpec #######################################################################
|
||||
|
||||
# Check that instances are not being stubbed globally.
|
||||
RSpec/AnyInstance:
|
||||
Enabled: false
|
||||
|
||||
# Check for expectations where `be(...)` can replace `eql(...)`.
|
||||
RSpec/BeEql:
|
||||
Enabled: true
|
||||
|
||||
# Check that the first argument to the top level describe is the tested class or
|
||||
# module.
|
||||
RSpec/DescribeClass:
|
||||
|
@ -784,10 +954,14 @@ RSpec/DescribeClass:
|
|||
RSpec/DescribeMethod:
|
||||
Enabled: false
|
||||
|
||||
# Avoid describing symbols.
|
||||
RSpec/DescribeSymbol:
|
||||
Enabled: true
|
||||
|
||||
# Checks that the second argument to top level describe is the tested method
|
||||
# name.
|
||||
RSpec/DescribedClass:
|
||||
Enabled: false
|
||||
Enabled: true
|
||||
|
||||
# Checks for long example.
|
||||
RSpec/ExampleLength:
|
||||
|
@ -803,12 +977,18 @@ RSpec/ExampleWording:
|
|||
not: does not
|
||||
IgnoredWords: []
|
||||
|
||||
# Checks for `expect(...)` calls containing literal values.
|
||||
RSpec/ExpectActual:
|
||||
Enabled: true
|
||||
|
||||
# Checks the file and folder naming of the spec file.
|
||||
RSpec/FilePath:
|
||||
Enabled: false
|
||||
CustomTransform:
|
||||
RuboCop: rubocop
|
||||
RSpec: rspec
|
||||
Enabled: true
|
||||
IgnoreMethods: true
|
||||
Exclude:
|
||||
- 'qa/**/*'
|
||||
- 'spec/javascripts/fixtures/*'
|
||||
- 'spec/requests/api/v3/*'
|
||||
|
||||
# Checks if there are focused specs.
|
||||
RSpec/Focus:
|
||||
|
@ -818,15 +998,51 @@ RSpec/Focus:
|
|||
RSpec/InstanceVariable:
|
||||
Enabled: false
|
||||
|
||||
# Checks for `subject` definitions that come after `let` definitions.
|
||||
RSpec/LeadingSubject:
|
||||
Enabled: false
|
||||
|
||||
# Checks unreferenced `let!` calls being used for test setup.
|
||||
RSpec/LetSetup:
|
||||
Enabled: false
|
||||
|
||||
# Check that chains of messages are not being stubbed.
|
||||
RSpec/MessageChain:
|
||||
Enabled: false
|
||||
|
||||
# Checks that message expectations are set using spies.
|
||||
RSpec/MessageSpies:
|
||||
Enabled: false
|
||||
|
||||
# Checks for multiple top-level describes.
|
||||
RSpec/MultipleDescribes:
|
||||
Enabled: false
|
||||
|
||||
# Checks if examples contain too many `expect` calls.
|
||||
RSpec/MultipleExpectations:
|
||||
Enabled: false
|
||||
|
||||
# Checks for explicitly referenced test subjects.
|
||||
RSpec/NamedSubject:
|
||||
Enabled: false
|
||||
|
||||
# Checks for nested example groups.
|
||||
RSpec/NestedGroups:
|
||||
Enabled: false
|
||||
|
||||
# Enforces the usage of the same method on all negative message expectations.
|
||||
RSpec/NotToNot:
|
||||
EnforcedStyle: not_to
|
||||
Enabled: true
|
||||
|
||||
# Check for repeated description strings in example groups.
|
||||
RSpec/RepeatedDescription:
|
||||
Enabled: false
|
||||
|
||||
# Checks for stubbed test subjects.
|
||||
RSpec/SubjectStub:
|
||||
Enabled: false
|
||||
|
||||
# Prefer using verifying doubles over normal doubles.
|
||||
RSpec/VerifiedDoubles:
|
||||
Enabled: false
|
||||
|
|
|
@ -1,342 +1,243 @@
|
|||
# This configuration was generated by
|
||||
# `rubocop --auto-gen-config --exclude-limit 0`
|
||||
# on 2016-10-04 13:16:20 +0200 using RuboCop version 0.43.0.
|
||||
# on 2017-04-07 20:17:35 -0400 using RuboCop version 0.47.1.
|
||||
# The point is for the user to remove these configuration records
|
||||
# one by one as the offenses are removed from the code base.
|
||||
# Note that changes in the inspected code, or installation of new
|
||||
# versions of RuboCop, may require this file to be generated again.
|
||||
|
||||
# Offense count: 160
|
||||
Lint/AmbiguousRegexpLiteral:
|
||||
# Offense count: 54
|
||||
RSpec/BeforeAfterAll:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 40
|
||||
# Configuration parameters: AllowSafeAssignment.
|
||||
Lint/AssignmentInCondition:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 18
|
||||
Lint/HandleExceptions:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 2
|
||||
Lint/Loop:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 19
|
||||
Lint/ShadowingOuterLocalVariable:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 9
|
||||
# Cop supports --auto-correct.
|
||||
Lint/UnifiedInteger:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 13
|
||||
# Cop supports --auto-correct.
|
||||
Lint/UnneededSplatExpansion:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 69
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: IgnoreEmptyBlocks, AllowUnusedKeywordArguments.
|
||||
Lint/UnusedBlockArgument:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 144
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowUnusedKeywordArguments, IgnoreEmptyMethods.
|
||||
Lint/UnusedMethodArgument:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 2
|
||||
# Cop supports --auto-correct.
|
||||
Performance/RedundantBlockCall:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 5
|
||||
# Cop supports --auto-correct.
|
||||
Performance/RedundantMatch:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 26
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: MaxKeyValuePairs.
|
||||
Performance/RedundantMerge:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 7
|
||||
RSpec/BeEql:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 20
|
||||
# Offense count: 15
|
||||
# Configuration parameters: CustomIncludeMethods.
|
||||
RSpec/EmptyExampleGroup:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 16
|
||||
RSpec/ExpectActual:
|
||||
# Offense count: 233
|
||||
RSpec/EmptyLineAfterFinalLet:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 34
|
||||
# Offense count: 167
|
||||
RSpec/EmptyLineAfterSubject:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 3
|
||||
RSpec/ExpectOutput:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 72
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: implicit, each, example
|
||||
RSpec/HookArgument:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 168
|
||||
RSpec/LeadingSubject:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 162
|
||||
RSpec/LetSetup:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 10
|
||||
RSpec/MessageChain:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 714
|
||||
# Offense count: 12
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: allow, expect
|
||||
RSpec/MessageExpectation:
|
||||
# SupportedStyles: is_expected, should
|
||||
RSpec/ImplicitExpect:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 2423
|
||||
RSpec/MultipleExpectations:
|
||||
Max: 36
|
||||
|
||||
# Offense count: 1504
|
||||
RSpec/NamedSubject:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 1335
|
||||
# Configuration parameters: MaxNesting.
|
||||
RSpec/NestedGroups:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 99
|
||||
RSpec/SubjectStub:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 64
|
||||
Rails/OutputSafety:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 151
|
||||
# Offense count: 11
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: strict, flexible
|
||||
Rails/TimeZone:
|
||||
# SupportedStyles: it_behaves_like, it_should_behave_like
|
||||
RSpec/ItBehavesLike:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 15
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: Include.
|
||||
# Include: app/models/**/*.rb
|
||||
Rails/Validation:
|
||||
# Offense count: 4
|
||||
RSpec/IteratedExpectation:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 3
|
||||
RSpec/OverwritingSetup:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 34
|
||||
RSpec/RepeatedExample:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 43
|
||||
RSpec/ScatteredLet:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 32
|
||||
RSpec/ScatteredSetup:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 1
|
||||
RSpec/SharedContext:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 150
|
||||
Rails/FilePath:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 2
|
||||
# Cop supports --auto-correct.
|
||||
Security/JSONLoad:
|
||||
# Configuration parameters: Include.
|
||||
# Include: db/migrate/*.rb
|
||||
Rails/ReversibleMigration:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 284
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
|
||||
# SupportedStyles: with_first_parameter, with_fixed_indentation
|
||||
Style/AlignParameters:
|
||||
# Offense count: 302
|
||||
# Configuration parameters: Blacklist.
|
||||
# Blacklist: decrement!, decrement_counter, increment!, increment_counter, toggle!, touch, update_all, update_attribute, update_column, update_columns, update_counters
|
||||
Rails/SkipsModelValidations:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 28
|
||||
# Offense count: 7
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: always, conditionals
|
||||
Style/AndOr:
|
||||
Security/YAMLLoad:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 52
|
||||
# Offense count: 59
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: percent_q, bare_percent
|
||||
Style/BarePercentLiterals:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 291
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: braces, no_braces, context_dependent
|
||||
Style/BracesAroundHashParameters:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 6
|
||||
Style/CaseEquality:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 26
|
||||
# Cop supports --auto-correct.
|
||||
Style/ColonMethodCall:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 2
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: Keywords.
|
||||
# Keywords: TODO, FIXME, OPTIMIZE, HACK, REVIEW
|
||||
Style/CommentAnnotation:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 30
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles, SingleLineConditionsOnly.
|
||||
# SupportedStyles: assign_to_condition, assign_inside_condition
|
||||
Style/ConditionalAssignment:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 957
|
||||
# Offense count: 1403
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: leading, trailing
|
||||
Style/DotPosition:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 13
|
||||
Style/DoubleNegation:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 6
|
||||
# Offense count: 5
|
||||
# Cop supports --auto-correct.
|
||||
Style/EachWithObject:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 26
|
||||
# Offense count: 28
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: empty, nil, both
|
||||
Style/EmptyElse:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 3
|
||||
# Offense count: 4
|
||||
# Cop supports --auto-correct.
|
||||
Style/EmptyLiteral:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 140
|
||||
# Offense count: 59
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: compact, expanded
|
||||
Style/EmptyMethod:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 214
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowForAlignment, ForceEqualSignAlignment.
|
||||
Style/ExtraSpacing:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 6
|
||||
# Offense count: 9
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: format, sprintf, percent
|
||||
Style/FormatString:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 201
|
||||
# Offense count: 285
|
||||
# Configuration parameters: MinBodyLength.
|
||||
Style/GuardClause:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 11
|
||||
# Offense count: 16
|
||||
Style/IfInsideElse:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 174
|
||||
# Offense count: 186
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: MaxLineLength.
|
||||
Style/IfUnlessModifier:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 53
|
||||
# Offense count: 99
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
|
||||
# SupportedStyles: special_inside_parentheses, consistent, align_brackets
|
||||
Style/IndentArray:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 95
|
||||
# Offense count: 160
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles, IndentationWidth.
|
||||
# SupportedStyles: special_inside_parentheses, consistent, align_braces
|
||||
Style/IndentHash:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 29
|
||||
# Offense count: 50
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: line_count_dependent, lambda, literal
|
||||
Style/Lambda:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 5
|
||||
# Offense count: 6
|
||||
# Cop supports --auto-correct.
|
||||
Style/LineEndConcatenation:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 15
|
||||
# Offense count: 34
|
||||
# Cop supports --auto-correct.
|
||||
Style/MethodCallParentheses:
|
||||
Style/MethodCallWithoutArgsParentheses:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 8
|
||||
# Offense count: 10
|
||||
Style/MethodMissing:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 95
|
||||
# Offense count: 3
|
||||
# Cop supports --auto-correct.
|
||||
Style/MutableConstant:
|
||||
Style/MultilineIfModifier:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 8
|
||||
# Offense count: 24
|
||||
# Cop supports --auto-correct.
|
||||
Style/NestedParenthesizedCalls:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 13
|
||||
# Offense count: 18
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, MinBodyLength, SupportedStyles.
|
||||
# SupportedStyles: skip_modifier_ifs, always
|
||||
Style/Next:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 12
|
||||
# Offense count: 37
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedOctalStyle, SupportedOctalStyles.
|
||||
# SupportedOctalStyles: zero_with_o, zero_only
|
||||
Style/NumericLiteralPrefix:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 53
|
||||
# Offense count: 88
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# Configuration parameters: AutoCorrect, EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: predicate, comparison
|
||||
Style/NumericPredicate:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 29
|
||||
# Offense count: 36
|
||||
# Cop supports --auto-correct.
|
||||
Style/ParallelAssignment:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 294
|
||||
# Offense count: 570
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: PreferredDelimiters.
|
||||
Style/PercentLiteralDelimiters:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 11
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: lower_case_q, upper_case_q
|
||||
Style/PercentQLiterals:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 13
|
||||
# Offense count: 14
|
||||
# Cop supports --auto-correct.
|
||||
Style/PerlBackrefs:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 38
|
||||
# Offense count: 83
|
||||
# Configuration parameters: NamePrefix, NamePrefixBlacklist, NameWhitelist.
|
||||
# NamePrefix: is_, has_, have_
|
||||
# NamePrefixBlacklist: is_, has_, have_
|
||||
|
@ -344,178 +245,161 @@ Style/PerlBackrefs:
|
|||
Style/PredicateName:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 26
|
||||
# Offense count: 45
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: short, verbose
|
||||
Style/PreferredHashMethods:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 6
|
||||
# Cop supports --auto-correct.
|
||||
Style/Proc:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 22
|
||||
# Offense count: 65
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: compact, exploded
|
||||
Style/RaiseArgs:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 4
|
||||
# Offense count: 5
|
||||
# Cop supports --auto-correct.
|
||||
Style/RedundantBegin:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 1
|
||||
# Cop supports --auto-correct.
|
||||
Style/RedundantException:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 24
|
||||
# Offense count: 32
|
||||
# Cop supports --auto-correct.
|
||||
Style/RedundantFreeze:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 427
|
||||
# Offense count: 15
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowMultipleReturnValues.
|
||||
Style/RedundantReturn:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 382
|
||||
# Cop supports --auto-correct.
|
||||
Style/RedundantSelf:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 97
|
||||
# Offense count: 111
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles, AllowInnerSlashes.
|
||||
# SupportedStyles: slashes, percent_r, mixed
|
||||
Style/RegexpLiteral:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 18
|
||||
# Offense count: 24
|
||||
# Cop supports --auto-correct.
|
||||
Style/RescueModifier:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 114
|
||||
# Cop supports --auto-correct.
|
||||
Style/SafeNavigation:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 7
|
||||
# Cop supports --auto-correct.
|
||||
Style/SelfAssignment:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 2
|
||||
# Configuration parameters: Methods.
|
||||
# Methods: {"reduce"=>["a", "e"]}, {"inject"=>["a", "e"]}
|
||||
Style/SingleLineBlockParams:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 50
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowIfMethodIsEmpty.
|
||||
Style/SingleLineMethods:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 125
|
||||
# Offense count: 168
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: space, no_space
|
||||
Style/SpaceBeforeBlockBraces:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 10
|
||||
# Offense count: 8
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowForAlignment.
|
||||
Style/SpaceBeforeFirstArg:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 145
|
||||
# Offense count: 46
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SpaceBeforeBlockParameters.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: require_no_space, require_space
|
||||
Style/SpaceInLambdaLiteral:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 229
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles, EnforcedStyleForEmptyBraces, SupportedStylesForEmptyBraces, SpaceBeforeBlockParameters.
|
||||
# SupportedStyles: space, no_space
|
||||
# SupportedStylesForEmptyBraces: space, no_space
|
||||
Style/SpaceInsideBlockBraces:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 99
|
||||
# Cop supports --auto-correct.
|
||||
Style/SpaceInsideBrackets:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 65
|
||||
# Offense count: 116
|
||||
# Cop supports --auto-correct.
|
||||
Style/SpaceInsideParens:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 7
|
||||
# Offense count: 12
|
||||
# Cop supports --auto-correct.
|
||||
Style/SpaceInsidePercentLiteralDelimiters:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 41
|
||||
# Offense count: 57
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: SupportedStyles.
|
||||
# SupportedStyles: use_perl_names, use_english_names
|
||||
Style/SpecialGlobalVars:
|
||||
EnforcedStyle: use_perl_names
|
||||
|
||||
# Offense count: 31
|
||||
# Offense count: 42
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles.
|
||||
# SupportedStyles: single_quotes, double_quotes
|
||||
Style/StringLiteralsInInterpolation:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 33
|
||||
# Offense count: 64
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: IgnoredMethods.
|
||||
# IgnoredMethods: respond_to, define_method
|
||||
Style/SymbolProc:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 5
|
||||
# Offense count: 6
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyle, SupportedStyles, AllowSafeAssignment.
|
||||
# SupportedStyles: require_parentheses, require_no_parentheses
|
||||
# SupportedStyles: require_parentheses, require_no_parentheses, require_parentheses_when_complex
|
||||
Style/TernaryParentheses:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 29
|
||||
# Offense count: 53
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyleForMultiline, SupportedStyles.
|
||||
# SupportedStyles: comma, consistent_comma, no_comma
|
||||
# Configuration parameters: EnforcedStyleForMultiline, SupportedStylesForMultiline.
|
||||
# SupportedStylesForMultiline: comma, consistent_comma, no_comma
|
||||
Style/TrailingCommaInArguments:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 102
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: EnforcedStyleForMultiline, SupportedStyles.
|
||||
# SupportedStyles: comma, consistent_comma, no_comma
|
||||
Style/TrailingCommaInLiteral:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 7
|
||||
# Offense count: 18
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: AllowNamedUnderscoreVariables.
|
||||
Style/TrailingUnderscoreVariable:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 76
|
||||
# Offense count: 78
|
||||
# Cop supports --auto-correct.
|
||||
Style/TrailingWhitespace:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 2
|
||||
# Offense count: 3
|
||||
# Cop supports --auto-correct.
|
||||
# Configuration parameters: ExactNameMatch, AllowPredicates, AllowDSLWriters, IgnoreClassMethods, Whitelist.
|
||||
# Whitelist: to_ary, to_a, to_c, to_enum, to_h, to_hash, to_i, to_int, to_io, to_open, to_path, to_proc, to_r, to_regexp, to_str, to_s, to_sym
|
||||
Style/TrivialAccessors:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 2
|
||||
# Offense count: 6
|
||||
# Cop supports --auto-correct.
|
||||
Style/UnlessElse:
|
||||
Enabled: false
|
||||
|
||||
# Offense count: 14
|
||||
# Offense count: 24
|
||||
# Cop supports --auto-correct.
|
||||
Style/UnneededInterpolation:
|
||||
Enabled: false
|
||||
|
|
|
@ -1 +1 @@
|
|||
2.3.1
|
||||
2.3.3
|
||||
|
|
|
@ -30,7 +30,7 @@ linters:
|
|||
# variable declarations. They should be referred to via variables everywhere
|
||||
# else.
|
||||
ColorVariable:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
# Which form of comments to prefer in CSS.
|
||||
Comment:
|
||||
|
@ -143,7 +143,7 @@ linters:
|
|||
# with two colons. Pseudo-classes, like :hover and :first-child, should
|
||||
# be declared with one colon.
|
||||
PseudoElement:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
# Avoid qualifying elements in selectors (also known as "tag-qualifying").
|
||||
QualifyingElement:
|
||||
|
@ -172,7 +172,7 @@ linters:
|
|||
# Split selectors onto separate lines after each comma, and have each
|
||||
# individual selector occupy a single line.
|
||||
SingleLinePerSelector:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
# Commas in lists should be followed by a space.
|
||||
SpaceAfterComma:
|
||||
|
@ -191,7 +191,7 @@ linters:
|
|||
# Variables should be formatted with a single space separating the colon
|
||||
# from the variable's value.
|
||||
SpaceAfterVariableColon:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
# Variables should be formatted with no space between the name and the
|
||||
# colon.
|
||||
|
@ -201,7 +201,7 @@ linters:
|
|||
# Operators should be formatted with a single space on both sides of an
|
||||
# infix operator.
|
||||
SpaceAroundOperator:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
# Opening braces should be preceded by a single space.
|
||||
SpaceBeforeBrace:
|
||||
|
@ -223,7 +223,7 @@ linters:
|
|||
|
||||
# Reports lines containing trailing whitespace.
|
||||
TrailingWhitespace:
|
||||
enabled: false
|
||||
enabled: true
|
||||
|
||||
# Don't write trailing zeros for numeric values with a decimal point.
|
||||
TrailingZero:
|
||||
|
|
1983
CHANGELOG.md
355
CONTRIBUTING.md
|
@ -1,34 +1,50 @@
|
|||
## Contributor license agreement
|
||||
|
||||
By submitting code as an individual you agree to the
|
||||
[individual contributor license agreement](doc/legal/individual_contributor_license_agreement.md).
|
||||
By submitting code as an entity you agree to the
|
||||
[corporate contributor license agreement](doc/legal/corporate_contributor_license_agreement.md).
|
||||
|
||||
_This notice should stay as the first item in the CONTRIBUTING.MD file._
|
||||
|
||||
---
|
||||
|
||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
|
||||
|
||||
- [Contribute to GitLab](#contribute-to-gitlab)
|
||||
- [Contributor license agreement](#contributor-license-agreement)
|
||||
- [Security vulnerability disclosure](#security-vulnerability-disclosure)
|
||||
- [Closing policy for issues and merge requests](#closing-policy-for-issues-and-merge-requests)
|
||||
- [Helping others](#helping-others)
|
||||
- [I want to contribute!](#i-want-to-contribute)
|
||||
- [Implement design & UI elements](#implement-design-ui-elements)
|
||||
- [Design reference](#design-reference)
|
||||
- [UI development kit](#ui-development-kit)
|
||||
- [Issue tracker](#issue-tracker)
|
||||
- [Feature proposals](#feature-proposals)
|
||||
- [Issue tracker guidelines](#issue-tracker-guidelines)
|
||||
- [Issue weight](#issue-weight)
|
||||
- [Regression issues](#regression-issues)
|
||||
- [Technical debt](#technical-debt)
|
||||
- [Merge requests](#merge-requests)
|
||||
- [Merge request guidelines](#merge-request-guidelines)
|
||||
- [Merge request description format](#merge-request-description-format)
|
||||
- [Contribution acceptance criteria](#contribution-acceptance-criteria)
|
||||
- [Changes for Stable Releases](#changes-for-stable-releases)
|
||||
- [Definition of done](#definition-of-done)
|
||||
- [Style guides](#style-guides)
|
||||
- [Code of conduct](#code-of-conduct)
|
||||
- [Security vulnerability disclosure](#security-vulnerability-disclosure)
|
||||
- [Closing policy for issues and merge requests](#closing-policy-for-issues-and-merge-requests)
|
||||
- [Helping others](#helping-others)
|
||||
- [I want to contribute!](#i-want-to-contribute)
|
||||
- [Workflow labels](#workflow-labels)
|
||||
- [Type labels (~"feature proposal", ~bug, ~customer, etc.)](#type-labels-feature-proposal-bug-customer-etc)
|
||||
- [Subject labels (~wiki, ~"container registry", ~ldap, ~api, etc.)](#subject-labels-wiki-container-registry-ldap-api-etc)
|
||||
- [Team labels (~CI, ~Discussion, ~Edge, ~Platform, etc.)](#team-labels-ci-discussion-edge-platform-etc)
|
||||
- [Priority labels (~Deliverable and ~Stretch)](#priority-labels-deliverable-and-stretch)
|
||||
- [Label for community contributors (~"Accepting Merge Requests")](#label-for-community-contributors-accepting-merge-requests)
|
||||
- [Implement design & UI elements](#implement-design--ui-elements)
|
||||
- [Issue tracker](#issue-tracker)
|
||||
- [Issue triaging](#issue-triaging)
|
||||
- [Feature proposals](#feature-proposals)
|
||||
- [Issue tracker guidelines](#issue-tracker-guidelines)
|
||||
- [Issue weight](#issue-weight)
|
||||
- [Regression issues](#regression-issues)
|
||||
- [Technical debt](#technical-debt)
|
||||
- [Stewardship](#stewardship)
|
||||
- [Merge requests](#merge-requests)
|
||||
- [Merge request guidelines](#merge-request-guidelines)
|
||||
- [Contribution acceptance criteria](#contribution-acceptance-criteria)
|
||||
- [Definition of done](#definition-of-done)
|
||||
- [Style guides](#style-guides)
|
||||
- [Code of conduct](#code-of-conduct)
|
||||
|
||||
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||
|
||||
# Contribute to GitLab
|
||||
---
|
||||
|
||||
## Contribute to GitLab
|
||||
|
||||
Thank you for your interest in contributing to GitLab. This guide details how
|
||||
to contribute to GitLab in a way that is efficient for everyone.
|
||||
|
@ -43,13 +59,6 @@ operates please see [the GitLab contributing process](PROCESS.md).
|
|||
|
||||
- [GitLab Inc engineers should refer to the engineering workflow document](https://about.gitlab.com/handbook/engineering/workflow/)
|
||||
|
||||
## Contributor license agreement
|
||||
|
||||
By submitting code as an individual you agree to the
|
||||
[individual contributor license agreement](doc/legal/individual_contributor_license_agreement.md).
|
||||
By submitting code as an entity you agree to the
|
||||
[corporate contributor license agreement](doc/legal/corporate_contributor_license_agreement.md).
|
||||
|
||||
## Security vulnerability disclosure
|
||||
|
||||
Please report suspected security vulnerabilities in private to
|
||||
|
@ -71,6 +80,13 @@ towards getting your issue resolved.
|
|||
Issues and merge requests should be in English and contain appropriate language
|
||||
for audiences of all ages.
|
||||
|
||||
If a contributor is no longer actively working on a submitted merge request
|
||||
we can decide that the merge request will be finished by one of our
|
||||
[Merge request coaches][team] or close the merge request. We make this decision
|
||||
based on how important the change is for our product vision. If a Merge request
|
||||
coach is going to finish the merge request we assign the
|
||||
~"coach will finish" label.
|
||||
|
||||
## Helping others
|
||||
|
||||
Please help other GitLab users when you can. The channels people will reach out
|
||||
|
@ -83,15 +99,134 @@ the remaining issues on the GitHub issue tracker.
|
|||
## I want to contribute!
|
||||
|
||||
If you want to contribute to GitLab, but are not sure where to start,
|
||||
look for [issues with the label `up-for-grabs`][up-for-grabs]. These issues
|
||||
will be of reasonable size and challenge, for anyone to start contributing to
|
||||
GitLab.
|
||||
look for [issues with the label `Accepting Merge Requests` and weight < 5][accepting-mrs-weight].
|
||||
These issues will be of reasonable size and challenge, for anyone to start
|
||||
contributing to GitLab.
|
||||
|
||||
This was inspired by [an article by Kent C. Dodds][medium-up-for-grabs].
|
||||
## Workflow labels
|
||||
|
||||
To allow for asynchronous issue handling, we use [milestones][milestones-page]
|
||||
and [labels][labels-page]. Leads and product managers handle most of the
|
||||
scheduling into milestones. Labelling is a task for everyone.
|
||||
|
||||
Most issues will have labels for at least one of the following:
|
||||
|
||||
- Type: ~"feature proposal", ~bug, ~customer, etc.
|
||||
- Subject: ~wiki, ~"container registry", ~ldap, ~api, etc.
|
||||
- Team: ~CI, ~Discussion, ~Edge, ~Frontend, ~Platform, etc.
|
||||
- Priority: ~Deliverable, ~Stretch
|
||||
|
||||
All labels, their meaning and priority are defined on the
|
||||
[labels page][labels-page].
|
||||
|
||||
If you come across an issue that has none of these, and you're allowed to set
|
||||
labels, you can _always_ add the team and type, and often also the subject.
|
||||
|
||||
[milestones-page]: https://gitlab.com/gitlab-org/gitlab-ce/milestones
|
||||
[labels-page]: https://gitlab.com/gitlab-org/gitlab-ce/labels
|
||||
|
||||
### Type labels (~"feature proposal", ~bug, ~customer, etc.)
|
||||
|
||||
Type labels are very important. They define what kind of issue this is. Every
|
||||
issue should have one or more.
|
||||
|
||||
Examples of type labels are ~"feature proposal", ~bug, ~customer, ~security,
|
||||
and ~"direction".
|
||||
|
||||
A number of type labels have a priority assigned to them, which automatically
|
||||
makes them float to the top, depending on their importance.
|
||||
|
||||
Type labels are always lowercase, and can have any color, besides blue (which is
|
||||
already reserved for subject labels).
|
||||
|
||||
The descriptions on the [labels page][labels-page] explain what falls under each type label.
|
||||
|
||||
### Subject labels (~wiki, ~"container registry", ~ldap, ~api, etc.)
|
||||
|
||||
Subject labels are labels that define what area or feature of GitLab this issue
|
||||
hits. They are not always necessary, but very convenient.
|
||||
|
||||
If you are an expert in a particular area, it makes it easier to find issues to
|
||||
work on. You can also subscribe to those labels to receive an email each time an
|
||||
issue is labelled with a subject label corresponding to your expertise.
|
||||
|
||||
Examples of subject labels are ~wiki, ~"container registry", ~ldap, ~api,
|
||||
~issues, ~"merge requests", ~labels, and ~"container registry".
|
||||
|
||||
Subject labels are always all-lowercase.
|
||||
|
||||
### Team labels (~CI, ~Discussion, ~Edge, ~Platform, etc.)
|
||||
|
||||
Team labels specify what team is responsible for this issue.
|
||||
Assigning a team label makes sure issues get the attention of the appropriate
|
||||
people.
|
||||
|
||||
The current team labels are ~Build, ~CI, ~Discussion, ~Documentation, ~Edge,
|
||||
~Gitaly, ~Platform, ~Prometheus, ~Release, and ~"UX".
|
||||
|
||||
The descriptions on the [labels page][labels-page] explain what falls under the
|
||||
responsibility of each team.
|
||||
|
||||
Within those team labels, we also have the ~backend and ~frontend labels to
|
||||
indicate if an issue needs backend work, frontend work, or both.
|
||||
|
||||
Team labels are always capitalized so that they show up as the first label for
|
||||
any issue.
|
||||
|
||||
### Priority labels (~Deliverable and ~Stretch)
|
||||
|
||||
Priority labels help us clearly communicate expectations of the work for the
|
||||
release. There are two levels of priority labels:
|
||||
|
||||
- ~Deliverable: Issues that are expected to be delivered in the current
|
||||
milestone.
|
||||
- ~Stretch: Issues that are a stretch goal for delivering in the current
|
||||
milestone. If these issues are not done in the current release, they will
|
||||
strongly be considered for the next release.
|
||||
|
||||
### Label for community contributors (~"Accepting Merge Requests")
|
||||
|
||||
Issues that are beneficial to our users, 'nice to haves', that we currently do
|
||||
not have the capacity for or want to give the priority to, are labeled as
|
||||
~"Accepting Merge Requests", so the community can make a contribution.
|
||||
|
||||
Community contributors can submit merge requests for any issue they want, but
|
||||
the ~"Accepting Merge Requests" label has a special meaning. It points to
|
||||
changes that:
|
||||
|
||||
1. We already agreed on,
|
||||
1. Are well-defined,
|
||||
1. Are likely to get accepted by a maintainer.
|
||||
|
||||
We want to avoid a situation when a contributor picks an
|
||||
~"Accepting Merge Requests" issue and then their merge request gets closed,
|
||||
because we realize that it does not fit our vision, or we want to solve it in a
|
||||
different way.
|
||||
|
||||
We add the ~"Accepting Merge Requests" label to:
|
||||
|
||||
- Low priority ~bug issues (i.e. we do not add it to the bugs that we want to
|
||||
solve in the ~"Next Patch Release")
|
||||
- Small ~"feature proposal" that do not need ~UX / ~"Product work", or for which
|
||||
the ~UX / ~"Product work" is already done
|
||||
- Small ~"technical debt" issues
|
||||
|
||||
After adding the ~"Accepting Merge Requests" label, we try to estimate the
|
||||
[weight](#issue-weight) of the issue. We use issue weight to let contributors
|
||||
know how difficult the issue is. Additionally:
|
||||
|
||||
- We advertise [~"Accepting Merge Requests" issues with weight < 5][up-for-grabs]
|
||||
as suitable for people that have never contributed to GitLab before on the
|
||||
[Up For Grabs campaign](http://up-for-grabs.net)
|
||||
- We encourage people that have never contributed to any open source project to
|
||||
look for [~"Accepting Merge Requests" issues with a weight of 1][firt-timers]
|
||||
|
||||
[up-for-grabs]: https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name=Accepting+Merge+Requests&scope=all&sort=weight_asc&state=opened
|
||||
[firt-timers]: https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name%5B%5D=Accepting+Merge+Requests&scope=all&sort=upvotes_desc&state=opened&weight=1
|
||||
|
||||
## Implement design & UI elements
|
||||
|
||||
Please see the [UI Guide for building GitLab].
|
||||
Please see the [UX Guide for GitLab].
|
||||
|
||||
## Issue tracker
|
||||
|
||||
|
@ -115,6 +250,21 @@ If it happens that you know the solution to an existing bug, please first
|
|||
open the issue in order to keep track of it and then open the relevant merge
|
||||
request that potentially fixes it.
|
||||
|
||||
### Issue triaging
|
||||
|
||||
Our issue triage policies are [described in our handbook]. You are very welcome
|
||||
to help the GitLab team triage issues. We also organize [issue bash events] once
|
||||
every quarter.
|
||||
|
||||
The most important thing is making sure valid issues receive feedback from the
|
||||
development team. Therefore the priority is mentioning developers that can help
|
||||
on those issues. Please select someone with relevant experience from the
|
||||
[GitLab team][team]. If there is nobody mentioned with that expertise look in
|
||||
the commit history for the affected files to find someone.
|
||||
|
||||
[described in our handbook]: https://about.gitlab.com/handbook/engineering/issues/issue-triage-policies/
|
||||
[issue bash events]: https://gitlab.com/gitlab-org/gitlab-ce/issues/17815
|
||||
|
||||
### Feature proposals
|
||||
|
||||
To create a feature proposal for CE, open an issue on the
|
||||
|
@ -214,16 +364,37 @@ for a release by the appropriate person.
|
|||
Make sure to mention the merge request that the `technical debt` issue is
|
||||
associated with in the description of the issue.
|
||||
|
||||
### Stewardship
|
||||
|
||||
For issues related to the open source stewardship of GitLab,
|
||||
there is the ~"stewardship" label.
|
||||
|
||||
This label is to be used for issues in which the stewardship of GitLab
|
||||
is a topic of discussion. For instance if GitLab Inc. is planning to remove
|
||||
features from GitLab CE to make exclusive in GitLab EE, related issues
|
||||
would be labelled with ~"stewardship".
|
||||
|
||||
A recent example of this was the issue for
|
||||
[bringing the time tracking API to GitLab CE][time-tracking-issue].
|
||||
|
||||
[time-tracking-issue]: https://gitlab.com/gitlab-org/gitlab-ce/issues/25517#note_20019084
|
||||
|
||||
## Merge requests
|
||||
|
||||
We welcome merge requests with fixes and improvements to GitLab code, tests,
|
||||
and/or documentation. The features we would really like a merge request for are
|
||||
listed with the label [`Accepting Merge Requests` on our issue tracker for CE][accepting-mrs-ce]
|
||||
and [EE][accepting-mrs-ee] but other improvements are also welcome.
|
||||
and/or documentation. The issues that are specifically suitable for
|
||||
community contributions are listed with the label
|
||||
[`Accepting Merge Requests` on our issue tracker for CE][accepting-mrs-ce]
|
||||
and [EE][accepting-mrs-ee], but you are free to contribute to any other issue
|
||||
you want.
|
||||
|
||||
Please note that if an issue is marked for the current milestone either before
|
||||
or while you are working on it, a team member may take over the merge request
|
||||
in order to ensure the work is finished before the release date.
|
||||
|
||||
If you want to add a new feature that is not labeled it is best to first create
|
||||
a feedback issue (if there isn't one already) and leave a comment asking for it
|
||||
to be marked as `Accepting merge requests`. Please include screenshots or
|
||||
to be marked as `Accepting Merge Requests`. Please include screenshots or
|
||||
wireframes if the feature will also change the UI.
|
||||
|
||||
Merge requests should be opened at [GitLab.com][gitlab-mr-tracker].
|
||||
|
@ -247,30 +418,37 @@ request is as follows:
|
|||
1. Fork the project into your personal space on GitLab.com
|
||||
1. Create a feature branch, branch away from `master`
|
||||
1. Write [tests](https://gitlab.com/gitlab-org/gitlab-development-kit#running-the-tests) and code
|
||||
1. Add your changes to the [CHANGELOG.md](CHANGELOG.md):
|
||||
1. If you are fixing a ~regression issue, you can add your entry to the next
|
||||
patch release (e.g. `8.12.5` if current version is `8.12.4`)
|
||||
1. Otherwise, add your entry to the next minor release (e.g. `8.13.0` if
|
||||
current version is `8.12.4`
|
||||
1. Please add your entry at a random place among the entries of the targeted
|
||||
release
|
||||
1. [Generate a changelog entry with `bin/changelog`][changelog]
|
||||
1. If you are writing documentation, make sure to follow the
|
||||
[documentation styleguide][doc-styleguide]
|
||||
1. If you have multiple commits please combine them into one commit by
|
||||
[squashing them][git-squash]
|
||||
1. If you have multiple commits please combine them into a few logically
|
||||
organized commits by [squashing them][git-squash]
|
||||
1. Push the commit(s) to your fork
|
||||
1. Submit a merge request (MR) to the `master` branch
|
||||
1. Your merge request needs at least 1 approval but feel free to require more.
|
||||
For instance if you're touching backend and frontend code, it's a good idea
|
||||
to require 2 approvals: 1 from a backend maintainer and 1 from a frontend
|
||||
maintainer
|
||||
1. You don't have to select any approvers, but you can if you really want
|
||||
specific people to approve your merge request
|
||||
1. The MR title should describe the change you want to make
|
||||
1. The MR description should give a motive for your change and the method you
|
||||
used to achieve it, see the [merge request description format]
|
||||
(#merge-request-description-format)
|
||||
used to achieve it.
|
||||
1. If you are contributing code, fill in the template already provided in the
|
||||
"Description" field.
|
||||
1. If you are contributing documentation, choose `Documentation` from the
|
||||
"Choose a template" menu and fill in the template.
|
||||
1. Mention the issue(s) your merge request solves, using the `Solves #XXX` or
|
||||
`Closes #XXX` syntax to auto-close the issue(s) once the merge request will
|
||||
be merged.
|
||||
1. If you're allowed to, set a relevant milestone and labels
|
||||
1. If the MR changes the UI it should include *Before* and *After* screenshots
|
||||
1. If the MR changes CSS classes please include the list of affected pages,
|
||||
`grep css-class ./app -R`
|
||||
1. Link any relevant [issues][ce-tracker] in the merge request description and
|
||||
leave a comment on them with a link back to the MR
|
||||
1. Be prepared to answer questions and incorporate feedback even if requests
|
||||
for this arrive weeks or months after your MR submission
|
||||
1. If a discussion has been addressed, select the "Resolve discussion" button
|
||||
beneath it to mark it resolved.
|
||||
1. If your MR touches code that executes shell commands, reads or opens files or
|
||||
handles paths to files on disk, make sure it adheres to the
|
||||
[shell command guidelines](doc/development/shell_commands.md)
|
||||
|
@ -288,14 +466,6 @@ request is as follows:
|
|||
1. For tests that use Capybara or PhantomJS, see this [article on how
|
||||
to write reliable asynchronous tests](https://robots.thoughtbot.com/write-reliable-asynchronous-integration-tests-with-capybara).
|
||||
|
||||
The **official merge window** is in the beginning of the month from the 1st to
|
||||
the 7th day of the month. This is the best time to submit an MR and get
|
||||
feedback fast. Before this time the GitLab Inc. team is still dealing with work
|
||||
that is created by the monthly release such as regressions requiring patch
|
||||
releases. After the 7th it is already getting closer to the release date of the
|
||||
next version. This means there is less time to fix the issues created by
|
||||
merging large new features.
|
||||
|
||||
Please keep the change in a single MR **as small as possible**. If you want to
|
||||
contribute a large feature think very hard what the minimum viable change is.
|
||||
Can you split the functionality? Can you only submit the backend/API code? Can
|
||||
|
@ -303,11 +473,12 @@ you start with a very simple UI? Can you do part of the refactor? The increased
|
|||
reviewability of small MRs that leads to higher code quality is more important
|
||||
to us than having a minimal commit log. The smaller an MR is the more likely it
|
||||
is it will be merged (quickly). After that you can send more MRs to enhance it.
|
||||
The ['How to get faster PR reviews' document of Kubernetes](https://github.com/kubernetes/community/blob/master/contributors/devel/faster_reviews.md) also has some great points regarding this.
|
||||
|
||||
For examples of feedback on merge requests please look at already
|
||||
[closed merge requests][closed-merge-requests]. If you would like quick feedback
|
||||
on your merge request feel free to mention one of the Merge Marshalls in the
|
||||
[core team] or one of the [Merge request coaches](https://about.gitlab.com/team/).
|
||||
on your merge request feel free to mention someone from the [core team] or one
|
||||
of the [Merge request coaches][team].
|
||||
Please ensure that your merge request meets the contribution acceptance criteria.
|
||||
|
||||
When having your code reviewed and when reviewing merge requests please take the
|
||||
|
@ -335,9 +506,14 @@ When having your code reviewed and when reviewing merge requests please take the
|
|||
1. Contains functionality we think other users will benefit from too
|
||||
1. Doesn't add configuration options or settings options since they complicate
|
||||
making and testing future changes
|
||||
1. Changes do not adversely degrade performance.
|
||||
- Avoid repeated polling of endpoints that require a significant amount of overhead
|
||||
- Check for N+1 queries via the SQL log or [`QueryRecorder`](https://docs.gitlab.com/ce/development/merge_request_performance_guidelines.html)
|
||||
- Avoid repeated access of filesystem
|
||||
1. If you need polling to support real-time features, please use
|
||||
[polling with ETag caching][polling-etag].
|
||||
1. Changes after submitting the merge request should be in separate commits
|
||||
(no squashing). If necessary, you will be asked to squash when the review is
|
||||
over, before merging.
|
||||
(no squashing).
|
||||
1. It conforms to the [style guides](#style-guides) and the following:
|
||||
- If your change touches a line that does not follow the style, modify the
|
||||
entire line to follow it. This prevents linting tools from generating warnings.
|
||||
|
@ -348,19 +524,6 @@ When having your code reviewed and when reviewing merge requests please take the
|
|||
See the instructions in that document for help if your MR fails the
|
||||
"license-finder" test with a "Dependencies that need approval" error.
|
||||
|
||||
## Changes for Stable Releases
|
||||
|
||||
Sometimes certain changes have to be added to an existing stable release.
|
||||
Two examples are bug fixes and performance improvements. In these cases the
|
||||
corresponding merge request should be updated to have the following:
|
||||
|
||||
1. A milestone indicating what release the merge request should be merged into.
|
||||
1. The label "Pick into Stable"
|
||||
|
||||
This makes it easier for release managers to keep track of what still has to be
|
||||
merged and where changes have to be merged into.
|
||||
Like all merge requests the target should be master so all bugfixes are in master.
|
||||
|
||||
## Definition of done
|
||||
|
||||
If you contribute to GitLab please know that changes involve more than just
|
||||
|
@ -369,15 +532,16 @@ the feature you contribute through all of these steps.
|
|||
|
||||
1. Description explaining the relevancy (see following item)
|
||||
1. Working and clean code that is commented where needed
|
||||
1. Unit and integration tests that pass on the CI server
|
||||
1. [Documented][doc-styleguide] in the /doc directory
|
||||
1. Changelog entry added
|
||||
1. [Unit and system tests][testing] that pass on the CI server
|
||||
1. Performance/scalability implications have been considered, addressed, and tested
|
||||
1. [Documented][doc-styleguide] in the `/doc` directory
|
||||
1. [Changelog entry added][changelog], if necessary
|
||||
1. Reviewed and any concerns are addressed
|
||||
1. Merged by the project lead
|
||||
1. Added to the release blog article
|
||||
1. Added to [the website](https://gitlab.com/gitlab-com/www-gitlab-com/) if relevant
|
||||
1. Merged by a project maintainer
|
||||
1. Added to the release blog article, if relevant
|
||||
1. Added to [the website](https://gitlab.com/gitlab-com/www-gitlab-com/), if relevant
|
||||
1. Community questions answered
|
||||
1. Answers to questions radiated (in docs/wiki/etc.)
|
||||
1. Answers to questions radiated (in docs/wiki/support etc.)
|
||||
|
||||
If you add a dependency in GitLab (such as an operating system package) please
|
||||
consider updating the following and note the applicability of each in your
|
||||
|
@ -396,13 +560,12 @@ merge request:
|
|||
1. [Ruby](https://github.com/bbatsov/ruby-style-guide).
|
||||
Important sections include [Source Code Layout][rss-source] and
|
||||
[Naming][rss-naming]. Use:
|
||||
- multi-line method chaining style **Option B**: dot `.` on previous line
|
||||
- multi-line method chaining style **Option A**: dot `.` on the second line
|
||||
- string literal quoting style **Option A**: single quoted by default
|
||||
1. [Rails](https://github.com/bbatsov/rails-style-guide)
|
||||
1. [Newlines styleguide][newlines-styleguide]
|
||||
1. [Testing](doc/development/testing.md)
|
||||
1. [JavaScript (ES6)](https://github.com/airbnb/javascript)
|
||||
1. [JavaScript (ES5)](https://github.com/airbnb/javascript/tree/master/es5)
|
||||
1. [Testing][testing]
|
||||
1. [JavaScript styleguide][js-styleguide]
|
||||
1. [SCSS styleguide][scss-styleguide]
|
||||
1. [Shell commands](doc/development/shell_commands.md) created by GitLab
|
||||
contributors to enhance security
|
||||
|
@ -450,10 +613,10 @@ This Code of Conduct is adapted from the [Contributor Covenant][contributor-cove
|
|||
available at [http://contributor-covenant.org/version/1/1/0/](http://contributor-covenant.org/version/1/1/0/).
|
||||
|
||||
[core team]: https://about.gitlab.com/core-team/
|
||||
[team]: https://about.gitlab.com/team/
|
||||
[getting-help]: https://about.gitlab.com/getting-help/
|
||||
[codetriage]: http://www.codetriage.com/gitlabhq/gitlabhq
|
||||
[up-for-grabs]: https://gitlab.com/gitlab-org/gitlab-ce/issues?label_name=up-for-grabs
|
||||
[medium-up-for-grabs]: https://medium.com/@kentcdodds/first-timers-only-78281ea47455
|
||||
[accepting-mrs-weight]: https://gitlab.com/gitlab-org/gitlab-ce/issues?assignee_id=0&label_name[]=Accepting%20Merge%20Requests&sort=weight_asc
|
||||
[ce-tracker]: https://gitlab.com/gitlab-org/gitlab-ce/issues
|
||||
[ee-tracker]: https://gitlab.com/gitlab-org/gitlab-ee/issues
|
||||
[google-group]: https://groups.google.com/forum/#!forum/gitlabhq
|
||||
|
@ -469,8 +632,16 @@ available at [http://contributor-covenant.org/version/1/1/0/](http://contributor
|
|||
[contributor-covenant]: http://contributor-covenant.org
|
||||
[rss-source]: https://github.com/bbatsov/ruby-style-guide/blob/master/README.md#source-code-layout
|
||||
[rss-naming]: https://github.com/bbatsov/ruby-style-guide/blob/master/README.md#naming
|
||||
[changelog]: doc/development/changelog.md "Generate a changelog entry"
|
||||
[doc-styleguide]: doc/development/doc_styleguide.md "Documentation styleguide"
|
||||
[scss-styleguide]: doc/development/scss_styleguide.md "SCSS styleguide"
|
||||
[js-styleguide]: doc/development/fe_guide/style_guide_js.md "JavaScript styleguide"
|
||||
[scss-styleguide]: doc/development/fe_guide/style_guide_scss.md "SCSS styleguide"
|
||||
[newlines-styleguide]: doc/development/newlines_styleguide.md "Newlines styleguide"
|
||||
[UI Guide for building GitLab]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/doc/development/ui_guide.md
|
||||
[UX Guide for GitLab]: http://docs.gitlab.com/ce/development/ux_guide/
|
||||
[license-finder-doc]: doc/development/licensing.md
|
||||
[GitLab Inc engineering workflow]: https://about.gitlab.com/handbook/engineering/workflow/#labelling-issues
|
||||
[polling-etag]: https://docs.gitlab.com/ce/development/polling.html
|
||||
[testing]: doc/development/testing.md
|
||||
|
||||
[^1]: Please note that specs other than JavaScript specs are considered backend
|
||||
code.
|
||||
|
|
1
GITALY_SERVER_VERSION
Normal file
|
@ -0,0 +1 @@
|
|||
0.10.0
|
1
GITLAB_PAGES_VERSION
Normal file
|
@ -0,0 +1 @@
|
|||
0.4.2
|
|
@ -1 +1 @@
|
|||
3.6.6
|
||||
5.0.4
|
||||
|
|
|
@ -1 +1 @@
|
|||
0.8.5
|
||||
2.0.0
|
||||
|
|
242
Gemfile
|
@ -1,13 +1,12 @@
|
|||
source 'https://rubygems.org'
|
||||
|
||||
gem 'rails', '4.2.7.1'
|
||||
gem 'rails', '4.2.8'
|
||||
gem 'rails-deprecated_sanitizer', '~> 1.0.3'
|
||||
|
||||
# Responders respond_to and respond_with
|
||||
gem 'responders', '~> 2.0'
|
||||
|
||||
gem 'sprockets', '~> 3.7.0'
|
||||
gem 'sprockets-es6', '~> 0.9.2'
|
||||
|
||||
# Default values for AR models
|
||||
gem 'default_value_for', '~> 3.0.0'
|
||||
|
@ -16,25 +15,31 @@ gem 'default_value_for', '~> 3.0.0'
|
|||
gem 'mysql2', '~> 0.3.16', group: :mysql
|
||||
gem 'pg', '~> 0.18.2', group: :postgres
|
||||
|
||||
gem 'rugged', '~> 0.25.1.1'
|
||||
|
||||
gem 'faraday', '~> 0.11.0'
|
||||
|
||||
# Authentication libraries
|
||||
gem 'devise', '~> 4.2'
|
||||
gem 'doorkeeper', '~> 4.2.0'
|
||||
gem 'omniauth', '~> 1.3.1'
|
||||
gem 'omniauth-auth0', '~> 1.4.1'
|
||||
gem 'omniauth-azure-oauth2', '~> 0.0.6'
|
||||
gem 'omniauth-bitbucket', '~> 0.0.2'
|
||||
gem 'omniauth-cas3', '~> 1.1.2'
|
||||
gem 'omniauth-facebook', '~> 4.0.0'
|
||||
gem 'omniauth-github', '~> 1.1.1'
|
||||
gem 'omniauth-gitlab', '~> 1.0.0'
|
||||
gem 'devise', '~> 4.2'
|
||||
gem 'doorkeeper', '~> 4.2.0'
|
||||
gem 'doorkeeper-openid_connect', '~> 1.1.0'
|
||||
gem 'omniauth', '~> 1.4.2'
|
||||
gem 'omniauth-auth0', '~> 1.4.1'
|
||||
gem 'omniauth-azure-oauth2', '~> 0.0.6'
|
||||
gem 'omniauth-cas3', '~> 1.1.2'
|
||||
gem 'omniauth-facebook', '~> 4.0.0'
|
||||
gem 'omniauth-github', '~> 1.1.1'
|
||||
gem 'omniauth-gitlab', '~> 1.0.2'
|
||||
gem 'omniauth-google-oauth2', '~> 0.4.1'
|
||||
gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos
|
||||
gem 'omniauth-saml', '~> 1.7.0'
|
||||
gem 'omniauth-shibboleth', '~> 1.2.0'
|
||||
gem 'omniauth-twitter', '~> 1.2.0'
|
||||
gem 'omniauth_crowd', '~> 2.2.0'
|
||||
gem 'rack-oauth2', '~> 1.2.1'
|
||||
gem 'jwt'
|
||||
gem 'omniauth-kerberos', '~> 0.3.0', group: :kerberos
|
||||
gem 'omniauth-oauth2-generic', '~> 0.2.2'
|
||||
gem 'omniauth-saml', '~> 1.7.0'
|
||||
gem 'omniauth-shibboleth', '~> 1.2.0'
|
||||
gem 'omniauth-twitter', '~> 1.2.0'
|
||||
gem 'omniauth_crowd', '~> 2.2.0'
|
||||
gem 'omniauth-authentiq', '~> 0.3.0'
|
||||
gem 'rack-oauth2', '~> 1.2.1'
|
||||
gem 'jwt', '~> 1.5.6'
|
||||
|
||||
# Spam and anti-bot protection
|
||||
gem 'recaptcha', '~> 3.0', require: 'recaptcha/rails'
|
||||
|
@ -46,13 +51,12 @@ gem 'rqrcode-rails3', '~> 0.1.7'
|
|||
gem 'attr_encrypted', '~> 3.0.0'
|
||||
gem 'u2f', '~> 0.2.1'
|
||||
|
||||
# GitLab Pages
|
||||
gem 'validates_hostname', '~> 1.0.6'
|
||||
|
||||
# Browser detection
|
||||
gem 'browser', '~> 2.2'
|
||||
|
||||
# Extracting information from a git repository
|
||||
# Provide access to Gitlab::Git library
|
||||
gem 'gitlab_git', '~> 10.7.0'
|
||||
|
||||
# LDAP Auth
|
||||
# GitLab fork with several improvements to original library. For full list of changes
|
||||
# see https://github.com/intridea/omniauth-ldap/compare/master...gitlabhq:master
|
||||
|
@ -61,15 +65,18 @@ gem 'gitlab_omniauth-ldap', '~> 1.2.1', require: 'omniauth-ldap'
|
|||
# Git Wiki
|
||||
# Required manually in config/initializers/gollum.rb to control load order
|
||||
gem 'gollum-lib', '~> 4.2', require: false
|
||||
gem 'gollum-rugged_adapter', '~> 0.4.2', require: false
|
||||
gem 'gollum-rugged_adapter', '~> 0.4.4', require: false
|
||||
|
||||
# Language detection
|
||||
gem 'github-linguist', '~> 4.7.0', require: 'linguist'
|
||||
|
||||
# API
|
||||
gem 'grape', '~> 0.15.0'
|
||||
gem 'grape', '~> 0.19.0'
|
||||
gem 'grape-entity', '~> 0.6.0'
|
||||
gem 'rack-cors', '~> 0.4.0', require: 'rack/cors'
|
||||
gem 'rack-cors', '~> 0.4.0', require: 'rack/cors'
|
||||
|
||||
# Disable strong_params so that Mash does not respond to :permitted?
|
||||
gem 'hashie-forbidden_attributes'
|
||||
|
||||
# Pagination
|
||||
gem 'kaminari', '~> 0.17.0'
|
||||
|
@ -78,20 +85,22 @@ gem 'kaminari', '~> 0.17.0'
|
|||
gem 'hamlit', '~> 2.6.1'
|
||||
|
||||
# Files attachments
|
||||
gem 'carrierwave', '~> 0.10.0'
|
||||
gem 'carrierwave', '~> 1.0'
|
||||
|
||||
# Drag and Drop UI
|
||||
gem 'dropzonejs-rails', '~> 0.7.1'
|
||||
|
||||
# for backups
|
||||
gem 'fog-aws', '~> 0.9'
|
||||
gem 'fog-azure', '~> 0.0'
|
||||
gem 'fog-core', '~> 1.40'
|
||||
gem 'fog-core', '~> 1.44'
|
||||
gem 'fog-google', '~> 0.5'
|
||||
gem 'fog-local', '~> 0.3'
|
||||
gem 'fog-google', '~> 0.3'
|
||||
gem 'fog-openstack', '~> 0.1'
|
||||
gem 'fog-rackspace', '~> 0.1.1'
|
||||
|
||||
# for Google storage
|
||||
gem 'google-api-client', '~> 0.8.6'
|
||||
|
||||
# for aws storage
|
||||
gem 'unf', '~> 0.1.4'
|
||||
|
||||
|
@ -99,25 +108,26 @@ gem 'unf', '~> 0.1.4'
|
|||
gem 'seed-fu', '~> 2.3.5'
|
||||
|
||||
# Markdown and HTML processing
|
||||
gem 'html-pipeline', '~> 1.11.0'
|
||||
gem 'deckar01-task_list', '1.0.5', require: 'task_list/railtie'
|
||||
gem 'gitlab-markup', '~> 1.5.1'
|
||||
gem 'redcarpet', '~> 3.3.3'
|
||||
gem 'RedCloth', '~> 4.3.2'
|
||||
gem 'rdoc', '~>3.6'
|
||||
gem 'org-ruby', '~> 0.9.12'
|
||||
gem 'creole', '~> 0.5.0'
|
||||
gem 'wikicloth', '0.8.1'
|
||||
gem 'asciidoctor', '~> 1.5.2'
|
||||
gem 'rouge', '~> 2.0'
|
||||
gem 'truncato', '~> 0.7.8'
|
||||
gem 'html-pipeline', '~> 1.11.0'
|
||||
gem 'deckar01-task_list', '1.0.6', require: 'task_list/railtie'
|
||||
gem 'gitlab-markup', '~> 1.5.1'
|
||||
gem 'redcarpet', '~> 3.4'
|
||||
gem 'RedCloth', '~> 4.3.2'
|
||||
gem 'rdoc', '~> 4.2'
|
||||
gem 'org-ruby', '~> 0.9.12'
|
||||
gem 'creole', '~> 0.5.0'
|
||||
gem 'wikicloth', '0.8.1'
|
||||
gem 'asciidoctor', '~> 1.5.2'
|
||||
gem 'asciidoctor-plantuml', '0.0.7'
|
||||
gem 'rouge', '~> 2.0'
|
||||
gem 'truncato', '~> 0.7.8'
|
||||
|
||||
# See https://groups.google.com/forum/#!topic/ruby-security-ann/aSbgDiwb24s
|
||||
# and https://groups.google.com/forum/#!topic/ruby-security-ann/Dy7YiKb_pMM
|
||||
gem 'nokogiri', '~> 1.6.7', '>= 1.6.7.2'
|
||||
|
||||
# Diffs
|
||||
gem 'diffy', '~> 3.0.3'
|
||||
gem 'diffy', '~> 3.1.0'
|
||||
|
||||
# Application server
|
||||
group :unicorn do
|
||||
|
@ -134,9 +144,13 @@ gem 'after_commit_queue', '~> 1.3.0'
|
|||
gem 'acts-as-taggable-on', '~> 4.0'
|
||||
|
||||
# Background jobs
|
||||
gem 'sidekiq', '~> 4.2'
|
||||
gem 'sidekiq-cron', '~> 0.4.0'
|
||||
gem 'sidekiq', '~> 5.0'
|
||||
gem 'sidekiq-cron', '~> 0.4.4'
|
||||
gem 'redis-namespace', '~> 1.5.2'
|
||||
gem 'sidekiq-limit_fetch', '~> 3.4'
|
||||
|
||||
# Cron Parser
|
||||
gem 'rufus-scheduler', '~> 3.1.10'
|
||||
|
||||
# HTTP requests
|
||||
gem 'httparty', '~> 0.13.3'
|
||||
|
@ -147,12 +161,15 @@ gem 'rainbow', '~> 2.1.0'
|
|||
# GitLab settings
|
||||
gem 'settingslogic', '~> 2.0.9'
|
||||
|
||||
# Linear-time regex library for untrusted regular expressions
|
||||
gem 're2', '~> 1.0.0'
|
||||
|
||||
# Misc
|
||||
|
||||
gem 'version_sorter', '~> 2.1.0'
|
||||
|
||||
# Cache
|
||||
gem 'redis-rails', '~> 4.0.0'
|
||||
gem 'redis-rails', '~> 5.0.1'
|
||||
|
||||
# Redis
|
||||
gem 'redis', '~> 3.2'
|
||||
|
@ -161,6 +178,9 @@ gem 'connection_pool', '~> 2.0'
|
|||
# HipChat integration
|
||||
gem 'hipchat', '~> 1.5.0'
|
||||
|
||||
# JIRA integration
|
||||
gem 'jira-ruby', '~> 1.1.2'
|
||||
|
||||
# Flowdock integration
|
||||
gem 'gitlab-flowdock-git-hook', '~> 1.0.1'
|
||||
|
||||
|
@ -168,14 +188,17 @@ gem 'gitlab-flowdock-git-hook', '~> 1.0.1'
|
|||
gem 'gemnasium-gitlab-service', '~> 0.2'
|
||||
|
||||
# Slack integration
|
||||
gem 'slack-notifier', '~> 1.2.0'
|
||||
gem 'slack-notifier', '~> 1.5.1'
|
||||
|
||||
# Asana integration
|
||||
gem 'asana', '~> 0.4.0'
|
||||
gem 'asana', '~> 0.6.0'
|
||||
|
||||
# FogBugz integration
|
||||
gem 'ruby-fogbugz', '~> 0.2.1'
|
||||
|
||||
# Kubernetes integration
|
||||
gem 'kubeclient', '~> 2.2.0'
|
||||
|
||||
# d3
|
||||
gem 'd3_rails', '~> 3.5.0'
|
||||
|
||||
|
@ -190,10 +213,10 @@ gem 'babosa', '~> 1.0.2'
|
|||
gem 'loofah', '~> 2.0.3'
|
||||
|
||||
# Working with license
|
||||
gem 'licensee', '~> 8.0.0'
|
||||
gem 'licensee', '~> 8.7.0'
|
||||
|
||||
# Protect against bruteforcing
|
||||
gem 'rack-attack', '~> 4.3.1'
|
||||
gem 'rack-attack', '~> 4.4.1'
|
||||
|
||||
# Ace editor
|
||||
gem 'ace-rails-ap', '~> 4.1.0'
|
||||
|
@ -211,30 +234,37 @@ gem 'oj', '~> 2.17.4'
|
|||
gem 'chronic', '~> 0.10.2'
|
||||
gem 'chronic_duration', '~> 0.10.6'
|
||||
|
||||
gem 'webpack-rails', '~> 0.9.10'
|
||||
gem 'rack-proxy', '~> 0.6.0'
|
||||
|
||||
gem 'sass-rails', '~> 5.0.6'
|
||||
gem 'coffee-rails', '~> 4.1.0'
|
||||
gem 'uglifier', '~> 2.7.2'
|
||||
gem 'gitlab-turbolinks-classic', '~> 2.5', '>= 2.5.6'
|
||||
|
||||
gem 'addressable', '~> 2.3.8'
|
||||
gem 'bootstrap-sass', '~> 3.3.0'
|
||||
gem 'font-awesome-rails', '~> 4.6.1'
|
||||
gem 'gemojione', '~> 3.0'
|
||||
gem 'gon', '~> 6.1.0'
|
||||
gem 'addressable', '~> 2.3.8'
|
||||
gem 'bootstrap-sass', '~> 3.3.0'
|
||||
gem 'font-awesome-rails', '~> 4.7'
|
||||
gem 'gemojione', '~> 3.0'
|
||||
gem 'gon', '~> 6.1.0'
|
||||
gem 'jquery-atwho-rails', '~> 1.3.2'
|
||||
gem 'jquery-rails', '~> 4.1.0'
|
||||
gem 'jquery-ui-rails', '~> 5.0.0'
|
||||
gem 'request_store', '~> 1.3'
|
||||
gem 'select2-rails', '~> 3.5.9'
|
||||
gem 'virtus', '~> 1.0.1'
|
||||
gem 'net-ssh', '~> 3.0.1'
|
||||
gem 'base32', '~> 0.3.0'
|
||||
gem 'jquery-rails', '~> 4.1.0'
|
||||
gem 'request_store', '~> 1.3'
|
||||
gem 'select2-rails', '~> 3.5.9'
|
||||
gem 'virtus', '~> 1.0.1'
|
||||
gem 'net-ssh', '~> 3.0.1'
|
||||
gem 'base32', '~> 0.3.0'
|
||||
|
||||
# Sentry integration
|
||||
gem 'sentry-raven', '~> 2.0.0'
|
||||
gem 'sentry-raven', '~> 2.4.0'
|
||||
|
||||
gem 'premailer-rails', '~> 1.9.0'
|
||||
|
||||
# I18n
|
||||
gem 'ruby_parser', '~> 3.8.4', require: false
|
||||
gem 'gettext_i18n_rails', '~> 1.8.0'
|
||||
gem 'gettext_i18n_rails_js', '~> 1.2.0'
|
||||
gem 'gettext', '~> 3.2.2', require: false, group: :development
|
||||
|
||||
# Metrics
|
||||
group :metrics do
|
||||
gem 'allocations', '~> 1.0', require: false, platform: :mri
|
||||
|
@ -244,63 +274,56 @@ end
|
|||
|
||||
group :development do
|
||||
gem 'foreman', '~> 0.78.0'
|
||||
gem 'brakeman', '~> 3.3.0', require: false
|
||||
gem 'brakeman', '~> 3.6.0', require: false
|
||||
|
||||
gem 'letter_opener_web', '~> 1.3.0'
|
||||
gem 'rerun', '~> 0.11.0'
|
||||
gem 'bullet', '~> 5.2.0', require: false
|
||||
gem 'rblineprof', '~> 0.3.6', platform: :mri, require: false
|
||||
gem 'web-console', '~> 2.0'
|
||||
|
||||
# Better errors handler
|
||||
gem 'better_errors', '~> 1.0.1'
|
||||
gem 'better_errors', '~> 2.1.0'
|
||||
gem 'binding_of_caller', '~> 0.7.2'
|
||||
|
||||
# Docs generator
|
||||
gem 'sdoc', '~> 0.3.20'
|
||||
|
||||
# thin instead webrick
|
||||
gem 'thin', '~> 1.7.0'
|
||||
end
|
||||
|
||||
group :development, :test do
|
||||
gem 'byebug', '~> 8.2.1', platform: :mri
|
||||
gem 'bullet', '~> 5.5.0', require: !!ENV['ENABLE_BULLET']
|
||||
gem 'pry-byebug', '~> 3.4.1', platform: :mri
|
||||
gem 'pry-rails', '~> 0.3.4'
|
||||
|
||||
gem 'awesome_print', '~> 1.2.0', require: false
|
||||
gem 'fuubar', '~> 2.0.0'
|
||||
|
||||
gem 'database_cleaner', '~> 1.5.0'
|
||||
gem 'factory_girl_rails', '~> 4.6.0'
|
||||
gem 'rspec-rails', '~> 3.5.0'
|
||||
gem 'rspec-retry', '~> 0.4.5'
|
||||
gem 'spinach-rails', '~> 0.2.1'
|
||||
gem 'database_cleaner', '~> 1.5.0'
|
||||
gem 'factory_girl_rails', '~> 4.7.0'
|
||||
gem 'rspec-rails', '~> 3.5.0'
|
||||
gem 'rspec-retry', '~> 0.4.5'
|
||||
gem 'spinach-rails', '~> 0.2.1'
|
||||
gem 'spinach-rerun-reporter', '~> 0.0.2'
|
||||
gem 'rspec_profiling', '~> 0.0.5'
|
||||
gem 'rspec-set', '~> 0.1.3'
|
||||
|
||||
# Prevent occasions where minitest is not bundled in packaged versions of ruby (see #3826)
|
||||
gem 'minitest', '~> 5.7.0'
|
||||
|
||||
# Generate Fake data
|
||||
gem 'ffaker', '~> 2.0.0'
|
||||
gem 'ffaker', '~> 2.4'
|
||||
|
||||
gem 'capybara', '~> 2.6.2'
|
||||
gem 'capybara', '~> 2.6.2'
|
||||
gem 'capybara-screenshot', '~> 1.0.0'
|
||||
gem 'poltergeist', '~> 1.9.0'
|
||||
gem 'poltergeist', '~> 1.9.0'
|
||||
|
||||
gem 'teaspoon', '~> 1.1.0'
|
||||
gem 'teaspoon-jasmine', '~> 2.2.0'
|
||||
gem 'spring', '~> 2.0.0'
|
||||
gem 'spring-commands-rspec', '~> 1.0.4'
|
||||
gem 'spring-commands-spinach', '~> 1.1.0'
|
||||
|
||||
gem 'spring', '~> 1.7.0'
|
||||
gem 'spring-commands-rspec', '~> 1.0.4'
|
||||
gem 'spring-commands-spinach', '~> 1.1.0'
|
||||
gem 'spring-commands-teaspoon', '~> 0.0.2'
|
||||
|
||||
gem 'rubocop', '~> 0.43.0', require: false
|
||||
gem 'rubocop-rspec', '~> 1.5.0', require: false
|
||||
gem 'rubocop', '~> 0.47.1', require: false
|
||||
gem 'rubocop-rspec', '~> 1.15.0', require: false
|
||||
gem 'scss_lint', '~> 0.47.0', require: false
|
||||
gem 'haml_lint', '~> 0.18.2', require: false
|
||||
gem 'simplecov', '0.12.0', require: false
|
||||
gem 'flay', '~> 2.6.1', require: false
|
||||
gem 'haml_lint', '~> 0.21.0', require: false
|
||||
gem 'simplecov', '~> 0.14.0', require: false
|
||||
gem 'flay', '~> 2.8.0', require: false
|
||||
gem 'bundler-audit', '~> 0.5.0', require: false
|
||||
|
||||
gem 'benchmark-ips', '~> 2.3.0', require: false
|
||||
|
@ -309,41 +332,44 @@ group :development, :test do
|
|||
gem 'knapsack', '~> 1.11.0'
|
||||
|
||||
gem 'activerecord_sane_schema_dumper', '0.2'
|
||||
|
||||
gem 'stackprof', '~> 0.2.10'
|
||||
end
|
||||
|
||||
group :test do
|
||||
gem 'shoulda-matchers', '~> 2.8.0', require: false
|
||||
gem 'email_spec', '~> 1.6.0'
|
||||
gem 'json-schema', '~> 2.6.2'
|
||||
gem 'webmock', '~> 1.21.0'
|
||||
gem 'test_after_commit', '~> 0.4.2'
|
||||
gem 'webmock', '~> 1.24.0'
|
||||
gem 'test_after_commit', '~> 1.1'
|
||||
gem 'sham_rack', '~> 1.3.6'
|
||||
gem 'timecop', '~> 0.8.0'
|
||||
gem 'concurrent-ruby', '~> 1.0.5'
|
||||
end
|
||||
|
||||
gem 'newrelic_rpm', '~> 3.16'
|
||||
gem 'octokit', '~> 4.6.2'
|
||||
|
||||
gem 'octokit', '~> 4.3.0'
|
||||
gem 'mail_room', '~> 0.9.1'
|
||||
|
||||
gem 'mail_room', '~> 0.8.1'
|
||||
|
||||
gem 'email_reply_parser', '~> 0.5.8'
|
||||
gem 'email_reply_trimmer', '~> 0.1'
|
||||
gem 'html2text'
|
||||
|
||||
gem 'ruby-prof', '~> 0.16.2'
|
||||
|
||||
## CI
|
||||
gem 'activerecord-session_store', '~> 1.0.0'
|
||||
gem 'nested_form', '~> 0.3.2'
|
||||
|
||||
# OAuth
|
||||
gem 'oauth2', '~> 1.2.0'
|
||||
gem 'oauth2', '~> 1.3.0'
|
||||
|
||||
# Soft deletion
|
||||
gem 'paranoia', '~> 2.0'
|
||||
gem 'paranoia', '~> 2.2'
|
||||
|
||||
# Health check
|
||||
gem 'health_check', '~> 2.2.0'
|
||||
gem 'health_check', '~> 2.6.0'
|
||||
|
||||
# System information
|
||||
gem 'vmstat', '~> 2.2'
|
||||
gem 'vmstat', '~> 2.3.0'
|
||||
gem 'sys-filesystem', '~> 1.1.6'
|
||||
|
||||
# Gitaly GRPC client
|
||||
gem 'gitaly', '~> 0.6.0'
|
||||
|
||||
gem 'toml-rb', '~> 0.3.15', require: false
|
||||
|
|
651
Gemfile.lock
2
LICENSE
|
@ -1,4 +1,4 @@
|
|||
Copyright (c) 2011-2016 GitLab B.V.
|
||||
Copyright (c) 2011-2017 GitLab B.V.
|
||||
|
||||
Permission is hereby granted, free of charge, to any person obtaining a copy
|
||||
of this software and associated documentation files (the "Software"), to deal
|
||||
|
|
285
PROCESS.md
|
@ -1,177 +1,231 @@
|
|||
# GitLab Contributing Process
|
||||
## GitLab Core Team & GitLab Inc. Contribution Process
|
||||
|
||||
---
|
||||
|
||||
<!-- START doctoc generated TOC please keep comment here to allow auto update -->
|
||||
<!-- DON'T EDIT THIS SECTION, INSTEAD RE-RUN doctoc TO UPDATE -->
|
||||
**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)*
|
||||
|
||||
- [Purpose of describing the contributing process](#purpose-of-describing-the-contributing-process)
|
||||
- [Common actions](#common-actions)
|
||||
- [Merge request coaching](#merge-request-coaching)
|
||||
- [Assigning issues](#assigning-issues)
|
||||
- [Be kind](#be-kind)
|
||||
- [Feature freeze on the 7th for the release on the 22nd](#feature-freeze-on-the-7th-for-the-release-on-the-22nd)
|
||||
- [Between the 1st and the 7th](#between-the-1st-and-the-7th)
|
||||
- [On the 7th](#on-the-7th)
|
||||
- [After the 7th](#after-the-7th)
|
||||
- [Release retrospective and kickoff](#release-retrospective-and-kickoff)
|
||||
- [Retrospective](#retrospective)
|
||||
- [Kickoff](#kickoff)
|
||||
- [Copy & paste responses](#copy--paste-responses)
|
||||
- [Improperly formatted issue](#improperly-formatted-issue)
|
||||
- [Issue report for old version](#issue-report-for-old-version)
|
||||
- [Support requests and configuration questions](#support-requests-and-configuration-questions)
|
||||
- [Code format](#code-format)
|
||||
- [Issue fixed in newer version](#issue-fixed-in-newer-version)
|
||||
- [Improperly formatted merge request](#improperly-formatted-merge-request)
|
||||
- [Inactivity close of an issue](#inactivity-close-of-an-issue)
|
||||
- [Inactivity close of a merge request](#inactivity-close-of-a-merge-request)
|
||||
- [Accepting merge requests](#accepting-merge-requests)
|
||||
- [Only accepting merge requests with green tests](#only-accepting-merge-requests-with-green-tests)
|
||||
- [Closing down the issue tracker on GitHub](#closing-down-the-issue-tracker-on-github)
|
||||
|
||||
<!-- END doctoc generated TOC please keep comment here to allow auto update -->
|
||||
|
||||
---
|
||||
|
||||
## Purpose of describing the contributing process
|
||||
|
||||
Below we describe the contributing process to GitLab for two reasons. So that
|
||||
contributors know what to expect from maintainers (possible responses, friendly
|
||||
treatment, etc.). And so that maintainers know what to expect from contributors
|
||||
(use the latest version, ensure that the issue is addressed, friendly treatment,
|
||||
etc.).
|
||||
Below we describe the contributing process to GitLab for two reasons:
|
||||
|
||||
1. Contributors know what to expect from maintainers (possible responses, friendly
|
||||
treatment, etc.)
|
||||
1. Maintainers know what to expect from contributors (use the latest version,
|
||||
ensure that the issue is addressed, friendly treatment, etc.).
|
||||
|
||||
- [GitLab Inc engineers should refer to the engineering workflow document](https://about.gitlab.com/handbook/engineering/workflow/)
|
||||
|
||||
## Common actions
|
||||
|
||||
### Issue team
|
||||
### Merge request coaching
|
||||
|
||||
- Looks for issues without [workflow labels](#how-we-handle-issues) and triages
|
||||
issue
|
||||
- Closes invalid issues with a comment (duplicates,
|
||||
[fixed in newer version](#issue-fixed-in-newer-version),
|
||||
[issue report for old version](#issue-report-for-old-version), not a problem
|
||||
in GitLab, etc.)
|
||||
- Asks for feedback from issue reporter
|
||||
([invalid issue reports](#improperly-formatted-issue),
|
||||
[format code](#code-format), etc.)
|
||||
- Monitors all issues for feedback (but especially ones commented on since
|
||||
automatically watching them)
|
||||
- Closes issues with no feedback from the reporter for two weeks
|
||||
Several people from the [GitLab team][team] are helping community members to get
|
||||
their contributions accepted by meeting our [Definition of done][done].
|
||||
|
||||
### Merge marshall & merge request coach
|
||||
|
||||
- Responds to merge requests the issue team mentions them in and monitors for
|
||||
new merge requests
|
||||
- Provides feedback to the merge request submitter to improve the merge request
|
||||
(style, tests, etc.)
|
||||
- Mark merge requests `Ready for Merge` when they meet the
|
||||
[contribution acceptance criteria]
|
||||
- Mention developer(s) based on the
|
||||
[list of members and their specialities][team]
|
||||
- Closes merge requests with no feedback from the reporter for two weeks
|
||||
|
||||
## Priorities of the issue team
|
||||
|
||||
1. Mentioning people (critical)
|
||||
1. Workflow labels (normal)
|
||||
1. Functional labels (minor)
|
||||
1. Assigning issues (avoid if possible)
|
||||
|
||||
## Mentioning people
|
||||
|
||||
The most important thing is making sure valid issues receive feedback from the
|
||||
development team. Therefore the priority is mentioning developers that can help
|
||||
on those issues. Please select someone with relevant experience from
|
||||
[GitLab core team][core-team]. If there is nobody mentioned with that expertise
|
||||
look in the commit history for the affected files to find someone. Avoid
|
||||
mentioning the lead developer, this is the person that is least likely to give a
|
||||
timely response. If the involvement of the lead developer is needed the other
|
||||
core team members will mention this person.
|
||||
|
||||
## Workflow labels
|
||||
|
||||
Workflow labels are purposely not very detailed since that would be hard to keep
|
||||
updated as you would need to re-evaluate them after every comment. We optionally
|
||||
use functional labels on demand when we want to group related issues to get an
|
||||
overview (for example all issues related to RVM, to tackle them in one go) and
|
||||
to add details to the issue.
|
||||
|
||||
- ~"Awaiting Feedback" Feedback pending from the reporter
|
||||
- ~UX needs help from a UX designer
|
||||
- ~Frontend needs help from a Front-end engineer. Please follow the
|
||||
["Implement design & UI elements" guidelines].
|
||||
- ~up-for-grabs is an issue suitable for first-time contributors, of reasonable difficulty and size. Not exclusive with other labels.
|
||||
- ~"feature proposal" is a proposal for a new feature for GitLab. People are encouraged to vote
|
||||
in support or comment for further detail. Do not use `feature request`.
|
||||
- ~bug is an issue reporting undesirable or incorrect behavior.
|
||||
- ~customer is an issue reported by enterprise subscribers. This label should
|
||||
be accompanied by *bug* or *feature proposal* labels.
|
||||
|
||||
Example workflow: when a UX designer provided a design but it needs frontend work they remove the UX label and add the frontend label.
|
||||
|
||||
## Functional labels
|
||||
|
||||
These labels describe what development specialities are involved such as: `CI`,
|
||||
`Core`, `Documentation`, `Frontend`, `Issues`, `Merge Requests`, `Omnibus`,
|
||||
`Release`, `Repository`, `UX`.
|
||||
What you can expect from them is described at https://about.gitlab.com/jobs/merge-request-coach/.
|
||||
|
||||
## Assigning issues
|
||||
|
||||
If an issue is complex and needs the attention of a specific person, assignment is a good option but assigning issues might discourage other people from contributing to that issue. We need all the contributions we can get so this should never be discouraged. Also, an assigned person might not have time for a few weeks, so others should feel free to takeover.
|
||||
|
||||
## Label colors
|
||||
|
||||
- Light orange `#fef2c0`: workflow labels for issue team members (awaiting
|
||||
feedback, awaiting confirmation of fix)
|
||||
- Bright orange `#eb6420`: workflow labels for core team members (attached MR,
|
||||
awaiting developer action/feedback)
|
||||
- Light blue `#82C5FF`: functional labels
|
||||
- Green labels `#009800`: issues that can generally be ignored. For example,
|
||||
issues given the following labels normally can be closed immediately:
|
||||
- Support (see copy & paste response:
|
||||
[Support requests and configuration questions](#support-requests-and-configuration-questions)
|
||||
|
||||
## Be kind
|
||||
|
||||
Be kind to people trying to contribute. Be aware that people may be a non-native
|
||||
English speaker, they might not understand things or they might be very
|
||||
sensitive as to how you word things. Use Emoji to express your feelings (heart,
|
||||
star, smile, etc.). Some good tips about giving feedback to merge requests is in
|
||||
the [Thoughtbot code review guide].
|
||||
star, smile, etc.). Some good tips about code reviews can be found in our
|
||||
[Code Review Guidelines].
|
||||
|
||||
## Feature Freeze
|
||||
[Code Review Guidelines]: https://docs.gitlab.com/ce/development/code_review.html
|
||||
|
||||
5 working days before the 22nd the stable branches for the upcoming release will
|
||||
be frozen for major changes. Merge requests may still be merged into master
|
||||
during this period. By freezing the stable branches prior to a release there's
|
||||
no need to worry about last minute merge requests potentially breaking a lot of
|
||||
things.
|
||||
## Feature freeze on the 7th for the release on the 22nd
|
||||
|
||||
What is considered to be a major change is determined on a case by case basis as
|
||||
this definition depends very much on the context of changes. For example, a 5
|
||||
line change might have a big impact on the entire application. Ultimately the
|
||||
decision will be made by those reviewing a merge request and the release
|
||||
manager.
|
||||
After the 7th (Pacific Standard Time Zone) of each month, RC1 of the upcoming release (to be shipped on the 22nd) is created and deployed to GitLab.com and the stable branch for this release is frozen, which means master is no longer merged into it.
|
||||
Merge requests may still be merged into master during this period,
|
||||
but they will go into the _next_ release, unless they are manually cherry-picked into the stable branch.
|
||||
By freezing the stable branches 2 weeks prior to a release, we reduce the risk of a last minute merge request potentially breaking things.
|
||||
|
||||
During the feature freeze all merge requests that are meant to go into the next
|
||||
### Between the 1st and the 7th
|
||||
|
||||
These types of merge requests for the upcoming release need special consideration:
|
||||
|
||||
* **Large features**: a large feature is one that is highlighted in the kick-off
|
||||
and the release blogpost; typically this will have its own channel in Slack
|
||||
and a dedicated team with front-end, back-end, and UX.
|
||||
* **Small features**: any other feature request.
|
||||
|
||||
**Large features** must be with a maintainer **by the 1st**. This means that:
|
||||
|
||||
* There is a merge request (even if it's WIP).
|
||||
* The person (or people, if it needs a frontend and backend maintainer) who will
|
||||
ultimately be responsible for merging this have been pinged on the MR.
|
||||
|
||||
It's OK if merge request isn't completely done, but this allows the maintainer
|
||||
enough time to make the decision about whether this can make it in before the
|
||||
freeze. If the maintainer doesn't think it will make it, they should inform the
|
||||
developers working on it and the Product Manager responsible for the feature.
|
||||
|
||||
The maintainer can also choose to assign a reviewer to perform an initial
|
||||
review, but this way the maintainer is unlikely to be surprised by receiving an
|
||||
MR later in the cycle.
|
||||
|
||||
**Small features** must be with a reviewer (not necessarily maintainer) **by the
|
||||
3rd**.
|
||||
|
||||
Most merge requests from the community do not have a specific release
|
||||
target. However, if one does and falls into either of the above categories, it's
|
||||
the reviewer's responsibility to manage the above communication and assignment
|
||||
on behalf of the community member.
|
||||
|
||||
### On the 7th
|
||||
|
||||
Merge requests should still be complete, following the
|
||||
[definition of done][done]. The single exception is documentation, and this can
|
||||
only be left until after the freeze if:
|
||||
|
||||
* There is a follow-up issue to add documentation.
|
||||
* It is assigned to the person writing documentation for this feature, and they
|
||||
are aware of it.
|
||||
* It is in the correct milestone, with the ~Deliverable label.
|
||||
|
||||
All Community Edition merge requests from GitLab team members merged on the
|
||||
freeze date (the 7th) should have a corresponding Enterprise Edition merge
|
||||
request, even if there are no conflicts. This is to reduce the size of the
|
||||
subsequent EE merge, as we often merge a lot to CE on the release date. For more
|
||||
information, see
|
||||
[limit conflicts with EE when developing on CE][limit_ee_conflicts].
|
||||
|
||||
### After the 7th
|
||||
|
||||
Once the stable branch is frozen, only fixes for regressions (bugs introduced in that same release)
|
||||
and security issues will be cherry-picked into the stable branch.
|
||||
Any merge requests cherry-picked into the stable branch for a previous release will also be picked into the latest stable branch.
|
||||
These fixes will be shipped in the next RC for that release if it is before the 22nd.
|
||||
If the fixes are are completed on or after the 22nd, they will be shipped in a patch for that release.
|
||||
|
||||
If you think a merge request should go into an RC or patch even though it does not meet these requirements,
|
||||
you can ask for an exception to be made. Exceptions require sign-off from 3 people besides the developer:
|
||||
|
||||
1. a Release Manager
|
||||
2. an Engineering Lead
|
||||
3. an Engineering Director, the VP of Engineering, or the CTO
|
||||
|
||||
You can find who is who on the [team page](https://about.gitlab.com/team/).
|
||||
|
||||
Whether an exception is made is determined by weighing the benefit and urgency of the change
|
||||
(how important it is to the company that this is released _right now_ instead of in a month)
|
||||
against the potential negative impact
|
||||
(things breaking without enough time to comfortably find and fix them before the release on the 22nd).
|
||||
When in doubt, we err on the side of _not_ cherry-picking.
|
||||
|
||||
For example, it is likely that an exception will be made for a trivial 1-5 line performance improvement
|
||||
(e.g. adding a database index or adding `includes` to a query), but not for a new feature, no matter how relatively small or thoroughly tested.
|
||||
|
||||
During the feature freeze all merge requests that are meant to go into the upcoming
|
||||
release should have the correct milestone assigned _and_ have the label
|
||||
~"Pick into Stable" set. Merge requests without a milestone and this label will
|
||||
~"Pick into Stable" set, so that release managers can find and pick them.
|
||||
Merge requests without a milestone and this label will
|
||||
not be merged into any stable branches.
|
||||
|
||||
## Release retrospective and kickoff
|
||||
|
||||
### Retrospective
|
||||
|
||||
After each release, we have a retrospective call where we discuss what went well,
|
||||
what went wrong, and what we can improve for the next release. The
|
||||
[retrospective notes] are public and you are invited to comment on them.
|
||||
If you're interested, you can even join the
|
||||
[retrospective call][retro-kickoff-call], on the first working day after the
|
||||
22nd at 6pm CET / 9am PST.
|
||||
|
||||
### Kickoff
|
||||
|
||||
Before working on the next release, we have a
|
||||
kickoff call to explain what we expect to ship in the next release. The
|
||||
[kickoff notes] are public and you are invited to comment on them.
|
||||
If you're interested, you can even join the [kickoff call][retro-kickoff-call],
|
||||
on the first working day after the 7th at 6pm CET / 9am PST..
|
||||
|
||||
[retrospective notes]: https://docs.google.com/document/d/1nEkM_7Dj4bT21GJy0Ut3By76FZqCfLBmFQNVThmW2TY/edit?usp=sharing
|
||||
[kickoff notes]: https://docs.google.com/document/d/1ElPkZ90A8ey_iOkTvUs_ByMlwKK6NAB2VOK5835wYK0/edit?usp=sharing
|
||||
[retro-kickoff-call]: https://gitlab.zoom.us/j/918821206
|
||||
|
||||
## Copy & paste responses
|
||||
|
||||
### Improperly formatted issue
|
||||
|
||||
Thanks for the issue report. Please reformat your issue to conform to the \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines).
|
||||
Thanks for the issue report. Please reformat your issue to conform to the [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines).
|
||||
|
||||
### Issue report for old version
|
||||
|
||||
Thanks for the issue report but we only support issues for the latest stable version of GitLab. I'm closing this issue but if you still experience this problem in the latest stable version, please open a new issue (but also reference the old issue(s)). Make sure to also include the necessary debugging information conforming to the issue tracker guidelines found in our \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines).
|
||||
Thanks for the issue report but we only support issues for the latest stable version of GitLab. I'm closing this issue but if you still experience this problem in the latest stable version, please open a new issue (but also reference the old issue(s)). Make sure to also include the necessary debugging information conforming to the issue tracker guidelines found in our [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines).
|
||||
|
||||
### Support requests and configuration questions
|
||||
|
||||
Thanks for your interest in GitLab. We don't use the issue tracker for support
|
||||
requests and configuration questions. Please check our
|
||||
\[getting help\]\(https://about.gitlab.com/getting-help/) page to see all of the available
|
||||
support options. Also, have a look at the \[contribution guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md)
|
||||
[getting help](https://about.gitlab.com/getting-help/) page to see all of the available
|
||||
support options. Also, have a look at the [contribution guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md)
|
||||
for more information.
|
||||
|
||||
### Code format
|
||||
|
||||
Please use ``` to format console output, logs, and code as it's very hard to read otherwise.
|
||||
Please use \`\`\` to format console output, logs, and code as it's very hard to read otherwise.
|
||||
|
||||
### Issue fixed in newer version
|
||||
|
||||
Thanks for the issue report. This issue has already been fixed in newer versions of GitLab. Due to the size of this project and our limited resources we are only able to support the latest stable release as outlined in our \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker). In order to get this bug fix and enjoy many new features please \[upgrade\]\(https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/update). If you still experience issues at that time please open a new issue following our issue tracker guidelines found in the \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines).
|
||||
Thanks for the issue report. This issue has already been fixed in newer versions of GitLab. Due to the size of this project and our limited resources we are only able to support the latest stable release as outlined in our [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker). In order to get this bug fix and enjoy many new features please [upgrade](https://gitlab.com/gitlab-org/gitlab-ce/tree/master/doc/update). If you still experience issues at that time please open a new issue following our issue tracker guidelines found in the [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines).
|
||||
|
||||
### Improperly formatted merge request
|
||||
|
||||
Thanks for your interest in improving the GitLab codebase! Please update your merge request according to the \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#pull-request-guidelines).
|
||||
Thanks for your interest in improving the GitLab codebase! Please update your merge request according to the [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#pull-request-guidelines).
|
||||
|
||||
### Inactivity close of an issue
|
||||
|
||||
It's been at least 2 weeks (and a new release) since we heard from you. I'm closing this issue but if you still experience this problem, please open a new issue (but also reference the old issue(s)). Make sure to also include the necessary debugging information conforming to the issue tracker guidelines found in our \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines).
|
||||
It's been at least 2 weeks (and a new release) since we heard from you. I'm closing this issue but if you still experience this problem, please open a new issue (but also reference the old issue(s)). Make sure to also include the necessary debugging information conforming to the issue tracker guidelines found in our [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#issue-tracker-guidelines).
|
||||
|
||||
### Inactivity close of a merge request
|
||||
|
||||
This merge request has been closed because a request for more information has not been reacted to for more than 2 weeks. If you respond and conform to the merge request guidelines in our \[contributing guidelines\]\(https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#pull-requests) we will reopen this merge request.
|
||||
This merge request has been closed because a request for more information has not been reacted to for more than 2 weeks. If you respond and conform to the merge request guidelines in our [contributing guidelines](https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#pull-requests) we will reopen this merge request.
|
||||
|
||||
### Accepting merge requests
|
||||
|
||||
Is there an issue on the
|
||||
\[issue tracker\]\(https://gitlab.com/gitlab-org/gitlab-ce/issues) that is
|
||||
[issue tracker](https://gitlab.com/gitlab-org/gitlab-ce/issues) that is
|
||||
similar to this? Could you please link it here?
|
||||
Please be aware that new functionality that is not marked
|
||||
\[accepting merge requests\]\(https://gitlab.com/gitlab-org/gitlab-ce/issues?milestone_id=&scope=all&sort=created_desc&state=opened&utf8=%E2%9C%93&assignee_id=&author_id=&milestone_title=&label_name=Accepting+Merge+Requests)
|
||||
[accepting merge requests](https://gitlab.com/gitlab-org/gitlab-ce/issues?milestone_id=&scope=all&sort=created_desc&state=opened&utf8=%E2%9C%93&assignee_id=&author_id=&milestone_title=&label_name=Accepting+Merge+Requests)
|
||||
might not make it into GitLab.
|
||||
|
||||
### Only accepting merge requests with green tests
|
||||
|
@ -186,10 +240,11 @@ rebase with master to see if that solves the issue.
|
|||
We are currently in the process of closing down the issue tracker on GitHub, to
|
||||
prevent duplication with the GitLab.com issue tracker.
|
||||
Since this is an older issue I'll be closing this for now. If you think this is
|
||||
still an issue I encourage you to open it on the \[GitLab.com issue tracker\]\(https://gitlab.com/gitlab-org/gitlab-ce/issues).
|
||||
still an issue I encourage you to open it on the [GitLab.com issue tracker](https://gitlab.com/gitlab-org/gitlab-ce/issues).
|
||||
|
||||
[core-team]: https://about.gitlab.com/core-team/
|
||||
[team]: https://about.gitlab.com/team/
|
||||
[contribution acceptance criteria]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#contribution-acceptance-criteria
|
||||
["Implement design & UI elements" guidelines]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#implement-design-ui-elements
|
||||
[Thoughtbot code review guide]: https://github.com/thoughtbot/guides/tree/master/code-review
|
||||
[done]: https://gitlab.com/gitlab-org/gitlab-ce/blob/master/CONTRIBUTING.md#definition-of-done
|
||||
[limit_ee_conflicts]: https://docs.gitlab.com/ce/development/limit_ee_conflicts.html
|
||||
|
|
36
README.md
|
@ -1,9 +1,15 @@
|
|||
# GitLab
|
||||
|
||||
[![Build status](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/build.svg)](https://gitlab.com/gitlab-org/gitlab-ce/commits/master)
|
||||
[![CE coverage report](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg?job=coverage)](http://gitlab-org.gitlab.io/gitlab-ce/coverage-ruby)
|
||||
[![Overall test coverage](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg)](https://gitlab.com/gitlab-org/gitlab-ce/pipelines)
|
||||
[![Code Climate](https://codeclimate.com/github/gitlabhq/gitlabhq.svg)](https://codeclimate.com/github/gitlabhq/gitlabhq)
|
||||
[![Core Infrastructure Initiative Best Practices](https://bestpractices.coreinfrastructure.org/projects/42/badge)](https://bestpractices.coreinfrastructure.org/projects/42)
|
||||
[![Gitter](https://badges.gitter.im/gitlabhq/gitlabhq.svg)](https://gitter.im/gitlabhq/gitlabhq?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge)
|
||||
|
||||
## Test coverage
|
||||
|
||||
- [![Ruby coverage](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg?job=coverage)](https://gitlab-org.gitlab.io/gitlab-ce/coverage-ruby) Ruby
|
||||
- [![JavaScript coverage](https://gitlab.com/gitlab-org/gitlab-ce/badges/master/coverage.svg?job=rake+karma)](https://gitlab-org.gitlab.io/gitlab-ce/coverage-javascript) JavaScript
|
||||
|
||||
## Canonical source
|
||||
|
||||
|
@ -15,10 +21,10 @@ To see how GitLab looks please see the [features page on our website](https://ab
|
|||
|
||||
- Manage Git repositories with fine grained access controls that keep your code secure
|
||||
- Perform code reviews and enhance collaboration with merge requests
|
||||
- Each project can also have an issue tracker and a wiki
|
||||
- Complete continuous integration (CI) and CD pipelines to builds, test, and deploy your applications
|
||||
- Each project can also have an issue tracker, issue board, and a wiki
|
||||
- Used by more than 100,000 organizations, GitLab is the most popular solution to manage Git repositories on-premises
|
||||
- Completely free and open source (MIT Expat license)
|
||||
- Powered by [Ruby on Rails](https://github.com/rails/rails)
|
||||
|
||||
## Hiring
|
||||
|
||||
|
@ -29,7 +35,7 @@ We're hiring developers, support people, and production engineers all the time,
|
|||
There are two editions of GitLab:
|
||||
|
||||
- GitLab Community Edition (CE) is available freely under the MIT Expat license.
|
||||
- GitLab Enterprise Edition (EE) includes [extra features](https://about.gitlab.com/features/#compare) that are more useful for organizations with more than 100 users. To use EE and get official support please [become a subscriber](https://about.gitlab.com/pricing/).
|
||||
- GitLab Enterprise Edition (EE) includes [extra features](https://about.gitlab.com/products/#compare-options) that are more useful for organizations with more than 100 users. To use EE and get official support please [become a subscriber](https://about.gitlab.com/products/).
|
||||
|
||||
## Website
|
||||
|
||||
|
@ -56,6 +62,10 @@ There are various other options to install GitLab, please refer to the [installa
|
|||
|
||||
You can access a new installation with the login **`root`** and password **`5iveL!fe`**, after login you are required to set a unique password.
|
||||
|
||||
## Contributing
|
||||
|
||||
GitLab is an open source project and we are very happy to accept community contributions. Please refer to [CONTRIBUTING.md](/CONTRIBUTING.md) for details.
|
||||
|
||||
## Install a development environment
|
||||
|
||||
To work on GitLab itself, we recommend setting up your development environment with [the GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit).
|
||||
|
@ -64,19 +74,23 @@ One small thing you also have to do when installing it yourself is to copy the e
|
|||
|
||||
cp config/unicorn.rb.example.development config/unicorn.rb
|
||||
|
||||
Instructions on how to start GitLab and how to run the tests can be found in the [development section of the GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit#development).
|
||||
Instructions on how to start GitLab and how to run the tests can be found in the [getting started section of the GitLab Development Kit](https://gitlab.com/gitlab-org/gitlab-development-kit#getting-started).
|
||||
|
||||
## Software stack
|
||||
|
||||
GitLab is a Ruby on Rails application that runs on the following software:
|
||||
|
||||
- Ubuntu/Debian/CentOS/RHEL
|
||||
- Ubuntu/Debian/CentOS/RHEL/OpenSUSE
|
||||
- Ruby (MRI) 2.3
|
||||
- Git 2.7.4+
|
||||
- Git 2.8.4+
|
||||
- Redis 2.8+
|
||||
- MySQL or PostgreSQL
|
||||
- PostgreSQL (preferred) or MySQL
|
||||
|
||||
For more information please see the [architecture documentation](http://doc.gitlab.com/ce/development/architecture.html).
|
||||
For more information please see the [architecture documentation](https://docs.gitlab.com/ce/development/architecture.html).
|
||||
|
||||
## UX design
|
||||
|
||||
Please adhere to the [UX Guide](doc/development/ux_guide/index.md) when creating designs and implementing code.
|
||||
|
||||
## Third-party applications
|
||||
|
||||
|
@ -92,7 +106,7 @@ For upgrading information please see our [update page](https://about.gitlab.com/
|
|||
|
||||
## Documentation
|
||||
|
||||
All documentation can be found on [doc.gitlab.com/ce/](http://doc.gitlab.com/ce/).
|
||||
All documentation can be found on [docs.gitlab.com/ce/](https://docs.gitlab.com/ce/).
|
||||
|
||||
## Getting help
|
||||
|
||||
|
@ -105,4 +119,4 @@ Please see [Getting help for GitLab](https://about.gitlab.com/getting-help/) on
|
|||
## Is it awesome?
|
||||
|
||||
Thanks for [asking this question](https://twitter.com/supersloth/status/489462789384056832) Joshua.
|
||||
[These people](https://twitter.com/gitlab/favorites) seem to like it.
|
||||
[These people](https://twitter.com/gitlab/likes) seem to like it.
|
||||
|
|
2
VERSION
|
@ -1 +1 @@
|
|||
8.13.11
|
||||
9.2.10
|
||||
|
|
|
@ -1,93 +0,0 @@
|
|||
Copyright 2010, 2012, 2014 Adobe Systems Incorporated (http://www.adobe.com/), with Reserved Font Name 'Source'. All Rights Reserved. Source is a trademark of Adobe Systems Incorporated in the United States and/or other countries.
|
||||
|
||||
This Font Software is licensed under the SIL Open Font License, Version 1.1.
|
||||
|
||||
This license is copied below, and is also available with a FAQ at: http://scripts.sil.org/OFL
|
||||
|
||||
|
||||
-----------------------------------------------------------
|
||||
SIL OPEN FONT LICENSE Version 1.1 - 26 February 2007
|
||||
-----------------------------------------------------------
|
||||
|
||||
PREAMBLE
|
||||
The goals of the Open Font License (OFL) are to stimulate worldwide
|
||||
development of collaborative font projects, to support the font creation
|
||||
efforts of academic and linguistic communities, and to provide a free and
|
||||
open framework in which fonts may be shared and improved in partnership
|
||||
with others.
|
||||
|
||||
The OFL allows the licensed fonts to be used, studied, modified and
|
||||
redistributed freely as long as they are not sold by themselves. The
|
||||
fonts, including any derivative works, can be bundled, embedded,
|
||||
redistributed and/or sold with any software provided that any reserved
|
||||
names are not used by derivative works. The fonts and derivatives,
|
||||
however, cannot be released under any other type of license. The
|
||||
requirement for fonts to remain under this license does not apply
|
||||
to any document created using the fonts or their derivatives.
|
||||
|
||||
DEFINITIONS
|
||||
"Font Software" refers to the set of files released by the Copyright
|
||||
Holder(s) under this license and clearly marked as such. This may
|
||||
include source files, build scripts and documentation.
|
||||
|
||||
"Reserved Font Name" refers to any names specified as such after the
|
||||
copyright statement(s).
|
||||
|
||||
"Original Version" refers to the collection of Font Software components as
|
||||
distributed by the Copyright Holder(s).
|
||||
|
||||
"Modified Version" refers to any derivative made by adding to, deleting,
|
||||
or substituting -- in part or in whole -- any of the components of the
|
||||
Original Version, by changing formats or by porting the Font Software to a
|
||||
new environment.
|
||||
|
||||
"Author" refers to any designer, engineer, programmer, technical
|
||||
writer or other person who contributed to the Font Software.
|
||||
|
||||
PERMISSION & CONDITIONS
|
||||
Permission is hereby granted, free of charge, to any person obtaining
|
||||
a copy of the Font Software, to use, study, copy, merge, embed, modify,
|
||||
redistribute, and sell modified and unmodified copies of the Font
|
||||
Software, subject to the following conditions:
|
||||
|
||||
1) Neither the Font Software nor any of its individual components,
|
||||
in Original or Modified Versions, may be sold by itself.
|
||||
|
||||
2) Original or Modified Versions of the Font Software may be bundled,
|
||||
redistributed and/or sold with any software, provided that each copy
|
||||
contains the above copyright notice and this license. These can be
|
||||
included either as stand-alone text files, human-readable headers or
|
||||
in the appropriate machine-readable metadata fields within text or
|
||||
binary files as long as those fields can be easily viewed by the user.
|
||||
|
||||
3) No Modified Version of the Font Software may use the Reserved Font
|
||||
Name(s) unless explicit written permission is granted by the corresponding
|
||||
Copyright Holder. This restriction only applies to the primary font name as
|
||||
presented to the users.
|
||||
|
||||
4) The name(s) of the Copyright Holder(s) or the Author(s) of the Font
|
||||
Software shall not be used to promote, endorse or advertise any
|
||||
Modified Version, except to acknowledge the contribution(s) of the
|
||||
Copyright Holder(s) and the Author(s) or with their explicit written
|
||||
permission.
|
||||
|
||||
5) The Font Software, modified or unmodified, in part or in whole,
|
||||
must be distributed entirely under this license, and must not be
|
||||
distributed under any other license. The requirement for fonts to
|
||||
remain under this license does not apply to any document created
|
||||
using the Font Software.
|
||||
|
||||
TERMINATION
|
||||
This license becomes null and void if any of the above conditions are
|
||||
not met.
|
||||
|
||||
DISCLAIMER
|
||||
THE FONT SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
|
||||
EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO ANY WARRANTIES OF
|
||||
MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT
|
||||
OF COPYRIGHT, PATENT, TRADEMARK, OR OTHER RIGHT. IN NO EVENT SHALL THE
|
||||
COPYRIGHT HOLDER BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
|
||||
INCLUDING ANY GENERAL, SPECIAL, INDIRECT, INCIDENTAL, OR CONSEQUENTIAL
|
||||
DAMAGES, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
|
||||
FROM, OUT OF THE USE OR INABILITY TO USE THE FONT SOFTWARE OR FROM
|
||||
OTHER DEALINGS IN THE FONT SOFTWARE.
|
BIN
app/assets/images/auth_buttons/authentiq_64.png
Normal file
After Width: | Height: | Size: 17 KiB |
BIN
app/assets/images/ci_favicons/dev/favicon_status_canceled.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/dev/favicon_status_created.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/dev/favicon_status_failed.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/dev/favicon_status_manual.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/dev/favicon_status_not_found.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/dev/favicon_status_pending.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/dev/favicon_status_running.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/dev/favicon_status_skipped.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/dev/favicon_status_success.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/dev/favicon_status_warning.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/favicon_status_canceled.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/favicon_status_created.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/favicon_status_failed.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/favicon_status_manual.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/favicon_status_not_found.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/favicon_status_pending.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/favicon_status_running.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/favicon_status_skipped.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/favicon_status_success.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
BIN
app/assets/images/ci_favicons/favicon_status_warning.ico
Normal file
After Width: | Height: | Size: 4.2 KiB |
Before Width: | Height: | Size: 1 MiB After Width: | Height: | Size: 1.2 MiB |
BIN
app/assets/images/emoji/100.png
Normal file
After Width: | Height: | Size: 793 B |
BIN
app/assets/images/emoji/1234.png
Normal file
After Width: | Height: | Size: 676 B |
BIN
app/assets/images/emoji/1F627.png
Normal file
After Width: | Height: | Size: 821 B |
BIN
app/assets/images/emoji/8ball.png
Normal file
After Width: | Height: | Size: 810 B |
BIN
app/assets/images/emoji/a.png
Normal file
After Width: | Height: | Size: 469 B |
BIN
app/assets/images/emoji/ab.png
Normal file
After Width: | Height: | Size: 505 B |
BIN
app/assets/images/emoji/abc.png
Normal file
After Width: | Height: | Size: 646 B |
BIN
app/assets/images/emoji/abcd.png
Normal file
After Width: | Height: | Size: 670 B |
BIN
app/assets/images/emoji/accept.png
Normal file
After Width: | Height: | Size: 491 B |
BIN
app/assets/images/emoji/aerial_tramway.png
Normal file
After Width: | Height: | Size: 759 B |
BIN
app/assets/images/emoji/airplane.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
app/assets/images/emoji/airplane_arriving.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
app/assets/images/emoji/airplane_departure.png
Normal file
After Width: | Height: | Size: 1.1 KiB |
BIN
app/assets/images/emoji/airplane_small.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
app/assets/images/emoji/alarm_clock.png
Normal file
After Width: | Height: | Size: 1 KiB |
BIN
app/assets/images/emoji/alembic.png
Normal file
After Width: | Height: | Size: 953 B |
BIN
app/assets/images/emoji/alien.png
Normal file
After Width: | Height: | Size: 839 B |
BIN
app/assets/images/emoji/ambulance.png
Normal file
After Width: | Height: | Size: 1.2 KiB |
BIN
app/assets/images/emoji/amphora.png
Normal file
After Width: | Height: | Size: 1 KiB |
BIN
app/assets/images/emoji/anchor.png
Normal file
After Width: | Height: | Size: 779 B |
BIN
app/assets/images/emoji/angel.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
app/assets/images/emoji/angel_tone1.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
app/assets/images/emoji/angel_tone2.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
app/assets/images/emoji/angel_tone3.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
app/assets/images/emoji/angel_tone4.png
Normal file
After Width: | Height: | Size: 2 KiB |
BIN
app/assets/images/emoji/angel_tone5.png
Normal file
After Width: | Height: | Size: 2 KiB |