Commit graph

52 commits

Author SHA1 Message Date
Rhys Arkins
e8fdf130c9 fix: handle unstable releases with upgradeInRange
Fixes when a ranged version had a semver release part (e.g. 1.2.3-rc.5).

Closes #1689
2018-03-20 07:20:14 +01:00
Rhys Arkins
308ed432db
feat: upgradeInRange (#1608)
Upgrade ranges to latest version even if latest version satisfies existing range.

| name    | value   |
| ------- | ------- |
| type    | boolean |
| default | false   |

By default, Renovate assumes that if you are using ranges then it's because you want them to be wide/open. As such, Renovate won't deliberately "narrow" the range by increasing the semver value inside.

For example, if your `package.json` specifies a value for `left-pad` of `^1.0.0` and the latest version on npmjs is `1.2.0`, then Renovate won't change anything. If instead you'd prefer to be updated to `^1.2.0` in cases like this, then set `upgradeInRange` to `true` in your Renovate config.

This feature supports simple caret (`^`) and tilde (`~`) ranges only, like `^1.0.0` and `~1.0.0`. It is not compatible with `pinVersions=true`.

Closes #1607
2018-03-07 07:41:10 +01:00
Rhys Arkins
7f9d73a318 feat: allowedVersions
A semver range defining allowed versions for dependencies

| name | value  |
| ---- | ------ |
| type | string |

Use this - usually within a packageRule - to limit how far to upgrade a dependency. For example, if you wish to upgrade to angular v1.5 but not to `angular` v1.6 or higher, you could defined this to be `<= 1.5` or `< 1.6.0`:

```
  "packageRules": [{
    "packageNames": ["angular"],
    "allowedVersions": "<=1.5"
  }]
```
2018-03-03 06:35:11 +01:00
Rhys Arkins
bc684c7b29 fix: implicit patch-only upgrade
Use type ‘patch’ only when patch automerge is true AND minor automerge is not true.
2018-02-27 14:50:09 +01:00
Rhys Arkins
1610752547 fix: add check for version.time (npmjs) 2018-02-08 06:50:10 +01:00
Rhys Arkins
cadb4b796f fix: massage updated less than/greater than to match existing format 2018-02-01 08:25:52 +01:00
Rhys Arkins
f621e93519 chore: add better metadata to packge-file and package logging 2018-01-28 14:51:55 +01:00
Rhys Arkins
b2b0e42492 fix: do not jump unstable majors unless configured to do so 2018-01-27 16:18:18 +01:00
Rhys Arkins
fda9fcc289 fix: only use lockedVersion when pinning 2018-01-26 12:31:52 +01:00
Rhys Arkins
2830a33aab fix: check for valid lockedVersion
When pinning, check that the “version” in a lock file is a valid semver, and ignore it if not.
2018-01-26 11:49:44 +01:00
Rhys Arkins
79e9ce6d8f feat: pin npm dependencies using lock files
When package-lock.json or yarn.lock files are present, and Renovate needs to “pin” any dependencies (e.g. after onboarding), it will use whatever version is in the lockfile rather than the latest version on npm js that satisfies the semver range. This should increase the chance that Pin Dependencies PRs pass tests, as it should use as close as possible dependencies as the previous time the lock file was committed to master. Thanks to @alexeagle for first suggesting this.

Closes #1362
2018-01-26 10:18:40 +01:00
Rhys Arkins
0925f59262
feat: versionStrategy (#1439)
Adds new config option `versionStrategy` that allows config to override Renovate’s autodetection of when to “widen” an existing semver range, and when to “replace”.
2018-01-24 15:26:37 +01:00
Rhys Arkins
1b535af43e
feat: hyphen range support (#1437)
Adds support for ranges, such as `”1.x - 2.x”`. Adds support for widening .x ranges, e.g. `”1.x || 2.x”` becomes updated to `”1.x || 2.x || 3.x”`.

Closes #687
2018-01-24 11:23:59 +01:00
Rhys Arkins
f943d6b27c
feat: widen semver || ranges (#1436)
When an “or” semver (e.g. “react”: “^14.4.0 || ^15.0.0”) is found, we now widen it. e.g. the result will be “^14.4.0 || ^15.0.0”.
2018-01-24 09:44:38 +01:00
Rhys Arkins
bf64d62dc8
feat: advanced semver "less than (and equal to)" support (#1435)
Adds support for "less than" semver, and for complex semver values that end in "less than" e.g. ">= 1.0.0 < 2.0.0". Also supports complex semver values that end in "less than or equal to", although they make a lot less sense, e.g. ">= 1.0.0 <= 2.0.0".

Closes #1433
2018-01-24 08:43:27 +01:00
Rhys Arkins
9504fb8abb
refactor: use handlebars triple escapes in templates (#1434)
This stops HTML substitution from occurring
2018-01-24 07:18:11 +01:00
Rhys Arkins
ef17430d7a refactor: lower bazel and semver warnings to info logs 2018-01-23 13:00:05 +01:00
Rhys Arkins
494dc08897
refactor: unsatisfied range warn -> info (#1278)
* refactor: unsatisfied range warn -> info

* refactor: downgrade setNewValue warn -> info
2017-12-08 09:39:40 +01:00
Rhys Arkins
04e505d483
fix: handle existing range with no matching versions (#1273) 2017-12-06 18:53:55 +01:00
Rhys Arkins
b5ef020e76 refactor: log npmDep.name when determining upgrades 2017-12-06 17:40:18 +01:00
renovate[bot]
73506f9043 chore(deps): update dependency prettier to v1.9.0 (#1267)
* chore(deps): update dependency prettier to v1.9.0

* run prettier
2017-12-05 11:50:16 +01:00
Rhys Arkins
d56654cd88
fix: don’t exception if no rollback versions found (#1263) 2017-12-04 15:07:35 +01:00
Rhys Arkins
65a5e90bb7
feat: split semanticPrefix into type and scope 2017-11-24 07:14:58 +01:00
Rhys Arkins
51cde5d03f
feat: multipleMajorPrs (#1129)
With this PR, Renovate will default to raising only one major PR at a time. e.g. if you have Webpack 1.x then you will get only one major PR for webpack v3 and not also for v2. set multipleMajorPrs=true to get multiple.

Closes #1101
2017-11-10 04:57:07 +01:00
Rhys Arkins
8c479071fd
refactor: use global logger (#1116) 2017-11-08 06:44:03 +01:00
renovate[bot]
c1df1b2cb8 chore(deps): update dependency prettier to v1.8.0 (#1113)
* chore(deps): update dependency prettier to v1.8.0

* reformat
2017-11-07 11:52:15 +01:00
Rhys Arkins
2cd741d1df feat: deprecate ignoreFuture configuration option (#1063)
Drop support for (unused) ignoreFuture option.

Closes #588

BREAKING CHANGE: Support is removed for ignoreFuture configuration option
2017-11-01 13:13:55 +01:00
Rhys Arkins
e42b4034eb feat: sanitize branch names (#872)
Previously, you might see branch names like `renovate/@types/jquery-3.x`. Now, such branches will instead be like `renovate/types-jquery-3.x`.
2017-10-02 11:38:42 +02:00
renovate[bot]
cfc6c5ccdf fix: update dependency eslint-config-airbnb-base to v12 (#771)
* chore(deps): update dependency eslint-config-airbnb-base to v12.0.0

* fix lint
2017-09-15 19:46:25 +02:00
Rhys Arkins
dd6f3630b6 refactor: move pin config to definitions (#791) 2017-09-13 20:52:07 +02:00
Rhys Arkins
3917fc6bae fix: explicitly check automerge = true (#728)
* fix: explicitly check automerge = true

* update presets fixtures and tests

* fix versions tests

* update tests
2017-08-24 12:39:23 +02:00
Rhys Arkins
b657d3c291 feat: support lock file maintenance automerge (#712)
Refactored the `automerge` field to change it to boolean. Existing string will be migrated to new config. Automerging lock files is now possible by adding `”lockFileMaintenance”: { ”automerge”: true}` to config.

Closes #706
2017-08-21 13:41:48 +02:00
Rhys Arkins
e9f672060e fix: disable unpublish-safe default (#672)
It was a mistake to enable this feature by default, and should be disabled. A check has been made to set the status to “success” if it was previously “pending” and the setting is now false. This should also cover the case when someone enables it and then disables it.

Fixes #667
2017-08-14 06:27:00 +02:00
Rhys Arkins
d7a6bbe367 feat: unpublish-safe status check (#635)
Renovate now adds a status check renovate/unpublish-safe that has the following behaviour:
If any upgrade in the branch is < 24 hours old then the status check state is "pending"
If all upgrades in the branch are 24 hours or more old then the status check state is "success"
This is able to be disabled via a new option "unpublishSafe".

Closes #494
2017-08-06 15:38:10 +02:00
Rhys Arkins
e7ce772e94 feat: Make semanticPrefix implicit in templates (#608)
No need for {{semanticPrefix}} to be specified in templates now - it will be implicitly added to start of commit message and PR titles if semanticCommits=true
2017-08-04 12:34:42 +02:00
Rhys Arkins
134065c7c7 refactor: use branch prefix in templates (#604)
This allows for the easy overriding of our default `renovate/` branch naming.

Closes #586
2017-08-04 08:32:22 +02:00
Rhys Arkins
db2e6dd1b9 refactor: Convert Object.assign to spread (#585)
Closes #226
2017-08-03 08:01:20 +02:00
Rhys Arkins
d9d131de6c feat: Full patch separation support (#572)
This PR adds explicit patch support. A user can set `separatePatchReleases` to true and receive not only major/minor updates but also patch updates separately. This functionality is also implicitly enabled if `automerge` is set to `patch`.
This PR also enables separate major/minor/patch configuration, e.g. config overrides for major versions, for patch versions, etc. `branchName` is currently overridden for patch branches using this technique.

Closes #390, Closes #538
2017-08-01 17:10:53 +02:00
Rhys Arkins
6c7382df14 fix: Check for valid version before performing npm lookup (#565)
Closes #564
2017-07-31 16:03:19 +02:00
Ika
3c83075fb8 feat: add 'patch' option to automerge (#539)
* feat: add 'patch' option to automerge

* test: add tests for automerge = patch

* docs: add patch option to automerge

* refactor(isAutomergeEnabled): write code verbosely

* feat: export isAutomergeEnabled

* test(isAutomergeEnabled): add tests
2017-07-27 22:17:28 +02:00
Rhys Arkins
8e7fe1d37b chore(logger): Reduce some log.warn to debug 2017-07-19 05:55:21 +02:00
Rhys Arkins
475e548e9c feat(versions): Roll back if current version missing/unpublished (#497)
If the current version is not in the version list on the npm registry, we assume it has been unpublished and we raise a roll back PR.

Closes #493
2017-07-18 20:01:00 +02:00
Rhys Arkins
0e00dc3f83 fix(templates): Set semanticPrefix for Pin Dependencies 2017-07-07 11:16:03 +02:00
Rhys Arkins
ea4e370d3f feat: Prune stale branches (#441)
A separate routine is run after branch creation to detect any branches that should be deleted. A branch will be removed if:
- It was not created by renovate in the last run, AND
- It has no PR, or its corresponding PR is not mergeable

Closes #426, Closes #428
2017-07-05 11:57:22 +02:00
Rhys Arkins
1716e122cd feat: expand PR errors (#437)
Errors in PRs are expanded to include:
- If renovate.json parsing fails
- If an empty or unparseable package.json was found

Closes #435
2017-07-05 07:12:25 +02:00
Rhys Arkins
2f987a4037 feat: Show warnings and errors in Onboarding PR (#432)
Warnings and Errors are bubbled up when renovating a repository, together with the existing upgrades. The Onboarding PR ("Configure Renovate") now displays them and encourages the user to fix before merging/closing the PR.

Closes #414
2017-07-04 12:39:28 +02:00
Rhys Arkins
3ec668225a fix: use new config for pin.group.prTitle 2017-07-02 06:38:59 +02:00
Rhys Arkins
552b5e68c5 Refactor helpers (#382)
* Move yarn and npm helpers into branch worker

* Fix name

* Move package-json helper

* Update name

* Move changelog

* Move github-app

* Remove unused platform

* Move logger

* Fix lint
2017-06-29 07:29:41 +02:00
Rhys Arkins
a8da588f13 Don’t warn if currentVersion is a known tag
Closes #333
2017-06-28 12:45:18 +02:00
renovate[bot]
5a9a66bd2b Update dependency prettier to version 1.5.2 (#365)
* Update dependency prettier to version 1.5.2

* lint fix
2017-06-28 12:23:57 +02:00