checkoff 0.212.0 → 0.214.0
Sign up to get free protection for your applications and to get access to all the features.
- 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
|