* 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
* 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
It is broken since the bit `Pure Store` and seems nobody even noticed.
This functionality should be implemented in a separate tool that
uses pnpm's API.
BREAKING CHANGE:
Remove the link-local option
ied is better ranked in organic search results than pnpm.
Linking to a page with similar content makes that page better
ranked by Google. Removing the links gives pnpm better chances to
compete.
* 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
BREAKING CHANGE:
The `installPkgDeps` API function is now called `install`.
The old `install` is renamed to `installPkgs`. Unlike the old `install`,
`installPkgs` does nothing, if the `pkgs` array contains no elements.