Commit Graph

280 Commits

Author SHA1 Message Date
Khải
e025672594 feat(benchmark): rename benchmark tasks (#140) 2023-10-09 17:36:18 +03:00
Nacho Aldama
2ddd6cf8d3 feat: add support for CoW in Win Dev Drives (#141)
* feat: add support for CoW in Win Dev Drives

* fix: use junctions when symlinks fail

* fix: create junction only for error `1314`

* style: format code

* perf: use always junctions in Windows

* feat: use current drive for default store path

* fix: add missing `os` import

* fix: fix lint errors

* test: add tests for store path in Windows

* docs: explain why we use junctions in windows

* perf: check drive letter only in Windows

* refactor: check for Windows OS in match condition

* revert: check for Windows OS in match condition

* fix: remove windows condition

* fix: remove windows condition

* fix: fix lint errors

* refactor: change windows condition

Co-authored-by: Khải <hvksmr1996@gmail.com>

* style: format code

* fix: check if target is symlink or junction

* perf: optimize `get_drive_letter` fn

* style: remove `return`

* perf: return drive letter as `char`

* fix: fix test error

* refactor: panic when drive letter is none

Co-authored-by: Khải <hvksmr1996@gmail.com>

* style: format code

* perf: load drive letter fn only in Windows

* fix: return correct types in Windows

* style: format code

* fix: fix lint errors

* bump `reflink-copy` version to 0.1.9

* test: improve windows store dir test

* refactor: follow style guides

Co-authored-by: Khải <hvksmr1996@gmail.com>

* Update crates/npmrc/src/custom_deserializer.rs

Co-authored-by: Khải <hvksmr1996@gmail.com>

* test: test the entire store path instead of drive

* test: fix Windows tests

* fix: correct argument types for win store dir

* test: check store dir in same drive

---------

Co-authored-by: Khải <hvksmr1996@gmail.com>
2023-10-09 03:04:04 +03:00
Khải
44043ed41b chore(toolchain): update to 1.73.0 (#142)
* chore(toolchain): update to 1.73.0

* style: cargo fmt
2023-10-05 15:03:19 -04:00
Khải
f93a75a9dd docs(readme): correct some information (#139) 2023-10-03 09:25:59 -04:00
Khải
5ce161a552 feat: initial lockfile implementation (#128) 2023-10-03 07:24:35 -04:00
dependabot[bot]
5c8eec5322 chore(cargo): bump reflink-copy from 0.1.6 to 0.1.7 (#120) 2023-09-30 21:38:56 -04:00
dependabot[bot]
7d02cfae5e chore(cargo): bump insta from 1.31.0 to 1.32.0 (#129) 2023-09-30 21:38:16 -04:00
dependabot[bot]
f4f8d0b497 chore(cargo): bump rayon from 1.7.0 to 1.8.0 (#130) 2023-09-30 21:38:02 -04:00
dependabot[bot]
f8ac6c86ad chore(cargo): bump clap from 4.4.3 to 4.4.4 (#131) 2023-09-30 21:37:51 -04:00
Khải
c4d7b1a13b feat: panic for programmer error, more diagnostics, remove duplicated map lookup (#126) 2023-09-20 15:28:43 +03:00
Khải
161fa49c27 refactor: explicit Arc::clone (#125) 2023-09-19 22:14:02 -04:00
Zoltan Kochan
0486687626 refactor: locking of tarball fetching (#123) 2023-09-20 02:50:26 +03:00
Yagiz Nizipli
b963f0151a chore: release 0.2.1 2023-09-18 15:49:39 -04:00
Yagiz Nizipli
038f185fd0 chore: update package.json repository url 2023-09-18 15:49:18 -04:00
Yagiz Nizipli
eaab9774cf chore: release v0.2.0 2023-09-18 15:32:50 -04:00
dependabot[bot]
2264775ffd chore(cargo): bump serde_json from 1.0.106 to 1.0.107 (#119) 2023-09-17 21:59:47 -04:00
dependabot[bot]
1a18c2e5e9 chore(cargo): bump mockito from 1.1.0 to 1.2.0 (#121) 2023-09-17 21:59:26 -04:00
dependabot[bot]
79f5051c7b chore(cargo): bump clap from 4.4.2 to 4.4.3 (#122) 2023-09-17 21:59:09 -04:00
Zoltan Kochan
e2fd0c3436 fix: share the http client between requests (#118) 2023-09-17 08:19:56 -04:00
Khải
80c5e10ae2 test: clean up files in /tmp (#117) 2023-09-17 04:26:34 -04:00
Khải
c569646656 perf: only copy package_url when necessary (#99) 2023-09-16 19:19:25 -04:00
Khải
95e50497ea feat: leak Npmrc, remove cloning (#115) 2023-09-16 19:16:01 -04:00
Khải
a2b9746f2b bench: create a tool to compare benchmark between different revisions (#109)
* chore: add `tmp` to `.gitignore`

* bench: create a tool to benchmark revisions

* chore: convenient bash script

* docs: usage of the script

* feat: manual checkout

* feat: list branches

* feat: fetch all

* feat: resolve the commit and check it out

* feat: --package-json

* feat: cleanup.sh is unnecessary

There is already a global cleanup command for hyperfine

* feat: clearer error message

* feat: customize hyperfine's options

* feat: export to files

* feat: change default work_env

* docs: better instruction

* chore: use just

* chore: alias `cargo benchmark` to the new one

* docs: use cargo

* chore: revert erroneous change

This reverts commit 15f0eeffc1b64e4c159fbc1673cbd5e9e7d247ba.

* chore: create an alias
2023-09-15 14:40:53 +03:00
dependabot[bot]
de1098c8c1 chore(cargo): bump serde_json from 1.0.105 to 1.0.106 (#113) 2023-09-10 21:24:34 -04:00
dependabot[bot]
84a432ba4e chore(cargo): bump walkdir from 2.3.3 to 2.4.0 (#112) 2023-09-10 21:24:17 -04:00
dependabot[bot]
e20ffd27a0 chore(github-actions): bump actions/checkout from 3 to 4 (#114) 2023-09-10 21:23:57 -04:00
Khải
899dd23a13 fix: install more packages without panics (#111) 2023-09-05 07:05:10 -04:00
Khải
7cc28128ab refactor: remove pico_args (#110)
There is no reason to use 2 argument parsers in one project.
2023-09-04 13:24:54 -04:00
dependabot[bot]
05aa8957cd chore(cargo): bump thiserror from 1.0.47 to 1.0.48 (#105) 2023-09-03 23:14:38 -04:00
dependabot[bot]
e245e62300 chore(cargo): bump clap from 4.4.0 to 4.4.2 (#104) 2023-09-03 23:14:22 -04:00
dependabot[bot]
ea0815fff4 chore(cargo): bump async-recursion from 1.0.4 to 1.0.5 (#106) 2023-09-03 23:13:53 -04:00
dependabot[bot]
24c2c4b18b chore(cargo): bump dashmap from 5.5.1 to 5.5.3 (#107) 2023-09-03 23:13:40 -04:00
Ramana Venkata
85bce88c32 feat: add --save-peer option to add subcommand (#103) 2023-09-03 14:17:50 -04:00
Khải
158590bd75 refactor: minor code style change in cafs (#102) 2023-09-01 09:31:51 -04:00
dependabot[bot]
0c6440bb6c chore(cargo): bump clap from 4.3.23 to 4.4.0
Bumps [clap](https://github.com/clap-rs/clap) from 4.3.23 to 4.4.0.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v4.3.23...clap_complete-v4.4.0)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-27 22:21:00 -04:00
dependabot[bot]
4758e1bc7e chore(cargo): bump dashmap from 5.5.0 to 5.5.1
Bumps [dashmap](https://github.com/xacrimon/dashmap) from 5.5.0 to 5.5.1.
- [Release notes](https://github.com/xacrimon/dashmap/releases)
- [Commits](https://github.com/xacrimon/dashmap/compare/v5.5.0...v5.5.1)

---
updated-dependencies:
- dependency-name: dashmap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-27 22:20:42 -04:00
dependabot[bot]
1f4224d8e7 chore(cargo): bump reqwest from 0.11.18 to 0.11.20
Bumps [reqwest](https://github.com/seanmonstar/reqwest) from 0.11.18 to 0.11.20.
- [Release notes](https://github.com/seanmonstar/reqwest/releases)
- [Changelog](https://github.com/seanmonstar/reqwest/blob/master/CHANGELOG.md)
- [Commits](https://github.com/seanmonstar/reqwest/compare/v0.11.18...v0.11.20)

---
updated-dependencies:
- dependency-name: reqwest
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-27 22:20:20 -04:00
dependabot[bot]
749d745988 chore(cargo): bump serde from 1.0.183 to 1.0.188
Bumps [serde](https://github.com/serde-rs/serde) from 1.0.183 to 1.0.188.
- [Release notes](https://github.com/serde-rs/serde/releases)
- [Commits](https://github.com/serde-rs/serde/compare/v1.0.183...v1.0.188)

---
updated-dependencies:
- dependency-name: serde
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-27 22:19:48 -04:00
Khải
e82d9e2ad1 feat: hashmap based caching (#82)
* refactor: naming convention

* refactor: remove useless task spawn

* feat: panic on invalid UTF-8

lossy shouldn't be used here.

* refactor: remove unnecessary copy and allocation

* docs: add a TODO

* refactor: remove node_modules_path

* feat: hashmap caching communication

* feat: log cache hit

* feat: use tracing library

* feat: propagate archive error

* docs: change the TODO

* refactor: rename cache state

* feat: remove unused function

* docs: ask a question

* feat: import on cache hit

* feat: log saved_path

* feat: log cache miss

* feat: change tracing level

* style: consistent string substitution style

* docs: add a TODO

* docs: add a TODO

* docs: remove poor comment

* docs: add a TODO

* docs: add a TODO

* feat: fix tracing

* feat: set_panic_hook

* refactor: remove unnecessary error variant

* refactor: remove unnecessary error variant

* refactor: rename InProcess to InProgress

* refactor: remove anti-pattern generics

* refactor: remove anti-pattern generics

* feat: re-add spawn

* docs: add a TODO

* feat: propagate more error

* feat: propagate more error

* refactor: remove some intermediate variables

* refactor: broadcast is simpler

* refactor: mpsc is even simpler

* docs: add a TODO

* feat: attach culprit information to error

* feat: attach more information to error

* refactor: replace a PathBuf with &Path

* feat: more resistance to race conditions

* refactor: change the misleading names

* refactor: reduce indentation

* fix: the tarball bug

* feat: revert previous change

This reverts commit f429c3a5fcb430d736d5242371a8704b9ac1e2b0.

* feat: switch to RwLock

* docs: add a TODO

* feat: avoid filling the screen with numbers

* feat: trace install

* feat: trace import

* feat: move parsing of integrity out

* feat: correct error message and diagnostic

* feat: propagate parse_integrity_error

* feat: remove unnecessary clone

* feat: url based caching

* feat: full parallelization

* feat: skip logging cache

* feat: log cache.len()

* feat: log beginning and end of sets and subsets

* feat: drop lock and sleep

* docs: millis

* chore: remove an unused dependency

* refactor: change var name

* refactor: only compute `save_path` when necessary

* docs: remove a TODO

* style: fix string interpolation style

* docs: move a TODO

* docs: clarify

* feat: change log message

* fix: log message grammar

* refactor: remove box

* docs: remove the question

* feat: reduce panic by using OsString

* feat: replace `sleep` with `yield_now`

`sleep` is just `yield_now` with extra steps

* refactor: forgot to reuse `url`
2023-08-24 03:05:10 +03:00
dependabot[bot]
d2f8bc1229 chore(cargo): bump serde_json from 1.0.104 to 1.0.105
Bumps [serde_json](https://github.com/serde-rs/json) from 1.0.104 to 1.0.105.
- [Release notes](https://github.com/serde-rs/json/releases)
- [Commits](https://github.com/serde-rs/json/compare/v1.0.104...v1.0.105)

---
updated-dependencies:
- dependency-name: serde_json
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-21 20:21:30 -04:00
dependabot[bot]
34de60cf64 chore(cargo): bump clap from 4.3.21 to 4.3.23
Bumps [clap](https://github.com/clap-rs/clap) from 4.3.21 to 4.3.23.
- [Release notes](https://github.com/clap-rs/clap/releases)
- [Changelog](https://github.com/clap-rs/clap/blob/master/CHANGELOG.md)
- [Commits](https://github.com/clap-rs/clap/compare/v4.3.21...v4.3.23)

---
updated-dependencies:
- dependency-name: clap
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-21 10:58:51 -04:00
dependabot[bot]
2ede5fe2fb chore(cargo): bump thiserror from 1.0.44 to 1.0.47
Bumps [thiserror](https://github.com/dtolnay/thiserror) from 1.0.44 to 1.0.47.
- [Release notes](https://github.com/dtolnay/thiserror/releases)
- [Commits](https://github.com/dtolnay/thiserror/compare/1.0.44...1.0.47)

---
updated-dependencies:
- dependency-name: thiserror
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-21 10:58:22 -04:00
dependabot[bot]
e62133677f chore(cargo): bump reflink-copy from 0.1.5 to 0.1.6
Bumps [reflink-copy](https://github.com/cargo-bins/reflink-copy) from 0.1.5 to 0.1.6.
- [Commits](https://github.com/cargo-bins/reflink-copy/commits)

---
updated-dependencies:
- dependency-name: reflink-copy
  dependency-type: direct:production
  update-type: version-update:semver-patch
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-21 10:57:52 -04:00
dependabot[bot]
15714f682f chore(cargo): bump tempfile from 3.7.1 to 3.8.0
Bumps [tempfile](https://github.com/Stebalien/tempfile) from 3.7.1 to 3.8.0.
- [Changelog](https://github.com/Stebalien/tempfile/blob/master/CHANGELOG.md)
- [Commits](https://github.com/Stebalien/tempfile/compare/v3.7.1...v3.8.0)

---
updated-dependencies:
- dependency-name: tempfile
  dependency-type: direct:production
  update-type: version-update:semver-minor
...

Signed-off-by: dependabot[bot] <support@github.com>
2023-08-21 10:57:07 -04:00
await-ovo
9ca0dd53ef fix(tarball): ignore directory when archive tarball 2023-08-18 13:14:15 -04:00
khai96_
9bb19b6b7b refactor: remove unnecessary static 2023-08-17 14:40:54 -04:00
khai96_
3f1afa51b3 refactor: naming convention 2023-08-15 11:07:16 -04:00
khai96_
8dabfaa215 docs: add a code style guide 2023-08-14 15:58:06 -04:00
khai96_
5e417f43ed test: use pretty_assertions 2023-08-14 15:57:58 -04:00
Khải
405fc5159e fix: --prod, --dev, --no-optional (#73)
* fix: `no_optional` should remove `Optional`

* perf: improve vec creation

* perf: remove temporary Vec

* refactor: make dependency_groups testable

* test: get_dependency_groups

* refactor: remove unused imports

* test: correct the specs

* fix: get_dependency_groups

* test: fix `should_install_dependencies`

* feat: forbid unconsidered variant

* test: add more to specs

* feat: implement the remaining case

* test: fix a test case

* feat: --prod --dev should install optional

* refactor: deref on init
2023-08-14 15:31:13 +03:00