checkoff 0.212.0 → 0.214.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 +4 -4
- data/.circleci/config.yml +35 -28
- data/.envrc +5 -0
- data/.gitignore +1 -0
- data/Gemfile.lock +8 -7
- data/Makefile +5 -2
- data/fix.sh +88 -34
- data/lib/checkoff/version.rb +1 -1
- metadata +2 -2
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: a5198dc08520f7837cba69dad84b9d2045d92255f2e6de626543619ea974e27e
|
4
|
+
data.tar.gz: 71810fc8bd1f67198a3f4bd4d02573992ab3b4bee2239a82d63be645a3342d0b
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: 7e0fed093e0d205fe01b39982b4cced95ab312e04211cef0a5eacf96d50678c50bf538adea04aef446aab14120582f93bf702e05ad7ba2189385002eb51efa35
|
7
|
+
data.tar.gz: 9ac889b3320d9ddd45c4261cf28e575a7400c56186e757c4baa82cda9366d157a5c8aa2687970b1f357a380987504ac7bebce91b2cc7cf9df9d11b19acfcc934
|
data/.circleci/config.yml
CHANGED
@@ -22,8 +22,12 @@ commands:
|
|
22
22
|
eval "$(pyenv init --path)"
|
23
23
|
eval "$(pyenv virtualenv-init -)"
|
24
24
|
eval "$(rbenv init -)"
|
25
|
+
|
25
26
|
# keep this in a single place for both main and child builds for cachability
|
26
|
-
|
27
|
+
BUNDLE_PATH="$(pwd)/vendor/bundle"
|
28
|
+
export BUNDLE_PATH
|
29
|
+
GEM_HOME="${BUNDLE_PATH}"
|
30
|
+
export GEM_HOME
|
27
31
|
|
28
32
|
<<parameters.command>>
|
29
33
|
environment:
|
@@ -34,23 +38,24 @@ commands:
|
|
34
38
|
description: "Install source environment"
|
35
39
|
steps:
|
36
40
|
- checkout
|
41
|
+
- run:
|
42
|
+
name: Update timestamps to original commit time
|
43
|
+
command: |
|
44
|
+
git ls-tree -r --name-only HEAD | while read filename; do \
|
45
|
+
unixtime=$(git log -1 --format="%at" -- "${filename}")
|
46
|
+
touchtime=$(date -d @$unixtime +'%Y%m%d%H%M.%S')
|
47
|
+
touch -t ${touchtime} "${filename}"
|
48
|
+
done
|
37
49
|
- restore_cache:
|
38
50
|
keys:
|
39
|
-
-
|
40
|
-
-
|
41
|
-
-
|
42
|
-
- restore_cache:
|
43
|
-
keys:
|
44
|
-
- solargraph-v2-{{ checksum "Gemfile.lock" }}-{{ .Branch }}
|
45
|
-
- solargraph-v2-{{ checksum "Gemfile.lock" }}-
|
46
|
-
- solargraph-v2-
|
47
|
-
- solargraph-
|
51
|
+
- rbenv-v4-{{ checksum "Gemfile.lock" }}-
|
52
|
+
- rbenv-v4-
|
53
|
+
- rbenv-
|
48
54
|
- restore_cache:
|
49
55
|
keys:
|
50
|
-
-
|
51
|
-
-
|
52
|
-
-
|
53
|
-
- wheels-
|
56
|
+
- pyenv-v2-{{ checksum "requirements_dev.txt" }}-
|
57
|
+
- pyenv-v2-
|
58
|
+
- pyenv-
|
54
59
|
- run:
|
55
60
|
name: Initialize packages
|
56
61
|
command: |
|
@@ -59,7 +64,11 @@ commands:
|
|
59
64
|
|
60
65
|
# export FIX_SH_TIMING_LOG=/tmp/fix_sh_timing.log
|
61
66
|
|
62
|
-
|
67
|
+
BUNDLE_PATH="$(pwd)/vendor/bundle"
|
68
|
+
export BUNDLE_PATH
|
69
|
+
GEM_HOME="${BUNDLE_PATH}"
|
70
|
+
export GEM_HOME
|
71
|
+
|
63
72
|
'./fix.sh'
|
64
73
|
- store_artifacts:
|
65
74
|
path: /tmp/fix_sh_timing.log
|
@@ -72,17 +81,20 @@ commands:
|
|
72
81
|
exit 1
|
73
82
|
fi
|
74
83
|
- save_cache:
|
75
|
-
key:
|
84
|
+
key: rbenv-v4-{{ checksum "Gemfile.lock" }}-{{ checksum ".ruby-version" }}
|
76
85
|
paths:
|
86
|
+
- "Gemfile.lock.installed"
|
87
|
+
- "types.installed"
|
77
88
|
- "vendor/bundle"
|
89
|
+
- "/home/circleci/.rbenv"
|
78
90
|
- ".yardoc"
|
79
|
-
- "/home/circleci/.
|
91
|
+
- "/home/circleci/.cache/solargraph"
|
80
92
|
- save_cache:
|
81
|
-
key:
|
93
|
+
key: pyenv-v2-{{ checksum "requirements_dev.txt" }}-{{ checksum ".python-version" }}
|
82
94
|
paths:
|
95
|
+
- "requirements_dev.txt.installed"
|
83
96
|
- "/home/circleci/.cache/pip/wheels"
|
84
|
-
- "/home/circleci/.pyenv
|
85
|
-
- "/home/circleci/.pyenv/versions/checkoff-3.12.7"
|
97
|
+
- "/home/circleci/.pyenv"
|
86
98
|
- run:
|
87
99
|
name: Download new circleci tool
|
88
100
|
command: |
|
@@ -196,13 +208,13 @@ jobs:
|
|
196
208
|
quality:
|
197
209
|
working_directory: ~/checkoff
|
198
210
|
docker:
|
199
|
-
- image:
|
211
|
+
- image: cimg/base:current
|
200
212
|
steps:
|
201
213
|
- quality
|
202
214
|
build:
|
203
215
|
working_directory: ~/checkoff
|
204
216
|
docker:
|
205
|
-
- image:
|
217
|
+
- image: cimg/base:current
|
206
218
|
steps:
|
207
219
|
- set_up_environment
|
208
220
|
- when:
|
@@ -218,17 +230,12 @@ jobs:
|
|
218
230
|
label: Test
|
219
231
|
command: |
|
220
232
|
make citest cicoverage
|
221
|
-
- save_cache:
|
222
|
-
key: solargraph-v2-{{ checksum "Gemfile.lock" }}-{{ .Branch }}
|
223
|
-
paths:
|
224
|
-
- ".yardoc"
|
225
|
-
- "/home/circleci/.cache/solargraph"
|
226
233
|
# This seemed to shave 5ish% of the build time off when added
|
227
234
|
resource_class: large
|
228
235
|
publish_gem:
|
229
236
|
working_directory: ~/checkoff
|
230
237
|
docker:
|
231
|
-
- image:
|
238
|
+
- image: cimg/base:current
|
232
239
|
steps:
|
233
240
|
- set_up_environment
|
234
241
|
- run_with_languages:
|
data/.envrc
CHANGED
data/.gitignore
CHANGED
data/Gemfile.lock
CHANGED
@@ -43,7 +43,7 @@ GIT
|
|
43
43
|
PATH
|
44
44
|
remote: .
|
45
45
|
specs:
|
46
|
-
checkoff (0.
|
46
|
+
checkoff (0.214.0)
|
47
47
|
activesupport
|
48
48
|
asana (> 0.10.0)
|
49
49
|
cache_method
|
@@ -167,16 +167,16 @@ GEM
|
|
167
167
|
multi_xml (0.6.0)
|
168
168
|
multipart-post (2.3.0)
|
169
169
|
mutex_m (0.3.0)
|
170
|
-
nokogiri (1.16.
|
170
|
+
nokogiri (1.16.8)
|
171
171
|
mini_portile2 (~> 2.8.2)
|
172
172
|
racc (~> 1.4)
|
173
|
-
nokogiri (1.16.
|
173
|
+
nokogiri (1.16.8-aarch64-linux)
|
174
174
|
racc (~> 1.4)
|
175
|
-
nokogiri (1.16.
|
175
|
+
nokogiri (1.16.8-arm64-darwin)
|
176
176
|
racc (~> 1.4)
|
177
|
-
nokogiri (1.16.
|
177
|
+
nokogiri (1.16.8-x86_64-darwin)
|
178
178
|
racc (~> 1.4)
|
179
|
-
nokogiri (1.16.
|
179
|
+
nokogiri (1.16.8-x86_64-linux)
|
180
180
|
racc (~> 1.4)
|
181
181
|
oauth2 (1.4.11)
|
182
182
|
faraday (>= 0.17.3, < 3.0)
|
@@ -198,7 +198,7 @@ GEM
|
|
198
198
|
public_suffix (5.0.4)
|
199
199
|
punchlist (1.3.2)
|
200
200
|
source_finder (>= 2)
|
201
|
-
racc (1.
|
201
|
+
racc (1.8.1)
|
202
202
|
rack (3.0.8)
|
203
203
|
rainbow (3.1.1)
|
204
204
|
rake (13.1.0)
|
@@ -263,6 +263,7 @@ PLATFORMS
|
|
263
263
|
aarch64-linux
|
264
264
|
arm64-darwin-23
|
265
265
|
arm64-linux
|
266
|
+
ruby
|
266
267
|
x86_64-darwin-23
|
267
268
|
x86_64-linux
|
268
269
|
x86_64-linux-musl
|
data/Makefile
CHANGED
@@ -17,9 +17,12 @@ help:
|
|
17
17
|
|
18
18
|
default: clean-coverage test coverage clean-typecoverage typecheck typecoverage quality ## run default typechecking, tests and quality
|
19
19
|
|
20
|
-
build-typecheck:
|
20
|
+
build-typecheck: types.installed ## Fetch information that type checking depends on
|
21
|
+
|
22
|
+
types.installed: Gemfile.lock Gemfile.lock.installed ## Install Ruby dependencies
|
21
23
|
bundle exec yard gems 2>&1 || bundle exec yard gems --safe 2>&1 || bundle exec yard gems 2>&1
|
22
24
|
# bundle exec solargraph scan 2>&1
|
25
|
+
touch types.installed
|
23
26
|
|
24
27
|
clean-typecheck: ## Refresh information that type checking depends on
|
25
28
|
bundle exec solargraph clear
|
@@ -100,7 +103,7 @@ update_from_cookiecutter: ## Bring in changes from template project used to crea
|
|
100
103
|
git merge cookiecutter-template || true
|
101
104
|
git checkout --ours Gemfile.lock || true
|
102
105
|
# update frequently security-flagged gems while we're here
|
103
|
-
bundle update --conservative rexml || true
|
106
|
+
bundle update --conservative rexml nokogiri || true
|
104
107
|
git add Gemfile.lock || true
|
105
108
|
bundle install || true
|
106
109
|
bundle exec overcommit --install || true
|
data/fix.sh
CHANGED
@@ -127,7 +127,7 @@ ensure_binary_library() {
|
|
127
127
|
! [ -f /usr/local/lib/"${library_base_name}.so" ] && \
|
128
128
|
! [ -f /usr/local/opt/"${homebrew_package}/lib/${library_base_name}*.dylib" ]
|
129
129
|
then
|
130
|
-
if ! compgen -G "/opt/homebrew/Cellar/${homebrew_package}"*/*/"lib/${library_base_name}"*.dylib
|
130
|
+
if ! compgen -G "/opt/homebrew/Cellar/${homebrew_package}"*/*/"lib/${library_base_name}"*.dylib >/dev/null 2>&1
|
131
131
|
then
|
132
132
|
install_package "${homebrew_package}" "${apt_package}"
|
133
133
|
fi
|
@@ -148,10 +148,21 @@ ensure_latest_ruby_build_definitions() {
|
|
148
148
|
# # if not pulled in last 24 hours
|
149
149
|
# if [ $(( $(date +%s) - last_pulled_unix_epoch )) -gt $(( 24 * 60 * 60 )) ]
|
150
150
|
# then
|
151
|
-
git -C "$
|
151
|
+
git -C "$HOME"/.rbenv/plugins/ruby-build pull
|
152
152
|
# fi
|
153
153
|
}
|
154
154
|
|
155
|
+
# https://stackoverflow.com/questions/2829613/how-do-you-tell-if-a-string-contains-another-string-in-posix-sh
|
156
|
+
contains() {
|
157
|
+
string="$1"
|
158
|
+
substring="$2"
|
159
|
+
if [ "${string#*"$substring"}" != "$string" ]; then
|
160
|
+
return 0 # $substring is in $string
|
161
|
+
else
|
162
|
+
return 1 # $substring is not in $string
|
163
|
+
fi
|
164
|
+
}
|
165
|
+
|
155
166
|
# You can find out which feature versions are still supported / have
|
156
167
|
# been release here: https://www.ruby-lang.org/en/downloads/
|
157
168
|
ensure_ruby_versions() {
|
@@ -161,14 +172,21 @@ ensure_ruby_versions() {
|
|
161
172
|
# been release here: https://www.ruby-lang.org/en/downloads/
|
162
173
|
ruby_versions="$(latest_ruby_version 3.1)"
|
163
174
|
|
164
|
-
|
175
|
+
installed_ruby_versions="$(rbenv versions --bare --skip-aliases)"
|
165
176
|
|
166
|
-
|
177
|
+
echo "Latest Ruby versions: ${ruby_versions}"
|
167
178
|
|
168
179
|
for ver in $ruby_versions
|
169
180
|
do
|
170
|
-
|
171
|
-
|
181
|
+
if ! contains "${installed_ruby_versions}"$'\n' "${ver}"$'\n'; then
|
182
|
+
echo "Installing Ruby version $ver - existing versions: $installed_ruby_versions"
|
183
|
+
ensure_ruby_build_requirements
|
184
|
+
|
185
|
+
rbenv install -s "${ver}"
|
186
|
+
hash -r # ensure we are seeing latest bundler etc
|
187
|
+
else
|
188
|
+
echo "Found Ruby version $ver already installed"
|
189
|
+
fi
|
172
190
|
done
|
173
191
|
}
|
174
192
|
|
@@ -177,19 +195,23 @@ ensure_bundle() {
|
|
177
195
|
#
|
178
196
|
# https://app.circleci.com/pipelines/github/apiology/source_finder/21/workflows/88db659f-a4f4-4751-abc0-46f5929d8e58/jobs/107
|
179
197
|
set_rbenv_env_variables
|
180
|
-
|
181
|
-
bundler_version=$(
|
198
|
+
|
199
|
+
bundler_version=$(ruby -e 'require "rubygems/bundler_version_finder"; puts Gem::BundlerVersionFinder.bundler_version')
|
200
|
+
# if bundler_version is empty
|
201
|
+
if [ -z "${bundler_version}" ]
|
202
|
+
then
|
203
|
+
bundler_version=$(bundle --version | cut -d ' ' -f 3)
|
204
|
+
fi
|
205
|
+
# if bundler_version is still empty
|
206
|
+
if [ -z "${bundler_version}" ]
|
207
|
+
then
|
208
|
+
gem install bundler
|
209
|
+
bundler_version=$(bundle --version | cut -d ' ' -f 3)
|
210
|
+
fi
|
211
|
+
echo "Bundler version: ${bundler_version}"
|
182
212
|
bundler_version_major=$(cut -d. -f1 <<< "${bundler_version}")
|
183
213
|
bundler_version_minor=$(cut -d. -f2 <<< "${bundler_version}")
|
184
214
|
bundler_version_patch=$(cut -d. -f3 <<< "${bundler_version}")
|
185
|
-
# Version 2.1 of bundler seems to have some issues with nokogiri:
|
186
|
-
#
|
187
|
-
# https://app.asana.com/0/1107901397356088/1199504270687298
|
188
|
-
|
189
|
-
# Version <2.2.22 of bundler isn't compatible with Ruby 3.3:
|
190
|
-
#
|
191
|
-
# https://stackoverflow.com/questions/70800753/rails-calling-didyoumeanspell-checkers-mergeerror-name-spell-checker-h
|
192
|
-
#
|
193
215
|
#
|
194
216
|
# Version 2.5.5 fixed an issue in 2.2.22 with the 'bump' gem:
|
195
217
|
#
|
@@ -233,7 +255,14 @@ ensure_bundle() {
|
|
233
255
|
#
|
234
256
|
# This affects nokogiri, which will try to reinstall itself in
|
235
257
|
# Docker builds where it's already installed if this is not run.
|
236
|
-
|
258
|
+
PLATFORMS="ruby arm64-darwin-23 x86_64-darwin-23 x86_64-linux x86_64-linux-musl aarch64-linux arm64-linux"
|
259
|
+
for platform in ${PLATFORMS}
|
260
|
+
do
|
261
|
+
if ! grep -q "^ ${platform}$" Gemfile.lock
|
262
|
+
then
|
263
|
+
bundle lock --add-platform "${platform}"
|
264
|
+
fi
|
265
|
+
done
|
237
266
|
make bundle_install
|
238
267
|
}
|
239
268
|
|
@@ -364,24 +393,32 @@ ensure_python_versions() {
|
|
364
393
|
|
365
394
|
echo "Latest Python versions: ${python_versions}"
|
366
395
|
|
367
|
-
|
396
|
+
installed_python_versions="$(pyenv versions --skip-envs --skip-aliases --bare)"
|
368
397
|
|
369
398
|
for ver in $python_versions
|
370
399
|
do
|
371
|
-
if
|
372
|
-
|
373
|
-
|
400
|
+
if ! contains "${installed_python_versions}"$'\n' "${ver}"$'\n'; then
|
401
|
+
echo "Installing Python version $ver - existing versions: $installed_python_versions"
|
402
|
+
ensure_python_build_requirements
|
403
|
+
|
404
|
+
if [ "$(uname)" == Darwin ]
|
374
405
|
then
|
375
|
-
HOMEBREW_OPENSSL_PREFIX
|
406
|
+
if [ -z "${HOMEBREW_OPENSSL_PREFIX:-}" ]
|
407
|
+
then
|
408
|
+
HOMEBREW_OPENSSL_PREFIX="$(brew --prefix openssl)"
|
409
|
+
fi
|
410
|
+
pyenv_install() {
|
411
|
+
CFLAGS="-I/usr/local/opt/zlib/include -I/usr/local/opt/bzip2/include -I${HOMEBREW_OPENSSL_PREFIX}/include" LDFLAGS="-L/usr/local/opt/zlib/lib -L/usr/local/opt/bzip2/lib -L${HOMEBREW_OPENSSL_PREFIX}/lib" pyenv install --skip-existing "$@"
|
412
|
+
}
|
413
|
+
|
414
|
+
major_minor="$(cut -d. -f1-2 <<<"${ver}")"
|
415
|
+
pyenv_install "${ver}"
|
416
|
+
else
|
417
|
+
pyenv install -s "${ver}"
|
376
418
|
fi
|
377
|
-
|
378
|
-
CFLAGS="-I/usr/local/opt/zlib/include -I/usr/local/opt/bzip2/include -I${HOMEBREW_OPENSSL_PREFIX}/include" LDFLAGS="-L/usr/local/opt/zlib/lib -L/usr/local/opt/bzip2/lib -L${HOMEBREW_OPENSSL_PREFIX}/lib" pyenv install --skip-existing "$@"
|
379
|
-
}
|
380
|
-
|
381
|
-
major_minor="$(cut -d. -f1-2 <<<"${ver}")"
|
382
|
-
pyenv_install "${ver}"
|
419
|
+
hash -r
|
383
420
|
else
|
384
|
-
|
421
|
+
echo "Found Python version $ver already installed"
|
385
422
|
fi
|
386
423
|
done
|
387
424
|
}
|
@@ -404,7 +441,7 @@ ensure_pyenv_virtualenvs() {
|
|
404
441
|
|
405
442
|
ensure_pip_and_wheel() {
|
406
443
|
# https://cve.mitre.org/cgi-bin/cvename.cgi?name=2023-5752
|
407
|
-
pip_version=$(pip
|
444
|
+
pip_version=$(python -c "import pip; print(pip.__version__)" | cut -d' ' -f2)
|
408
445
|
major_pip_version=$(cut -d '.' -f 1 <<< "${pip_version}")
|
409
446
|
minor_pip_version=$(cut -d '.' -f 2 <<< "${pip_version}")
|
410
447
|
if [[ major_pip_version -lt 23 ]]
|
@@ -415,7 +452,7 @@ ensure_pip_and_wheel() {
|
|
415
452
|
pip install 'pip>=23.3'
|
416
453
|
fi
|
417
454
|
# wheel is helpful for being able to cache long package builds
|
418
|
-
type wheel || pip install wheel
|
455
|
+
type wheel >/dev/null 2>&1 || pip install wheel
|
419
456
|
}
|
420
457
|
|
421
458
|
ensure_python_requirements() {
|
@@ -443,9 +480,26 @@ ensure_overcommit() {
|
|
443
480
|
}
|
444
481
|
|
445
482
|
ensure_rugged_packages_installed() {
|
446
|
-
|
447
|
-
|
448
|
-
|
483
|
+
# only needed if we don't already have rugged installed
|
484
|
+
if ! ls vendor/bundle/ruby/*/gems/rugged-* &>/dev/null
|
485
|
+
then
|
486
|
+
echo "Current directory"
|
487
|
+
pwd
|
488
|
+
echo "Vendor dir"
|
489
|
+
ls -l vendor || true
|
490
|
+
echo "List of vendor/bundle/gems:"
|
491
|
+
ls vendor/bundle/gems || true
|
492
|
+
echo "Did not find rugged gem installed; installing packages needed for rugged"
|
493
|
+
echo "Installed gems:"
|
494
|
+
gem list
|
495
|
+
echo "Gem environment:"
|
496
|
+
gem environment
|
497
|
+
echo "Bundle list:"
|
498
|
+
bundle list || true
|
499
|
+
ensure_binary_library libicuio icu4c libicu-dev # needed by rugged, needed by undercover
|
500
|
+
ensure_package pkg-config # needed by rugged, needed by undercover
|
501
|
+
ensure_package cmake # needed by rugged, needed by undercover
|
502
|
+
fi
|
449
503
|
}
|
450
504
|
|
451
505
|
ensure_rbenv
|
data/lib/checkoff/version.rb
CHANGED
metadata
CHANGED
@@ -1,14 +1,14 @@
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
2
2
|
name: checkoff
|
3
3
|
version: !ruby/object:Gem::Version
|
4
|
-
version: 0.
|
4
|
+
version: 0.214.0
|
5
5
|
platform: ruby
|
6
6
|
authors:
|
7
7
|
- Vince Broz
|
8
8
|
autorequire:
|
9
9
|
bindir: exe
|
10
10
|
cert_chain: []
|
11
|
-
date: 2024-12-
|
11
|
+
date: 2024-12-08 00:00:00.000000000 Z
|
12
12
|
dependencies:
|
13
13
|
- !ruby/object:Gem::Dependency
|
14
14
|
name: activesupport
|