Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
569 commits
Select commit Hold shift + click to select a range
be7fd7b
Merge pull request #158 from mindsers/renovate/inquirer-7.x
mindsers Feb 11, 2020
d1dce04
Update dependency ava to v3
renovate-bot Feb 11, 2020
9419f10
Merge pull request #160 from mindsers/renovate/ava-3.x
mindsers Feb 11, 2020
caad367
Update dependency @types/node to v11.15.6
renovate-bot Feb 11, 2020
46e2f11
Merge pull request #163 from mindsers/renovate/node-11.x
mindsers Feb 13, 2020
3c4948b
Update dependency eslint-plugin-import to v2.20.1
renovate-bot Feb 13, 2020
30faf36
Merge pull request #159 from mindsers/renovate/eslint-plugin-import-2.x
mindsers Feb 13, 2020
3abaa67
Update dependency sinon to v9
renovate-bot Feb 19, 2020
51f883b
Merge pull request #164 from mindsers/renovate/sinon-9.x
mindsers Feb 19, 2020
d036955
Update dependency @types/node to v11.15.7
renovate-bot Feb 19, 2020
fd266b4
Merge pull request #165 from mindsers/renovate/node-11.x
mindsers Feb 19, 2020
6ef614e
Update dependency commander to v4.1.1
renovate-bot Feb 19, 2020
25f60e6
Merge pull request #162 from mindsers/renovate/commander-4.x
mindsers Feb 19, 2020
08cb331
Update dependency ava to v3.4.0
renovate-bot Feb 23, 2020
7e69684
Merge pull request #166 from mindsers/renovate/ava-3.x
mindsers Feb 23, 2020
659b6e9
Update dependency ava to v3.5.0
renovate-bot Mar 1, 2020
12d8f4b
Merge pull request #168 from mindsers/renovate/ava-3.x
mindsers Mar 2, 2020
ca235c8
Update dependency inquirer to v7.0.5
renovate-bot Mar 2, 2020
d81badb
Merge pull request #167 from mindsers/renovate/inquirer-7.x
mindsers Mar 2, 2020
8c17ca7
Update dependency inquirer to v7.0.6
renovate-bot Mar 4, 2020
25e136f
Merge pull request #169 from mindsers/renovate/inquirer-7.x
mindsers Mar 5, 2020
05d65a1
Update dependency sinon to v9.0.1
renovate-bot Mar 10, 2020
883fdbc
Merge pull request #171 from mindsers/renovate/sinon-9.x
mindsers Mar 10, 2020
a69e01c
Bump acorn from 7.1.0 to 7.1.1
dependabot[bot] Mar 13, 2020
77d72f6
Merge pull request #172 from mindsers/dependabot/npm_and_yarn/acorn-7…
mindsers Mar 13, 2020
cbdb5d4
Update dependency inquirer to v7.1.0
renovate-bot Mar 13, 2020
221bc4d
Merge pull request #170 from mindsers/renovate/inquirer-7.x
mindsers Mar 20, 2020
a2de8bf
Update dependency eslint-config-standard to v14.1.1
renovate-bot Mar 20, 2020
7e1a5a7
Merge pull request #174 from mindsers/renovate/eslint-config-standard…
mindsers Mar 20, 2020
d331168
Update dependency commander to v5
renovate-bot Mar 20, 2020
ff24da7
Merge pull request #173 from mindsers/renovate/commander-5.x
mindsers Mar 20, 2020
9679555
Update dependency ava to v3.5.1
renovate-bot Mar 22, 2020
414e915
Merge pull request #175 from mindsers/renovate/ava-3.x
mindsers Mar 22, 2020
33ce381
Update dependency @types/node to v11.15.8
renovate-bot Mar 27, 2020
32680be
Merge pull request #176 from mindsers/renovate/node-11.x
mindsers Mar 27, 2020
962e79a
Update dependency eslint-plugin-import to v2.20.2
renovate-bot Mar 29, 2020
79742a4
Merge pull request #178 from mindsers/renovate/eslint-plugin-import-2.x
mindsers Mar 29, 2020
567497c
Update dependency eslint-plugin-node to v11.1.0
renovate-bot Mar 29, 2020
5deb885
Merge pull request #177 from mindsers/renovate/eslint-plugin-node-11.x
mindsers Mar 29, 2020
e5315b9
Update dependency ava to v3.5.2
renovate-bot Mar 30, 2020
69d63f8
Merge pull request #179 from mindsers/renovate/ava-3.x
mindsers Mar 30, 2020
ff3415d
Update dependency @types/node to v11.15.9
renovate-bot Mar 30, 2020
07c902d
Merge pull request #180 from mindsers/renovate/node-11.x
mindsers Apr 1, 2020
e2eb187
Update dependency ava to v3.6.0
renovate-bot Apr 5, 2020
3f18877
Merge pull request #183 from mindsers/renovate/ava-3.x
mindsers Apr 6, 2020
fe057bf
Update dependency sinon to v9.0.2
renovate-bot Apr 8, 2020
e89db99
Merge pull request #184 from mindsers/renovate/sinon-9.x
mindsers Apr 9, 2020
2e6abd1
Update dependency chalk to v4
renovate-bot Apr 9, 2020
31e42d5
Merge pull request #181 from mindsers/renovate/chalk-4.x
mindsers Apr 9, 2020
241a639
Update dependency nyc to v15.0.1
renovate-bot Apr 9, 2020
79dfbf6
Merge pull request #182 from mindsers/renovate/nyc-15.x
mindsers Apr 9, 2020
49fc73f
Update dependency commander to v5.1.0
renovate-bot Apr 25, 2020
44a6f49
Merge pull request #187 from mindsers/renovate/commander-5.x
mindsers May 4, 2020
7343a42
Update dependency eslint to v7
renovate-bot May 8, 2020
a4eafb3
Merge pull request #188 from mindsers/renovate/eslint-7.x
mindsers May 12, 2020
39b6fd7
Update dependency ava to v3.8.2
renovate-bot May 12, 2020
61f5b94
Merge pull request #186 from mindsers/renovate/ava-3.x
mindsers May 12, 2020
162bcd7
Update dependency @types/node to v11.15.12
renovate-bot May 12, 2020
5736dbd
Merge pull request #185 from mindsers/renovate/node-11.x
mindsers May 12, 2020
2450a03
Update dependency nyc to v15.1.0
renovate-bot Jun 1, 2020
55cff31
Merge pull request #191 from mindsers/renovate/nyc-15.x
mindsers Jun 5, 2020
9e4a3c7
Update dependency eslint-plugin-import to v2.21.2
renovate-bot Jun 10, 2020
2b48de5
Merge pull request #192 from mindsers/renovate/eslint-plugin-import-2.x
mindsers Jun 11, 2020
4f561c8
Update dependency ava to v3.9.0
renovate-bot Jun 14, 2020
d376ce3
Merge pull request #194 from mindsers/renovate/ava-3.x
mindsers Jun 24, 2020
308b506
Update dependency eslint-plugin-import to v2.22.0
renovate-bot Jun 27, 2020
cb39fa1
Update dependency inquirer to v7.3.0
renovate-bot Jul 2, 2020
8a203b9
Merge pull request #196 from mindsers/renovate/eslint-plugin-import-2.x
mindsers Jul 3, 2020
ecac2e3
Merge pull request #195 from mindsers/renovate/inquirer-7.x
mindsers Jul 3, 2020
c07b106
Update dependency @types/node to v11.15.16
renovate-bot Jul 3, 2020
2bb4b50
Update dependency chalk to v4.1.0
renovate-bot Jul 3, 2020
67236a8
Merge pull request #193 from mindsers/renovate/chalk-4.x
mindsers Jul 3, 2020
e1806bc
Merge pull request #189 from mindsers/renovate/node-11.x
mindsers Jul 3, 2020
ba93bce
Update dependency ava to v3.10.0
renovate-bot Jul 5, 2020
261a7c1
Merge pull request #197 from mindsers/renovate/ava-3.x
mindsers Jul 6, 2020
67edbc4
Update dependency ava to v3.10.1
renovate-bot Jul 7, 2020
2e633bf
Merge pull request #199 from mindsers/renovate/ava-3.x
mindsers Jul 8, 2020
9ae3ecf
Update dependency @types/node to v11.15.17
renovate-bot Jul 8, 2020
d645cf7
Merge pull request #198 from mindsers/renovate/node-11.x
mindsers Jul 8, 2020
5a3e4b4
Update dependency eslint to v7.4.0
renovate-bot Jul 8, 2020
7246273
Merge pull request #190 from mindsers/renovate/eslint-7.x
mindsers Jul 8, 2020
b11ca2c
Update dependency inquirer to v7.3.1
renovate-bot Jul 10, 2020
40dff73
Merge pull request #201 from mindsers/renovate/inquirer-7.x
mindsers Jul 13, 2020
9566e7f
Update dependency @types/node to v11.15.18
renovate-bot Jul 13, 2020
fbc5dac
Merge pull request #200 from mindsers/renovate/node-11.x
mindsers Jul 13, 2020
4f2f909
Update dependency inquirer to v7.3.2
renovate-bot Jul 13, 2020
2395925
Merge pull request #202 from mindsers/renovate/inquirer-7.x
mindsers Jul 13, 2020
4bd4b98
Update dependency commander to v6
renovate-bot Jul 19, 2020
e88d77d
Merge pull request #204 from mindsers/renovate/commander-6.x
mindsers Jul 19, 2020
0cc3f0d
Update dependency eslint to v7.5.0
renovate-bot Jul 19, 2020
404e5b5
Merge pull request #203 from mindsers/renovate/eslint-7.x
mindsers Jul 19, 2020
ed48b2a
Update dependency inquirer to v7.3.3
renovate-bot Jul 23, 2020
87794fa
Merge pull request #205 from mindsers/renovate/inquirer-7.x
mindsers Jul 24, 2020
5b53599
Update dependency @types/node to v11.15.20
renovate-bot Jul 24, 2020
51a33cb
Merge pull request #206 from mindsers/renovate/node-11.x
mindsers Jul 26, 2020
b560fd6
Update dependency ava to v3.11.0
renovate-bot Jul 27, 2020
2c849b0
Merge pull request #207 from mindsers/renovate/ava-3.x
mindsers Jul 29, 2020
9baf85d
Update dependency eslint to v7.6.0
renovate-bot Jul 31, 2020
ecc600d
Merge pull request #208 from mindsers/renovate/eslint-7.x
mindsers Aug 1, 2020
4571e55
Update dependency ava to v3.11.1
renovate-bot Aug 3, 2020
2adffec
Merge pull request #209 from mindsers/renovate/ava-3.x
mindsers Aug 4, 2020
4cf307b
Update dependency sinon to v9.0.3
renovate-bot Aug 11, 2020
5f80e95
Merge pull request #210 from mindsers/renovate/sinon-9.x
mindsers Aug 15, 2020
9ea19e8
Update dependency eslint to v7.7.0
renovate-bot Aug 15, 2020
5e96b5d
Merge pull request #211 from mindsers/renovate/eslint-7.x
mindsers Aug 17, 2020
f6cd284
Update dependency ava to v3.12.1
renovate-bot Aug 24, 2020
cc1ba86
Merge pull request #212 from mindsers/renovate/ava-3.x
mindsers Aug 24, 2020
c3112e5
Update forum link
mindsers Aug 25, 2020
744678a
Update community link
mindsers Aug 25, 2020
06f1228
Update dependency commander to v6.1.0
renovate-bot Aug 28, 2020
5c9e3ca
Merge pull request #213 from mindsers/renovate/commander-6.x
mindsers Aug 28, 2020
666f016
Update dependency eslint to v7.8.0
renovate-bot Aug 31, 2020
6802350
Merge pull request #214 from mindsers/renovate/eslint-7.x
mindsers Sep 1, 2020
496702d
Update dependency @types/node to v11.15.21
renovate-bot Sep 2, 2020
d689a2a
Merge pull request #216 from mindsers/renovate/node-11.x
mindsers Sep 4, 2020
02b5a41
Update dependency eslint to v7.8.1
renovate-bot Sep 4, 2020
59640c7
Merge pull request #215 from mindsers/renovate/eslint-7.x
mindsers Sep 4, 2020
bb4c500
Update dependency @types/node to v11.15.22
renovate-bot Sep 8, 2020
1cb369f
Merge pull request #217 from mindsers/renovate/node-11.x
mindsers Sep 10, 2020
6d78234
Update dependency @types/node to v11.15.27
renovate-bot Sep 16, 2020
9edc598
Merge pull request #218 from mindsers/renovate/node-11.x
mindsers Sep 17, 2020
e27ceb4
Update dependency eslint to v7.9.0
renovate-bot Sep 17, 2020
e261e6d
Merge pull request #219 from mindsers/renovate/eslint-7.x
mindsers Sep 17, 2020
b0db450
Update dependency eslint-plugin-import to v2.22.1
renovate-bot Sep 28, 2020
5fbb6de
Merge pull request #222 from mindsers/renovate/eslint-plugin-import-2.x
mindsers Sep 28, 2020
aa828cd
Update dependency eslint to v7.10.0
renovate-bot Sep 28, 2020
774e2a7
Merge pull request #220 from mindsers/renovate/eslint-7.x
mindsers Sep 28, 2020
7c08a20
Update dependency ava to v3.13.0
renovate-bot Sep 28, 2020
63c3689
Merge pull request #221 from mindsers/renovate/ava-3.x
mindsers Sep 28, 2020
779228d
Update dependency sinon to v9.1.0
renovate-bot Sep 29, 2020
857c18d
Merge pull request #223 from mindsers/renovate/sinon-9.x
mindsers Oct 1, 2020
dc90af0
Update dependency @types/node to v11.15.29
renovate-bot Oct 6, 2020
323e310
Merge pull request #224 from mindsers/renovate/node-11.x
mindsers Oct 6, 2020
329e933
Update dependency sinon to v9.2.0
renovate-bot Oct 6, 2020
9d0c365
Merge pull request #225 from mindsers/renovate/sinon-9.x
mindsers Oct 7, 2020
2333787
Update dependency @types/node to v11.15.30
renovate-bot Oct 8, 2020
2356152
Merge pull request #226 from mindsers/renovate/node-11.x
mindsers Oct 9, 2020
6d6cfc9
Update dependency @types/node to v11.15.31
renovate-bot Oct 9, 2020
95d3359
Merge pull request #227 from mindsers/renovate/node-11.x
mindsers Oct 15, 2020
f2b1081
Update dependency eslint to v7.11.0
renovate-bot Oct 15, 2020
28051d6
Merge pull request #228 from mindsers/renovate/eslint-7.x
mindsers Oct 15, 2020
e4e43ad
Update dependency @types/node to v11.15.32
renovate-bot Oct 16, 2020
36695b2
Merge pull request #229 from mindsers/renovate/node-11.x
mindsers Oct 19, 2020
11f9148
Update dependency eslint to v7.12.0
renovate-bot Oct 24, 2020
f1cd3ba
Update dependency commander to v6.2.0
renovate-bot Oct 25, 2020
51ba255
Merge pull request #234 from mindsers/renovate/commander-6.x
mindsers Oct 25, 2020
1a658fd
Merge pull request #233 from mindsers/renovate/eslint-7.x
mindsers Oct 25, 2020
a873f8d
Update dependency eslint-plugin-standard to v4.0.2
renovate-bot Oct 25, 2020
7dfb834
Merge pull request #231 from mindsers/renovate/eslint-plugin-standard…
mindsers Oct 25, 2020
5952400
Update dependency eslint-config-standard to v15
renovate-bot Oct 25, 2020
88c33f6
Merge pull request #232 from mindsers/renovate/eslint-config-standard…
mindsers Oct 25, 2020
2536f8f
Update dependency @types/node to v11.15.33
renovate-bot Oct 25, 2020
e68aa30
Merge pull request #230 from mindsers/renovate/node-11.x
mindsers Oct 25, 2020
c4eb37e
Update dependency @types/node to v11.15.34
renovate-bot Oct 26, 2020
7a6fdf9
Merge pull request #235 from mindsers/renovate/node-11.x
mindsers Oct 27, 2020
59573e8
Update dependency eslint to v7.12.1
renovate-bot Oct 27, 2020
1629167
Merge pull request #236 from mindsers/renovate/eslint-7.x
mindsers Oct 27, 2020
4c29839
Update dependency eslint-config-standard to v15.0.1
renovate-bot Oct 28, 2020
f21ef2c
Merge pull request #237 from mindsers/renovate/eslint-config-standard…
mindsers Oct 28, 2020
535f22e
Update dependency @types/node to v11.15.35
renovate-bot Oct 28, 2020
14692f2
Update dependency eslint-config-standard to v16
renovate-bot Oct 29, 2020
3a3a9c0
Merge pull request #240 from mindsers/renovate/eslint-config-standard…
mindsers Oct 29, 2020
7e5a229
Merge pull request #239 from mindsers/renovate/node-11.x
mindsers Oct 29, 2020
77e8c11
Update dependency sinon to v9.2.1
renovate-bot Oct 29, 2020
38778a8
Merge pull request #238 from mindsers/renovate/sinon-9.x
mindsers Oct 29, 2020
3300982
Update dependency eslint-config-standard to v16.0.1
renovate-bot Oct 30, 2020
e555b3b
Merge pull request #241 from mindsers/renovate/eslint-config-standard…
mindsers Oct 31, 2020
cc35f2c
Update dependency eslint to v7.13.0
renovate-bot Nov 7, 2020
04518fa
Merge pull request #242 from mindsers/renovate/eslint-7.x
mindsers Nov 8, 2020
10845dc
Update dependency eslint-plugin-standard to v4.1.0
renovate-bot Nov 10, 2020
5883e6e
Merge pull request #243 from mindsers/renovate/eslint-plugin-standard…
mindsers Nov 10, 2020
b3e22f9
Update dependency @types/node to v11.15.36
renovate-bot Nov 17, 2020
ca4fdaa
Update dependency eslint-config-standard to v16.0.2
renovate-bot Nov 18, 2020
02fef9b
Merge pull request #245 from mindsers/renovate/eslint-config-standard…
mindsers Nov 19, 2020
3973625
Merge pull request #244 from mindsers/renovate/node-11.x
mindsers Nov 19, 2020
6714df6
Update dependency @types/node to v11.15.38
renovate-bot Nov 25, 2020
3fbc091
Merge pull request #246 from mindsers/renovate/node-11.x
mindsers Nov 26, 2020
d1def53
Update dependency eslint to v7.14.0
renovate-bot Nov 26, 2020
78022ea
Merge pull request #247 from mindsers/renovate/eslint-7.x
mindsers Nov 26, 2020
54012e8
Update dependency @types/node to v11.15.39
renovate-bot Nov 30, 2020
7f2018b
Merge pull request #249 from mindsers/renovate/node-11.x
mindsers Dec 1, 2020
d6e269c
Update dependency eslint to v7.15.0
renovate-bot Dec 5, 2020
0c67b7e
Merge pull request #250 from mindsers/renovate/eslint-7.x
mindsers Dec 7, 2020
b2e0574
Bump ini from 1.3.5 to 1.3.7
dependabot[bot] Dec 11, 2020
ffada78
Update dependency @types/node to v11.15.40
renovate-bot Dec 12, 2020
9bd6cc3
Update dependency commander to v6.2.1
renovate-bot Dec 14, 2020
5ba2906
Merge pull request #255 from mindsers/renovate/commander-6.x
mindsers Dec 23, 2020
314b507
Merge pull request #254 from mindsers/renovate/node-11.x
mindsers Dec 23, 2020
f4d22c8
Merge pull request #252 from mindsers/dependabot/npm_and_yarn/ini-1.3.7
mindsers Dec 23, 2020
0092871
Update dependency sinon to v9.2.2
renovate-bot Dec 23, 2020
0c30cee
Merge pull request #253 from mindsers/renovate/sinon-9.x
mindsers Dec 23, 2020
a58bbce
Update dependency eslint to v7.16.0
renovate-bot Dec 23, 2020
fb7eac5
Merge pull request #256 from mindsers/renovate/eslint-7.x
mindsers Dec 23, 2020
ffea219
Update dependency ava to v3.14.0
renovate-bot Dec 23, 2020
85ea89e
Merge pull request #251 from mindsers/renovate/ava-3.x
mindsers Dec 23, 2020
1c95cfd
Bump minimist from 1.2.0 to 1.2.5
dependabot[bot] Dec 23, 2020
e329707
Update dependency @types/node to v11.15.42
renovate-bot Dec 23, 2020
dddfc2c
Merge pull request #258 from mindsers/renovate/node-11.x
mindsers Dec 24, 2020
d0c5b85
Merge pull request #257 from mindsers/dependabot/npm_and_yarn/minimis…
mindsers Dec 24, 2020
1df1d1f
Update dependency eslint to v7.17.0
renovate-bot Jan 2, 2021
b19a887
Merge pull request #260 from mindsers/renovate/eslint-7.x
mindsers Jan 4, 2021
e71a135
Update dependency ava to v3.15.0
renovate-bot Jan 4, 2021
d32840f
Merge pull request #259 from mindsers/renovate/ava-3.x
mindsers Jan 4, 2021
c21fdba
Update dependency @types/node to v11.15.43
renovate-bot Jan 4, 2021
924cceb
Merge pull request #261 from mindsers/renovate/node-11.x
mindsers Jan 5, 2021
855686f
Update dependency sinon to v9.2.3
renovate-bot Jan 6, 2021
c493ccf
Merge pull request #262 from mindsers/renovate/sinon-9.x
mindsers Jan 7, 2021
2866d87
Update dependency @types/node to v11.15.44
renovate-bot Jan 14, 2021
4abc8e7
Merge pull request #263 from mindsers/renovate/node-11.x
mindsers Jan 15, 2021
6800d74
Update dependency commander to v7
renovate-bot Jan 15, 2021
99fa4fa
Merge pull request #264 from mindsers/renovate/commander-7.x
mindsers Jan 18, 2021
32075c6
Update dependency eslint to v7.18.0
renovate-bot Jan 18, 2021
277d748
Merge pull request #265 from mindsers/renovate/eslint-7.x
mindsers Jan 18, 2021
364a757
Bump underscore from 1.9.1 to 1.13.1
dependabot[bot] May 6, 2021
91cd39c
Bump lodash from 4.17.15 to 4.17.21
dependabot[bot] May 8, 2021
d7de1aa
Bump hosted-git-info from 2.7.1 to 2.8.9
dependabot[bot] May 10, 2021
017c1cb
Bump glob-parent from 5.0.0 to 5.1.2
dependabot[bot] Jun 8, 2021
b9f41a9
Bump path-parse from 1.0.6 to 1.0.7
dependabot[bot] Aug 10, 2021
3df129c
Merge pull request #271 from mindsers/dependabot/npm_and_yarn/path-pa…
mindsers Mar 10, 2022
cc674c7
Merge pull request #270 from mindsers/dependabot/npm_and_yarn/glob-pa…
mindsers Mar 10, 2022
2924168
Merge pull request #269 from mindsers/dependabot/npm_and_yarn/hosted-…
mindsers Mar 10, 2022
f1d83c8
Merge pull request #268 from mindsers/dependabot/npm_and_yarn/lodash-…
mindsers Mar 10, 2022
54847f3
Merge pull request #267 from mindsers/dependabot/npm_and_yarn/undersc…
mindsers Mar 10, 2022
38d1094
Bump http-cache-semantics from 4.0.3 to 4.1.1
dependabot[bot] Feb 3, 2023
10dc41a
Merge pull request #277 from mindsers/dependabot/npm_and_yarn/http-ca…
mindsers Feb 3, 2023
adc7e8a
feat!: rewrite configfile in TypeScript for 1.0 (#281)
mindsers Sep 30, 2026
e37f0bd
fix: make deployments safe against hostile or broken input (#282)
mindsers Oct 1, 2026
5506d72
feat(update): keep configfile's copy of the repository as a mirror (#…
mindsers Oct 1, 2026
1addadf
feat: record what configfile changes in a history log (#284)
mindsers Oct 1, 2026
c7d791e
fix: harden the history reader, rotation and privacy (#285)
mindsers Oct 1, 2026
30f4d37
docs: switch support to GitHub Sponsors and refresh contributor docs …
mindsers Oct 1, 2026
cab396f
feat(modules): undeploy files the repository no longer deploys (#287)
mindsers Oct 1, 2026
6033cf8
build!: require Node.js 24, use mise, harden installs and CI (#288)
mindsers Oct 1, 2026
957ee9e
feat: say how to install git when it is missing (#289)
mindsers Oct 2, 2026
8d77b36
chore: merge master back into develop after 1.0.0 (#304)
mindsers Oct 7, 2026
f7c648c
chore: merge master back into develop after 1.0.0 (#306)
mindsers Oct 7, 2026
b030e1d
feat(scripts): give scripts the repository, their name and the system…
mindsers Oct 8, 2026
b111e6f
docs: add a documentation site, from the README's content (#308)
mindsers Oct 8, 2026
d1309fa
docs: add a getting started tutorial (#309)
mindsers Oct 8, 2026
bcf15de
docs: generate the usage and options of the commands reference (#310)
mindsers Oct 8, 2026
aeeeee7
docs: describe settings.json with a JSON Schema (#311)
mindsers Oct 8, 2026
fac8605
docs: explain how configfile works, and how it keeps files safe (#312)
mindsers Oct 8, 2026
acc537a
fix(modules): say "settings entries", not "settings entrys" (#315)
mindsers Oct 9, 2026
48cc6e0
docs: add guides for new machines, scripts and CI (#314)
mindsers Oct 9, 2026
8c7c050
docs: shorten the README to an introduction to the documentation site…
mindsers Oct 12, 2026
35d3e21
feat(modules): run scripts when a module is deployed or undeployed (#…
mindsers Oct 13, 2026
df75fb0
fix: make update and init wait for deployments, and the reverse (#319)
mindsers Oct 14, 2026
0d04374
feat: release standalone binaries for macOS and Linux, with an instal…
mindsers Oct 14, 2026
a40426c
chore(release): 1.1.0
mindsers Oct 14, 2026
36348bc
chore(release): merge master into release/1.1.0, keeping develop's co…
mindsers Oct 14, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
78 changes: 75 additions & 3 deletions .github/workflows/ci.yml
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,17 @@ jobs:
- uses: jdx/mise-action@7a4e45a543138629540c9a1616d08632b893e492 # v5.0.1
with:
version: 2026.9.18 # mise version, updated by Renovate
- run: pnpm install --frozen-lockfile
# The CLI only: the documentation site (docs/) is built by the docs job.
- run: pnpm install --frozen-lockfile --filter configfile
- run: pnpm lint
- run: pnpm typecheck
- name: Check the workflows
run: |
actionlint
zizmor --persona regular .github/workflows
- name: Check the install script
# Served at https://docs.configfile.sh/install.sh, run by any POSIX shell.
run: shellcheck --shell=sh docs/public/install.sh

test:
strategy:
Expand All @@ -46,7 +50,8 @@ jobs:
version: 2026.9.18 # mise version, updated by Renovate
# One cache per Node.js version: the override is not part of mise.toml.
cache_key_prefix: mise-node-${{ matrix.node }}
- run: pnpm install --frozen-lockfile
# The CLI only: the documentation site (docs/) is built by the docs job.
- run: pnpm install --frozen-lockfile --filter configfile
- run: pnpm test:coverage

package:
Expand All @@ -59,7 +64,8 @@ jobs:
- uses: jdx/mise-action@7a4e45a543138629540c9a1616d08632b893e492 # v5.0.1
with:
version: 2026.9.18 # mise version, updated by Renovate
- run: pnpm install --frozen-lockfile
# The CLI only: the documentation site (docs/) is built by the docs job.
- run: pnpm install --frozen-lockfile --filter configfile
- run: pnpm pack --out "$RUNNER_TEMP/configfile.tgz"
- name: Check npm publishes package.json as written
# npm publish silently drops what it considers invalid (a "./" bin path
Expand All @@ -78,3 +84,69 @@ jobs:
configfile --version
configfile --help
HOME="$RUNNER_TEMP/home" configfile history

binary:
# Builds the standalone binary on each system it is made for, as
# publish.yml does for a release, and runs the end-to-end tests with it.
strategy:
fail-fast: false
matrix:
os: [ubuntu-24.04, ubuntu-24.04-arm, macos-15, macos-15-intel]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
- uses: jdx/mise-action@7a4e45a543138629540c9a1616d08632b893e492 # v5.0.1
with:
version: 2026.9.18 # mise version, updated by Renovate
# The CLI only: the documentation site (docs/) is built by the docs job.
- run: pnpm install --frozen-lockfile --filter configfile
- run: pnpm build:binary
- name: Install the binary with the install script
# As users get it: from a release laid out as on GitHub, with SHA256SUMS.
run: |
archive=$(ls release/configfile-*.tar.gz)
name=$(basename "$archive")
tar -tzf "$archive" | sort > "$RUNNER_TEMP/members"
printf '%s\n' ./ ./LICENSE ./THIRD-PARTY-LICENSES ./configfile | sort |
diff - "$RUNNER_TEMP/members"
release="$RUNNER_TEMP/releases/download/ci"
mkdir -p "$release"
cp "$archive" "$release/"
(cd "$release" && shasum -a 256 "$name" > SHA256SUMS)
CONFIGFILE_DOWNLOAD_URL="file://$RUNNER_TEMP/releases" CONFIGFILE_VERSION=ci \
CONFIGFILE_INSTALL_DIR="$RUNNER_TEMP/bin" sh docs/public/install.sh
- name: Run the end-to-end tests with the installed binary
run: CONFIGFILE_BINARY="$RUNNER_TEMP/bin/configfile" pnpm vitest run tests/e2e.test.ts
- name: Answer a question on a terminal, whatever NODE_OPTIONS says
run: |
bin="$RUNNER_TEMP/bin/configfile"
export HOME="$RUNNER_TEMP/home" NODE_OPTIONS="--require /nonexistent.js"
mkdir -p "$HOME"
remote="$RUNNER_TEMP/remote"
git init --quiet "$remote"
git -C "$remote" -c user.name=ci -c user.email=ci@example.com commit --quiet --allow-empty -m first
# The URL is typed once the question is shown; the input stays open meanwhile.
answer() { sleep 3; printf '%s\r' "$remote"; sleep 10; }
if [ "$RUNNER_OS" = macOS ]; then
answer | script -q /dev/null "$bin" init
else
answer | script -qec "$bin init" /dev/null
fi
grep -F "$remote" "$HOME/.configfilerc"

docs:
# Builds the documentation site (docs/), as docs-deploy.yml publishes it.
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0 # the pages show when they were last updated, from git
persist-credentials: false
- uses: jdx/mise-action@7a4e45a543138629540c9a1616d08632b893e492 # v5.0.1
with:
version: 2026.9.18 # mise version, updated by Renovate
- run: pnpm install --frozen-lockfile
- run: pnpm --filter configfile-docs typecheck
- run: pnpm docs:build
56 changes: 56 additions & 0 deletions .github/workflows/docs-deploy.yml
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
name: Docs

# Publishes the documentation site (docs/) to GitHub Pages, served at
# https://docs.configfile.sh. It runs on pushes to master, the branch of
# released versions (git-flow), so the site describes the latest release. It
# can also be run by hand from the Actions tab, to publish master again.
#
# Set up once in the repository settings: Pages > Source: GitHub Actions,
# custom domain docs.configfile.sh, Enforce HTTPS. The github-pages
# environment only accepts deployments from master.

on:
push:
branches: [master]
workflow_dispatch:

permissions:
contents: read

# One deployment at a time; a newer one waits instead of cancelling.
concurrency:
group: pages
cancel-in-progress: false

jobs:
build:
runs-on: ubuntu-latest
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
fetch-depth: 0 # the pages show when they were last updated, from git
persist-credentials: false
# No cache: nothing restored from another run can end up on the site.
- uses: jdx/mise-action@7a4e45a543138629540c9a1616d08632b893e492 # v5.0.1
with:
version: 2026.9.18 # mise version, updated by Renovate
cache: false
- run: pnpm install --frozen-lockfile
- run: pnpm docs:build
- uses: actions/upload-pages-artifact@fc324d3547104276b827a68afc52ff2a11cc49c9 # v5.0.0
with:
path: docs/dist

deploy:
needs: build
runs-on: ubuntu-latest
environment:
name: github-pages
url: ${{ steps.deployment.outputs.page_url }}
permissions:
pages: write # publish the site
id-token: write # prove the deployment comes from this workflow
steps:
- uses: actions/configure-pages@45bfe0192ca1faeb007ade9deae92b16b8254a0d # v6.0.0
- id: deployment
uses: actions/deploy-pages@368f82528645a54fb793d4d04e342629a3f51346 # v5.0.1
101 changes: 84 additions & 17 deletions .github/workflows/publish.yml
Original file line number Diff line number Diff line change
Expand Up @@ -4,16 +4,23 @@ name: Publish
# master, the release branch of git-flow:
#
# - build: checks the tag, runs the checks and packs the package once;
# - github-release: publishes that tarball, its SHA256SUMS and the CHANGELOG
# section as a GitHub release, with a build provenance attestation
# (`gh attestation verify configfile-<version>.tgz --repo mindsers/configfile`);
# - binaries: builds the standalone binary on each system it is made for
# (tools/build-binary.ts), and runs the end-to-end tests with it;
# - github-release: publishes that tarball, the binaries, their SHA256SUMS
# and the CHANGELOG section as a GitHub release, with a build provenance
# attestation for each archive (`gh attestation verify <archive> --repo
# mindsers/configfile`).
# The binaries keep the same names from one release to the next, so that
# docs/public/install.sh finds the latest one at releases/latest/download/;
# - npm: publishes the same tarball to npm, with npm trusted publishing (no
# token stored, provenance statement). It only runs when the repository
# variable NPM_PUBLISH is "true", once trusted publishing is set up on
# npmjs.com (package settings > Trusted publishing): repository
# mindsers/configfile, workflow publish.yml, environment npm. To publish a
# version released while it was off, set the variable and re-run this
# workflow for its tag: an existing GitHub release keeps its notes.
# workflow for its tag: an existing GitHub release keeps its notes and the
# files it already has (a rebuilt archive is not byte for byte the same, and
# would break the checksums users have); only missing files are added.

on:
push:
Expand Down Expand Up @@ -44,19 +51,17 @@ jobs:
version=$(node -p "require('./package.json').version")
[ "$version" = "$TAG" ] || {
echo "::error::package.json is $version, the tag is $TAG."; exit 1; }
- run: pnpm install --frozen-lockfile
# The CLI only: the documentation site (docs/) is not part of a release.
- run: pnpm install --frozen-lockfile --filter configfile
- run: pnpm check
- name: Pack the package
env:
TAG: ${{ github.ref_name }}
run: |
mkdir release
npm pack --pack-destination release
cd release
[ -f "configfile-$TAG.tgz" ] || {
[ -f "release/configfile-$TAG.tgz" ] || {
echo "::error::npm pack did not produce configfile-$TAG.tgz."; exit 1; }
sha256sum "configfile-$TAG.tgz" > SHA256SUMS
cat SHA256SUMS
- name: Extract the release notes from the CHANGELOG
env:
TAG: ${{ github.ref_name }}
Expand All @@ -74,8 +79,36 @@ jobs:
path: release/
if-no-files-found: error

github-release:
binaries:
needs: build
strategy:
matrix:
os: [ubuntu-24.04, ubuntu-24.04-arm, macos-15, macos-15-intel]
runs-on: ${{ matrix.os }}
steps:
- uses: actions/checkout@3d3c42e5aac5ba805825da76410c181273ba90b1 # v7.0.1
with:
persist-credentials: false
# No cache: nothing restored from another run can end up in a release.
- uses: jdx/mise-action@7a4e45a543138629540c9a1616d08632b893e492 # v5.0.1
with:
version: 2026.9.18 # mise version, updated by Renovate
cache: false
- run: pnpm install --frozen-lockfile --filter configfile
- run: pnpm build:binary
- name: Run the end-to-end tests with the binary
run: |
mkdir "$RUNNER_TEMP/binary"
tar -xzf release/configfile-*.tar.gz -C "$RUNNER_TEMP/binary"
CONFIGFILE_BINARY="$RUNNER_TEMP/binary/configfile" pnpm vitest run tests/e2e.test.ts
- uses: actions/upload-artifact@cf430e030ddbb5b0abf93d22962f4752f3646cd9 # v7.0.2
with:
name: binary-${{ matrix.os }}
path: release/configfile-*.tar.gz
if-no-files-found: error

github-release:
needs: [build, binaries]
runs-on: ubuntu-latest
permissions:
contents: write # create the release
Expand All @@ -85,23 +118,57 @@ jobs:
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
name: release
- uses: actions/download-artifact@9000827ccba6bdab643e8b6fd33ac0654aef8333 # v8.0.2
with:
pattern: binary-*
merge-multiple: true
- name: Keep the files of an existing release
id: keep
env:
GH_TOKEN: ${{ github.token }}
TAG: ${{ github.ref_name }}
run: |
gh release view "$TAG" --repo "$GITHUB_REPOSITORY" --json assets \
--jq '.assets[].name' > published.txt 2> /dev/null || : > published.txt
# Kept aside until attested: only what this run built is attested.
mkdir published
grep '^configfile-' published.txt | while read -r name; do
rm -f "$name"
gh release download "$TAG" --repo "$GITHUB_REPOSITORY" --pattern "$name" --dir published
echo "::notice::$name is kept as published."
done
if ls configfile-* > /dev/null 2>&1; then
echo "built=true" >> "$GITHUB_OUTPUT"
fi
# Attests the files built by this run only: a published file, which may
# have been uploaded by hand, keeps the attestation it has (if any).
- uses: actions/attest-build-provenance@4d101475d8b20a2381f78447822ac1eab6504dd8 # v4.2.2
if: steps.keep.outputs.built == 'true'
with:
subject-path: configfile-${{ github.ref_name }}.tgz
subject-path: configfile-*
- name: Compute the checksums
run: |
find published -type f -exec mv {} . \;
sha256sum configfile-* > SHA256SUMS
cat SHA256SUMS
- name: Create the GitHub release
env:
GH_TOKEN: ${{ github.token }}
TAG: ${{ github.ref_name }}
run: |
# A release created by hand, or by an earlier run: its notes are kept,
# and the files attested above replace any older ones.
# A release created by hand, or by an earlier run: its notes and files
# are kept, the missing files added, and SHA256SUMS (which covers the
# files as published) replaced.
if gh release view "$TAG" --repo "$GITHUB_REPOSITORY" > /dev/null 2>&1; then
gh release upload "$TAG" "configfile-$TAG.tgz" SHA256SUMS \
--repo "$GITHUB_REPOSITORY" --clobber
echo "::notice::The $TAG release already existed: its notes are kept, its files replaced."
for file in configfile-*; do
grep -qxF "$file" published.txt ||
gh release upload "$TAG" "$file" --repo "$GITHUB_REPOSITORY"
done
gh release upload "$TAG" SHA256SUMS --repo "$GITHUB_REPOSITORY" --clobber
echo "::notice::The $TAG release already existed: its notes and files are kept, missing files added."
exit 0
fi
gh release create "$TAG" "configfile-$TAG.tgz" SHA256SUMS \
gh release create "$TAG" configfile-* SHA256SUMS \
--repo "$GITHUB_REPOSITORY" --verify-tag \
--title "$TAG" --notes-file notes.md

Expand Down
4 changes: 4 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -63,3 +63,7 @@ dist/

# macOS
.DS_Store

# Astro (docs/)
.astro/
release/
45 changes: 44 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,48 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0

## [Unreleased]

## [1.1.0] - 2026-10-14
### Added
- Standalone binaries for macOS (13.5 or later) and Linux (GNU C library 2.28 or later), on x64
and arm64, with each release, and an install script:
`curl -fsSL https://docs.configfile.sh/install.sh | sh` installs configfile on a new machine
without Node.js or a package manager ([#301](https://github.com/mindsers/configfile/issues/301)).
- Scripts get the repository folder, their name and the system in the `CONFIGFILE_REPO`,
`CONFIGFILE_SCRIPT` and `CONFIGFILE_OS` environment variables
([#295](https://github.com/mindsers/configfile/issues/295)).
- A JSON Schema for `settings.json`, at `https://docs.configfile.sh/schemas/settings.json`: with
`"$schema"` at the top of the file, editors complete and check it as you type.
- A documentation site, [docs.configfile.sh](https://docs.configfile.sh), with a tutorial, guides,
a reference and explanations. The README is now a short introduction that links to it.
- Modules can name scripts to run when they are deployed or undeployed, with `"pre_deploy"`,
`"post_deploy"`, `"pre_undeploy"` and `"post_undeploy"` in `settings.json`. A script that fails
stops the command there, unless `--keep-going` is given, and a `pre_` script that fails leaves
the files of its module as they are; `--no-hooks` runs none. A name that matches no script
fails the command before anything is changed. `modules status` shows the scripts
([#298](https://github.com/mindsers/configfile/issues/298)).

### Changed
- `modules deploy` and `modules undeploy` work on one module at a time, taking the lock for each
module in turn instead of the whole run. When a local file already exists, the question to
replace it is asked once the other files of its module are deployed, no longer at the very end.

### Fixed
- `update` and `init` take the lock that `modules deploy` and `undeploy` use, so files are never
deployed while a sync or a new configuration replaces them: each waits for the other, and says
so ([#313](https://github.com/mindsers/configfile/issues/313)).
- Two configfile commands started together could both take over the lock of a process that no
longer exists, and change files at the same time. The lock is now created with its owner's pid
already in it (where the filesystem supports hard links), and taken over by one process at a
time. A lock that cannot be read, or that holds no process number, is no longer taken over.
- A lock that cannot be removed at the end of a command no longer hides the command's result: a
warning says to delete it. A lock replaced or removed by someone else while a command held it is
reported too.
- When `~/.configfile` or its lock file cannot be created, written or read, the commands that take
the lock (`init`, `update`, `modules deploy` and `undeploy`) say that the lock cannot be taken,
and why, instead of reporting an unexpected error or waiting.
- When more than one settings entry failed, `modules deploy` and `undeploy` reported "settings
entrys" instead of "settings entries".

## [1.0.0] - 2026-10-05
### Added
- The `modules undeploy` command to remove the files configfile deployed and restore the saved
Expand Down Expand Up @@ -125,7 +167,8 @@ and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0
- The `run` command to run custom and saved scripts. Scripts can be write in all languages.
- The README file to give first information on the project (installation, usage, etc.).

[Unreleased]: https://github.com/mindsers/configfile/compare/1.0.0...HEAD
[Unreleased]: https://github.com/mindsers/configfile/compare/1.1.0...HEAD
[1.1.0]: https://github.com/mindsers/configfile/tree/1.1.0
[1.0.0]: https://github.com/mindsers/configfile/tree/1.0.0
[0.3.1]: https://github.com/mindsers/configfile/tree/0.3.1
[0.3.0]: https://github.com/mindsers/configfile/tree/0.3.0
Expand Down
2 changes: 1 addition & 1 deletion CONTRIBUTING.md
Original file line number Diff line number Diff line change
Expand Up @@ -69,7 +69,7 @@ Everyone taking part in the project follows the [code of conduct](CODE_OF_CONDUC

### Do you want to contribute to the documentation?

The documentation lives with the source code: the [README](README.md) for users, and this file for contributors.
The documentation lives with the source code: the [documentation site](docs/) for users (published at [docs.configfile.sh](https://docs.configfile.sh), run it locally with `pnpm docs:dev`), and this file for contributors. Each page of the site is a Markdown file in `docs/src/content/docs/`. The README only introduces configfile and links to the site: document behavior on the site. The usage lines and option tables of the commands page are generated from the commands' definitions: after adding or changing a command, an argument or an option, run `pnpm docs:commands` (a test fails until the page is up to date). A new command first needs its section and an empty `<!-- generated: configfile <command> -->` / `<!-- /generated -->` block on the page, which the script then fills. The format of `settings.json` is also described by a JSON Schema, `docs/public/schemas/settings.json`: when configfile starts accepting or refusing something new there, update the schema and the examples of `tests/settings-schema.test.ts`, which check that both agree.

* Please refer to the "Do you intend to add a new feature or change an existing one?" section.

Expand Down
Loading
Loading