checkoff 0.212.0 → 0.213.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 +42 -26
- data/.envrc +5 -0
- data/Gemfile.lock +8 -7
- data/Makefile +5 -2
- data/fix.sh +75 -25
- data/lib/checkoff/version.rb +1 -1
- metadata +1 -1
checksums.yaml
CHANGED
@@ -1,7 +1,7 @@
|
|
1
1
|
---
|
2
2
|
SHA256:
|
3
|
-
metadata.gz:
|
4
|
-
data.tar.gz:
|
3
|
+
metadata.gz: aeb9d34366fc0ca26614cd8d25941a680ba7fb0fb5fca6e1ffd4c0fc12a2b778
|
4
|
+
data.tar.gz: fc51855eabddefea447704e85fdb9f28eda888fd9a1abe7c435f4885dec6c90e
|
5
5
|
SHA512:
|
6
|
-
metadata.gz:
|
7
|
-
data.tar.gz:
|
6
|
+
metadata.gz: a841034f314c778221fa2b614bcdc39bb40f665a998123d58f61a0a80622b2e1ce9caabc2ce5741fcb4f74dae7ff6b96e0607b8f2d64813eb71c2f2e7f670f30
|
7
|
+
data.tar.gz: 678ce73f44ac1afdae1361d6e53d71ff688a0b8d0d92ad14a5b5d6f2b1de9d8b315e865194f6b12e5e0676f2c1c3878fdbcc62d38a6aa8efe5f7fde90e3db97e
|
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,30 @@ 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
|
-
-
|
51
|
+
- rbenv-v3-{{ checksum "Gemfile.lock" }}-
|
52
|
+
- rbenv-v3-
|
53
|
+
- rbenv-
|
54
|
+
- ruby-
|
42
55
|
- restore_cache:
|
43
56
|
keys:
|
44
|
-
-
|
45
|
-
-
|
46
|
-
-
|
47
|
-
- solargraph-
|
57
|
+
- pyenv-v2-{{ checksum "requirements_dev.txt" }}-
|
58
|
+
- pyenv-v2-
|
59
|
+
- pyenv-
|
48
60
|
- restore_cache:
|
49
61
|
keys:
|
50
|
-
-
|
51
|
-
-
|
52
|
-
-
|
53
|
-
- wheels-
|
62
|
+
- solargraph-v1-{{ checksum "Gemfile.lock" }}-
|
63
|
+
- solargraph-v1-
|
64
|
+
- solargraph-
|
54
65
|
- run:
|
55
66
|
name: Initialize packages
|
56
67
|
command: |
|
@@ -59,7 +70,11 @@ commands:
|
|
59
70
|
|
60
71
|
# export FIX_SH_TIMING_LOG=/tmp/fix_sh_timing.log
|
61
72
|
|
62
|
-
|
73
|
+
BUNDLE_PATH="$(pwd)/vendor/bundle"
|
74
|
+
export BUNDLE_PATH
|
75
|
+
GEM_HOME="${BUNDLE_PATH}"
|
76
|
+
export GEM_HOME
|
77
|
+
|
63
78
|
'./fix.sh'
|
64
79
|
- store_artifacts:
|
65
80
|
path: /tmp/fix_sh_timing.log
|
@@ -72,17 +87,19 @@ commands:
|
|
72
87
|
exit 1
|
73
88
|
fi
|
74
89
|
- save_cache:
|
75
|
-
key:
|
90
|
+
key: rbenv-v3-{{ checksum "Gemfile.lock" }}-{{ checksum ".ruby-version" }}
|
76
91
|
paths:
|
92
|
+
- "Gemfile.lock.installed"
|
93
|
+
- "types.installed"
|
77
94
|
- "vendor/bundle"
|
95
|
+
- "/home/circleci/.rbenv"
|
78
96
|
- ".yardoc"
|
79
|
-
- "/home/circleci/.rbenv/versions/3.1.6/lib/ruby/gems/"
|
80
97
|
- save_cache:
|
81
|
-
key:
|
98
|
+
key: pyenv-v2-{{ checksum "requirements_dev.txt" }}-{{ checksum ".python-version" }}
|
82
99
|
paths:
|
100
|
+
- "requirements_dev.txt.installed"
|
83
101
|
- "/home/circleci/.cache/pip/wheels"
|
84
|
-
- "/home/circleci/.pyenv
|
85
|
-
- "/home/circleci/.pyenv/versions/checkoff-3.12.7"
|
102
|
+
- "/home/circleci/.pyenv"
|
86
103
|
- run:
|
87
104
|
name: Download new circleci tool
|
88
105
|
command: |
|
@@ -196,13 +213,13 @@ jobs:
|
|
196
213
|
quality:
|
197
214
|
working_directory: ~/checkoff
|
198
215
|
docker:
|
199
|
-
- image:
|
216
|
+
- image: cimg/base:current
|
200
217
|
steps:
|
201
218
|
- quality
|
202
219
|
build:
|
203
220
|
working_directory: ~/checkoff
|
204
221
|
docker:
|
205
|
-
- image:
|
222
|
+
- image: cimg/base:current
|
206
223
|
steps:
|
207
224
|
- set_up_environment
|
208
225
|
- when:
|
@@ -214,21 +231,20 @@ jobs:
|
|
214
231
|
# - run_with_languages:
|
215
232
|
# label: Typecheck
|
216
233
|
# command: make citypecheck citypecoverage
|
234
|
+
- save_cache:
|
235
|
+
key: solargraph-v1-{{ checksum "Gemfile.lock" }}-{{ checksum ".ruby-version" }}
|
236
|
+
paths:
|
237
|
+
- "/home/circleci/.cache/solargraph"
|
217
238
|
- run_with_languages:
|
218
239
|
label: Test
|
219
240
|
command: |
|
220
241
|
make citest cicoverage
|
221
|
-
- save_cache:
|
222
|
-
key: solargraph-v2-{{ checksum "Gemfile.lock" }}-{{ .Branch }}
|
223
|
-
paths:
|
224
|
-
- ".yardoc"
|
225
|
-
- "/home/circleci/.cache/solargraph"
|
226
242
|
# This seemed to shave 5ish% of the build time off when added
|
227
243
|
resource_class: large
|
228
244
|
publish_gem:
|
229
245
|
working_directory: ~/checkoff
|
230
246
|
docker:
|
231
|
-
- image:
|
247
|
+
- image: cimg/base:current
|
232
248
|
steps:
|
233
249
|
- set_up_environment
|
234
250
|
- run_with_languages:
|
data/.envrc
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.213.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
|
|
@@ -178,7 +196,7 @@ ensure_bundle() {
|
|
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
198
|
type bundle >/dev/null 2>&1 || gem install --no-document bundler
|
181
|
-
bundler_version
|
199
|
+
bundler_version="$(ruby -e 'require "rubygems"; puts Gem::BundlerVersionFinder.bundler_version')"
|
182
200
|
bundler_version_major=$(cut -d. -f1 <<< "${bundler_version}")
|
183
201
|
bundler_version_minor=$(cut -d. -f2 <<< "${bundler_version}")
|
184
202
|
bundler_version_patch=$(cut -d. -f3 <<< "${bundler_version}")
|
@@ -233,7 +251,14 @@ ensure_bundle() {
|
|
233
251
|
#
|
234
252
|
# This affects nokogiri, which will try to reinstall itself in
|
235
253
|
# Docker builds where it's already installed if this is not run.
|
236
|
-
|
254
|
+
PLATFORMS="ruby arm64-darwin-23 x86_64-darwin-23 x86_64-linux x86_64-linux-musl aarch64-linux arm64-linux"
|
255
|
+
for platform in ${PLATFORMS}
|
256
|
+
do
|
257
|
+
if ! grep -q "^ ${platform}$" Gemfile.lock
|
258
|
+
then
|
259
|
+
bundle lock --add-platform "${platform}"
|
260
|
+
fi
|
261
|
+
done
|
237
262
|
make bundle_install
|
238
263
|
}
|
239
264
|
|
@@ -364,24 +389,32 @@ ensure_python_versions() {
|
|
364
389
|
|
365
390
|
echo "Latest Python versions: ${python_versions}"
|
366
391
|
|
367
|
-
|
392
|
+
installed_python_versions="$(pyenv versions --skip-envs --skip-aliases --bare)"
|
368
393
|
|
369
394
|
for ver in $python_versions
|
370
395
|
do
|
371
|
-
if
|
372
|
-
|
373
|
-
|
396
|
+
if ! contains "${installed_python_versions}"$'\n' "${ver}"$'\n'; then
|
397
|
+
echo "Installing Python version $ver - existing versions: $installed_python_versions"
|
398
|
+
ensure_python_build_requirements
|
399
|
+
|
400
|
+
if [ "$(uname)" == Darwin ]
|
374
401
|
then
|
375
|
-
HOMEBREW_OPENSSL_PREFIX
|
402
|
+
if [ -z "${HOMEBREW_OPENSSL_PREFIX:-}" ]
|
403
|
+
then
|
404
|
+
HOMEBREW_OPENSSL_PREFIX="$(brew --prefix openssl)"
|
405
|
+
fi
|
406
|
+
pyenv_install() {
|
407
|
+
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 "$@"
|
408
|
+
}
|
409
|
+
|
410
|
+
major_minor="$(cut -d. -f1-2 <<<"${ver}")"
|
411
|
+
pyenv_install "${ver}"
|
412
|
+
else
|
413
|
+
pyenv install -s "${ver}"
|
376
414
|
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}"
|
415
|
+
hash -r
|
383
416
|
else
|
384
|
-
|
417
|
+
echo "Found Python version $ver already installed"
|
385
418
|
fi
|
386
419
|
done
|
387
420
|
}
|
@@ -404,7 +437,7 @@ ensure_pyenv_virtualenvs() {
|
|
404
437
|
|
405
438
|
ensure_pip_and_wheel() {
|
406
439
|
# https://cve.mitre.org/cgi-bin/cvename.cgi?name=2023-5752
|
407
|
-
pip_version=$(pip
|
440
|
+
pip_version=$(python -c "import pip; print(pip.__version__)" | cut -d' ' -f2)
|
408
441
|
major_pip_version=$(cut -d '.' -f 1 <<< "${pip_version}")
|
409
442
|
minor_pip_version=$(cut -d '.' -f 2 <<< "${pip_version}")
|
410
443
|
if [[ major_pip_version -lt 23 ]]
|
@@ -415,7 +448,7 @@ ensure_pip_and_wheel() {
|
|
415
448
|
pip install 'pip>=23.3'
|
416
449
|
fi
|
417
450
|
# wheel is helpful for being able to cache long package builds
|
418
|
-
type wheel || pip install wheel
|
451
|
+
type wheel >/dev/null 2>&1 || pip install wheel
|
419
452
|
}
|
420
453
|
|
421
454
|
ensure_python_requirements() {
|
@@ -443,9 +476,26 @@ ensure_overcommit() {
|
|
443
476
|
}
|
444
477
|
|
445
478
|
ensure_rugged_packages_installed() {
|
446
|
-
|
447
|
-
|
448
|
-
|
479
|
+
# only needed if we don't already have rugged installed
|
480
|
+
if ! ls vendor/bundle/ruby/*/gems/rugged-* &>/dev/null
|
481
|
+
then
|
482
|
+
echo "Current directory"
|
483
|
+
pwd
|
484
|
+
echo "Vendor dir"
|
485
|
+
ls -l vendor
|
486
|
+
echo "List of vendor/bundle/gems:"
|
487
|
+
ls vendor/bundle/gems
|
488
|
+
echo "Did not find rugged gem installed; installing packages needed for rugged"
|
489
|
+
echo "Installed gems:"
|
490
|
+
gem list
|
491
|
+
echo "Gem environment:"
|
492
|
+
gem environment
|
493
|
+
echo "Bundle list:"
|
494
|
+
bundle list
|
495
|
+
ensure_binary_library libicuio icu4c libicu-dev # needed by rugged, needed by undercover
|
496
|
+
ensure_package pkg-config # needed by rugged, needed by undercover
|
497
|
+
ensure_package cmake # needed by rugged, needed by undercover
|
498
|
+
fi
|
449
499
|
}
|
450
500
|
|
451
501
|
ensure_rbenv
|
data/lib/checkoff/version.rb
CHANGED