* 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.
pnpm uninstall could not always link the dependency name to the
dependency ID (used in the store). To solve this issue, a dependency
name to ID map is added to the dependencies section of `store.json`.
PR #371
BREAKING CHANGE:
The structure of the `store.json` has been changed.
Previously the dependencies property contained just a list of
dependency IDs. E.g.:
```json
{
"dependencies": {
"math": [
"sum@1.0.0",
"@zkochan+max@2.1.0"
]
}
}
```
With this structure it was hard to link the dependencies to their IDs.
The new structure uses a map which links the dependency to its ID:
```json
{
"dependencies": {
"map": {
"sum": "sum@1.0.0",
"@zkochan/max": "@zkochan+max@2.1.0"
}
}
}
```
Unfortunately the stores created by older version of pnpm are not usable
after this breaking change. They have to be removed before using the new
version of pnpm.
! can be part of a valid npm package name. Use + as a
delimiter instead.
close#276, PR #320
BREAKING CHANGE:
Stores created with the ! delimiter are not compatible
with the new version that uses +.
Any store created by older versions of pnpm has to be
removed and reinstalled.