Commit Graph

164 Commits

Author SHA1 Message Date
Zoltan Kochan
db20dafee1 fix: update @pnpm/headless 2018-04-20 00:34:48 +03:00
Zoltan Kochan
c5ee3c7d27 feat: afterAllResolved can modify the shrinkwrap object
ref pnpm/pnpm#1119
2018-04-19 02:14:25 +03:00
Zoltan Kochan
d0d9b46796 feat: new hook - afterAllResolved()
ref pnpm/pnpm#1088
2018-04-17 23:58:57 +03:00
Zoltan Kochan
9c9d79cbbe test: fix typings to make ts-node happy 2018-04-17 22:53:48 +03:00
Zoltan Kochan
9ea263f5e5 fix: saving shrinkwrap.yaml should not fail when dep has no spec
ref pnpm/pnpm#1104
2018-04-14 23:39:00 +03:00
Zoltan Kochan
1191b67b41 perf: optimize the dependencies build step
ref pnpm/pnpm#1109
2018-04-13 01:24:22 +03:00
Zoltan Kochan
10ae8cc892 fix: update @pnpm/lifecycle and @pnpm/headless
BREAKING CHANGE: the format of lifecycle logs has changed
2018-04-08 01:03:35 +03:00
Zoltan Kochan
6aed1cf225 fix(lifecycle): run scripts of deps in correct order 2018-03-31 20:07:06 +03:00
Zoltan Kochan
a0d991530e fix(frozen-shrinkwrap): don't fail when no shrinkwrap.yaml present
ref pnpm/pnpm#1065
2018-03-25 23:45:48 +03:00
Zoltan Kochan
11eea5abd6 fix: prefer existing version of non-pure deps during installation
ref pnpm/pnpm#1092
2018-03-25 14:54:00 +03:00
Zoltan Kochan
0f33896ef3 feat: implement frozen-shrinkwrap (headless) installation
ref pnpm/pnpm#1065
PR #58
2018-03-24 15:11:43 +02:00
Emanuele Tamponi
4030cc361f fix: notDependents should be an array of dep paths
* fix: notDependents should be an array of dep paths

* test: remove testOnly

* fix: pass pkgIds to updateConnections()

* refactor: use strict types

* refactor: rename notDependent to orphan

ref #52
2018-03-08 13:10:06 +02:00
Zoltan Kochan
12a26da8e1 feat: allow modifying root package with readPackage() hook
ref pnpm/pnpm#1063
2018-03-07 21:02:48 +02:00
Zoltan Kochan
3868a14d75 refactor: rename tree to graph 2018-03-06 23:25:39 +02:00
Zoltan Kochan
bc34aba650 style: adhere conventions 2018-03-05 15:49:34 +02:00
Zoltan Kochan
02f57c15ba test: directory dependencies via the link: spec
ref pnpm/pnpm#1061
2018-03-03 01:47:36 +02:00
Zoltan Kochan
3063a6b7ea fix: create package.json during installation when there is no one
ref pnpm/pnpm#1049
2018-03-01 00:28:22 +02:00
Zoltan Kochan
98dc2cdf0b feat: force local tarball fetch when its integrity has changed
BREAKING CHANGE:

requestPackage() of the storeController is expected to answer
with a pkgResponse.body.updated

ref pnpm/pnpm#1054
2018-02-28 02:08:44 +02:00
Emanuele Tamponi
7a4661df37 fix: use the real path to node_modules (#49)
BREAKING CHANGE:

The API of link() has changed. The second param should be the target `node_modules` folder
2018-02-27 21:35:20 +02:00
Zoltan Kochan
4ebec14158 test: fix and skip the local tarball update test 2018-02-27 01:44:21 +02:00
Zoltan Kochan
b8db1aa3b7 test: local tarball deps are updated on integrity mismatch
ref pnpm/pnpm#1054
2018-02-27 00:23:35 +02:00
Emanuele Tamponi
c3a32113c7 fix: flatten peer dependencies correctly (#48)
* fix: children contains absolutePaths, not ids

* fix: it is dependency path, as per review
2018-02-26 20:22:17 +02:00
Emanuele Tamponi
556910e9aa fix: flatten dependencies by alias (#47)
* fix: flatten by alias

* fix: rename field, other fixes

* fix: more bug fixes

* fix: make all tests run, write a (failing) test for pruning

* fix: reflatten after pruning

* fix: do not log installation/removal of hoisted aliases

* fix: follow review comments

* fix: use muteLogs instead of skipLogs
2018-02-25 13:42:17 +02:00
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
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
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
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
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
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
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
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
d0a2a8cc61 fix(logging): package-json updated is always logged on install 2017-11-12 02:11:01 +02:00