Commit graph

279 commits

Author SHA1 Message Date
Rhys Arkins
9dc7b867f3 fix(bundler): handle explicit equals replace 2020-01-15 04:45:00 +01:00
Rhys Arkins
91c23e91b1 fix(bundler): handle major range update 2020-01-14 17:37:19 +01:00
Rhys Arkins
234dd4ee37 fix(bundler): handle precision changes 2020-01-14 16:03:07 +01:00
Rhys Arkins
ba1806fd8f
fix(bundler): update common complex ranges correctly (#5143)
Fixes #5050
2020-01-14 14:16:58 +01:00
Sourav Das
ee153e560e feat: use error constants (#5088) (#5100)
Use defined error constants throughout codebase.
2020-01-12 08:50:11 +01:00
Sergio Zharinov
5df9d9a982 fix(maven): Fine-grained qualifier comparison (#5091) 2020-01-02 15:29:48 +00:00
Rhys Arkins
118a3452e2
fix(ruby): match precision for new ranges (#5035) 2019-12-21 10:59:07 +01:00
Rhys Arkins
e34ea67a4e fix: revert ruby changes
Potential memory leak, so reverting out of caution.
2019-12-14 09:31:22 +01:00
Sergio Zharinov
dafe5a653d feat(ruby): Switch to @renovate/ruby-semver library (#4861) 2019-12-11 17:10:18 +01:00
Sergio Zharinov
487058399a feat(ruby): Preserve whitespace delimiter when bumping range (#4966) 2019-12-11 13:51:48 +02:00
Sergio Zharinov
ab31e511fd feat(ruby): Allow versions with leading 'v' (#4965) 2019-12-11 10:25:54 +02:00
Jamie Magee
ae2f0f7c84 feat: Initial support for git submodules (#4605) 2019-11-28 20:04:54 +01:00
Michael Kriese
5dc990cfce fix(versioning): check for null version at regex (#4897) 2019-11-28 12:06:44 +01:00
Rhys Arkins
8d0aa39920 refactor(eslint): '@typescript-eslint/explicit-function-return-type' improvements 2019-11-24 08:43:24 +01:00
Rhys Arkins
473b7e1f4b refactor(eslint): enable @typescript-eslint/no-use-before-define 2019-11-24 05:09:13 +01:00
Mark Raymond
5d01acc514 feat(nuget): add version scheme (#4749) 2019-11-01 20:10:33 +01:00
Rhys Arkins
5d77de825d fix(maven): support RELEASE and LATEST 2019-10-06 10:54:23 +02:00
Sergio Zharinov
982896d5d1 feat: Elixir support (#4496) 2019-10-04 09:13:14 +02:00
Rhys Arkins
8a4e5ccb12
fix: add try/throw within util/regex (#4453) 2019-09-09 12:21:01 +02:00
Michael Kriese
b0d1de8e59 fix: optional re2 package (#4367) 2019-08-25 14:29:51 +02:00
Kevin James
f27c53f4c8 fix(versioner): fixup regex rollback logic (#4358)
As described on Slack, the regex versioner is currently causing bad PRs
such as [this](https://github.com/TheKevJames/experiments/pull/8) since
it can not properly track the current version. By parsing the `range`
values with the same logic as the other version strings, eveverything
should match up properly.
2019-08-23 23:01:20 +02:00
Kevin James
e661e24e5f docs(regex): fixup regex docs (#4347) 2019-08-23 05:44:51 +02:00
Michael Kriese
8073612d85 feat(versioning): Add regex versioner (#4323)
The regex versioner supports arbitrary, user-defined versioning
methods; it provides building blocks in the way of interacting capture
groups within a user-defined regex which can be combined to support
arbitrary use-cases.

Uses a new `versionConfig` option to configure this scheme -- this
feature is enabled dynamically for any new versioner which includes the
optional `configure?(new_config: string)` interface. Warns if used with
an invalid scheme.
2019-08-22 20:09:23 +02:00
IKEDA Sho
3a2c041ce1 chore(maven): add more type annotations (#4301) 2019-08-17 21:21:14 +02:00
Michael Kriese
9037edf7a6 feat(versioning): add class based versioning schemes (#4293) 2019-08-15 09:51:16 +02:00
Rhys Arkins
77cd757bc9 fix(pep440): keep spacing consistency for complex ranges 2019-07-29 08:17:58 +02:00
Michael Kriese
6f99118f7c feat(manager): convert to typescript (#4148) 2019-07-25 08:17:19 +02:00
Rhys Arkins
14a3567809 tests: fix coverage 2019-07-22 14:26:12 +02:00
Michael Kriese
23e35a433d feat(versioning): convert to typescript (#4141) 2019-07-22 13:12:40 +02:00
Sergio Zharinov
781a929dd9 feat(maven): Support for pin strategy (#4127) 2019-07-22 11:17:43 +02:00
Michael Kriese
0fc566cfeb fix(ruby): fix versioning increment (#4144) 2019-07-22 09:55:58 +02:00
Jamie Magee
f334c568a5 feat(typescript): convert logger to typescript (#3671) 2019-07-15 11:04:05 +02:00
Sergio Zharinov
acd318a1d9 feat(swift): Support for Package.swift files (#3911) 2019-06-24 19:43:48 +03:00
Rhys Arkins
fd954f09c8 fix(composer): defensive versioning 2019-06-15 08:53:56 +02:00
Sergio Zharinov
edec4ad307 fix(maven): Fix comparing versions with leading zero (#3884) 2019-06-04 10:35:28 +02:00
Rhys Arkins
7ac3b07914 fix(python): default to rangeStrategy=replace
Use rangeStrategy=replace whenever an unsupported rangeStragegy is in use (e.g. update-lockfile).
2019-05-15 07:19:06 +02:00
Rhys Arkins
3461705e4c fix(maven): isVersion/isSingleVersion/isValid 2019-05-14 19:08:40 +02:00
Sergio Zharinov
d68da97edd feat(ivy): Add support for Ivy version scheme (#3541) 2019-04-22 12:53:01 +02:00
Sergio Zharinov
03df0cf8cd refactor: Maven versioning scheme (#3550) 2019-04-16 23:21:49 +02:00
Jamie Magee
05a46ddb4c fix: nodejs 11 support (#3549)
Due to an update in the v8 runtime, Node.js `Array.prototype.sort()` is now stable (See [here](https://github.com/nodejs/node/pull/22754#issuecomment-423452575)).

These changes allow for tests to pass on both Node.js 10 and 11.

Fixes #3445
2019-04-16 16:03:37 +02:00
Nikita Chashchinskii
9d74afe9f2 feat: Add support for python poetry manager (#3440) 2019-04-07 09:48:48 +03:00
Nikita Chashchinskii
6684a95c6b feat: Add poetry versioning code (#3432)
feat: Add poetry versioning code
2019-03-24 16:28:02 +01:00
Rhys Arkins
d4b300e8a2 fix(maven): add matches safety checks 2019-03-21 10:00:31 +01:00
Sergio Zharinov
6f7b6e42ba feat(maven): Add support for allowedVersions (#3421)
This PR implements version matching against Maven ranges

Closes #3411
2019-03-21 08:26:17 +01:00
Konstantin_Kurganov
1fc0a889fb feat: hex versioning (#3345) 2019-03-19 10:11:50 +01:00
Sergio Zharinov
be597e8d7f fix(maven): Allow leading qualifiers (#3357)
This PR allows exotic versions starting with letters

Closes #3350
2019-03-11 16:57:23 +01:00
Rhys Arkins
6ede22ab03 fix: lockfile-update => update-lockfile 2019-03-08 08:16:26 +01:00
renovate[bot]
3a7afd768f chore(deps): update dependency jest to v24 (#3316) 2019-03-07 12:38:59 +01:00
Rhys Arkins
b45ae59a2f refactor: debug not warn for unsupported range type 2019-03-06 16:00:21 +01:00
Rhys Arkins
a61f1ab5ce fix(composer): coerce version 2019-03-01 09:56:29 +01:00
Rhys Arkins
0f5acb27b7 tests: fix coverage 2019-02-28 10:23:36 +01:00
Rhys Arkins
009c58b65e tests: fix lint 2019-02-28 09:23:31 +01:00
Rhys Arkins
0ed684890a fix(composer): return toVersion when pinning 2019-02-28 09:14:42 +01:00
FidoX
53fb84878a fix(gradle): collect deps (#3270) 2019-02-26 21:46:32 +01:00
Sergio Zharinov
6694bdbb70 feat(maven): add maven ranges parsing (#3206) 2019-02-23 21:34:03 +01:00
Rhys Arkins
62d92660b2
feat: new 'lockfile-update' rangeStrategy (#3108)
Adds a new `rangeStrategy` value `lockfile-update'. Enabling this means you will get PRs that contain updates for the versions in your lock file (currently npm and yarn only) even if the range in the `package.json` file hasn't changed because the update is "in range".

Closes #1382
2019-01-24 06:23:08 +01:00
Rhys Arkins
34c8ebe486 fix(ruby): replace complex ranges 2019-01-13 11:08:11 +01:00
Rhys Arkins
ac63a5097c fix(ruby): isValid for complex ranges 2019-01-13 10:39:48 +01:00
Rhys Arkins
b01f7e64ca fix: improve versioning test 2019-01-07 23:56:18 +01:00
Rhys Arkins
3946365430 chore: alphabetical order 2019-01-07 16:55:27 +01:00
Rhys Arkins
e5cd1cd4b0 docs: add versioning readmes 2019-01-07 16:19:15 +01:00
Rhys Arkins
ef0ad09fe7 chore: move cargo comments 2019-01-07 15:00:32 +01:00
Rhys Arkins
6d09535c9f
feat: split out npm versioning from semver (#3023)
Closes #2069
2019-01-07 05:49:47 +01:00
Sergio Zharinov
94491ba0d0 feat: Implement auxiliary functions for maven versioning (#3028) 2019-01-05 17:32:55 +01:00
Rhys Arkins
56d55fb1dc feat: node versioning
Very basic at first. A slim wrapper around npm semver that normalizes versions.
2019-01-04 12:41:22 +01:00
Rhys Arkins
9e0cadb754 chore: add maven versioning skeleton 2019-01-04 10:18:47 +01:00
Sergio Zharinov
e9ee0179c5 feat: maven compare functions (#3020)
Adds comparator function, in readiness for full Ruby versioning support later.
2019-01-04 11:11:42 +02:00
Rhys Arkins
738408b728 refactor: semver-hashicorp -> hashicorp 2019-01-03 08:41:59 +02:00
Rhys Arkins
7fb377ebad refactor: semver-composer -> composer 2019-01-03 08:32:44 +02:00
Rhys Arkins
cfb7a4750f refactor: rename semver-cargo -> cargo 2019-01-03 08:27:08 +02:00
Rhys Arkins
1ddf747eed fix: add ruby versioning to definitions 2019-01-03 08:24:39 +02:00
Nikita Chashchinskii
419692a2f3 feat: semver-cargo versioning (#3002)
This PR adds support for semver-cargo versioning.

Closes #2780
2019-01-03 07:33:22 +02:00
Fedor Lukyanov
e3446bfc0c feat: Ruby semver versioning (#3000) 2019-01-03 07:32:08 +02:00
Rhys Arkins
7008bccb56 fix(docker): match whole tag suffix
Closes #2968
2018-12-25 20:59:56 +02:00
Rhys Arkins
079afe1820
feat: configurable versionScheme (#2945)
Closes #2914
2018-12-13 05:29:11 +01:00
Rhys Arkins
e190851f8e
feat(docker): use whole tag as currentValue (#2922) 2018-12-10 04:26:14 +01:00
Rhys Arkins
6b12fc4ea4 refactor(versioning): use get function 2018-12-08 16:46:13 +01:00
Rhys Arkins
30d2338500 fix(semver): replace operatorless ranges rather than bump 2018-11-15 15:54:50 +01:00
Rhys Arkins
b0293da9fa fix(npm): bump full unstable versions
Closes #2809
2018-11-12 23:32:58 +01:00
Ayoub Kaanich
680d5c17ac feat: loose versioning (#2759)
Closes #2748
2018-11-06 13:35:11 +01:00
Ayoub Kaanich
33781c4d39 feat(docker): better versioning redo 2018-11-05 12:14:04 +01:00
Rhys Arkins
71b8fb0e72 fix: Revert "feat: better docker versioning (#2742)"
This reverts commit ea8bcbc9b2.
2018-11-05 11:35:06 +01:00
Rhys Arkins
031d94d7ed Revert "fix(docker): null is not a valid version"
This reverts commit 8f0279ec3a.
2018-11-05 11:35:06 +01:00
Rhys Arkins
27e30f1379 Revert "fix(docker): compare only if non-null"
This reverts commit ad83405379.
2018-11-05 11:35:06 +01:00
Rhys Arkins
ad83405379 fix(docker): compare only if non-null 2018-11-05 10:42:13 +01:00
Rhys Arkins
8f0279ec3a fix(docker): null is not a valid version 2018-11-05 10:11:58 +01:00
Ayoub Kaanich
ea8bcbc9b2 feat: better docker versioning (#2742)
Rewrite docker versioning to support versions of any size.

Closes #2357, Closes #2358
2018-11-05 09:32:34 +01:00
Rhys Arkins
6ae9a9159a fix(composer): lazy evaluate fromVersion major 2018-10-20 06:16:15 +02:00
Rhys Arkins
085a4d8514 fix(composer): support complex range widening 2018-10-18 04:28:55 +02:00
Rhys Arkins
04bdad1093 fix(composer): handle differing toVersion lengths 2018-10-16 17:53:14 +02:00
Rhys Arkins
fa1eee1bb0 refactor: log unsupported composer value 2018-10-16 16:23:26 +02:00
renovate[bot]
ebe88d5aa7 build(deps): update dependency semver-utils to v1.1.3 (#2622)
* build(deps): update dependency semver-utils to v1.1.3

* remove workaround
2018-10-09 05:03:35 +02:00
Rhys Arkins
659d89ce5f fix(semver-hashicorp): handle comma separator 2018-10-06 13:59:44 +02:00
Rhys Arkins
91d3729b37 feat: hashicorp semver
Hashicorp’s semver is same as npm’s except for handling of “~> 1.2”. For Hashicorp it means ^1.2 whereas for Hashicorp is means ~1.2.
2018-10-06 09:43:25 +02:00
Rhys Arkins
efa67edf65 fix(semver): handle ~> 2018-10-06 09:17:39 +02:00
Rhys Arkins
915c867abc fix: better composer version check 2018-10-01 14:29:26 +02:00
Rhys Arkins
d376f9db87 refactor(versioning): expose getPatch 2018-08-15 09:38:04 +02:00
Rhys Arkins
a3b4dd4f96 fix(docker): return valid only if valid version 2018-07-20 10:25:44 +02:00
Rhys Arkins
7254b5f16c
feat: use generic lookup for docker (#2280)
Removes custom Docker lookup code and instead integrates it with the generic lookup routine used by other package managers. Logic for digest support was added but is used by Docker-only for now.

Closes #2081, Closes #2276
2018-07-20 09:09:01 +02:00
Rhys Arkins
a6d2104c63
feat(composer): composer short versions (#2275)
Adds support for "short" versions like `1.0`, `v2.4`, etc.

Closes #2272
2018-07-17 10:23:56 +02:00
Rhys Arkins
63caf742f7 fix(composer): replace ‘v’ prefix in composer.json
If the user already has a ‘v’ prefix then we keep using it. If they don’t, then we don’t. We ignore what is actually on packagist.

Closes #2264
2018-07-17 09:22:46 +02:00
Rhys Arkins
aa73819e16 fix(semver): handle unstable range replacements better 2018-07-14 10:12:59 +02:00
Rhys Arkins
37e247e114 refactor(npm): major minor handling 2018-07-14 09:49:53 +02:00
Rhys Arkins
511fef8135 refactor: use docker versioning
Initially docker versioning is just a node semver wrapper, but it will later be expanded with custom support for docker-specific version tags.
2018-06-29 09:02:49 +02:00
Ayoub Kaanich
e0ebf03e5a feat: PEP440 ranges (#2137)
Closes #2085
2018-06-19 13:32:05 +02:00
Rhys Arkins
de0590116d fix(semver): expand isVersion to ensure only one param passed 2018-06-14 12:06:58 +02:00
Rhys Arkins
45d0dcf492 fix: pass auto’d rangeStrategy to getNewValue
Closes #2111
2018-06-11 05:52:46 +02:00
Rhys Arkins
94cdf2cd3e
feat: composer range support (#2099)
Adds range support for composer. Mostly leverages existing npm semver range support, but massages where necessary to support Composer differences.

Closes #2097
2018-06-08 08:44:16 +02:00
Rhys Arkins
f7babff2fa fix: handle additional npm semver range types 2018-06-08 07:35:20 +02:00
Rhys Arkins
5fd996c9cc refactor: use isSingleVersion not isRange 2018-06-06 12:25:10 +02:00
Rhys Arkins
8b9d4b106c fix(pep440): return ==version when pinning 2018-06-06 12:21:16 +02:00
Rhys Arkins
bef7f13de2 feat: versioning.isSingleVersion() 2018-06-05 16:08:00 +02:00
Ayoub Kaanich
f283104988 feat: use purl for pip requirements (#2067) 2018-06-05 11:26:08 +02:00
Rhys Arkins
0aaee7bd82 refactor: simplify lookup 2018-06-04 12:23:21 +02:00
Rhys Arkins
c21029ecbb
refactor: rename some versioning interface (#2078)
isPinnedVersion -> isVersion
rangify -> getNewValue
2018-06-04 06:03:21 +02:00
Rhys Arkins
d8cb261ecb
refactor: rename version -> value (#2076)
Renames currentVersion to currentValue, newVersion to newValue, newVersionMajor to newMajor, and newVersionMinor to newMinor.
2018-06-04 05:48:20 +02:00
Rhys Arkins
24e341b5b4 feat: support semver equals (=)
Adds support for upgrading equals values, e.g. from `=1.0.0` to `=1.0.1`.
2018-06-03 22:25:27 +02:00
Rhys Arkins
b367d8030b fix: suppress empty versionScheme warnings 2018-06-03 19:07:59 +02:00
Ayoub Kaanich
c81be6c7c0 fix: update pep440 2018-06-03 18:42:55 +02:00
Ayoub Kaanich
85f17eed74 feat: pep440 versioning 2018-06-03 18:24:30 +02:00
Ayoub Kaanich
ec53ef78e9 refactor: lookup use versioning wrapper 2018-06-03 18:08:32 +02:00
Ayoub Kaanich
6278410be1 refactor: remove semver.intersects, use matches instead 2018-06-03 17:13:51 +02:00
Ayoub Kaanich
c54d0ab69d refactor: add versioning wrapper 2018-06-03 17:02:53 +02:00
Rhys Arkins
c429e4b157 feat: support bumping greater than or equal to ranges 2018-05-31 13:11:56 +02:00
Rhys Arkins
7ad306da44 feat: allow rollback + upgrades
If a current version is missing, we now return both rollback as well as upgrades if upgrades are present.
2018-05-29 07:13:44 +02:00
Rhys Arkins
addf184473
feat: refactor getPackageUpdates for manager expansion (#1994)
The goal of this PR is to refactor npm's version lookup/grouping as much as possible to enable the same logic to be used for other package managers.
2018-05-28 09:09:22 +02:00
Rhys Arkins
7f8dd25a97 refactor: matchesSemver -> matches 2018-05-21 17:40:15 +02:00
Rhys Arkins
63f2669153 refactor: semverSort -> sortVersions 2018-05-21 17:35:50 +02:00
Rhys Arkins
7a1d30c8b6 refactor: move semver to lib/versioning 2018-05-21 17:30:55 +02:00