diff --git a/.github/workflows/commitlint.yml b/.github/workflows/commitlint.yml new file mode 100644 index 0000000..42a5375 --- /dev/null +++ b/.github/workflows/commitlint.yml @@ -0,0 +1,16 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +name: Commitlint +'on': [pull_request] + +jobs: + lint: + runs-on: ubuntu-latest + env: + GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} + steps: + - uses: actions/checkout@v2 + with: + fetch-depth: 0 + - uses: wagoid/commitlint-github-action@v1 diff --git a/.gitignore b/.gitignore index 0bbb03c..6995110 100644 --- a/.gitignore +++ b/.gitignore @@ -105,7 +105,7 @@ ENV/ .mypy_cache/ # Bundler -Gemfile.lock +.bundle/ # copied `.md` files used for conversion to `.rst` using `m2r` docs/*.md diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml new file mode 100644 index 0000000..50faa00 --- /dev/null +++ b/.gitlab-ci.yml @@ -0,0 +1,154 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +############################################################################### +# Define all YAML node anchors +############################################################################### +.node_anchors: + # `only` (also used for `except` where applicable) + only_branch_master_parent_repo: &only_branch_master_parent_repo + - 'master@saltstack-formulas/influxdb-formula' + # `stage` + stage_lint: &stage_lint 'lint' + stage_release: &stage_release 'release' + stage_test: &stage_test 'test' + # `image` + image_commitlint: &image_commitlint 'myii/ssf-commitlint:11' + image_dindruby: &image_dindruby 'myii/ssf-dind-ruby:2.7.1-r3' + image_precommit: &image_precommit + name: 'myii/ssf-pre-commit:2.9.2' + entrypoint: ['/bin/bash', '-c'] + image_semantic-release: &image_semanticrelease 'myii/ssf-semantic-release:15.14' + # `services` + services_docker_dind: &services_docker_dind + - 'docker:dind' + # `variables` + # https://forum.gitlab.com/t/gitlab-com-ci-caching-rubygems/5627/3 + # https://bundler.io/v1.16/bundle_config.html + variables_bundler: &variables_bundler + BUNDLE_CACHE_PATH: '${CI_PROJECT_DIR}/.cache/bundler' + BUNDLE_WITHOUT: 'production' + # `cache` + cache_bundler: &cache_bundler + key: '${CI_JOB_STAGE}' + paths: + - '${BUNDLE_CACHE_PATH}' + +############################################################################### +# Define stages and global variables +############################################################################### +stages: + - *stage_lint + - *stage_test + - *stage_release +variables: + DOCKER_DRIVER: 'overlay2' + +############################################################################### +# `lint` stage: `commitlint` & `pre-commit` +############################################################################### +commitlint: + stage: *stage_lint + image: *image_commitlint + script: + # Add `upstream` remote to get access to `upstream/master` + - 'git remote add upstream ${CI_PROJECT_URL}.git' + - 'git fetch --all' + # Set default commit hashes for `--from` and `--to` + - 'export COMMITLINT_FROM="$(git merge-base upstream/master HEAD)"' + - 'export COMMITLINT_TO="${CI_COMMIT_SHA}"' + # `coqbot` adds a merge commit to test PRs on top of the latest commit in + # the repo; amend this merge commit message to avoid failure + - | + if [ "${GITLAB_USER_LOGIN}" = "coqbot" ] \ + && [ "${CI_COMMIT_BRANCH}" != "master" ]; then + git commit --amend -m \ + 'chore: reword coqbot merge commit message for commitlint' + export COMMITLINT_TO=HEAD + fi + # Run `commitlint` + - 'commitlint --from "${COMMITLINT_FROM}" + --to "${COMMITLINT_TO}" + --verbose' + +pre-commit: + stage: *stage_lint + image: *image_precommit + # https://pre-commit.com/#gitlab-ci-example + variables: + PRE_COMMIT_HOME: '${CI_PROJECT_DIR}/.cache/pre-commit' + cache: + key: '${CI_JOB_NAME}' + paths: + - '${PRE_COMMIT_HOME}' + script: + - 'pre-commit run --all-files --color always --verbose' + +############################################################################### +# Define `test` template +############################################################################### +.test_instance: + stage: *stage_test + image: *image_dindruby + services: *services_docker_dind + variables: *variables_bundler + cache: *cache_bundler + before_script: + # TODO: This should work from the env vars above automatically + - 'bundle config set path "${BUNDLE_CACHE_PATH}"' + - 'bundle config set without "${BUNDLE_WITHOUT}"' + - 'bundle install' + script: + # Alternative value to consider: `${CI_JOB_NAME}` + - 'bin/kitchen verify "${DOCKER_ENV_CI_JOB_NAME}"' + +############################################################################### +# `test` stage: each instance below uses the `test` template above +############################################################################### +## Define the rest of the matrix based on Kitchen testing +# Make sure the instances listed below match up with +# the `platforms` defined in `kitchen.yml` +default-debian-10-master-py3: {extends: '.test_instance'} +# default-ubuntu-1804-master-py3: {extends: '.test_instance'} +# default-centos-8-master-py3: {extends: '.test_instance'} +# default-fedora-31-master-py3: {extends: '.test_instance'} +# default-opensuse-leap-151-master-py3: {extends: '.test_instance'} +# default-amazonlinux-2-master-py3: {extends: '.test_instance'} +# default-debian-10-2019-2-py3: {extends: '.test_instance'} +# default-debian-9-2019-2-py3: {extends: '.test_instance'} +default-ubuntu-1804-2019-2-py3: {extends: '.test_instance'} +# default-centos-8-2019-2-py3: {extends: '.test_instance'} +# default-fedora-31-2019-2-py3: {extends: '.test_instance'} +default-opensuse-leap-151-2019-2-py3: {extends: '.test_instance'} +# default-centos-7-2019-2-py2: {extends: '.test_instance'} +default-amazonlinux-2-2019-2-py3: {extends: '.test_instance'} +# default-arch-base-latest-2019-2-py2: {extends: '.test_instance'} +default-fedora-30-2018-3-py3: {extends: '.test_instance'} +# default-debian-9-2018-3-py2: {extends: '.test_instance'} +# default-ubuntu-1604-2018-3-py2: {extends: '.test_instance'} +# default-centos-7-2018-3-py2: {extends: '.test_instance'} +# default-opensuse-leap-151-2018-3-py2: {extends: '.test_instance'} +# default-amazonlinux-1-2018-3-py2: {extends: '.test_instance'} +# default-arch-base-latest-2018-3-py2: {extends: '.test_instance'} +# default-debian-8-2017-7-py2: {extends: '.test_instance'} +# default-ubuntu-1604-2017-7-py2: {extends: '.test_instance'} +# default-centos-6-2017-7-py2: {extends: '.test_instance'} +# default-fedora-30-2017-7-py2: {extends: '.test_instance'} +# default-opensuse-leap-151-2017-7-py2: {extends: '.test_instance'} +# default-amazonlinux-1-2017-7-py2: {extends: '.test_instance'} +# default-arch-base-latest-2017-7-py2: {extends: '.test_instance'} + +############################################################################### +# `release` stage: `semantic-release` +############################################################################### +semantic-release: + only: *only_branch_master_parent_repo + stage: *stage_release + image: *image_semanticrelease + variables: + MAINTAINER_TOKEN: '${GH_TOKEN}' + script: + # Update `AUTHORS.md` + - '${HOME}/go/bin/maintainer contributor' + # Run `semantic-release` + - 'semantic-release' diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml new file mode 100644 index 0000000..0efdb51 --- /dev/null +++ b/.pre-commit-config.yaml @@ -0,0 +1,56 @@ +# -*- coding: utf-8 -*- +# vim: ft=yaml +--- +# See https://pre-commit.com for more information +# See https://pre-commit.com/hooks.html for more hooks +default_stages: [commit] +repos: + - repo: https://github.com/dafyddj/commitlint-pre-commit-hook + rev: v2.3.0 + hooks: + - id: commitlint + name: Check commit message using commitlint + description: Lint commit message against @commitlint/config-conventional rules + stages: [commit-msg] + additional_dependencies: ['@commitlint/config-conventional@8.3.4'] + - id: commitlint-travis + stages: [manual] + additional_dependencies: ['@commitlint/config-conventional@8.3.4'] + always_run: true + - repo: https://github.com/adithyabsk/mirrors-rubocop + rev: v0.91.0 + hooks: + - id: rubocop + name: Check Ruby files with rubocop + args: [--debug] + always_run: true + pass_filenames: false + - repo: https://github.com/jumanjihouse/pre-commit-hooks + rev: 2.1.3 + hooks: + - id: shellcheck + name: Check shell scripts with shellcheck + files: ^.*\.(sh|bash|ksh)$ + types: [] + args: [] + - repo: https://github.com/adrienverge/yamllint.git + rev: v1.23.0 + hooks: + - id: yamllint + name: Check YAML syntax with yamllint + args: [--strict, '.'] + always_run: true + pass_filenames: false + - repo: https://github.com/warpnet/salt-lint + rev: v0.3.0 + hooks: + - id: salt-lint + name: Check Salt files using salt-lint + files: ^.*\.(sls|jinja|j2|tmpl|tst)$ + - repo: https://github.com/myint/rstcheck + rev: 3f929574 + hooks: + - id: rstcheck + name: Check reST files using rstcheck + exclude: 'docs/CHANGELOG.rst' + args: [--report=warning] diff --git a/.rstcheck.cfg b/.rstcheck.cfg new file mode 100644 index 0000000..05856dc --- /dev/null +++ b/.rstcheck.cfg @@ -0,0 +1,3 @@ +[rstcheck] +report=error +ignore_language=rst diff --git a/.rubocop.yml b/.rubocop.yml index bdae9aa..7fd75ac 100644 --- a/.rubocop.yml +++ b/.rubocop.yml @@ -2,9 +2,15 @@ # vim: ft=yaml --- # General overrides used across formulas in the org -Metrics/LineLength: +Layout/LineLength: # Increase from default of `80` # Based on https://github.com/PyCQA/flake8-bugbear#opinionated-warnings (`B950`) Max: 88 +Metrics/BlockLength: + ExcludedMethods: + - control + - describe + # Increase from default of `25` + Max: 30 # Any offenses that should be fixed, e.g. collected via. `rubocop --auto-gen-config` diff --git a/.salt-lint b/.salt-lint index a539954..3715677 100644 --- a/.salt-lint +++ b/.salt-lint @@ -2,6 +2,7 @@ # vim: ft=yaml --- exclude_paths: [] +rules: {} skip_list: # Using `salt-lint` for linting other files as well, such as Jinja macros/templates - 205 # Use ".sls" as a Salt State file extension diff --git a/.travis.yml b/.travis.yml index 4cf7de7..5026842 100644 --- a/.travis.yml +++ b/.travis.yml @@ -1,15 +1,28 @@ # -*- coding: utf-8 -*- # vim: ft=yaml --- +################################################################################ +# NOTE: This file is UNMAINTAINED; it is provided for references purposes only. +# No guarantees are tendered that this structure will work after 2020. +################################################################################ +# * https://en.wikipedia.org/wiki/Travis_CI: +# - "... free open-source plans were removed in [sic] the end of 2020" +# - https://blog.travis-ci.com/2020-11-02-travis-ci-new-billing +# - https://ropensci.org/technotes/2020/11/19/moving-away-travis/ +################################################################################ ## Machine config -dist: bionic -sudo: required -services: - - docker +os: 'linux' +arch: 'amd64' +dist: 'bionic' +version: '~> 1.0' ## Language and cache config -language: ruby -cache: bundler +language: 'ruby' +cache: 'bundler' + +## Services config +services: + - docker ## Script to run for the test stage script: @@ -18,23 +31,25 @@ script: ## Stages and jobs matrix stages: - test - - name: release - if: branch = master AND type != pull_request + # # As part of the switch away from Travis CI, ensure that the `release` stage + # # is not run inadvertently + # - name: 'release' + # if: 'branch = master AND type != pull_request' jobs: include: ## Define the test stage that runs the linters (and testing matrix, if applicable) # Run all of the linters in a single job - - language: node_js - node_js: lts/* - env: Lint - name: 'Lint: salt-lint, yamllint, rubocop & commitlint' - before_install: skip + - language: 'node_js' + node_js: 'lts/*' + env: 'Lint' + name: 'Lint: salt-lint, yamllint, rubocop, shellcheck & commitlint' + before_install: 'skip' script: # Install and run `salt-lint` - pip install --user salt-lint - - git ls-files | grep '\.sls$\|\.jinja$\|\.j2$\|\.tmpl$' - | xargs -I {} salt-lint {} + - git ls-files -- '*.sls' '*.jinja' '*.j2' '*.tmpl' '*.tst' + | xargs salt-lint # Install and run `yamllint` # Need at least `v1.17.0` for the `yaml-files` setting - pip install --user yamllint>=1.17.0 @@ -42,50 +57,69 @@ jobs: # Install and run `rubocop` - gem install rubocop - rubocop -d + # Run `shellcheck` (already pre-installed in Travis) + - shellcheck --version + - git ls-files -- '*.sh' '*.bash' '*.ksh' + | xargs shellcheck # Install and run `commitlint` - - npm install @commitlint/config-conventional -D - - npm install @commitlint/travis-cli -D + - npm i -D @commitlint/config-conventional + @commitlint/travis-cli - commitlint-travis + # Run `pre-commit` linters in a single job + - language: 'python' + env: 'Lint_pre-commit' + name: 'Lint: pre-commit' + before_install: 'skip' + cache: + directories: + - $HOME/.cache/pre-commit + script: + # Install and run `pre-commit` + - pip install pre-commit==2.7.1 + - pre-commit run --all-files --color always --verbose + - pre-commit run --color always --hook-stage manual --verbose commitlint-travis + ## Define the rest of the matrix based on Kitchen testing # Make sure the instances listed below match up with # the `platforms` defined in `kitchen.yml` - - env: INSTANCE=default-debian-10-develop-py3 - # - env: INSTANCE=default-ubuntu-1804-develop-py3 - # - env: INSTANCE=default-centos-7-develop-py3 - # - env: INSTANCE=default-fedora-30-develop-py3 - # - env: INSTANCE=default-opensuse-leap-15-develop-py3 - # - env: INSTANCE=default-amazonlinux-2-develop-py2 - # - env: INSTANCE=default-arch-base-latest-develop-py2 + - env: INSTANCE=default-debian-10-master-py3 + # - env: INSTANCE=default-ubuntu-1804-master-py3 + # - env: INSTANCE=default-centos-8-master-py3 + # - env: INSTANCE=default-fedora-31-master-py3 + # - env: INSTANCE=default-opensuse-leap-151-master-py3 + # - env: INSTANCE=default-amazonlinux-2-master-py3 + # - env: INSTANCE=default-debian-10-2019-2-py3 # - env: INSTANCE=default-debian-9-2019-2-py3 - env: INSTANCE=default-ubuntu-1804-2019-2-py3 - # - env: INSTANCE=default-centos-7-2019-2-py3 - # - env: INSTANCE=default-fedora-30-2019-2-py3 - # - env: INSTANCE=default-opensuse-leap-15-2019-2-py3 - - env: INSTANCE=default-amazonlinux-2-2019-2-py2 + # - env: INSTANCE=default-centos-8-2019-2-py3 + # - env: INSTANCE=default-fedora-31-2019-2-py3 + - env: INSTANCE=default-opensuse-leap-151-2019-2-py3 + # - env: INSTANCE=default-centos-7-2019-2-py2 + - env: INSTANCE=default-amazonlinux-2-2019-2-py3 # - env: INSTANCE=default-arch-base-latest-2019-2-py2 + - env: INSTANCE=default-fedora-30-2018-3-py3 # - env: INSTANCE=default-debian-9-2018-3-py2 # - env: INSTANCE=default-ubuntu-1604-2018-3-py2 # - env: INSTANCE=default-centos-7-2018-3-py2 - - env: INSTANCE=default-fedora-29-2018-3-py2 - - env: INSTANCE=default-opensuse-leap-15-2018-3-py2 - # - env: INSTANCE=default-amazonlinux-2-2018-3-py2 + # - env: INSTANCE=default-opensuse-leap-151-2018-3-py2 + # - env: INSTANCE=default-amazonlinux-1-2018-3-py2 # - env: INSTANCE=default-arch-base-latest-2018-3-py2 # - env: INSTANCE=default-debian-8-2017-7-py2 # - env: INSTANCE=default-ubuntu-1604-2017-7-py2 - - env: INSTANCE=default-centos-6-2017-7-py2 - # - env: INSTANCE=default-fedora-29-2017-7-py2 - # - env: INSTANCE=default-opensuse-leap-15-2017-7-py2 - # - env: INSTANCE=default-amazonlinux-2-2017-7-py2 + # - env: INSTANCE=default-centos-6-2017-7-py2 + # - env: INSTANCE=default-fedora-30-2017-7-py2 + # - env: INSTANCE=default-opensuse-leap-151-2017-7-py2 + # - env: INSTANCE=default-amazonlinux-1-2017-7-py2 # - env: INSTANCE=default-arch-base-latest-2017-7-py2 ## Define the release stage that runs `semantic-release` - - stage: release - language: node_js - node_js: lts/* - env: Release + - stage: 'release' + language: 'node_js' + node_js: 'lts/*' + env: 'Release' name: 'Run semantic-release inc. file updates to AUTHORS, CHANGELOG & FORMULA' - before_install: skip + before_install: 'skip' script: # Update `AUTHORS.md` - export MAINTAINER_TOKEN=${GH_TOKEN} @@ -93,12 +127,26 @@ jobs: - maintainer contributor # Install all dependencies required for `semantic-release` - - npm install @semantic-release/changelog@3 -D - - npm install @semantic-release/exec@3 -D - - npm install @semantic-release/git@7 -D + - npm i -D @semantic-release/changelog@3 + @semantic-release/exec@3 + @semantic-release/git@7 deploy: - provider: script - skip_cleanup: true - script: - # Run `semantic-release` - - npx semantic-release@15 + provider: 'script' + # Opt-in to `dpl v2` to complete the Travis build config validation (beta) + # * https://docs.travis-ci.com/user/build-config-validation + # Deprecated `skip_cleanup` can now be avoided, `cleanup: false` is by default + edge: true + # Run `semantic-release` + script: 'npx semantic-release@15.14' + +# Notification options: `always`, `never` or `change` +notifications: + webhooks: + if: 'repo = saltstack-formulas/influxdb-formula' + urls: + - https://saltstack-formulas.zulipchat.com/api/v1/external/travis?api_key=HsIq3o5QmLxdnVCKF9is0FUIpkpAY79P&stream=CI&topic=saltstack-formulas%2Finfluxdb-formula&ignore_pull_requests=true + on_success: always # default: always + on_failure: always # default: always + on_start: always # default: never + on_cancel: always # default: always + on_error: always # default: always diff --git a/.yamllint b/.yamllint index 740beca..73bcbe2 100644 --- a/.yamllint +++ b/.yamllint @@ -9,6 +9,7 @@ extends: default # 2. Any SLS files under directory `test/`, which are actually state files # 3. Any YAML files under directory `.kitchen/`, introduced during local testing ignore: | + .cache/ node_modules/ test/**/states/**/*.sls .kitchen/ diff --git a/AUTHORS.md b/AUTHORS.md index 37211c0..434bfbd 100644 --- a/AUTHORS.md +++ b/AUTHORS.md @@ -4,18 +4,18 @@ This list is sorted by the number of commits per contributor in _descending_ ord Avatar|Contributor|Contributions :-:|---|:-: +@myii|[@myii](https://github.com/myii)|59 @babilen5|[@babilen5](https://github.com/babilen5)|49 @alfredopalhares|[@alfredopalhares](https://github.com/alfredopalhares)|40 -@myii|[@myii](https://github.com/myii)|21 @n-rodriguez|[@n-rodriguez](https://github.com/n-rodriguez)|17 @nmadhok|[@nmadhok](https://github.com/nmadhok)|7 @aboe76|[@aboe76](https://github.com/aboe76)|3 @ruimarinho|[@ruimarinho](https://github.com/ruimarinho)|3 @fixe|[@fixe](https://github.com/fixe)|3 @iggy|[@iggy](https://github.com/iggy)|2 +@dafyddj|[@dafyddj](https://github.com/dafyddj)|2 @racingferret|[@racingferret](https://github.com/racingferret)|2 @gravyboat|[@gravyboat](https://github.com/gravyboat)|1 -@gianarb|[@gianarb](https://github.com/gianarb)|1 @qybl|[@qybl](https://github.com/qybl)|1 @nunofgs|[@nunofgs](https://github.com/nunofgs)|1 @whiteinge|[@whiteinge](https://github.com/whiteinge)|1 @@ -23,4 +23,4 @@ Avatar|Contributor|Contributions --- -Auto-generated by a [forked version](https://github.com/myii/maintainer) of [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2019-10-12. +Auto-generated by a [forked version](https://github.com/myii/maintainer) of [gaocegege/maintainer](https://github.com/gaocegege/maintainer) on 2020-12-16. diff --git a/CHANGELOG.md b/CHANGELOG.md index e336f86..aac2fa2 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,48 @@ # Changelog +## [0.3.3](https://github.com/saltstack-formulas/influxdb-formula/compare/v0.3.2...v0.3.3) (2020-12-16) + + +### Bug Fixes + +* **release.config.js:** use full commit hash in commit link [skip ci] ([4f2c4a5](https://github.com/saltstack-formulas/influxdb-formula/commit/4f2c4a5973fb458ca02c0f1dd6c0dca2c2f65d8c)) + + +### Continuous Integration + +* **gemfile:** restrict `train` gem version until upstream fix [skip ci] ([9ac0fac](https://github.com/saltstack-formulas/influxdb-formula/commit/9ac0facd41b53807362e77800dfa68b1e70f22d7)) +* **gemfile.lock:** add to repo with updated `Gemfile` [skip ci] ([78abe11](https://github.com/saltstack-formulas/influxdb-formula/commit/78abe118ef5437306c3c179224d955a6d51a40c4)) +* **gitlab-ci:** use GitLab CI as Travis CI replacement ([09e1ffe](https://github.com/saltstack-formulas/influxdb-formula/commit/09e1ffec12a94f76a4ba6c43dedb237ef2709abc)) +* **kitchen:** avoid using bootstrap for `master` instances [skip ci] ([f2ba8bd](https://github.com/saltstack-formulas/influxdb-formula/commit/f2ba8bd011d19471c2d7e1cec2255bab45dbbe22)) +* **kitchen:** use `debian-10-master-py3` instead of `develop` [skip ci] ([1ada26c](https://github.com/saltstack-formulas/influxdb-formula/commit/1ada26c8fc6b1775c3c629925f6f46733fb349f5)) +* **kitchen:** use `develop` image until `master` is ready (`amazonlinux`) [skip ci] ([489ac8c](https://github.com/saltstack-formulas/influxdb-formula/commit/489ac8c796a97194a028237cd8e06196cd96a559)) +* **kitchen:** use `saltimages` Docker Hub where available [skip ci] ([5ca8b9a](https://github.com/saltstack-formulas/influxdb-formula/commit/5ca8b9a0ea964378a106162b1c9430dff0577d5a)) +* **kitchen+travis:** remove `master-py2-arch-base-latest` [skip ci] ([d8372de](https://github.com/saltstack-formulas/influxdb-formula/commit/d8372ded6b29dac3d00509ff884cfc86879b5269)) +* **kitchen+travis:** upgrade matrix after `2019.2.2` release [skip ci] ([61edc79](https://github.com/saltstack-formulas/influxdb-formula/commit/61edc797f94783cc76104af95910aad7f17d66b9)) +* **pre-commit:** add to formula [skip ci] ([172b5b4](https://github.com/saltstack-formulas/influxdb-formula/commit/172b5b45c01e3a9802fe1e832d316e835ff49381)) +* **pre-commit:** enable/disable `rstcheck` as relevant [skip ci] ([fabc9eb](https://github.com/saltstack-formulas/influxdb-formula/commit/fabc9eb9d3803619200260ccc9f203a49bf44ee9)) +* **pre-commit:** finalise `rstcheck` configuration [skip ci] ([c80c66e](https://github.com/saltstack-formulas/influxdb-formula/commit/c80c66eea00773693ad5175ec57387cc01f1dd19)) +* **travis:** add notifications => zulip [skip ci] ([0bc4566](https://github.com/saltstack-formulas/influxdb-formula/commit/0bc456623511153e000f4644f0cffeafc2aa044c)) +* **travis:** apply changes from build config validation [skip ci] ([c4ade2b](https://github.com/saltstack-formulas/influxdb-formula/commit/c4ade2b8971b6ef065ea324b5a4ffcf799766910)) +* **travis:** opt-in to `dpl v2` to complete build config validation [skip ci] ([b09be58](https://github.com/saltstack-formulas/influxdb-formula/commit/b09be58fd99ef57b42bc1c6d83eeace9005ee884)) +* **travis:** quote pathspecs used with `git ls-files` [skip ci] ([c8f134e](https://github.com/saltstack-formulas/influxdb-formula/commit/c8f134ebd4fe919d8cf8ad5aaa7fe154d6d2eebb)) +* **travis:** run `shellcheck` during lint job [skip ci] ([2994fa6](https://github.com/saltstack-formulas/influxdb-formula/commit/2994fa6301aea395c871704a0308b281ed8e854e)) +* **travis:** update `salt-lint` config for `v0.0.10` [skip ci] ([834e3df](https://github.com/saltstack-formulas/influxdb-formula/commit/834e3df3c8c22b82f50e5e0d62545c8bbdf61b63)) +* **travis:** use `major.minor` for `semantic-release` version [skip ci] ([3d280b1](https://github.com/saltstack-formulas/influxdb-formula/commit/3d280b14a7b0ebbac236987078fca62b3fd54fe3)) +* **travis:** use build config validation (beta) [skip ci] ([b6cc703](https://github.com/saltstack-formulas/influxdb-formula/commit/b6cc703133f23594295915f80a1c6eb2ac052273)) +* **workflows/commitlint:** add to repo [skip ci] ([d80c8c6](https://github.com/saltstack-formulas/influxdb-formula/commit/d80c8c63a159e3c22227153f7527cb0c1547d552)) + + +### Documentation + +* **contributing:** remove to use org-level file instead [skip ci] ([ff4f0fd](https://github.com/saltstack-formulas/influxdb-formula/commit/ff4f0fd5ea0556adb0b5aa92f67917dafc796276)) +* **readme:** update link to `CONTRIBUTING` [skip ci] ([f6d3bfb](https://github.com/saltstack-formulas/influxdb-formula/commit/f6d3bfbd0759bc28a1b3f6d2fe075f3e99fc9778)) + + +### Performance Improvements + +* **travis:** improve `salt-lint` invocation [skip ci] ([b995d48](https://github.com/saltstack-formulas/influxdb-formula/commit/b995d4888126b9119234e1fdf8fd1acfa3327b2b)) + ## [0.3.2](https://github.com/saltstack-formulas/influxdb-formula/compare/v0.3.1...v0.3.2) (2019-10-12) diff --git a/CODEOWNERS b/CODEOWNERS new file mode 100644 index 0000000..ef5bffa --- /dev/null +++ b/CODEOWNERS @@ -0,0 +1,48 @@ +# https://help.github.com/en/github/creating-cloning-and-archiving-repositories/about-code-owners + +# SECTION: Owner(s) for everything in the repo, unless a later match takes precedence +# ************************************************************************** +# *** NO GLOBAL OWNER(S) SPECIFIED *** +# *** Ideally this will be defined for a healthy, well-maintained repo *** +# ************************************************************************** +# FILE PATTERN OWNER(S) +* @NONE + +# SECTION: Owner(s) for specific directories +# FILE PATTERN OWNER(S) + +# SECTION: Owner(s) for files/directories related to `semantic-release` +# FILE PATTERN OWNER(S) +/.github/workflows/ @saltstack-formulas/ssf +/bin/install-hooks @saltstack-formulas/ssf +/bin/kitchen @saltstack-formulas/ssf +/docs/AUTHORS.rst @saltstack-formulas/ssf +/docs/CHANGELOG.rst @saltstack-formulas/ssf +/docs/TOFS_pattern.rst @saltstack-formulas/ssf +/*/libsaltcli.jinja @saltstack-formulas/ssf +/*/libtofs.jinja @saltstack-formulas/ssf +/test/integration/**/inspec.yml @saltstack-formulas/ssf +/test/integration/**/README.md @saltstack-formulas/ssf +/.gitignore @saltstack-formulas/ssf +/.cirrus.yml @saltstack-formulas/ssf +/.gitlab-ci.yml @saltstack-formulas/ssf +/.pre-commit-config.yaml @saltstack-formulas/ssf +/.rstcheck.cfg @saltstack-formulas/ssf +/.rubocop.yml @saltstack-formulas/ssf +/.salt-lint @saltstack-formulas/ssf +/.travis.yml @saltstack-formulas/ssf +/.yamllint @saltstack-formulas/ssf +/AUTHORS.md @saltstack-formulas/ssf +/CHANGELOG.md @saltstack-formulas/ssf +/CODEOWNERS @saltstack-formulas/ssf +/commitlint.config.js @saltstack-formulas/ssf +/FORMULA @saltstack-formulas/ssf +/Gemfile @saltstack-formulas/ssf +/Gemfile.lock @saltstack-formulas/ssf +/kitchen.yml @saltstack-formulas/ssf +/pre-commit_semantic-release.sh @saltstack-formulas/ssf +/release-rules.js @saltstack-formulas/ssf +/release.config.js @saltstack-formulas/ssf + +# SECTION: Owner(s) for specific files +# FILE PATTERN OWNER(S) diff --git a/Gemfile b/Gemfile index 5a232b6..82c4a31 100644 --- a/Gemfile +++ b/Gemfile @@ -2,6 +2,11 @@ source 'https://rubygems.org' -gem 'kitchen-docker', '>= 2.9' -gem 'kitchen-inspec', '>= 1.1' -gem 'kitchen-salt', '>= 0.6.0' +# Use the latest version of `inspec` prior to `4.23.4`, which introduces a +# regression where the diff isn't displayed when comparing using `eq`. +gem 'inspec', '~> 4.22.22' +# Install the `kitchen-docker` gem from GitHub because the latest version +# currently available (`2.10.0`) doesn't include a recent fix for Gentoo. +gem 'kitchen-docker', github: 'test-kitchen/kitchen-docker', ref: '41e80fe' +gem 'kitchen-inspec', '>= 2.2.1' +gem 'kitchen-salt', '>= 0.6.3' diff --git a/Gemfile.lock b/Gemfile.lock new file mode 100644 index 0000000..19bf26d --- /dev/null +++ b/Gemfile.lock @@ -0,0 +1,530 @@ +GIT + remote: https://github.com/test-kitchen/kitchen-docker.git + revision: 41e80fed3a7cc86323e19c16a5a340cebf7e5848 + ref: 41e80fe + specs: + kitchen-docker (2.10.0) + test-kitchen (>= 1.0.0) + +GEM + remote: https://rubygems.org/ + specs: + activesupport (5.2.4.4) + concurrent-ruby (~> 1.0, >= 1.0.2) + i18n (>= 0.7, < 2) + minitest (~> 5.1) + tzinfo (~> 1.1) + addressable (2.7.0) + public_suffix (>= 2.0.2, < 5.0) + aws-eventstream (1.1.0) + aws-partitions (1.386.0) + aws-sdk-apigateway (1.55.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-apigatewayv2 (1.29.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-athena (1.33.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-autoscaling (1.22.0) + aws-sdk-core (~> 3, >= 3.52.1) + aws-sigv4 (~> 1.1) + aws-sdk-budgets (1.36.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudformation (1.44.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudfront (1.46.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudhsm (1.27.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudhsmv2 (1.30.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudtrail (1.29.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudwatch (1.45.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-cloudwatchlogs (1.38.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-codecommit (1.40.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-codedeploy (1.37.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-codepipeline (1.37.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-configservice (1.53.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-core (3.109.1) + aws-eventstream (~> 1, >= 1.0.2) + aws-partitions (~> 1, >= 1.239.0) + aws-sigv4 (~> 1.1) + jmespath (~> 1.0) + aws-sdk-costandusagereportservice (1.28.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-dynamodb (1.55.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-ec2 (1.202.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-ecr (1.39.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-ecs (1.70.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-efs (1.36.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-eks (1.45.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticache (1.44.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticbeanstalk (1.39.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticloadbalancing (1.29.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticloadbalancingv2 (1.53.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-elasticsearchservice (1.43.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-firehose (1.35.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-guardduty (1.42.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-iam (1.46.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-kafka (1.29.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-kinesis (1.30.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-kms (1.39.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-lambda (1.51.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-organizations (1.17.0) + aws-sdk-core (~> 3, >= 3.39.0) + aws-sigv4 (~> 1.0) + aws-sdk-rds (1.104.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-redshift (1.50.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-route53 (1.44.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-route53domains (1.28.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-route53resolver (1.21.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-s3 (1.83.1) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sdk-kms (~> 1) + aws-sigv4 (~> 1.1) + aws-sdk-securityhub (1.35.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-ses (1.36.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-sms (1.27.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-sns (1.34.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-sqs (1.34.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sdk-ssm (1.95.0) + aws-sdk-core (~> 3, >= 3.109.0) + aws-sigv4 (~> 1.1) + aws-sigv4 (1.2.2) + aws-eventstream (~> 1, >= 1.0.2) + azure_graph_rbac (0.17.2) + ms_rest_azure (~> 0.12.0) + azure_mgmt_key_vault (0.17.6) + ms_rest_azure (~> 0.12.0) + azure_mgmt_resources (0.18.0) + ms_rest_azure (~> 0.12.0) + azure_mgmt_security (0.18.2) + ms_rest_azure (~> 0.12.0) + azure_mgmt_storage (0.22.0) + ms_rest_azure (~> 0.12.0) + bcrypt_pbkdf (1.0.1) + builder (3.2.4) + chef-config (16.6.14) + addressable + chef-utils (= 16.6.14) + fuzzyurl + mixlib-config (>= 2.2.12, < 4.0) + mixlib-shellout (>= 2.0, < 4.0) + tomlrb (~> 1.2) + chef-telemetry (1.0.14) + chef-config + concurrent-ruby (~> 1.0) + ffi-yajl (~> 2.2) + chef-utils (16.6.14) + coderay (1.1.3) + concurrent-ruby (1.1.7) + declarative (0.0.20) + declarative-option (0.1.0) + diff-lcs (1.4.4) + docker-api (2.0.0) + excon (>= 0.47.0) + multi_json + domain_name (0.5.20190701) + unf (>= 0.0.5, < 1.0.0) + ecma-re-validator (0.2.1) + regexp_parser (~> 1.2) + ed25519 (1.2.4) + erubi (1.9.0) + excon (0.78.0) + faraday (0.17.3) + multipart-post (>= 1.2, < 3) + faraday-cookie_jar (0.0.7) + faraday (>= 0.8.0) + http-cookie (~> 1.0.0) + faraday_middleware (0.12.2) + faraday (>= 0.7.4, < 1.0) + ffi (1.13.1) + ffi-yajl (2.3.4) + libyajl2 (~> 1.2) + fuzzyurl (0.9.0) + google-api-client (0.44.0) + addressable (~> 2.5, >= 2.5.1) + googleauth (~> 0.9) + httpclient (>= 2.8.1, < 3.0) + mini_mime (~> 1.0) + representable (~> 3.0) + retriable (>= 2.0, < 4.0) + signet (~> 0.12) + googleauth (0.13.0) + faraday (>= 0.17.3, < 2.0) + jwt (>= 1.4, < 3.0) + memoist (~> 0.16) + multi_json (~> 1.11) + os (>= 0.9, < 2.0) + signet (~> 0.14) + gssapi (1.3.0) + ffi (>= 1.0.1) + gyoku (1.3.1) + builder (>= 2.1.2) + hana (1.3.6) + hashie (3.6.0) + http-cookie (1.0.3) + domain_name (~> 0.5) + httpclient (2.8.3) + i18n (1.8.5) + concurrent-ruby (~> 1.0) + inifile (3.0.0) + inspec (4.22.22) + faraday_middleware (~> 0.12.2) + inspec-core (= 4.22.22) + train (~> 3.0) + train-aws (~> 0.1) + train-habitat (~> 0.1) + train-winrm (~> 0.2) + inspec-core (4.22.22) + addressable (~> 2.4) + chef-telemetry (~> 1.0) + faraday (>= 0.9.0) + hashie (~> 3.4) + json_schemer (>= 0.2.1, < 0.2.12) + license-acceptance (>= 0.2.13, < 2.0) + method_source (>= 0.8, < 2.0) + mixlib-log (~> 3.0) + multipart-post (~> 2.0) + parallel (~> 1.9) + parslet (~> 1.5) + pry (~> 0.13) + rspec (~> 3.9) + rspec-its (~> 1.2) + rubyzip (~> 1.2, >= 1.2.2) + semverse (~> 3.0) + sslshake (~> 1.2) + thor (>= 0.20, < 2.0) + tomlrb (~> 1.2.0) + train-core (~> 3.0) + tty-prompt (~> 0.17) + tty-table (~> 0.10) + jmespath (1.4.0) + json (2.3.1) + json_schemer (0.2.11) + ecma-re-validator (~> 0.2) + hana (~> 1.3) + regexp_parser (~> 1.5) + uri_template (~> 0.7) + jwt (2.2.2) + kitchen-inspec (2.2.1) + hashie (~> 3.4) + inspec (>= 2.2.64, < 5.0) + test-kitchen (>= 2.7, < 3) + kitchen-salt (0.6.3) + hashie (>= 3.5) + test-kitchen (>= 1.4) + libyajl2 (1.2.0) + license-acceptance (1.0.19) + pastel (~> 0.7) + tomlrb (~> 1.2) + tty-box (~> 0.3) + tty-prompt (~> 0.18) + little-plugger (1.1.4) + logging (2.3.0) + little-plugger (~> 1.1) + multi_json (~> 1.14) + memoist (0.16.2) + method_source (1.0.0) + mini_mime (1.0.2) + minitest (5.14.2) + mixlib-config (3.0.9) + tomlrb + mixlib-install (3.12.3) + mixlib-shellout + mixlib-versioning + thor + mixlib-log (3.0.9) + mixlib-shellout (3.1.6) + chef-utils + mixlib-versioning (1.2.12) + ms_rest (0.7.6) + concurrent-ruby (~> 1.0) + faraday (>= 0.9, < 2.0.0) + timeliness (~> 0.3.10) + ms_rest_azure (0.12.0) + concurrent-ruby (~> 1.0) + faraday (>= 0.9, < 2.0.0) + faraday-cookie_jar (~> 0.0.6) + ms_rest (~> 0.7.6) + multi_json (1.15.0) + multipart-post (2.1.1) + net-scp (3.0.0) + net-ssh (>= 2.6.5, < 7.0.0) + net-ssh (6.1.0) + net-ssh-gateway (2.0.0) + net-ssh (>= 4.0.0) + nori (2.6.0) + os (1.1.1) + parallel (1.19.2) + parslet (1.8.2) + pastel (0.8.0) + tty-color (~> 0.5) + pry (0.13.1) + coderay (~> 1.1) + method_source (~> 1.0) + public_suffix (4.0.6) + regexp_parser (1.8.2) + representable (3.0.4) + declarative (< 0.1.0) + declarative-option (< 0.2.0) + uber (< 0.2.0) + retriable (3.1.2) + rspec (3.9.0) + rspec-core (~> 3.9.0) + rspec-expectations (~> 3.9.0) + rspec-mocks (~> 3.9.0) + rspec-core (3.9.3) + rspec-support (~> 3.9.3) + rspec-expectations (3.9.3) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.9.0) + rspec-its (1.3.0) + rspec-core (>= 3.0.0) + rspec-expectations (>= 3.0.0) + rspec-mocks (3.9.1) + diff-lcs (>= 1.2.0, < 2.0) + rspec-support (~> 3.9.0) + rspec-support (3.9.4) + rubyntlm (0.6.2) + rubyzip (1.3.0) + semverse (3.0.0) + signet (0.14.0) + addressable (~> 2.3) + faraday (>= 0.17.3, < 2.0) + jwt (>= 1.5, < 3.0) + multi_json (~> 1.10) + sslshake (1.3.1) + strings (0.2.0) + strings-ansi (~> 0.2) + unicode-display_width (~> 1.5) + unicode_utils (~> 1.4) + strings-ansi (0.2.0) + test-kitchen (2.7.2) + bcrypt_pbkdf (~> 1.0) + ed25519 (~> 1.2) + license-acceptance (>= 1.0.11, < 3.0) + mixlib-install (~> 3.6) + mixlib-shellout (>= 1.2, < 4.0) + net-scp (>= 1.1, < 4.0) + net-ssh (>= 2.9, < 7.0) + net-ssh-gateway (>= 1.2, < 3.0) + thor (>= 0.19, < 2.0) + winrm (~> 2.0) + winrm-elevated (~> 1.0) + winrm-fs (~> 1.1) + thor (1.0.1) + thread_safe (0.3.6) + timeliness (0.3.10) + tomlrb (1.2.9) + train (3.3.27) + activesupport (>= 5.2.4.3, < 6.0.0) + azure_graph_rbac (~> 0.16) + azure_mgmt_key_vault (~> 0.17) + azure_mgmt_resources (~> 0.15) + azure_mgmt_security (~> 0.18) + azure_mgmt_storage (~> 0.18) + docker-api (>= 1.26, < 3.0) + google-api-client (>= 0.23.9, < 0.44.1) + googleauth (>= 0.6.6, < 0.13.1) + inifile (~> 3.0) + train-core (= 3.3.27) + train-winrm (~> 0.2) + train-aws (0.1.18) + aws-sdk-apigateway (~> 1.0) + aws-sdk-apigatewayv2 (~> 1.0) + aws-sdk-athena (~> 1.0) + aws-sdk-autoscaling (~> 1.22.0) + aws-sdk-budgets (~> 1.0) + aws-sdk-cloudformation (~> 1.0) + aws-sdk-cloudfront (~> 1.0) + aws-sdk-cloudhsm (~> 1.0) + aws-sdk-cloudhsmv2 (~> 1.0) + aws-sdk-cloudtrail (~> 1.8) + aws-sdk-cloudwatch (~> 1.13) + aws-sdk-cloudwatchlogs (~> 1.13) + aws-sdk-codecommit (~> 1.0) + aws-sdk-codedeploy (~> 1.0) + aws-sdk-codepipeline (~> 1.0) + aws-sdk-configservice (~> 1.21) + aws-sdk-core (~> 3.0) + aws-sdk-costandusagereportservice (~> 1.6) + aws-sdk-dynamodb (~> 1.31) + aws-sdk-ec2 (~> 1.70) + aws-sdk-ecr (~> 1.18) + aws-sdk-ecs (~> 1.30) + aws-sdk-efs (~> 1.0) + aws-sdk-eks (~> 1.9) + aws-sdk-elasticache (~> 1.0) + aws-sdk-elasticbeanstalk (~> 1.0) + aws-sdk-elasticloadbalancing (~> 1.8) + aws-sdk-elasticloadbalancingv2 (~> 1.0) + aws-sdk-elasticsearchservice (~> 1.0) + aws-sdk-firehose (~> 1.0) + aws-sdk-guardduty (~> 1.31) + aws-sdk-iam (~> 1.13) + aws-sdk-kafka (~> 1.0) + aws-sdk-kinesis (~> 1.0) + aws-sdk-kms (~> 1.13) + aws-sdk-lambda (~> 1.0) + aws-sdk-organizations (~> 1.17.0) + aws-sdk-rds (~> 1.43) + aws-sdk-redshift (~> 1.0) + aws-sdk-route53 (~> 1.0) + aws-sdk-route53domains (~> 1.0) + aws-sdk-route53resolver (~> 1.0) + aws-sdk-s3 (~> 1.30) + aws-sdk-securityhub (~> 1.0) + aws-sdk-ses (~> 1.0) + aws-sdk-sms (~> 1.0) + aws-sdk-sns (~> 1.9) + aws-sdk-sqs (~> 1.10) + aws-sdk-ssm (~> 1.0) + train-core (3.3.27) + addressable (~> 2.5) + ffi (!= 1.13.0) + json (>= 1.8, < 3.0) + mixlib-shellout (>= 2.0, < 4.0) + net-scp (>= 1.2, < 4.0) + net-ssh (>= 2.9, < 7.0) + train-habitat (0.2.13) + train-winrm (0.2.11) + winrm (~> 2.0) + winrm-elevated (~> 1.2.2) + winrm-fs (~> 1.0) + tty-box (0.6.0) + pastel (~> 0.8) + strings (~> 0.2.0) + tty-cursor (~> 0.7) + tty-color (0.5.2) + tty-cursor (0.7.1) + tty-prompt (0.22.0) + pastel (~> 0.8) + tty-reader (~> 0.8) + tty-reader (0.8.0) + tty-cursor (~> 0.7) + tty-screen (~> 0.8) + wisper (~> 2.0) + tty-screen (0.8.1) + tty-table (0.12.0) + pastel (~> 0.8) + strings (~> 0.2.0) + tty-screen (~> 0.8) + tzinfo (1.2.7) + thread_safe (~> 0.1) + uber (0.1.0) + unf (0.1.4) + unf_ext + unf_ext (0.0.7.7) + unicode-display_width (1.7.0) + unicode_utils (1.4.0) + uri_template (0.7.0) + winrm (2.3.5) + builder (>= 2.1.2) + erubi (~> 1.8) + gssapi (~> 1.2) + gyoku (~> 1.0) + httpclient (~> 2.2, >= 2.2.0.2) + logging (>= 1.6.1, < 3.0) + nori (~> 2.0) + rubyntlm (~> 0.6.0, >= 0.6.1) + winrm-elevated (1.2.2) + erubi (~> 1.8) + winrm (~> 2.0) + winrm-fs (~> 1.0) + winrm-fs (1.3.3) + erubi (~> 1.8) + logging (>= 1.6.1, < 3.0) + rubyzip (~> 1.1) + winrm (~> 2.0) + wisper (2.0.1) + +PLATFORMS + ruby + +DEPENDENCIES + inspec (~> 4.22.22) + kitchen-docker! + kitchen-inspec (>= 2.2.1) + kitchen-salt (>= 0.6.3) + +BUNDLED WITH + 2.1.2 diff --git a/bin/install-hooks b/bin/install-hooks new file mode 100755 index 0000000..840bb6c --- /dev/null +++ b/bin/install-hooks @@ -0,0 +1,16 @@ +#!/usr/bin/env sh +set -o nounset # Treat unset variables as an error and immediately exit +set -o errexit # If a command fails exit the whole script + +if [ "${DEBUG:-false}" = "true" ]; then + set -x # Run the entire script in debug mode +fi + +if ! command -v pre-commit >/dev/null 2>&1; then + echo "pre-commit not found: please install or check your PATH" >&2 + echo "See https://pre-commit.com/#installation" >&2 + exit 1 +fi + +pre-commit install --install-hooks +pre-commit install --hook-type commit-msg --install-hooks diff --git a/commitlint.config.js b/commitlint.config.js index 2f9d1aa..4eb37f4 100644 --- a/commitlint.config.js +++ b/commitlint.config.js @@ -1,3 +1,8 @@ module.exports = { extends: ['@commitlint/config-conventional'], + rules: { + 'body-max-line-length': [2, 'always', 120], + 'footer-max-line-length': [2, 'always', 120], + 'header-max-length': [2, 'always', 72], + }, }; diff --git a/docs/AUTHORS.rst b/docs/AUTHORS.rst index 0757219..eb461c1 100644 --- a/docs/AUTHORS.rst +++ b/docs/AUTHORS.rst @@ -13,15 +13,15 @@ This list is sorted by the number of commits per contributor in *descending* ord * - Avatar - Contributor - Contributions + * - :raw-html-m2r:`@myii` + - `@myii `_ + - 59 * - :raw-html-m2r:`@babilen5` - `@babilen5 `_ - 49 * - :raw-html-m2r:`@alfredopalhares` - `@alfredopalhares `_ - 40 - * - :raw-html-m2r:`@myii` - - `@myii `_ - - 21 * - :raw-html-m2r:`@n-rodriguez` - `@n-rodriguez `_ - 17 @@ -40,15 +40,15 @@ This list is sorted by the number of commits per contributor in *descending* ord * - :raw-html-m2r:`@iggy` - `@iggy `_ - 2 + * - :raw-html-m2r:`@dafyddj` + - `@dafyddj `_ + - 2 * - :raw-html-m2r:`@racingferret` - `@racingferret `_ - 2 * - :raw-html-m2r:`@gravyboat` - `@gravyboat `_ - 1 - * - :raw-html-m2r:`@gianarb` - - `@gianarb `_ - - 1 * - :raw-html-m2r:`@qybl` - `@qybl `_ - 1 @@ -65,4 +65,4 @@ This list is sorted by the number of commits per contributor in *descending* ord ---- -Auto-generated by a `forked version `_ of `gaocegege/maintainer `_ on 2019-10-12. +Auto-generated by a `forked version `_ of `gaocegege/maintainer `_ on 2020-12-16. diff --git a/docs/CHANGELOG.rst b/docs/CHANGELOG.rst index fc232ea..ae8d66b 100644 --- a/docs/CHANGELOG.rst +++ b/docs/CHANGELOG.rst @@ -2,6 +2,54 @@ Changelog ========= +`0.3.3 `_ (2020-12-16) +---------------------------------------------------------------------------------------------------------- + +Bug Fixes +^^^^^^^^^ + + +* **release.config.js:** use full commit hash in commit link [skip ci] (\ `4f2c4a5 `_\ ) + +Continuous Integration +^^^^^^^^^^^^^^^^^^^^^^ + + +* **gemfile:** restrict ``train`` gem version until upstream fix [skip ci] (\ `9ac0fac `_\ ) +* **gemfile.lock:** add to repo with updated ``Gemfile`` [skip ci] (\ `78abe11 `_\ ) +* **gitlab-ci:** use GitLab CI as Travis CI replacement (\ `09e1ffe `_\ ) +* **kitchen:** avoid using bootstrap for ``master`` instances [skip ci] (\ `f2ba8bd `_\ ) +* **kitchen:** use ``debian-10-master-py3`` instead of ``develop`` [skip ci] (\ `1ada26c `_\ ) +* **kitchen:** use ``develop`` image until ``master`` is ready (\ ``amazonlinux``\ ) [skip ci] (\ `489ac8c `_\ ) +* **kitchen:** use ``saltimages`` Docker Hub where available [skip ci] (\ `5ca8b9a `_\ ) +* **kitchen+travis:** remove ``master-py2-arch-base-latest`` [skip ci] (\ `d8372de `_\ ) +* **kitchen+travis:** upgrade matrix after ``2019.2.2`` release [skip ci] (\ `61edc79 `_\ ) +* **pre-commit:** add to formula [skip ci] (\ `172b5b4 `_\ ) +* **pre-commit:** enable/disable ``rstcheck`` as relevant [skip ci] (\ `fabc9eb `_\ ) +* **pre-commit:** finalise ``rstcheck`` configuration [skip ci] (\ `c80c66e `_\ ) +* **travis:** add notifications => zulip [skip ci] (\ `0bc4566 `_\ ) +* **travis:** apply changes from build config validation [skip ci] (\ `c4ade2b `_\ ) +* **travis:** opt-in to ``dpl v2`` to complete build config validation [skip ci] (\ `b09be58 `_\ ) +* **travis:** quote pathspecs used with ``git ls-files`` [skip ci] (\ `c8f134e `_\ ) +* **travis:** run ``shellcheck`` during lint job [skip ci] (\ `2994fa6 `_\ ) +* **travis:** update ``salt-lint`` config for ``v0.0.10`` [skip ci] (\ `834e3df `_\ ) +* **travis:** use ``major.minor`` for ``semantic-release`` version [skip ci] (\ `3d280b1 `_\ ) +* **travis:** use build config validation (beta) [skip ci] (\ `b6cc703 `_\ ) +* **workflows/commitlint:** add to repo [skip ci] (\ `d80c8c6 `_\ ) + +Documentation +^^^^^^^^^^^^^ + + +* **contributing:** remove to use org-level file instead [skip ci] (\ `ff4f0fd `_\ ) +* **readme:** update link to ``CONTRIBUTING`` [skip ci] (\ `f6d3bfb `_\ ) + +Performance Improvements +^^^^^^^^^^^^^^^^^^^^^^^^ + + +* **travis:** improve ``salt-lint`` invocation [skip ci] (\ `b995d48 `_\ ) + `0.3.2 `_ (2019-10-12) ---------------------------------------------------------------------------------------------------------- diff --git a/docs/CONTRIBUTING.rst b/docs/CONTRIBUTING.rst deleted file mode 100644 index b7da8f4..0000000 --- a/docs/CONTRIBUTING.rst +++ /dev/null @@ -1,159 +0,0 @@ -.. _contributing: - -How to contribute -================= - -This document will eventually outline all aspects of guidance to make your contributing experience a fruitful and enjoyable one. -What it already contains is information about *commit message formatting* and how that directly affects the numerous automated processes that are used for this repo. -It also covers how to contribute to this *formula's documentation*. - -.. contents:: **Table of Contents** - -Overview --------- - -Submitting a pull request is more than just code! -To achieve a quality product, the *tests* and *documentation* need to be updated as well. -An excellent pull request will include these in the changes, wherever relevant. - -Commit message formatting -------------------------- - -Since every type of change requires making Git commits, -we will start by covering the importance of ensuring that all of your commit -messages are in the correct format. - -Automation of multiple processes -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This formula uses `semantic-release `_ for automating numerous processes such as bumping the version number appropriately, creating new tags/releases and updating the changelog. -The entire process relies on the structure of commit messages to determine the version bump, which is then used for the rest of the automation. - -Full details are available in the upstream docs regarding the `Angular Commit Message Conventions `_. -The key factor is that the first line of the commit message must follow this format: - -.. code-block:: - - type(scope): subject - - -* E.g. ``docs(contributing): add commit message formatting instructions``. - -Besides the version bump, the changelog and release notes are formatted accordingly. -So based on the example above: - -.. - - .. raw:: html - -

Documentation

- - * **contributing:** add commit message formatting instructions - - -* The ``type`` translates into a ``Documentation`` sub-heading. -* The ``(scope):`` will be shown in bold text without the brackets. -* The ``subject`` follows the ``scope`` as standard text. - -Linting commit messages in Travis CI -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This formula uses `commitlint `_ for checking commit messages during CI testing. -This ensures that they are in accordance with the ``semantic-release`` settings. - -For more details about the default settings, refer back to the ``commitlint`` `reference rules `_. - -Relationship between commit type and version bump -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -This formula applies some customisations to the defaults, as outlined in the table below, -based upon the `type `_ of the commit: - -.. list-table:: - :name: commit-type-vs-version-bump - :header-rows: 1 - :stub-columns: 0 - :widths: 1,2,3,1,1 - - * - Type - - Heading - - Description - - Bump (default) - - Bump (custom) - * - ``build`` - - Build System - - Changes related to the build system - - – - - - * - ``chore`` - - – - - Changes to the build process or auxiliary tools and libraries such as - documentation generation - - – - - - * - ``ci`` - - Continuous Integration - - Changes to the continuous integration configuration - - – - - - * - ``docs`` - - Documentation - - Documentation only changes - - – - - 0.0.1 - * - ``feat`` - - Features - - A new feature - - 0.1.0 - - - * - ``fix`` - - Bug Fixes - - A bug fix - - 0.0.1 - - - * - ``perf`` - - Performance Improvements - - A code change that improves performance - - 0.0.1 - - - * - ``refactor`` - - Code Refactoring - - A code change that neither fixes a bug nor adds a feature - - – - - 0.0.1 - * - ``revert`` - - Reverts - - A commit used to revert a previous commit - - – - - 0.0.1 - * - ``style`` - - Styles - - Changes that do not affect the meaning of the code (white-space, - formatting, missing semi-colons, etc.) - - – - - 0.0.1 - * - ``test`` - - Tests - - Adding missing or correcting existing tests - - – - - 0.0.1 - -Use ``BREAKING CHANGE`` to trigger a ``major`` version change -^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ - -Adding ``BREAKING CHANGE`` to the footer of the extended description of the commit message will **always** trigger a ``major`` version change, no matter which type has been used. -This will be appended to the changelog and release notes as well. -To preserve good formatting of these notes, the following format is prescribed: - -* ``BREAKING CHANGE: .`` - -An example of that: - -.. code-block:: git - - ... - - BREAKING CHANGE: With the removal of all of the `.sls` files under - `template package`, this formula no longer supports the installation of - packages. - diff --git a/docs/README.rst b/docs/README.rst index b7cbb8e..5a730d0 100644 --- a/docs/README.rst +++ b/docs/README.rst @@ -37,7 +37,7 @@ Contributing to this repo **Commit message formatting is significant!!** -Please see :ref:`How to contribute ` for more details. +Please see `How to contribute `_ for more details. Available states ---------------- diff --git a/kitchen.yml b/kitchen.yml index e411a53..76010a3 100644 --- a/kitchen.yml +++ b/kitchen.yml @@ -11,97 +11,70 @@ driver: # Make sure the platforms listed below match up with # the `env.matrix` instances defined in `.travis.yml` platforms: - ## SALT `develop` - - name: debian-10-develop-py3 - driver: - image: netmanagers/salt-develop-py3:debian-10 - provision_command: - - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com - - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop - - name: ubuntu-1804-develop-py3 - driver: - image: netmanagers/salt-develop-py3:ubuntu-18.04 - provision_command: - - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com - - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop - - name: centos-7-develop-py3 - driver: - image: netmanagers/salt-develop-py3:centos-7 - provision_command: - - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com - - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop - - name: fedora-30-develop-py3 - driver: - image: netmanagers/salt-develop-py3:fedora-30 - provision_command: - - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com - - sh bootstrap-salt.sh -XdPbfrq -x python3 git develop - - name: opensuse-leap-15-develop-py3 - driver: - image: opensuse/leap:15 - provision_command: - # yamllint disable-line rule:line-length - - zypper install -y glibc-locale net-tools net-tools-deprecated python-xml python3-pip - - systemctl enable sshd.service + ## SALT `master` + - name: debian-10-master-py3 + driver: + image: saltimages/salt-master-py3:debian-10 + - name: ubuntu-1804-master-py3 + driver: + image: saltimages/salt-master-py3:ubuntu-18.04 + - name: centos-8-master-py3 + driver: + image: saltimages/salt-master-py3:centos-8 + - name: fedora-31-master-py3 + driver: + image: saltimages/salt-master-py3:fedora-31 + - name: opensuse-leap-151-master-py3 + driver: + image: netmanagers/salt-master-py3:opensuse-leap-15.1 run_command: /usr/lib/systemd/systemd - provisioner: - salt_bootstrap_options: -XdPfrq -x python3 git develop - salt_install: bootstrap - # Workaround to avoid intermittent failures on `opensuse-leap-15`: + # Workaround to avoid intermittent failures on `opensuse-leap-15.1`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: amazonlinux-2-develop-py2 - driver: - image: netmanagers/salt-develop-py2:amazonlinux-2 - provision_command: - - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com - - sh bootstrap-salt.sh -XdPbfrq -x python2 git develop - - name: arch-base-latest-develop-py2 - driver: - image: netmanagers/salt-develop-py2:arch-base-latest - provision_command: - - curl -o bootstrap-salt.sh -L https://bootstrap.saltstack.com - - sh bootstrap-salt.sh -XdPbfrq -x python2 git develop - run_command: /usr/lib/systemd/systemd + - name: amazonlinux-2-master-py3 + driver: + image: saltimages/salt-master-py3:amazonlinux-2 ## SALT `2019.2` + - name: debian-10-2019-2-py3 + driver: + image: saltimages/salt-2019.2-py3:debian-10 - name: debian-9-2019-2-py3 driver: - image: netmanagers/salt-2019.2-py3:debian-9 + image: saltimages/salt-2019.2-py3:debian-9 - name: ubuntu-1804-2019-2-py3 driver: - image: netmanagers/salt-2019.2-py3:ubuntu-18.04 - - name: centos-7-2019-2-py3 + image: saltimages/salt-2019.2-py3:ubuntu-18.04 + - name: centos-8-2019-2-py3 driver: - image: netmanagers/salt-2019.2-py3:centos-7 - - name: fedora-30-2019-2-py3 + image: saltimages/salt-2019.2-py3:centos-8 + - name: fedora-31-2019-2-py3 driver: - image: netmanagers/salt-2019.2-py3:fedora-30 - - name: opensuse-leap-15-2019-2-py3 + image: saltimages/salt-2019.2-py3:fedora-31 + - name: opensuse-leap-151-2019-2-py3 driver: - image: opensuse/leap:15 - provision_command: - # yamllint disable-line rule:line-length - - zypper install -y glibc-locale net-tools net-tools-deprecated python-xml python3-pip - - systemctl enable sshd.service + image: netmanagers/salt-2019.2-py3:opensuse-leap-15.1 run_command: /usr/lib/systemd/systemd - provisioner: - salt_bootstrap_options: -XdPfrq -x python3 git 2019.2 - salt_install: bootstrap - # Workaround to avoid intermittent failures on `opensuse-leap-15`: + # Workaround to avoid intermittent failures on `opensuse-leap-15.1`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: amazonlinux-2-2019-2-py2 + - name: centos-7-2019-2-py2 + driver: + image: netmanagers/salt-2019.2-py2:centos-7 + - name: amazonlinux-2-2019-2-py3 driver: - image: netmanagers/salt-2019.2-py2:amazonlinux-2 + image: saltimages/salt-2019.2-py3:amazonlinux-2 - name: arch-base-latest-2019-2-py2 driver: - image: netmanagers/salt-2019.2-py2:arch-base-latest + image: saltimages/salt-2019.2-py2:arch-base-latest run_command: /usr/lib/systemd/systemd ## SALT `2018.3` + - name: fedora-30-2018-3-py3 + driver: + image: netmanagers/salt-2018.3-py3:fedora-30 - name: debian-9-2018-3-py2 driver: image: netmanagers/salt-2018.3-py2:debian-9 @@ -111,27 +84,18 @@ platforms: - name: centos-7-2018-3-py2 driver: image: netmanagers/salt-2018.3-py2:centos-7 - - name: fedora-29-2018-3-py2 - driver: - image: netmanagers/salt-2018.3-py2:fedora-29 - - name: opensuse-leap-15-2018-3-py2 + - name: opensuse-leap-151-2018-3-py2 driver: - image: opensuse/leap:15 - provision_command: - # yamllint disable-line rule:line-length - - zypper install -y glibc-locale net-tools net-tools-deprecated python-xml python2-pip - - systemctl enable sshd.service + image: netmanagers/salt-2018.3-py2:opensuse-leap-15.1 run_command: /usr/lib/systemd/systemd - provisioner: - salt_bootstrap_options: -XdPfrq -x python2 git 2018.3 - salt_install: bootstrap - # Workaround to avoid intermittent failures on `opensuse-leap-15`: + # Workaround to avoid intermittent failures on `opensuse-leap-15.1`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: amazonlinux-2-2018-3-py2 + - name: amazonlinux-1-2018-3-py2 driver: - image: netmanagers/salt-2018.3-py2:amazonlinux-2 + image: netmanagers/salt-2018.3-py2:amazonlinux-1 + run_command: /sbin/init - name: arch-base-latest-2018-3-py2 driver: image: netmanagers/salt-2018.3-py2:arch-base-latest @@ -148,27 +112,21 @@ platforms: driver: image: netmanagers/salt-2017.7-py2:centos-6 run_command: /sbin/init - - name: fedora-29-2017-7-py2 + - name: fedora-30-2017-7-py2 driver: - image: netmanagers/salt-2017.7-py2:fedora-29 - - name: opensuse-leap-15-2017-7-py2 + image: netmanagers/salt-2017.7-py2:fedora-30 + - name: opensuse-leap-151-2017-7-py2 driver: - image: opensuse/leap:15 - provision_command: - # yamllint disable-line rule:line-length - - zypper install -y glibc-locale net-tools net-tools-deprecated python-xml python2-pip - - systemctl enable sshd.service + image: netmanagers/salt-2017.7-py2:opensuse-leap-15.1 run_command: /usr/lib/systemd/systemd - provisioner: - salt_bootstrap_options: -XdPfrq -x python2 git 2017.7 - salt_install: bootstrap - # Workaround to avoid intermittent failures on `opensuse-leap-15`: + # Workaround to avoid intermittent failures on `opensuse-leap-15.1`: # => SCP did not finish successfully (255): (Net::SCP::Error) transport: max_ssh_sessions: 1 - - name: amazonlinux-2-2017-7-py2 + - name: amazonlinux-1-2017-7-py2 driver: - image: netmanagers/salt-2017.7-py2:amazonlinux-2 + image: netmanagers/salt-2017.7-py2:amazonlinux-1 + run_command: /sbin/init - name: arch-base-latest-2017-7-py2 driver: image: netmanagers/salt-2017.7-py2:arch-base-latest diff --git a/pre-commit_semantic-release.sh b/pre-commit_semantic-release.sh index 9d34d74..458b7b6 100755 --- a/pre-commit_semantic-release.sh +++ b/pre-commit_semantic-release.sh @@ -11,12 +11,12 @@ sed -i -e "s_^\(version:\).*_\1 ${1}_" FORMULA ############################################################################### # Install `m2r` -sudo -H pip install m2r +pip3 install m2r # Copy and then convert the `.md` docs -cp *.md docs/ -cd docs/ -m2r --overwrite *.md +cp ./*.md docs/ +cd docs/ || exit +m2r --overwrite ./*.md # Change excess `H1` headings to `H2` in converted `CHANGELOG.rst` sed -i -e '/^=.*$/s/=/-/g' CHANGELOG.rst diff --git a/release.config.js b/release.config.js index afa0cb1..d65751b 100644 --- a/release.config.js +++ b/release.config.js @@ -1,5 +1,6 @@ module.exports = { branch: 'master', + repositoryUrl: 'https://github.com/saltstack-formulas/influxdb-formula', plugins: [ ['@semantic-release/commit-analyzer', { preset: 'angular', @@ -63,7 +64,7 @@ module.exports = { } if (typeof commit.hash === `string`) { - commit.hash = commit.hash.substring(0, 7) + commit.shortHash = commit.hash.substring(0, 7) } if (typeof commit.subject === `string`) {