Excerpt |
---|
DRAFTSTATUS: IMPLEMENTED |
Context
The Sling Starter GitHub module is mainly a bill of materials, listing all dependencies that should be included in the final build. Updating these dependencies manually is tedious and time-consuming. With the CI checks we have in place, we are already able to validate most dependency updates without the need to manually verify the behaviour of the Sling Starter.
...
As discussed at large in Dependabot, not all automatic updates are welcome. Dependabot Renovate permits a more strict filtering of updates through the renovate.json
file. A sample .
The Sling Starter policy is implemented via
Jira |
---|
server | ASF JIRA |
---|
serverId | 5aa69414-a9e9-3523-82ec-879b028fb15b |
---|
key | SLING-11822 |
---|
|
and https://github.com/apache/sling-org-apache-sling-starter/pull/85 .The proposed policy for the Sling Starter is
Code Block |
---|
language | js |
---|
linenumbers | true |
---|
|
{
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
"extends": [
"config:base"
],
"enabledManagers"packageRules" : [
{
"matchPackagePrefixes": [ "osgifeature", "regex", "maven"],
"regexManagers": [org.apache.tika" ],
"groupName": "Apache Tika"
},
{
"matchPackagePrefixes": [ "org.apache.httpcomponents:" ],
"groupName": "Apache HTTPComponents"
},
{
"fileMatchmatchPackagePrefixes": [ "pom.xml"org.apache.pdfbox:" ],
"groupName": "Apache "matchStringsPDFBox"
},
{
"matchPackagePrefixes": ["<jackson.version>(?<currentValue>.*?)</jackson.version>\\n"],
"org.apache.sling:org.apache.sling.models" ],
"depNameTemplate": "com.fasterxml.jackson.core:jackson-core",
"groupName": "Apache Sling Models"
},
{
"matchPackagePrefixes": [ "org.apache.jackrabbit:" ],
"groupName": "Apache Jackrabbit and Jackrabbit Oak",
"datasourceTemplateallowedVersions": "maven/^[0-9]+\\.[02468]+\\.[0-9]+$/"
},
{
"matchPackagePatterns": [ "guava" ],
"packageRulesenabled": [
false
},
{
"matchManagers": ["maven"],
"matchDepTypes": ["provided"],
"enabled": false
},
{
"enabled": false,
"matchDatasources": [
"docker"
],
"matchUpdateTypes": [
"major"
]
}
],
"regexManagers": [
{
"fileMatch": ["^pom\\.xml$"],
"matchStrings" : [
"depName=(?<depName>.*?)\\s+-->\\s+<.*?\\.version>(?<currentValue>.*?)<\\/.*?\\.version>"
],
"datasourceTemplate": "maven"
}
]
} |
- Packages which should be updated together are marked using the
groupName
package rules - Jackrabbit and Jackrabbit Oak updated are restricted to stable versions only ( odd minor version component )
- Guava is not updated since it is tied to the Jackrabbit Oak version
- Only minor Docker version updates are activated
- Pom properties that control feature model versions are marked with a special syntax so renovate can process them (see the pom.xml snippet below)
Code Block |
---|
|
<project>
<!-- ... -->
<properties>
<!-- versions to be replaced in the feature files -->
<!-- renovate: depName=org.ow2.asm:asm -->
<asm.version>9.3</asm.version>
<!-- renovate: depName=org.apache.jackrabbit:jackrabbit-jcr-commons -->
<jackrabbit.version>2.20.6</jackrabbit.version>
<!-- renovate: depName=org.apache.jackrabbit:oak-api -->
<oak.version>1.44.0</oak.version>
<!-- ... -->
</properties>
<!-- ... -->
</project> |