Commit Graph

428 Commits

Author SHA1 Message Date
Emanuele Tamponi
fdad157392 feat: --shamefully-flatten (#42)
* feat: this is a best attempt at flattening the dependency tree, similar to what npm does

* test: shamefullyFlatten option

* feat: when uninstalling, if shamefully-flatten is true, we need to re-flatten

* fix: use new shrinkwrap, not the old one

* fix: changes suggested in PR

* test: remove test.only

* fix: various bugs in uninstall and general install, added tests

* test: fix test

* test: use project.has and project.hasNot correctly

* test: remove test.only

* test: added tsconfig.json, added lint-test script, lint fixes

* test: use correct message

* fix: check should work on windows too
2018-02-22 01:04:44 +02:00
Zoltan Kochan
6467b938a0 fix: update package-store to v0.17.0 2018-02-17 21:14:44 +02:00
Zoltan Kochan
38c43f142c fix: keep existing deps during named install with no shrinkwrap
ref pnpm/pnpm#1029
2018-02-11 21:13:10 +02:00
Zoltan Kochan
dbebdea0f2 refactor: use spread operator instead of Object.assign 2018-02-11 19:32:32 +02:00
Zoltan Kochan
4392afec0e test: running install with shrinkwrap-only
when shrinkwrap.yaml is available already

ref pnpm/pnpm#992
2018-02-11 02:13:28 +02:00
Zoltan Kochan
0cbe3cca5f test: making the tests stable 2018-02-06 01:18:28 +02:00
Zoltan Kochan
e2394fe080 feat: add an option to ignore shrinkwrap.yaml
ref pnpm/pnpm#1025
2018-02-04 21:22:08 +02:00
Zoltan Kochan
704c64d7eb fix(unlink): unlink shouldn't change package.json 2018-02-04 15:38:00 +02:00
Zoltan Kochan
6740004fe6 feat(logging): log resolution_started and importing_started
ref pnpm/pnpm#1017
2018-01-31 00:28:31 +02:00
Zoltan Kochan
85eb2a65d5 feat(logging): log the end of importing packages from store
ref pnpm/pnpm#1017
2018-01-30 22:29:11 +02:00
Zoltan Kochan
5c849b2646 fix(shrinkwrap): correctly set dev field
When a subdependency is both a dev and prod dependency of a parent
package, corrently set the dev field of the subdep.
2018-01-29 01:24:41 +02:00
Zoltan Kochan
8c5870cf97 fix: correctly update shrinkwrap.yaml on named install
close #41
2018-01-28 14:09:03 +02:00
Zoltan Kochan
30fbc48ab5 fix: using the correct tag when installing aliased deps 2018-01-28 02:03:01 +02:00
Zoltan Kochan
70c8112fb9 fix: installing aliased dep w/o version selector 2018-01-27 22:18:15 +02:00
Zoltan Kochan
58b6273ffe test: dev properties are correctly updated on named install 2018-01-25 02:05:23 +02:00
Zoltan Kochan
3a68118748 refactor: use util.promisify instead of thenify 2018-01-25 00:21:36 +02:00
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
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
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
119e66cc81 test: awaiting project.has/storeHas 2018-01-03 20:27:48 +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
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
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
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
3113be8472 fix: pass unsafePerm to lifecycle call 2017-12-24 19:56:38 +02:00
Zoltan Kochan
8f030ed109 refactor: move option type to @pnpm/types 2017-12-04 21:39:47 +02:00
Zoltan Kochan
bf945814e4 perf: remove unnecessary memoization of json requests 2017-11-29 00:45:34 +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
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
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
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
zkochan
4dd72a9249 feat(logging): show dep path of skipped optional dependencies
ref https://github.com/pnpm/pnpm/issues/760
2017-11-11 18:51:44 +02:00
zkochan
a7d5529b95 fix: skip failing enterprise test 2017-11-11 16:55:00 +02:00
zkochan
fb86150613 feat(logging): show path to package when showing warning about peers 2017-11-11 15:03:44 +02:00
zkochan
532f9adad2 fix: pure packages
pure packages are those that don't have unresolved peers down the
dependency graph.

close #15
2017-11-11 02:00:29 +02:00
zkochan
5f8f212a6c refactor: rename ManifestLog to PackageJsonLog
BREAKING CHANGE: log rename
2017-11-10 22:15:11 +02:00
zkochan
39c16b494f refactor: move log types to supi from pnpm-logger
BREAKING CHANGE:

dependends on pnpm-logger@0.7
2017-11-09 00:57:20 +02:00
zkochan
8a2388881e refactor: use PackageJson and PackageManifest instead of Package
BREAKING CHANGE:

The readPackage hook accepts a PackageManifest not a Package
2017-11-07 02:04:10 +02:00
zkochan
ab37d2a14b fix: link bins of linked package's deps correctly 2017-11-04 23:13:32 +02:00