Commit Graph

61 Commits

Author SHA1 Message Date
zkochan
fc7262459d feat: use pnpm-shrinkwrap instead of pnpm-lockfile 2017-06-23 23:15:46 +03:00
zkochan
af79c8c319 feat: add independent-leaves config
BREAKING CHANGE:

independent dependencies are not symlinked from the global store
by default

Close #821
2017-06-23 22:03:52 +03:00
zkochan
eb5219b390 feat: moving global package to a layoutVersion subfolder
BREAKING CHANGE:

global package path changed
2017-06-23 00:57:15 +03:00
zkochan
c156101a99 refactor: rename store-path config to store
BREAKING CHANGES:

rename `store-path` config to `store`

Ref #458
2017-06-20 23:30:06 +03:00
zkochan
fbc39466a8 fix: private packages installation
Use npm's programmatic API to get auth information for private
packages.

Ref #708
2017-06-20 23:02:47 +03:00
zkochan
c3f8eaecf1 fix: specless global installation should always install latest 2017-06-18 22:51:25 +03:00
zkochan
fc73f84d23 refactor: move global tests to separate file 2017-06-18 22:38:38 +03:00
zkochan
982498c2af fix: global install should not remove everything prev installed
Ref #808
2017-06-18 20:37:17 +03:00
zkochan
85778cd5e2 feat: supporting prepare event
Print deprecation notice when `prepublish` is present.
Run `prepublish` as well for now.

Close #810
2017-06-18 19:55:21 +03:00
zkochan
65e9c1b719 fix: named installation should use spec from package.json
Close #809
2017-06-18 15:51:49 +03:00
zkochan
8dfae3be00 feat: don't add empty packages property to shrinkwrap.yaml 2017-06-17 21:03:05 +03:00
zkochan
175f50d01e feat: symlink file dependencies instead of copying them
This is roughly how npm@5 does it. However, pnpm does not try
to install dependencies of the file dependency, just a symlink
is created and the binstubs are linked into `node_modules/.bin`
if there are any.

BREAKING CHANGE:

file dependencies are symlinked instead of copied (packed/unpacked)

Ref #772
2017-06-17 19:49:18 +03:00
zkochan
5c649b1611 fix: should not fail on new installation
Should not fail when installing a new dependency in a project
that has a lockfile with other dependencies but no node_modules
folder.
2017-06-16 22:20:14 +03:00
zkochan
efd1f7c1d2 Merge branch 'master' into feat/store2 2017-06-15 22:26:31 +03:00
zkochan
7b62b97411 fix: argumentless forced installation
Close #796
2017-06-15 22:21:56 +03:00
Zoltan Kochan
0176edfbce feat: saving packages under node_modules in the store 2017-06-12 23:38:08 +03:00
zkochan
967bb72f7f fix: save packages to the correct properties
Close #727
2017-06-11 19:11:09 +03:00
zkochan
b5c6d4a5fe fix: update package on named installation 2017-06-11 18:00:22 +03:00
zkochan
e9e0d1d4a6 fix: installation of package with peers using info from shrinkwrap 2017-06-10 01:32:11 +03:00
zkochan
2c04aa69da feat: save optional deps separately in the lockfile
For correct prunning of the lockfile, it has to be known
which deps are optional. Also it has to be known which
deps are dev deps in the root.

BREAKING CHANGE:

lockfile format changed
2017-06-05 22:06:32 +03:00
zkochan
5acc4671f0 feat: support the --no-optional flag
The --no-optional argument prevents optional dependencies from
being installed.

Close #460
2017-06-05 14:46:05 +03:00
zkochan
63d3fd0a90 fix: non-compatible package should still be saved to store
Ref #759
2017-06-04 23:23:12 +03:00
zkochan
0709c2df40 test: use notOk when possible 2017-06-04 22:07:22 +03:00
zkochan
d23bcfb75f fix: link to root all root packages 2017-06-04 12:50:49 +03:00
zkochan
586afa193b perf: faster install 2017-06-03 20:50:09 +03:00
zkochan
502b566945 refactor: rename root to directory in resolution
BREAKING CHANGE:

shrinkwrap.yaml format change
2017-06-03 15:13:19 +03:00
zkochan
f414e256e8 fix: subdeps of skipped optionals are skipped as well 2017-06-03 14:31:17 +03:00
Zoltan Kochan
12abf7343a refactor: change the git resolution format 2017-05-30 22:56:43 +03:00
Zoltan Kochan
2f909a2c2b refactor: update shrinkwrap version to 3 2017-05-30 22:22:31 +03:00
Zoltan Kochan
c84cd24302 fix: non-installable optional subdependencies are not linked 2017-05-28 17:51:26 +03:00
zkochan
594ebfd5f8 refactor: add back dependencies field to root of shrinkwrap 2017-05-24 23:02:41 +03:00
zkochan
47721be6b2 fix: relinking subdendencies when updated 2017-05-22 00:05:02 +03:00
zkochan
1462157fa8 feat: using shrinkwrap.yaml for creating node_modules 2017-05-21 23:39:34 +03:00
zkochan
e95ae02917 refactor: no additional nesting when peer resolved from own dependency 2017-05-18 23:56:32 +03:00
zkochan
cc21a4ed50 refactor(shrinkwrap): dependencies => packages['/'].dependencies 2017-05-17 22:05:05 +03:00
zkochan
4aecc181fb feat: add specifiers to shrinkwrap.yaml
BREAKING CHANGE:

shrinkwrap.yaml format has changed
2017-05-17 21:10:11 +03:00
zkochan
56049efde0 feat: all children are always grouped together 2017-05-15 22:12:02 +03:00
Zoltan Kochan
89a6fc6017 feat: add createdWith property to shrinkwrap.yaml
The `name@version` of the creator of the shrinkwrap is
saved in a property called `createdWith`.

Close #729
2017-05-13 17:44:06 +03:00
zkochan
c4e2540dd2 fix(shrinkwrap): don't save absolute path shrinkwrap.yaml
Relative path to the current working directory is saved
in the `shrinkwrap.yaml`.

Close #744
2017-05-13 16:29:10 +03:00
zkochan
177ad66842 test: move local package intallation tests to separate file 2017-05-12 22:42:35 +03:00
zkochan
5699569f61 feat: always add all packages to shrinkwrap.yaml
Even dev packages when installing with the --production flag

Ref #750
2017-05-11 21:01:24 +03:00
Zoltan Kochan
5de380989a fix(linking): packages should not loose their peer deps (#761)
* test(install): peer dependencies should be resolved correctly

* fix(linking): packages should not loose their peer deps

When a peer dependency is resolved not from the direct parent,
dependent packages should be duplicated with hard links in order
to preserve the correct set of resolved peer dependencies.

Semi-breaking change. The node_modules structure is changed but
doesn't need a complete removal of a node_modules created with
previous version of pnpm.

* docs: document how peer dependencies are resolved

Ref #694, Ref #726

* docs: nicer comments in code blocks

* docs: more explanation about peer deps
2017-05-09 18:21:39 +03:00
zkochan
d3c13bdcbb perf: use a separate config for specifying repeat install depth
`repeat-install-depth` is used instead of `depth` when
analyzing the dependency tree during `install`.

Ref #722
2017-04-27 21:08:48 +03:00
Zoltan Kochan
a17a8df50c Perf/fast repeat install (#730)
* perf: validating the node_modules structure to a specified depth

Ref #722

* feat: adding an update boolean property to the install API

BREAKING CHANGE:

Dependencies won't be updated when `update` is `false`.
It doesn't matter what the value of `depth` is.
`depth` is used for specifying how deep should the install
algorithm analize the dependency tree.

Ref #722

* refactor: merge new resolved deps with the previous
2017-04-27 11:04:37 +03:00
zkochan
1b0db8444e test: assign modules to variable m alsways 2017-04-26 21:51:58 +03:00
Zoltan Kochan
5d04767778 fix: peers are resolved similarly during named and general install (#726)
* fix: peers are resolved similarly during named and general install

There is no need to always run a general installation for
creating a predictable `node_modules` structure. If peers are
resolved from top dependencies, the peers are not linked to
the dependent package. The dependent package can see such peers
w/o additional manipulations

Ref #724

* fix: don't print warning when peer is resolved from top dep

* test: verify the peer warning are reported correctly
2017-04-26 14:40:45 +03:00
zkochan
9b08ac4b79 test: installing of private package from shrinkwrap
When resolution is saved in cache and the meta info is on
a different path. Correct auth info should be used for
downloading the tarball.

Close #718
2017-04-25 22:28:47 +03:00
zkochan
33ada9f947 test: when pkg meta is not on the domain on which the tarball 2017-04-25 20:09:12 +03:00
zkochan
c8036fc930 test: add auth tests
Close #432
2017-04-25 19:50:43 +03:00
zkochan
7a9f657acf fix: installation of packages from non-github repos
Close #716
2017-04-23 20:09:37 +03:00