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
I replaved `ResolveResult` with `Resolution` which is more detailed type, a
discriminated union.
Then I removed `fetch` attribute from `ResolveResult` and moved that logic to
`fetchResolution` function. Thus removing `src/resolve/fetch` module entirely.
* feat: drop Node.js <= 6.3 support
BREAKING CHANGE:
drop support of Node.js pre-6.3
* refactor: remove the redundant subfolder in store
* refactor: rename linkPeers
* refactor: remove not used code
* feat: link each file separately
* refactor: change store structure
* refactor: resolve github dependencies to commits
* chore(package.json): pass --preserve-symlinks to ts-node
* test: temporarily skip failing tests
* refactor(git): use more human-friendly Git IDs
* refactor: resolve
* refactor: divide resolution and fetching
* refactor(fetch): better variable naming
* feat: add shrinkwrap.yaml
* test(shrinkwrap): shrinkwrap locks dependencies
* style: fix typing issue
* fix(fetch): properly link node_modules on repeat install
* refactor: comment skipped test with single-line comments
* fix: circular symlinks are avoided
* refactor(fetch): remove redundant type properties
* test: additional check for circular symlinks
* feat: saving dependency graph in node_modules instead of in store
BREAKING CHANGE:
Dependency graph moved out from store
* feat: add store.yaml with info about dependent projects
* refactor: remove name from FetchedPackage
* refactor: change the location of packages from npm in store
BREAKING CHANGE:
Structure of store changed
* refactor: change global store path
BREAKING CHANGE:
Move the store path out of ~/.pnpm
* refactor: remove justFetched from FetchedPackage
* refactor(install): use functional programming to filter deps
* refactor(install): remove redundant node_modules creation
* fix(install): installation of concurent circular dependencies
* feat: copy not link some packages
Packages that have install lifecycle events are copied not linked.
* fix(store.yaml): don't duplicate records
* perf: resolve a package only once per project
* test: concurrent installation of the same dependency
* fix: packages are not removed in the middle of fetch
* fix: dependencies are linked only once
* fix: make linking work on Windows
* fix: installing local dependencies on Windows
* fix: don't reinstall dependencies of the same package
* fix(bin): the run function always returns a Promise
* fix: use hard links to link files to the .resolutions folder
* fix: peers are linked into the correct location
* fix: bundled dependencies are not reinstalled
* refactor: remove unsymlink
It is not used anymore
* chore(CI): test on Node.js v4 as well
* refactor: use UPPER_CASE for constants
* chore(package): return support of Node.js v4
* fix: make pnpm Node.js 4 compatible again
* test: don't run tsnode with --preserve-symlinks
--preserve-symlinks makes tests fail on Node.js 4
* fix(bin): don't use --preserve-symlinks on Node pre-6.3
* test: use global stores in tests
* fix: flat-tree installation should not work on Node 4
* fix: show warning
When trying to install into a node_modules created by older pnpm
* refactor: change the global store location
From `~/.store` to `~/.pnpm-store`
* docs: note that some of the info is out of date
* test: fix typing error
* test: fix frequently failing test