checkoff 0.8.0 → 0.9.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 834d9600b69c5f79ba30cbf22a79c66d0a277d517cafe6c2aee32de1c63bb533
4
- data.tar.gz: 5cb97edadfd9aca288f6f1e5d95400c0e291306ffd2f3a76ad003560539b88cb
3
+ metadata.gz: 57e69538d14498144e6587146af712357df75cbc88c9c6ed5aca9179d8c68ad0
4
+ data.tar.gz: a61d58c6cd36f1cab26f8122207f5dfd0744a39bb17429e95b19d8ccd2e65a40
5
5
  SHA512:
6
- metadata.gz: 83050b84c4cc44b0c5992174cfe8f837f985dd361627ed60e81466f9cb14713b87d14508c9d46d997e9887c8944557252a64bd79f3354c04285c852758fd5021
7
- data.tar.gz: '083875c0f26f4309170d036ccec8dc3bb970ddf276916f1744ac0bd1285055de662ac7b29054bceba10fe82baba0ef319731ab32de522fb773a3af824ba687c1'
6
+ metadata.gz: 0cfb597bbd0911486b1b4538ada6ecf9aa708bddc88c14722f554581304093b7278fa7a8204ac3ea96ed48b7ff4cc0b67474839556c05d7f097dff01e3b271d9
7
+ data.tar.gz: e25f408dd5c067c6663a2eec4832c010f40a9423d35f031233c79d232719355a21a3b3232b31c03b0694a4e15b00ad4f3ce243229e8e8a68b6c19cca9dbd5560
data/.circleci/config.yml CHANGED
@@ -1,17 +1,122 @@
1
- version: 2
1
+ ---
2
+ version: 2.1
3
+
4
+ commands:
5
+ set_up_environment:
6
+ description: "Install source environment"
7
+ steps:
8
+ - checkout
9
+ - run: |
10
+ sed -E -e 's/checkoff \([[:digit:]]+.[[:digit:]]+.[[:digit:]]+\)/checkoff (0.1.0)/g' \
11
+ Gemfile.lock > Gemfile.lock.deversioned
12
+ - restore_cache:
13
+ key: gems-v4-{{ checksum "Gemfile.lock.deversioned" }}
14
+ - restore_cache:
15
+ key: ruby-and-python-v4-{{ checksum "fix.sh" }}
16
+ - run:
17
+ name: Initialize packages
18
+ command: |
19
+ export BUNDLE_PATH=vendor/bundle
20
+ './fix.sh'
21
+ - run:
22
+ name: Verify Gemfile.lock
23
+ command: |
24
+ if ! git diff --exit-code Gemfile.lock
25
+ then
26
+ >&2 echo "Please resolve changes to Gemfile.lock after bundle install to avoid caching difficulties"
27
+ exit 1
28
+ fi
29
+ - save_cache:
30
+ key: ruby-and-python-v4-{{ checksum "fix.sh" }}
31
+ paths:
32
+ - "/home/circleci/.rbenv"
33
+ - "/home/circleci/.pyenv"
34
+ - save_cache:
35
+ key: gems-v4-{{ checksum "Gemfile.lock.deversioned" }}
36
+ paths:
37
+ - "vendor/bundle"
38
+ - run:
39
+ name: Download new circleci tool
40
+ command: |
41
+ curl -fLSs \
42
+ https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh | sudo bash
43
+ overcommit:
44
+ description: "Run overcommit"
45
+ steps:
46
+ - set_up_environment
47
+ - run:
48
+ name: Download new circleci tool
49
+ command: |
50
+ curl -fLSs \
51
+ https://raw.githubusercontent.com/CircleCI-Public/circleci-cli/master/install.sh | sudo bash
52
+ - run:
53
+ name: Run overcommit
54
+ command: |
55
+ export PATH="${HOME}/.pyenv/bin:${PATH}"
56
+ export PATH="${HOME}/.rbenv/bin:${HOME}/.rbenv/shims:${PATH}"
57
+ eval "$(pyenv init -)"
58
+ eval "$(pyenv virtualenv-init -)"
59
+ eval "$(rbenv init -)"
60
+ export BUNDLE_PATH=vendor/bundle
61
+ # Coax overcommit into working
62
+ git config --global user.email "test@test.test"
63
+ git config --global user.name "Test Test"
64
+ bundle exec overcommit --sign
65
+ bundle exec overcommit --sign pre-commit
66
+
67
+ bundle exec overcommit --run
68
+ environment:
69
+ # https://app.circleci.com/pipelines/github/apiology/cookiecutter-pypackage/4/workflows/29074dc8-944c-4600-8aaa-5116575fed90/jobs/4
70
+ "LC_ALL": "C.UTF-8"
71
+ "LANG": "C.UTF-8"
72
+
2
73
  jobs:
74
+ overcommit:
75
+ docker:
76
+ - image: apiology/circleci:latest
77
+ steps:
78
+ - when:
79
+ condition:
80
+ equal: [<< pipeline.git.branch >>, "main"]
81
+ steps:
82
+ - overcommit
83
+ - unless:
84
+ condition:
85
+ equal: [<< pipeline.git.branch >>, "main"]
86
+ steps:
87
+ - run: echo "overcommit only runs on main branch"
3
88
  build:
4
89
  working_directory: ~/checkoff
5
90
  docker:
6
- - image: apiology/circleci-ruby:latest
91
+ - image: apiology/circleci:latest
7
92
  steps:
8
- - checkout
9
- - type: cache-restore
10
- key: checkoff-{{ checksum "checkoff.gemspec" }}-{{ checksum "Gemfile" }}
11
- - run: gem install --no-document bundler
12
- - run: bundle install --path vendor/bundle --jobs=4
13
- - type: cache-save
14
- key: checkoff-{{ checksum "checkoff.gemspec" }}-{{ checksum "Gemfile" }}
15
- paths:
16
- - "vendor/bundle"
17
- - run: bundle exec rake --jobs=4 ci
93
+ - set_up_environment
94
+ - run:
95
+ command: |
96
+ export PATH="${HOME}/.pyenv/bin:${PATH}"
97
+ export PATH="${HOME}/.rbenv/bin:${HOME}/.rbenv/shims:${PATH}"
98
+ eval "$(pyenv init -)"
99
+ eval "$(pyenv virtualenv-init -)"
100
+ eval "$(rbenv init -)"
101
+ export BUNDLE_PATH=vendor/bundle
102
+
103
+ make test
104
+
105
+ workflows:
106
+ version: 2
107
+ weekly:
108
+ triggers:
109
+ - schedule:
110
+ cron: "0 0 * * 6"
111
+ filters:
112
+ branches:
113
+ only:
114
+ - main
115
+ jobs:
116
+ - build
117
+ overcommit:
118
+ jobs:
119
+ - overcommit
120
+ build:
121
+ jobs:
122
+ - build
data/.envrc CHANGED
@@ -1,2 +1,2 @@
1
1
  PATH_add bin
2
- eval $(with-op op-env sh)
2
+ eval $(with-op op-env sh -e ASANA__PERSONAL_ACCESS_TOKEN)
@@ -0,0 +1,21 @@
1
+ # frozen_string_literal: true
2
+
3
+ module Overcommit
4
+ module Hook
5
+ module PreCommit
6
+ # CircleCI plugin for Overcommit to validate config file (.circleci/config.yml)
7
+ class CircleCi < Base
8
+ def run
9
+ result = execute(command)
10
+ return :pass if result.success?
11
+
12
+ if result.success?
13
+ :pass
14
+ else
15
+ [:fail, result.stderr]
16
+ end
17
+ end
18
+ end
19
+ end
20
+ end
21
+ end
data/.gitignore CHANGED
@@ -1,12 +1,52 @@
1
+ # OSX useful to ignore
2
+ *.DS_Store
3
+ .AppleDouble
4
+ .LSOverride
5
+
6
+ # Thumbnails
7
+ ._*
8
+
9
+ # Files that might appear in the root of a volume
10
+ .DocumentRevisions-V100
11
+ .fseventsd
12
+ .Spotlight-V100
13
+ .TemporaryItems
14
+ .Trashes
15
+ .VolumeIcon.icns
16
+ .com.apple.timemachine.donotpresent
17
+
18
+ # Directories potentially created on remote AFP share
19
+ .AppleDB
20
+ .AppleDesktop
21
+ Network Trash Folder
22
+ Temporary Items
23
+ .apdisk
24
+
25
+ # IntelliJ Idea family of suites
26
+ .idea
27
+ *.iml
28
+ ## File-based project format:
29
+ *.ipr
30
+ *.iws
31
+ ## mpeltonen/sbt-idea plugin
32
+ .idea_modules/
33
+
34
+ # IDE settings
35
+ .vscode/
36
+
37
+ # Installed by fix.sh based on what latest versions are
38
+ /.python-version
39
+
40
+ # Ruby-related
1
41
  /.bundle/
2
42
  /.yardoc
3
- /Gemfile.lock
4
43
  /_yardoc/
5
44
  /doc/
6
45
  /pkg/
7
46
  /spec/reports/
8
47
  /tmp/
9
48
  /coverage/.resultset.json
49
+ /coverage/.resultset.json.lock
10
50
  /coverage/assets/
11
51
  /coverage/index.html
12
52
  /pkg
data/.overcommit.yml CHANGED
@@ -1,3 +1,4 @@
1
+ ---
1
2
  # Use this file to configure the Overcommit hooks you wish to use. This will
2
3
  # extend the default configuration defined in:
3
4
  # https://github.com/sds/overcommit/blob/master/config/default.yml
@@ -19,18 +20,29 @@ PreCommit:
19
20
  RuboCop:
20
21
  enabled: true
21
22
  on_warn: fail # Treat all warnings as failures
22
- #
23
- # TrailingWhitespace:
24
- # enabled: true
25
- # exclude:
26
- # - '**/db/structure.sql' # Ignore trailing whitespace in generated files
27
- #
28
- #PostCheckout:
29
- # ALL: # Special hook name that customizes all hooks of this type
30
- # quiet: true # Change all post-checkout hooks to only display output on failure
31
- #
32
- # IndexTags:
33
- # enabled: true # Generate a tags file with `ctags` each time HEAD changes
23
+ command: ['bundle', 'exec', 'rubocop']
24
+ include:
25
+ - '**/*.gemspec'
26
+ - '**/*.rake'
27
+ - '**/*.rb'
28
+ - '**/*.ru'
29
+ - '**/Gemfile'
30
+ - '**/Rakefile'
31
+ - 'bin/*'
32
+ PythonFlake8:
33
+ enabled: true
34
+ ShellCheck:
35
+ enabled: true
36
+ on_warn: fail
37
+ YamlLint:
38
+ enabled: true
39
+ on_warn: fail
40
+ CircleCi:
41
+ required_executable: 'circleci'
42
+ flags: ['config', 'validate']
43
+ include:
44
+ - '.circleci/config.yml'
45
+ enabled: true
34
46
 
35
47
  PrePush:
36
48
  Minitest:
data/.rubocop.yml CHANGED
@@ -1,30 +1,55 @@
1
- # I like trailing commas in hashes. They let me insert new elements and
2
- # see them as one line in a diff, not two.
3
- Style/TrailingCommaInHashLiteral:
4
- EnforcedStyleForMultiline: comma
1
+ ---
2
+ Layout/LineLength:
3
+ Max: 120
5
4
 
6
- Style/TrailingCommaInArrayLiteral:
7
- EnforcedStyleForMultiline: comma
5
+ Layout/MultilineMethodCallIndentation:
6
+ EnforcedStyle: indented
7
+
8
+ Lint/UnusedMethodArgument:
9
+ AllowUnusedKeywordArguments: true
10
+
11
+ # https://stackoverflow.com/questions/40934345/rubocop-25-line-block-size-and-rspec-tests
12
+ Metrics/BlockLength:
13
+ # Exclude DSLs
14
+ Exclude:
15
+ - 'Rakefile'
16
+ - '*.gemspec'
17
+ - '**/*.rake'
18
+ - 'spec/**/*.rb'
19
+ - 'feature/**/*.rb'
8
20
 
9
21
  # I use keyword arguments for a poor man's dependency injection to cut
10
22
  # down on the magic in my tests.
11
23
  Metrics/ParameterLists:
12
24
  CountKeywordArgs: false
13
25
 
14
- # If I'm using one function name and returning the contents of an
15
- # attribute, that's OK. The alternative would be this, which I find
16
- # confusing and often not really what I mean:
26
+ # Can try removing this after I have a release installed with this
27
+ # fix (probably in rubocop-minitest 0.10.3):
17
28
  #
18
- # attr_reader :something_else
19
- # alias_method :something, :something_else
20
- Style/TrivialAccessors:
21
- ExactNameMatch: true
29
+ # https://github.com/rubocop-hq/rubocop-minitest/pull/116
30
+ Minitest/TestMethodName:
31
+ Enabled: false
32
+
33
+ Naming/HeredocDelimiterNaming:
34
+ Enabled: false
35
+
36
+ Naming/MethodParameterName:
37
+ Enabled: true
38
+ AllowedNames:
39
+ # I don't think things on this list are a terribly hard convention
40
+ # for folks to learn. bbatsov also doesn't care much for this
41
+ # check:
42
+ #
43
+ # https://github.com/rubocop-hq/rubocop/issues/3666
44
+ - e # exception
45
+ - x # cartesian coordinates
46
+ - y # cartesian coordinates
22
47
 
23
48
  #
24
49
  # Add 'XX X' to the standard list
25
50
  #
26
51
  Style/CommentAnnotation:
27
- Keywords:
52
+ Keywords:
28
53
  - "TOD\
29
54
  O"
30
55
  - "FIXM\
@@ -38,167 +63,36 @@ Style/CommentAnnotation:
38
63
  - "XX\
39
64
  X"
40
65
 
41
- # https://stackoverflow.com/questions/40934345/rubocop-25-line-block-size-and-rspec-tests
42
- Metrics/BlockLength:
43
- # Exclude DSLs
44
- Exclude:
45
- - 'Rakefile'
46
- - '*.gemspec'
47
- - '**/*.rake'
48
- - 'spec/**/*.rb'
49
- - 'feature/**/*.rb'
66
+ Style/StringLiterals:
67
+ EnforcedStyle: single_quotes
68
+ SupportedStyles:
69
+ - single_quotes
70
+ - double_quotes
71
+ ConsistentQuotesInMultiline: true
50
72
 
51
- # http://www.betterspecs.org/#single
52
- #
53
- # > in tests that are not isolated (e.g. ones that integrate with a
54
- # > DB, an external webservice, or end-to-end-tests), you take a
55
- # > massive performance hit to do the same setup over and over again,
56
- # > just to set a different expectation in each test. In these sorts
57
- # > of slower tests, I think it's fine to specify more than one
58
- # > isolated behavior.
59
- RSpec/MultipleExpectations:
60
- Exclude:
61
- - 'feature/**/*.rb'
73
+ # I like trailing commas in arrays and hashes. They let me insert new
74
+ # elements and see them as one line in a diff, not two.
75
+ Style/TrailingCommaInArrayLiteral:
76
+ EnforcedStyleForMultiline: comma
62
77
 
63
- Style/StringLiterals:
64
- EnforcedStyle: single_quotes
65
- SupportedStyles:
66
- - single_quotes
67
- - double_quotes
68
- ConsistentQuotesInMultiline: true
78
+ Style/TrailingCommaInHashLiteral:
79
+ EnforcedStyleForMultiline: comma
69
80
 
70
- Layout/BeginEndAlignment: # (new in 0.91)
71
- Enabled: true
72
- Layout/EmptyLinesAroundAttributeAccessor: # (new in 0.83)
73
- Enabled: true
74
- Layout/SpaceAroundMethodCallOperator: # (new in 0.82)
75
- Enabled: true
76
- Lint/BinaryOperatorWithIdenticalOperands: # (new in 0.89)
77
- Enabled: true
78
- Lint/ConstantDefinitionInBlock: # (new in 0.91)
79
- Enabled: true
80
- Lint/DeprecatedOpenSSLConstant: # (new in 0.84)
81
- Enabled: true
82
- Lint/DuplicateElsifCondition: # (new in 0.88)
83
- Enabled: true
84
- Lint/DuplicateRequire: # (new in 0.90)
85
- Enabled: true
86
- Lint/DuplicateRescueException: # (new in 0.89)
87
- Enabled: true
88
- Lint/EmptyConditionalBody: # (new in 0.89)
89
- Enabled: true
90
- Lint/EmptyFile: # (new in 0.90)
91
- Enabled: true
92
- Lint/FloatComparison: # (new in 0.89)
93
- Enabled: true
94
- Lint/IdentityComparison: # (new in 0.91)
95
- Enabled: true
96
- Lint/MissingSuper: # (new in 0.89)
97
- Enabled: true
98
- Lint/MixedRegexpCaptureTypes: # (new in 0.85)
99
- Enabled: true
100
- Lint/OutOfRangeRegexpRef: # (new in 0.89)
101
- Enabled: true
102
- Lint/RaiseException: # (new in 0.81)
103
- Enabled: true
104
- Lint/SelfAssignment: # (new in 0.89)
105
- Enabled: true
106
- Lint/StructNewOverride: # (new in 0.81)
107
- Enabled: true
108
- Lint/TopLevelReturnWithArgument: # (new in 0.89)
109
- Enabled: true
110
- Lint/TrailingCommaInAttributeDeclaration: # (new in 0.90)
111
- Enabled: true
112
- Lint/UnreachableLoop: # (new in 0.89)
113
- Enabled: true
114
- Lint/UselessMethodDefinition: # (new in 0.90)
115
- Enabled: true
116
- Lint/UselessTimes: # (new in 0.91)
117
- Enabled: true
118
- Style/AccessorGrouping: # (new in 0.87)
119
- Enabled: true
120
- Style/BisectedAttrAccessor: # (new in 0.87)
121
- Enabled: true
122
- Style/CaseLikeIf: # (new in 0.88)
123
- Enabled: true
124
- Style/CombinableLoops: # (new in 0.90)
125
- Enabled: true
126
- Style/ExplicitBlockArgument: # (new in 0.89)
127
- Enabled: true
128
- Style/ExponentialNotation: # (new in 0.82)
129
- Enabled: true
130
- Style/GlobalStdStream: # (new in 0.89)
131
- Enabled: true
132
- Style/HashAsLastArrayItem: # (new in 0.88)
133
- Enabled: true
134
- Style/HashEachMethods: # (new in 0.80)
135
- Enabled: true
136
- Style/HashLikeCase: # (new in 0.88)
137
- Enabled: true
138
- Style/HashTransformKeys: # (new in 0.80)
139
- Enabled: true
140
- Style/HashTransformValues: # (new in 0.80)
141
- Enabled: true
142
- Style/KeywordParametersOrder: # (new in 0.90)
143
- Enabled: true
144
- Style/OptionalBooleanParameter: # (new in 0.89)
145
- Enabled: true
146
- Style/RedundantAssignment: # (new in 0.87)
147
- Enabled: true
148
- Style/RedundantFetchBlock: # (new in 0.86)
149
- Enabled: true
150
- Style/RedundantFileExtensionInRequire: # (new in 0.88)
151
- Enabled: true
152
- Style/RedundantRegexpCharacterClass: # (new in 0.85)
153
- Enabled: true
154
- Style/RedundantRegexpEscape: # (new in 0.85)
155
- Enabled: true
156
- Style/RedundantSelfAssignment: # (new in 0.90)
157
- Enabled: true
158
- Style/SingleArgumentDig: # (new in 0.89)
159
- Enabled: true
160
- Style/SlicingWithRange: # (new in 0.83)
161
- Enabled: true
162
- Style/SoleNestedConditional: # (new in 0.89)
163
- Enabled: true
164
- Style/StringConcatenation: # (new in 0.89)
165
- Enabled: true
166
- Minitest/AssertInDelta: # (new in 0.10)
167
- Enabled: true
168
- Minitest/AssertionInLifecycleHook: # (new in 0.10)
169
- Enabled: true
170
- Minitest/AssertKindOf: # (new in 0.10)
171
- Enabled: true
172
- Minitest/AssertOutput: # (new in 0.10)
173
- Enabled: true
174
- Minitest/AssertPathExists: # (new in 0.10)
175
- Enabled: true
176
- Minitest/AssertSilent: # (new in 0.10)
177
- Enabled: true
178
- Minitest/LiteralAsActualArgument: # (new in 0.10)
179
- Enabled: true
180
- Minitest/MultipleAssertions: # (new in 0.10)
181
- Enabled: true
182
- Minitest/RefuteInDelta: # (new in 0.10)
183
- Enabled: true
184
- Minitest/RefuteKindOf: # (new in 0.10)
185
- Enabled: true
186
- Minitest/RefutePathExists: # (new in 0.10)
187
- Enabled: true
188
- Minitest/TestMethodName: # (new in 0.10)
189
- # This gives false positives when non-test methods exist...
190
- Enabled: false
191
- Minitest/UnspecifiedException: # (new in 0.10)
192
- Enabled: true
193
- RSpec/StubbedMock: # (new in 1.44)
194
- Enabled: true
81
+ # If I'm using one function name and returning the contents of an
82
+ # attribute, that's OK. The alternative would be this, which I find
83
+ # confusing and often not really what I mean:
84
+ #
85
+ # attr_reader :something_else
86
+ # alias_method :something, :something_else
87
+ Style/TrivialAccessors:
88
+ ExactNameMatch: true
195
89
 
196
90
  AllCops:
91
+ NewCops: enable
197
92
  TargetRubyVersion: 2.5
198
93
  Exclude:
199
94
  - 'bin/*'
200
95
 
201
96
  require:
202
- - rubocop-rspec
203
- - rubocop-minitest
204
97
  - rubocop-rake
98
+ - rubocop-minitest