Commit graph

198 commits

Author SHA1 Message Date
b5d7c1d2d3
style: apply stylua formatter 2025-04-19 09:34:39 +01:00
3f2430f81c
fix: accidentally forcing users to set env var to get noninteractivity 2025-04-19 09:32:18 +01:00
47c1d4926c
feat: introduce PESDE_TOOLING_FORCE_INTERACTIVE override
This environment variable allows overriding the result of the
interactivity status guess by setting it to any non-empty value.
2025-04-19 09:00:33 +01:00
90386f1ec9
feat: guess whether command was invoked non-interactively
Previously, it was made possible to control the interactivity status of the
progress bar by setting `_G.interactive`. However, this was not
automatically inferred from the context the process was started from,
and was expected to be manually set by the library invoker.

Non-interactivity status is now inferred automatically based on the
context the command was called from.
2025-04-19 08:44:41 +01:00
369f6bb714
chore: update lockfiles 2025-04-19 06:54:19 +01:00
6740d7e363
chore(bins): bump zap to v0.6.19 2025-03-09 16:47:06 +00:00
f549e45a6d
chore: update lockfiles 2025-03-03 19:49:24 +00:00
1dc0bcf9dd
chore(bins): bump luau-lsp to v1.40.0 2025-03-03 19:47:49 +00:00
31b9236b16
chore(bins): bump blink to v0.15.5 2025-03-03 19:47:08 +00:00
454039cac5
chore(bins): update asphalt README 2025-03-03 19:46:13 +00:00
da74cb0a94
chore(CHANGELOG): update entries 2025-02-20 13:19:53 +00:00
5aa1162108
chore: update lockfiles 2025-02-20 13:18:28 +00:00
402b4b197a
chore(bins): bump zap to v0.6.18 2025-02-20 13:16:37 +00:00
b97659c66b
chore(CHANGELOG): use correct section and include new tool versions 2025-02-16 18:02:20 +00:00
e757cca8cc
chore: update lockfiles 2025-02-16 17:57:36 +00:00
ff13b5a048
chore(bins): bump luau-lsp to v1.39.2 2025-02-16 17:55:48 +00:00
4f1e8b24a0
chore(bins): bump luau-lsp to v1.39.1 2025-02-16 17:54:08 +00:00
981fbe0163
chore(bins): bump blink to v0.15.4 2025-02-16 17:53:40 +00:00
e92f9e6c76
chore(bins): sync asphalt README 2025-02-16 17:53:14 +00:00
53aede0432
chore(bins): bump asphalt to v0.9.1 2025-02-16 17:52:31 +00:00
4b2472c68f
chore(CHANGELOG): update entries 2025-02-12 16:43:51 +00:00
93929ee356
chore(bins): update lockfiles 2025-02-12 16:41:32 +00:00
898cd5020d
chore(bins): bump blink to v0.15.3 2025-02-12 16:40:12 +00:00
7eca79f3cb
chore(bins): bump luau-lsp to v1.39.0 2025-02-12 16:39:44 +00:00
0429a91eea
chore(bins): bump asphalt to v0.9.0 2025-02-12 16:39:27 +00:00
3caf9baaf9
chore(bins): bump argon to v2.0.23 2025-02-12 16:39:07 +00:00
17e5395758
chore(lib): prepare for v0.1.12 2025-02-12 16:33:42 +00:00
0e39a58ad4
chore(CHANGELOG): update entries 2025-02-12 16:30:51 +00:00
a19331f951
chore(pkg): migrate to pesde v0.6.0 w/ engines 2025-02-12 16:25:53 +00:00
Luka
c6e5b5932c
fix(lib): hanging after tool installation (#5)
Fixes an issue where the process sometimes hangs indefinitely after
installation of a tool. This is done by removing the usage of
`task.cancel` within the code for progress bars, and instead checking
the `finished` value within the task.
2025-02-12 21:41:11 +05:30
daimond113
95712bc820
fix: prevent deadlock in concurrent installs
Previously, the code tried to acquire a lock every
1s while checking if it exists. This caused a
deadlock, since the lock got acquired by the
concurrent process after the installation had
completed and the lock was released.
2025-02-08 01:12:09 +01:00
d27a895e67
refactor(lib): restructure locking mechanism to be atomic
Fixes a potential TOCTOU bug in the locking mechanism by restructuring
and using file moves which are atomic on both windows and unix.

FIXME: This commit introduces a bug where if there is are two concurrent
processes attempting to install a tool such that the tool has artifact
naming patterns that we understand (and hence do not need to download
every artifact for), the parent installation process (i.e., the one
which started first) yields indefinitely even after installing and
running the tool.
2025-02-05 13:57:22 +05:30
283db5df4a
fix(lib): write progress bar cleanup ANSI sequences to stderr 2025-02-05 13:31:52 +05:30
a6074b790f
chore(CHANGELOG): update entries 2025-02-05 12:33:41 +05:30
61c20b25a3
feat(lib): upgrade pathfs and dirs to v0.3.0 2025-02-05 12:30:00 +05:30
78577110cf
fix(lib): use expiration time units in seconds
`os.time()` returns a timestamp in seconds, not milliseconds, but the
expiration time was adding 60,000 assuming it was in milliseconds. This
has now been corrected to only add 60 in seconds.
2025-02-05 12:11:10 +05:30
e03f07470d
chore: update lockfiles 2025-01-29 20:08:27 +05:30
681f03ae2f
chore(CHANGELOG): update entries 2025-01-29 20:06:08 +05:30
c2a8abeda6
chore(bins): bump zap to v0.6.17 2025-01-29 20:03:45 +05:30
50aea6d266
chore(bins): bump darklua to v0.16.0 2025-01-29 20:03:45 +05:30
d0eb238281
chore(bins): update READMEs 2025-01-29 20:03:44 +05:30
037520c4c6
chore(bins): bump argon to v2.0.22 2025-01-29 20:03:35 +05:30
8bf37abc6f
chore(CHANGELOG): fix typo in word 'written' 2025-01-23 13:27:25 +05:30
bee9bc8c92
chore(lib): prepare for v0.1.11 2025-01-23 13:16:25 +05:30
4478711269
chore(CHANGELOG): fix unterminated backtick on false 2025-01-22 12:35:45 +05:30
4c5601b5cd
chore(CHANGELOG): update entries 2025-01-22 12:31:29 +05:30
6342b5ca87
feat(lib): write progress bars to stderr 2025-01-22 12:25:16 +05:30
13cae3a375
feat(lib): make it possible to override interactivity state externally
Libraries that depend on toolchainlib can now set `_G.interactive`
manually and have that option be respected.
2025-01-22 12:16:20 +05:30
c85c895408
fix(lib): only attempt to clear current progress bar if interactive 2025-01-22 12:11:53 +05:30
f99a4f787d
chore(lib): prepare for v0.1.10 2025-01-22 12:00:11 +05:30