Commit Graph

608 Commits

Author SHA1 Message Date
Zoltan Kochan
17425eefbd fix: optional dependency that does not exist should be skipped
ref pnpm/pnpm#1004
2018-01-23 23:25:51 +02:00
Emanuele Tamponi
1b816176b8 fix: ignore upload errors, show warning 2018-01-23 22:51:19 +02:00
Emanuele Tamponi
0985078959 feat: side effects cache (#38)
* feat: upload side effects cache when needed

* feat: add side-effects-cache support

* fix: review suggestions

* fix: rename to cacheByNodeVersion, compute immediately centralLocation

* fix: make cacheByNodeVersion nullable, fix centralLocation, move nodeMajor to the top

* fix: s/nodeVersion/engineName/

* fix: some renames, add verifyStoreIntegrity option

* fix(deps): update

* fix: fix failing tests

* fix: update package-store to v0.15.1

* test: creating side effects cache

* test: using the side effects cache, in readonly mode too

* fix: rename engine to include 'node', test for opts.force
2018-01-22 02:02:01 +02:00
Zoltan Kochan
85bd4ee041 docs: add comment about why path.relative is used to compare paths
ref pnpm/pnpm#996
2018-01-18 21:34:35 +02:00
Nicholas Pape
7336862ee5 fix: store path check should do a path-comparison, not a string comparison (#39)
* Change string compare to a path compare

* Add some tests

* Fix problem with slashes

* Allow injecting of path

* Add a simpler test

* fix: remove unused variable

ref #996
2018-01-18 21:22:03 +02:00
Zoltan Kochan
d2aa2bc802 fix(uninstall): report updated package.json 2018-01-13 22:29:36 +02:00
Zoltan Kochan
10bdb22f20 refactor: remove the offline option
The offline option is passed to the resolver/fetcher, during
initialization, so no need to pass it to supi
2018-01-13 18:36:00 +02:00
Zoltan Kochan
715c82706e fix: node id should always be reliably splittable to package IDs
The > symbol is used to delimit package IDs in the Node ID.

The % and > symbols are encoded in package IDs.

ref https://github.com/pnpm/pnpm/issues/986
2018-01-11 09:41:34 +02:00
Zoltan Kochan
1c413655c8 feat: move package importing logic to the store
close #34
2018-01-09 01:20:32 +02:00
Zoltan Kochan
bb7aff4af6 refactor: use own options
BREAKING CHANGE:

storeController is not an optional parameter anymore
2018-01-07 22:34:31 +02:00
Zoltan Kochan
c7fbd36f93 feat: shrinkwrap only install
ref https://github.com/pnpm/pnpm/issues/981
2018-01-03 17:27:18 +02:00
Zoltan Kochan
430a49feca fix: update package-store and @pnpm/package-requester 2018-01-02 02:36:15 +02:00
Zoltan Kochan
a5beb477ee fix: log correct number of added packages
Also, link only packages that need to be linked from the store
2017-12-31 17:29:49 +02:00
Emanuele Tamponi
646841a0c9 feat: add packageImportMethod option (#32)
* feat: add reflinks option

* feat: packageImportMethod allows us to specify between auto, hardlink, reflink, copy

* refactor: split hardlinkPkg and reflinkPkg, refactor switch, add default method

* fix: add breaks, describe option in the README

* test: test the copy-only import option

* fix: use mkdirp in reflinkPkg too
2017-12-31 00:14:42 +02:00
Zoltan Kochan
5978130a08 fix: too long folder names in node_modules
If a package has many peer dependencies, it can be placed in a
folder with a very long name. This change hashes folder names
that are longer than 32 symbols.

SEMI-BREAKING:

The structure of node_modules might change in some projects after
a clean install.

ref https://github.com/pnpm/pnpm/issues/977
2017-12-30 01:54:49 +02:00
Emanuele Tamponi
c2be0a1069 feat: incremental rebuild (#30)
* fix: run node-gyp rebuild when install is not specified

* feat: after pnpm install --ignore-script, pnpm rebuild is incremental

* refactor: add --pending option to rebuild, only store pending ids

* fix: javascript magic to avoid if statement

* fix: update pendingBuilds also when removing packages

* fix: remove old code, use testDefaults correctly

* test: add test for rebuild --pending

* chore: make my IDE and TSLint happy

* chore: @types/es6-promise makes IntelliJ happy and Travis sad

* fix: use Set, only append to pendingBuilds if ignoreScripts is true

* test: pendingBuilds handled correctly

* test: install and uninstall behavior with pendingBuilds

* fix: saveModules only when needed

* fix: Set has size, not length, add comment about the use of .concat
2017-12-29 22:44:41 +02:00
Zoltan Kochan
e1640e7c61 feat: export StatsLog 2017-12-28 01:07:31 +02:00
Zoltan Kochan
d57942ce8e feat: log installation stats about number of added/removed
BREAKING CHANGE:

The logging format changed of the installation stats
2017-12-27 02:31:41 +02:00
Zoltan Kochan
0b31c042ea fix: log the correct number of added packages 2017-12-26 02:37:21 +02:00
Zoltan Kochan
ae99b3aef6 feat: add an option for avoiding logging to extendOptions() 2017-12-25 21:11:51 +02:00
Zoltan Kochan
85ec00f689 fix: update version-selector-type to 2.0.0 2017-12-25 13:54:16 +02:00
Zoltan Kochan
4ce61da867 feat: when resolving, prefer version ranges specified for top deps
ref https://github.com/pnpm/pnpm/issues/952
2017-12-25 02:07:07 +02:00
Emanuele Tamponi
f388a13ad9 fix: run node-gyp rebuild when install is not specified 2017-12-25 01:25:38 +02:00
Emanuele Tamponi
3113be8472 fix: pass unsafePerm to lifecycle call 2017-12-24 19:56:38 +02:00
Zoltan Kochan
0191279754 chore: update dependencies 2017-12-23 15:27:04 +02:00
Zoltan Kochan
06b322b579 fix: always close the store 2017-12-16 03:10:52 +02:00
Zoltan Kochan
b600958d3b feat: storeController can be passed to supi via options
ref https://github.com/pnpm/pnpm/issues/832
2017-12-16 02:02:13 +02:00
Zoltan Kochan
abc7f1ba19 refactor: move out store-controller logic out of supi
ref https://github.com/pnpm/pnpm/issues/832
2017-12-10 23:20:01 +02:00
Zoltan Kochan
a3f1e5ec56 refactor: use @pnpm/fs-locker for locking 2017-12-10 00:56:40 +02:00
Zoltan Kochan
f1861cea5e refactor: update @pnpm/package-requester to version 0.4.0 2017-12-09 19:52:04 +02:00
Zoltan Kochan
c952203e0d refactor: update package-requester to version 0.3.0 2017-12-09 15:10:53 +02:00
Zoltan Kochan
79eadcc20c refactor: use @pnpm/package-requester
ref https://github.com/pnpm/pnpm/issues/559
close #24
2017-12-06 22:32:15 +02:00
Zoltan Kochan
8f030ed109 refactor: move option type to @pnpm/types 2017-12-04 21:39:47 +02:00
Zoltan Kochan
65f257485e refactor: use PackageManifest from @pnpm/types 2017-11-27 23:12:18 +02:00
Zoltan Kochan
7b17368689 fix: update supi to version 0.7.0
ref https://github.com/pnpm/pnpm/issues/559
2017-11-26 23:41:51 +02:00
Zoltan Kochan
5c5e738f76 refactor: specs are parsed by package-store
ref https://github.com/pnpm/pnpm/issues/559
2017-11-26 17:54:36 +02:00
Zoltan Kochan
b2140f7886 feat: allow to ignore files in packages
The opts.ignoreFile() function allows to ignore files in packages.
Ignoring means that files will neither be unpacked nor linked
into `node_modules`

Ref https://github.com/pnpm/pnpm/issues/804
2017-11-25 14:33:17 +02:00
Georgios Valotasios
4fcaa89fa2 style: make use of destructuring and remove unused code 2017-11-23 22:32:09 +02:00
Zoltan Kochan
3601df833c perf: don't duplicate the nodeId in the object. Its a key already 2017-11-21 02:04:11 +02:00
Zoltan Kochan
2b651ba770 perf: sometimes create children immediatly
close #19
2017-11-20 23:23:13 +02:00
Georgios Valotasios
2b6981556f fix: make use of function instead of getter 2017-11-20 23:15:45 +02:00
Zoltan Kochan
170334a764 perf: optimize peers resolution 2017-11-20 22:55:09 +02:00
Georgios Valotasios
ab6884457c fix: make use of a getter for children
this causes less memory consumption since the children will get computed only when needed

fixes https://github.com/pnpm/pnpm/issues/938
2017-11-19 21:10:23 +02:00
Zoltan Kochan
0d5c6914d7 feat: support aliase for npm-hosted packages
ref https://github.com/pnpm/pnpm/issues/117
ref https://github.com/pnpm/pnpm/issues/837
2017-11-19 14:42:21 +02:00
Zoltan Kochan
15a5d3468c fix: use less memory by ignoring most fields from package.json
close #17, ref https://github.com/pnpm/pnpm/issues/938
2017-11-18 23:25:55 +02:00
Zoltan Kochan
801c46eca1 fix: argunmentless installation of aliased dependencies 2017-11-18 15:49:10 +02:00
Zoltan Kochan
b5e78ffed1 feat: git dependencies can be declared with an alias name
ref https://github.com/pnpm/pnpm/issues/838
2017-11-18 12:27:33 +02:00
Zoltan Kochan
0623570389 feat: always log the latest versions of the top dependencies
ref https://github.com/pnpm/pnpm/issues/921
2017-11-13 01:10:35 +02:00
Zoltan Kochan
1c2a8f8ff6 feat: log linked packages
ref https://github.com/pnpm/pnpm/issues/732
2017-11-12 20:23:47 +02:00
Zoltan Kochan
d0a2a8cc61 fix(logging): package-json updated is always logged on install 2017-11-12 02:11:01 +02:00