Commit Graph

272 Commits

Author SHA1 Message Date
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
0dfe760700 fix: respect shrinkwrap for all types of dependencies 2017-06-06 13:29:59 +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
6461f76ad8 feat: saving integrity in shrinkwrap.yaml 2017-05-30 21:10:31 +03:00
Zoltan Kochan
03433abadf refactor: use ssri for checking integrity 2017-05-29 02:12:41 +03:00
Zoltan Kochan
c84cd24302 fix: non-installable optional subdependencies are not linked 2017-05-28 17:51:26 +03:00
zkochan
505e7974e6 refactor: values in shrinkwrap.yaml/packages are always objects 2017-05-25 09:05:56 +03:00
zkochan
531aaedb58 test: dev/optional is true when package is dev/optional ONLY 2017-05-24 23:40:25 +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
zkochan
7be76944eb fix: package.json has to be normalized before usage
Close #692
2017-05-09 22:00:53 +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
2ce22d3170 fix(CLI): options are passed through to npm
Close #747
2017-05-07 10:58:08 +03:00
zkochan
62f11adc68 fix: ignoring scoped packages installed by other pms 2017-04-28 16:55:45 +03:00
zkochan
d204b13aec test: shrinkwrap is regenerated when package.json changes 2017-04-28 01:48:22 +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
zkochan
04c9c0feed fix: running repeat install on out of date node_modules
Ref #722
2017-04-27 14:46:17 +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
b911c35eb2 fix: rewrite packages added by other package managers
Close #710
2017-04-24 17:47:30 +03:00
zkochan
7a9f657acf fix: installation of packages from non-github repos
Close #716
2017-04-23 20:09:37 +03:00
zkochan
b36c9febc0 fix: peer deps are now resolved from preinstalled packages 2017-04-23 17:49:56 +03:00
Zoltan Kochan
2c46333107 fix: global installation always works now (#713)
* fix: global installation always works now

Close #711

* refactor: avoid using `read-pkg-up`

BREAKING CHANGE:

API should be called in the folder that has a package.json file.
pnpm won't search up for a package.json file.

Close #67

* docs(API): update

* refactor: write-pkg created dir on its own

* refactor: rename `globalDir` to `globalPrefix`

* feat: saving the global package in <global prefix>/pnpm-global
2017-04-22 23:11:25 +03:00
zkochan
b94aaff38a feat: use npm's config system
BREAKING CHANGE:

`rc` is not used to get configs.

BREAKING CHANGE:

`.pnpmrc` files are ignored

BREAKING CHANGE:

configs in json format are not supported

BREAKING CHANGE:

`--config` argument renamed to `--userconfig`

Close #696, Close #40
2017-04-20 23:01:14 +03:00
zkochan
4a564f50f9 test: fix uninstallation tests 2017-04-17 11:18:24 +03:00
zkochan
646eafef15 fix: installation with custom dist-tag 2017-04-15 21:59:52 +03:00
zkochan
7f426d0cc7 fix: use the new npm-package-arg 2017-04-15 20:51:03 +03:00