Commit Graph

15 Commits

Author SHA1 Message Date
Haoqun Jiang
813680eced fix: should use the local version number if the cache falls behind 2020-02-05 14:39:52 +08:00
Haoqun Jiang
773f8a47e9 feat: lock minor versions when creating projects / adding plugins (#5134)
* feat: lock minor versions when creating projects / adding plugins

closes #5012

* refactor: also calculate latestMinor version

* feat: support add packages with tilde version range

* refactor: make the `runCommand` invocations more concise

* refactor: use the `getVersions` utility function to get latestMinor

* feat: when adding plugins, use tilde range by default

* fix: allow empty args
2020-02-04 16:26:32 +08:00
Haoqun Jiang
1a0b59142a refactor: use dependencies from @vue/cli-share-utils whenver possible 2019-11-29 15:41:18 +08:00
Haoqun Jiang
964fad5968 fix: should tolerate cli version check error (#4741)
* fix: should tolerate cli version check error

* fix: add the error message after the DEBUG indicator
2019-10-22 19:08:32 +08:00
Haoqun Jiang
debc3f19b2 fix: fix latest version check when current version is a prerelease (#4295) 2019-07-16 23:31:00 +08:00
Haoqun Jiang
4af27247cc refactor: unify package manager related logic (#4256) 2019-07-13 00:29:39 +08:00
Haoqun Jiang
ae2a9bc145 fix: fix typo 2018-12-04 20:51:57 +08:00
Haoqun Jiang
31ffcfe0ca feat: new release strategy (#3020)
## Summary
- Keep package minors in sync (`lerna publish --force-publish` when releasing a new minor)
- Patch on demand (`lerna publish` fixed mode)
- `eslint-config-*` packages are published manually

## Longer Description
1. We used to force publish every package till v3.1, this is due to the unbalanced update frequency among different plugins. In practice, some of them, like the pwa plugin, are quite stable and rarely need updating. So force publishing is overkill now.
2. We have switched to independent mode then, for two major benefits: 1) patching on demand and only on demand 2) eslint config packages needs a more aggressive update strategy in practice, due to the frequent breaking changes in the upstream packages. However, this also causes maintenance burden and confusion to end users. So it's far from ideal.
3. So now we choose to go back fixed versioning. By default lerna would skip untouched packages when publishing a new version. This might be confusing as we think. So to reduce the cognitive load, we still keep each package's minor field in sync.

## Implementation Detail

1. To selectively publish packages, we have to disable `useWorkspaces` in lerna so that these packages can be linked by yarn while being unrecognizable to lerna.
2. Due to an oversight in the old version checking code, version fields in `vue-cli-version-marker` needs to be exact versions, otherwise cli will throw on startup. So we have to publish `vue-cli-version-marker` manually after other package updates. This logic can be removed once all users have been upgrade to 3.2.0+ and we can then add it back to `packages` in `lerna.json`
3. We now use `~/.vuerc` to cache version check results. This also fixes #2956
2018-11-28 02:12:05 +08:00
Haoqun Jiang
044f5b3b7e refactor: use a version map to determine the newest dependency versions
Now that lerna independent mode is used to release new versions, we can
no longer ensure the core service/plugin versions are in sync with
@vue/cli itself. So `vue-cli-version-marker` is now used to store the
latest version map of core packages.

In order to automate this process, all the core cli packages are listed
as `devDependencies` of `vue-cli-version-marker`. This will cause a
cyclic dependency warning in lerna bootstrap, and that warning can be
safely ignored because these are just `devDependencies` which won't
affect end users.

Another gotcha is that the version of `vue-cli-version-marker` will be
bumped each time we do a release. This may break the remote version
check logic before rc.12 (due to
1ae223dfc0 (diff-ac5fc3f8b11df9fc948b8e5aa52a074e)
the background version check might never get executed since rc.12)
2018-11-12 14:24:41 +08:00
Evan You
1ae223dfc0 refactor: refactor getVersions logic 2018-08-08 11:01:49 -04:00
Adam Weber
9f0bf082e6 fix: version check ignores cached version. fixes #1613 (#1614) 2018-07-11 13:24:20 +02:00
Evan You
1ddeefc2ee refactor: avoid version check affecting startup time 2018-06-05 15:48:22 -04:00
Guillaume Chau
b9a714c32a feat(ui): wip plugins list 2018-03-11 19:36:23 +01:00
Wade Tandy
e8aa68864c fix: fix usage with https proxy by switching from axios to request (#829)
Closes #785

Axios has a [known issue](https://github.com/axios/axios/issues/658)
that causes requests to hang when accessing an HTTPS resource via a
proxy served over HTTP.  This changes out the axios dependency for the
[request](https://github.com/request/request) library. In order to keep
`async/await` conventions easy, I also dropped in the
[request-promise-native](https://github.com/request/request-promise-native)
dependency.
2018-02-12 16:41:23 -05:00
Evan You
3df1289cd9 feat: check and show newer version on create 2018-02-02 15:25:10 -05:00