Commit Graph

67 Commits

Author SHA1 Message Date
zkochan
fc49f78366 docs: how directory dependencies are installed 2017-06-17 23:08:35 +03:00
zkochan
725c05bc0c refactor: remove mentions of local-registry 2017-06-13 23:09:03 +03:00
zkochan
56049efde0 feat: all children are always grouped together 2017-05-15 22:12:02 +03:00
Zoltan Kochan
6314b534e4 docs(README): add section about limitations
Close #736
2017-05-14 00:48:19 +03:00
Zoltan Kochan
ef4b1f0ec6 docs: fix bad word choice 2017-05-12 00:53:03 +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
Zoltan Kochan
a1fa5d1d98 docs: update info about the package store 2017-04-28 22:43:43 +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
ec3416e37b docs: document how to release an app that uses pnpm 2017-04-22 16:53:43 +03:00
zkochan
ee1b390dfb feat: proper resolving of peer dependencies
BREAKING CHANGE: structure of node_modules changed

Close #678, PR #694
2017-04-04 23:00:48 +03:00
zkochan
5a4a46815e feat: rename pnpm verify to pnpm store status
BREAKING CHANGE: `pnpm verify` renamed to `pnpm store status`

BREAKING CHANGE: don't run `pnpm verify` before `pnpm publish`

Ref #430, Ref #658
2017-03-23 21:36:28 +02:00
zkochan
224d79b134 docs: document the major differences from npm 2017-03-13 21:49:28 +02:00
zkochan
d3b0bb0c75 feat: use a shrinkwrap file instead of graph.yaml
Ref #658

BREAKING CHANGE: no `node_modules/.graph.yaml` used anymore
2017-03-13 21:23:41 +02:00
zkochan
4f484162d4 feat: add offline support
Close #508, Close #659
2017-03-13 02:31:37 +02:00
zkochan
10cacae7fb refactor: remove redundant file 2017-02-20 02:03:19 +02:00
zkochan
b6fddf4234 feat: remove link-local
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
2017-02-18 22:45:55 +02:00
zkochan
de00178ca3 refactor: link API
BREAKING CHANGE:

Link API functions changed
2017-02-18 20:32:34 +02:00
zkochan
6ede7a77df docs: remove links to ied
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.
2017-02-14 21:52:23 +02:00
zkochan
25a8ac6d35 docs: document the new pnpm.verify() function 2017-02-06 01:18:54 +02:00
zkochan
400f6bed21 feat: limit network concurrency 2017-02-02 23:49:27 +02:00
zkochan
5f07768d2d feat: semver aware caching
Invalidate caching in semver aware way.

Remove caching into filesystem.

Rel #568, Close #580
2017-02-02 22:11:03 +02:00
zkochan
92cf129b19 chore: change repo URL 2017-01-23 22:36:01 +02:00
Rico Sta. Cruz
8cefadc9dc docs(Docpress): update GitHub URL 2017-01-23 22:01:51 +02:00
zkochan
d8684c8b5f docs: remove notes about shared store limitations
Since v0.47.0 shared stores work fine on all versions of Node
2017-01-21 19:11:36 +02:00
Zoltan Kochan
1e96e9cde0 docs: remove documentation about global install 2017-01-21 18:38:47 +02:00
Zoltan Kochan
38837b131c Pure store (#524)
* 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
2017-01-08 15:47:50 +02:00
zkochan
d86019a3de docs: fix typo in Continuous Integration recipe 2016-10-31 00:48:43 +02:00
zkochan
fe7f1d1a2e docs: delete roadmap and reference milestone v1.0.0 2016-10-30 20:41:13 +02:00
zkochan
c93a81462b docs: document usage in Continues Integration
Close #450
2016-10-30 13:48:43 +02:00
zkochan
ab099a3fa0 chore: using yaml instead of json to store store info
BREAKING CHANGE:

Change `store.json` to `store.yaml`.
2016-10-18 00:27:04 +03:00
zkochan
d688f62ab1 feat: support flat tree dependencies structure
close #403, ref #292, ref #346, ref #96, ref #394, PR #429

BREAKING CHANGE:

Store divided into flat/ and nested/
2016-10-17 22:42:14 +03:00
zkochan
d217fe7177 feat: use a global store by default on Node >= 6
Close #421
2016-10-15 14:49:08 +03:00
zkochan
307f8174a0 feat(cache): implement the cache clean command
Ref #59, PR #420
2016-10-15 01:17:10 +03:00
Zoltan Kochan
1233d07dcc feat: cache HTTP requests done to the registry
Ref #59
2016-10-14 23:35:09 +03:00
zkochan
7c5e110d3c refactor(store): unite the packages info into one property
BREAKING CHANGE:

store.json structure changed
2016-10-03 00:39:03 +03:00
zkochan
816345a8c5 feat(api): make the install API consistent with other API functions
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.
2016-09-29 00:26:18 +03:00
zkochan
f3a564afeb docs(roadmap): remove unlink because it is an alias of uninstall 2016-09-27 21:13:20 +03:00
zkochan
df05c83757 refactor(prune): move the overload of prune to a separate function
Divide the logic of prune into two functions: prune and prunePkgs.

PR #372
2016-09-27 00:02:10 +03:00
zkochan
c27b8ddf48 feat: prune
Close #299
2016-09-27 00:02:10 +03:00
zkochan
40621818bc fix(uninstall): dependencies from all sources can be deleted
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.
2016-09-25 21:28:47 +03:00
zkochan
f81becee9b docs(README): improve 2016-09-25 00:55:03 +03:00
zkochan
5ac87837d0 docs(recipes): fix URL to monorepo example 2016-09-18 17:53:49 +03:00
zkochan
2d1e039874 docs(recipes): create a monorepo recipe 2016-09-18 11:31:52 +03:00
Zoltan Kochan
d89b35c6e8 feat(install): install from local packages
close #301, PR #331
2016-08-31 10:55:44 +03:00
Zoltan Kochan
b19369407a fix: don't use ! as a delimiter in the store
! 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.
2016-08-28 15:33:07 +03:00
Zoltan Kochan
11c8cd04c2 docs(shared-store): suggest to use the store-path config key
npm has a dash convention not an underscore convention, so better to use store-path instead of store_path, even though, pnpm can work with both.
2016-08-19 20:47:31 +03:00
Zoltan Kochan
83b1e6a34b Implement pnpm link (#302)
close #235
2016-08-19 18:33:55 +03:00
Zoltan Kochan
3518299bdc Update shared-store.md 2016-08-19 02:02:47 +03:00
Zoltan Kochan
0a0b0b8011 Document the possibility to use a shared store
close #1
2016-08-19 01:55:59 +03:00
Zoltan Kochan
5c82717bcd Add additional features to the roadmap
link, unlink, prune, update
2016-08-18 21:07:51 +03:00