Skip to content
GitLab
Explore
Sign in
Primary navigation
Search or go to…
Project
renovate
Manage
Activity
Members
Labels
Plan
Issues
Issue boards
Milestones
Wiki
Code
Merge requests
Repository
Branches
Commits
Tags
Repository graph
Compare revisions
Snippets
Build
Pipelines
Jobs
Pipeline schedules
Artifacts
Deploy
Releases
Model registry
Operate
Environments
Monitor
Incidents
Service Desk
Analyze
Value stream analytics
Contributor analytics
CI/CD analytics
Repository analytics
Model experiments
Help
Help
Support
GitLab documentation
Compare GitLab plans
GitLab community forum
Contribute to GitLab
Provide feedback
Terms and privacy
Keyboard shortcuts
?
Snippets
Groups
Projects
Show more breadcrumbs
SmartDataLab
public
applications
renovate
Commits
bd9f4664
Commit
bd9f4664
authored
Jan 9, 2017
by
Rhys Arkins
Browse files
Options
Downloads
Patches
Plain Diff
Support pinning dependencies for ranges
Closes #7
parent
7a200f33
Branches
Branches containing commit
Tags
Tags containing commit
No related merge requests found
Changes
3
Show whitespace changes
Inline
Side-by-side
Showing
3 changed files
src/config.js
+6
-3
6 additions, 3 deletions
src/config.js
src/helpers/npm.js
+19
-4
19 additions, 4 deletions
src/helpers/npm.js
src/index.js
+5
-3
5 additions, 3 deletions
src/index.js
with
30 additions
and
10 deletions
src/config.js
+
6
−
3
View file @
bd9f4664
...
@@ -6,16 +6,19 @@ module.exports = {
...
@@ -6,16 +6,19 @@ module.exports = {
return
`renovate/
${
params
.
depName
}
-
${
params
.
newVersionMajor
}
.x`
;
return
`renovate/
${
params
.
depName
}
-
${
params
.
newVersionMajor
}
.x`
;
},
},
commitMessage
:
(
params
)
=>
{
commitMessage
:
(
params
)
=>
{
return
`Up
grad
e dependency
${
params
.
depName
}
to version
${
params
.
newVersion
}
`
;
return
`Up
dat
e dependency
${
params
.
depName
}
to version
${
params
.
newVersion
}
`
;
},
},
prBody
:
(
params
)
=>
{
prBody
:
(
params
)
=>
{
return
`This Pull Request updates dependency
${
params
.
depName
}
from version
${
params
.
currentVersion
}
to
${
params
.
newVersion
}
.`
;
return
`This Pull Request updates dependency
${
params
.
depName
}
from version
${
params
.
currentVersion
}
to
${
params
.
newVersion
}
.`
;
},
},
prTitleMajor
:
(
params
)
=>
{
prTitleMajor
:
(
params
)
=>
{
return
`Up
grad
e dependency
${
params
.
depName
}
to version
${
params
.
newVersionMajor
}
.x`
;
return
`Up
dat
e dependency
${
params
.
depName
}
to version
${
params
.
newVersionMajor
}
.x`
;
},
},
prTitleMinor
:
(
params
)
=>
{
prTitleMinor
:
(
params
)
=>
{
return
`Upgrade dependency
${
params
.
depName
}
to version
${
params
.
newVersion
}
`
;
return
`Update dependency
${
params
.
depName
}
to version
${
params
.
newVersion
}
`
;
},
prTitlePin
:
(
params
)
=>
{
return
`Pin dependency
${
params
.
depName
}
to version
${
params
.
newVersion
}
`
;
},
},
}
}
};
};
This diff is collapsed.
Click to expand it.
src/helpers/npm.js
+
19
−
4
View file @
bd9f4664
...
@@ -32,7 +32,7 @@ module.exports = {
...
@@ -32,7 +32,7 @@ module.exports = {
}
}
Object
.
keys
(
packageContents
[
depType
]).
forEach
(
function
(
depName
)
{
Object
.
keys
(
packageContents
[
depType
]).
forEach
(
function
(
depName
)
{
var
currentVersion
=
packageContents
[
depType
][
depName
];
var
currentVersion
=
packageContents
[
depType
][
depName
];
if
(
!
semver
.
valid
(
currentVersion
))
{
if
(
!
isValidVersion
(
currentVersion
))
{
if
(
config
.
verbose
)
{
if
(
config
.
verbose
)
{
console
.
log
(
`
${
depName
}
: Skipping invalid version
${
currentVersion
}
`
);
console
.
log
(
`
${
depName
}
: Skipping invalid version
${
currentVersion
}
`
);
}
}
...
@@ -44,12 +44,13 @@ module.exports = {
...
@@ -44,12 +44,13 @@ module.exports = {
if
(
config
.
verbose
)
{
if
(
config
.
verbose
)
{
console
.
log
(
`
${
depName
}
: Upgrades =
${
JSON
.
stringify
(
res
)}
`
);
console
.
log
(
`
${
depName
}
: Upgrades =
${
JSON
.
stringify
(
res
)}
`
);
}
}
Object
.
keys
(
res
).
forEach
(
function
(
majorVersion
)
{
Object
.
keys
(
res
).
forEach
(
function
(
key
)
{
allDependencyUpgrades
.
push
({
allDependencyUpgrades
.
push
({
upgradeType
:
(
key
===
'
pin
'
)
?
'
pin
'
:
'
upgrade
'
,
depType
:
depType
,
depType
:
depType
,
depName
:
depName
,
depName
:
depName
,
currentVersion
:
currentVersion
,
currentVersion
:
currentVersion
,
newVersion
:
res
[
majorVersion
],
newVersion
:
res
[
key
],
});
});
});
});
}
else
{
}
else
{
...
@@ -74,10 +75,14 @@ function getDependency(depName) {
...
@@ -74,10 +75,14 @@ function getDependency(depName) {
function
getDependencyUpgrades
(
depName
,
currentVersion
)
{
function
getDependencyUpgrades
(
depName
,
currentVersion
)
{
return
getDependency
(
depName
)
return
getDependency
(
depName
)
.
then
(
res
=>
{
.
then
(
res
=>
{
let
allUpgrades
=
{};
if
(
!
res
.
body
[
'
versions
'
])
{
if
(
!
res
.
body
[
'
versions
'
])
{
console
.
log
(
depName
+
'
versions is null
'
);
console
.
log
(
depName
+
'
versions is null
'
);
}
}
if
(
isRange
(
currentVersion
))
{
// Pin ranges to their maximum satisfying version
return
{
'
pin
'
:
semver
.
maxSatisfying
(
Object
.
keys
(
res
.
body
.
versions
),
currentVersion
)
};
}
const
allUpgrades
=
{};
Object
.
keys
(
res
.
body
[
'
versions
'
]).
forEach
(
function
(
version
)
{
Object
.
keys
(
res
.
body
[
'
versions
'
]).
forEach
(
function
(
version
)
{
if
(
stable
.
is
(
currentVersion
)
&&
!
stable
.
is
(
version
))
{
if
(
stable
.
is
(
currentVersion
)
&&
!
stable
.
is
(
version
))
{
// Ignore unstable versions, unless the current version is unstable
// Ignore unstable versions, unless the current version is unstable
...
@@ -94,3 +99,13 @@ function getDependencyUpgrades(depName, currentVersion) {
...
@@ -94,3 +99,13 @@ function getDependencyUpgrades(depName, currentVersion) {
return
allUpgrades
;
return
allUpgrades
;
});
});
}
}
function
isRange
(
input
)
{
// Pinned versions also return true for semver.validRange
// We need to check first that they're not "valid" to get only ranges
return
!
semver
.
valid
(
input
)
&&
semver
.
validRange
(
input
);
}
function
isValidVersion
(
input
)
{
return
semver
.
valid
(
input
)
||
semver
.
validRange
(
input
);
}
This diff is collapsed.
Click to expand it.
src/index.js
+
5
−
3
View file @
bd9f4664
...
@@ -65,16 +65,18 @@ function processUpgradesSequentially(upgrades) {
...
@@ -65,16 +65,18 @@ function processUpgradesSequentially(upgrades) {
// 2. Edge case collision of branch name, e.g. dependency also listed as dev dependency
// 2. Edge case collision of branch name, e.g. dependency also listed as dev dependency
return
upgrades
.
reduce
((
promise
,
upgrade
)
=>
{
return
upgrades
.
reduce
((
promise
,
upgrade
)
=>
{
return
promise
.
then
(()
=>
{
return
promise
.
then
(()
=>
{
return
updateDependency
(
upgrade
.
depType
,
upgrade
.
depName
,
upgrade
.
currentVersion
,
upgrade
.
newVersion
);
return
updateDependency
(
upgrade
.
upgradeType
,
upgrade
.
depType
,
upgrade
.
depName
,
upgrade
.
currentVersion
,
upgrade
.
newVersion
);
});
});
},
Promise
.
resolve
());
},
Promise
.
resolve
());
}
}
function
updateDependency
(
depType
,
depName
,
currentVersion
,
newVersion
)
{
function
updateDependency
(
upgradeType
,
depType
,
depName
,
currentVersion
,
newVersion
)
{
const
newVersionMajor
=
semver
.
major
(
newVersion
);
const
newVersionMajor
=
semver
.
major
(
newVersion
);
const
branchName
=
config
.
templates
.
branchName
({
depType
,
depName
,
currentVersion
,
newVersion
,
newVersionMajor
});
const
branchName
=
config
.
templates
.
branchName
({
depType
,
depName
,
currentVersion
,
newVersion
,
newVersionMajor
});
let
prTitle
=
''
;
let
prTitle
=
''
;
if
(
newVersionMajor
>
semver
.
major
(
currentVersion
))
{
if
(
upgradeType
===
'
pin
'
)
{
prTitle
=
config
.
templates
.
prTitlePin
({
depType
,
depName
,
currentVersion
,
newVersion
,
newVersionMajor
});
}
else
if
(
newVersionMajor
>
semver
.
major
(
currentVersion
))
{
prTitle
=
config
.
templates
.
prTitleMajor
({
depType
,
depName
,
currentVersion
,
newVersion
,
newVersionMajor
});
prTitle
=
config
.
templates
.
prTitleMajor
({
depType
,
depName
,
currentVersion
,
newVersion
,
newVersionMajor
});
}
else
{
}
else
{
prTitle
=
config
.
templates
.
prTitleMinor
({
depType
,
depName
,
currentVersion
,
newVersion
,
newVersionMajor
});
prTitle
=
config
.
templates
.
prTitleMinor
({
depType
,
depName
,
currentVersion
,
newVersion
,
newVersionMajor
});
...
...
This diff is collapsed.
Click to expand it.
Preview
0%
Loading
Try again
or
attach a new file
.
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Save comment
Cancel
Please
register
or
sign in
to comment