Merge branch 'release/1.14.0' into develop
* release/1.14.0: update manual release instructions port steps 10 & 11 to the ATR docs: adapt artifact checks to new ATR tool improve svn release staging/release instructions exclude jquery-1.7.min.js from source release ignore .swp files when building src release add license to .mailmap add RAT excludes for ATR add license to scripts/*.sh fix both NOTICE files for ATR doc: remove errant config improve start release notes wording in step 3
This commit is contained in:
@@ -0,0 +1,27 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# See comment below license in .atr-rat-excludes-src.txt for an explanation of
|
||||
# what this is.
|
||||
|
||||
# if you make changes here, sort this list before committing asciibetically
|
||||
# with en_US.UTF-8 lang/locale
|
||||
.rat-excludes
|
||||
README.md
|
||||
fineract-documentation.pdf
|
||||
|
||||
# vim:ft=conf
|
||||
@@ -0,0 +1,54 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# Path patterns to exclude from RAT checks run by ATR.
|
||||
#
|
||||
# RAT = Release Audit Tool (https://creadur.apache.org/rat/)
|
||||
# ATR = ASF Trusted Releases (https://release-test.apache.org , https://github.com/apache/tooling-trusted-releases/)
|
||||
#
|
||||
# This duplicates exclusions in build.gradle.
|
||||
# This is probably only necessary until both RAT and org.nosphere.apache.rat plugin are using 0.17.
|
||||
# See https://github.com/eskatos/creadur-rat-gradle/issues/28 .
|
||||
# Once both are on 0.17, we should be able to move the RAT excludes used during
|
||||
# the build from build.gradle into a .rat-excludes file shared by both our
|
||||
# build and ATR.
|
||||
# Right now ATR does something custom, see
|
||||
# https://github.com/apache/tooling-trusted-releases/issues/312 .
|
||||
# If we get tired of waiting for the RAT gradle plugin or the ATR to upgrade to
|
||||
# 0.17, we could write our own exclusion lists generator.
|
||||
|
||||
# if you make changes here, sort this list before committing asciibetically
|
||||
# with en_US.UTF-8 lang/locale
|
||||
**/META-INF/fineract-test.config
|
||||
**/legacy-docs/
|
||||
*.adoc
|
||||
*.avsc
|
||||
*.feature
|
||||
*.html
|
||||
*.md
|
||||
*.mustache
|
||||
*.puml
|
||||
*.txt
|
||||
.openapi-generator-ignore
|
||||
/.asf.yaml
|
||||
/.rat-excludes
|
||||
/config/fineractdev-eclipse-preferences.epf
|
||||
/fineract-provider/src/test/resources/results/xbrl.xml
|
||||
/gradle/wrapper/gradle-wrapper.properties
|
||||
org.springframework.boot.autoconfigure.AutoConfiguration.imports
|
||||
|
||||
# vim:ft=conf
|
||||
@@ -1,3 +1,20 @@
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# .mailmap unifies differences in commit names and emails, and shortens committers' names.
|
||||
# .mailmap format is a bit weird, e.g. https://github.com/sympy/sympy/wiki/Using-.mailmap explains it.
|
||||
# .mailmap official doc is on https://git-scm.com/docs/git-shortlog#_mapping_authors
|
||||
|
||||
+2
-2
@@ -1,8 +1,8 @@
|
||||
Apache Fineract
|
||||
Copyright 2008-2025 The Apache Software Foundation
|
||||
|
||||
This product includes software developed by The Apache Software
|
||||
Foundation (http://www.apache.org/).
|
||||
This product includes software developed at
|
||||
The Apache Software Foundation (http://www.apache.org/).
|
||||
|
||||
This product includes third party libraries and resource files from
|
||||
different providers. The details of the different packages and their
|
||||
|
||||
+2
-2
@@ -1,5 +1,5 @@
|
||||
Apache Fineract
|
||||
Copyright 2008-2025 The Apache Software Foundation
|
||||
|
||||
This product includes software developed by The Apache Software
|
||||
Foundation (http://www.apache.org/).
|
||||
This product includes software developed at
|
||||
The Apache Software Foundation (http://www.apache.org/).
|
||||
|
||||
+1
-2
@@ -353,8 +353,7 @@ allprojects {
|
||||
"**/generated/**/*MapperImpl.java",
|
||||
'**/META-INF/fineract-test.config',
|
||||
// Apache-specific GitHub metadata settings file
|
||||
'/.asf.yaml',
|
||||
'**/*.sh'
|
||||
'/.asf.yaml'
|
||||
]
|
||||
}
|
||||
}
|
||||
|
||||
@@ -196,36 +196,10 @@ fineract {
|
||||
step10: [
|
||||
order: 10,
|
||||
description: 'Start voting on the dev mailing list',
|
||||
email: [
|
||||
from: "${findProperty('fineract.config.email')}",
|
||||
name: "${findProperty('fineract.config.name')}",
|
||||
to: "${findProperty('fineract.config.email')}",
|
||||
// to: 'dev@fineract.apache.org',
|
||||
mime: 'text/plain',
|
||||
subjectTemplate: [
|
||||
templateFile: "${projectDir}/buildSrc/src/main/resources/email/release.step10.vote.subject.ftl"
|
||||
],
|
||||
messageTemplate: [
|
||||
templateFile: "${projectDir}/buildSrc/src/main/resources/email/release.step10.vote.message.ftl"
|
||||
]
|
||||
]
|
||||
],
|
||||
step11: [
|
||||
order: 11,
|
||||
description: 'Conclude the vote and announce results',
|
||||
email: [
|
||||
from: "${findProperty('fineract.config.email')}",
|
||||
name: "${findProperty('fineract.config.name')}",
|
||||
to: "${findProperty('fineract.config.email')}",
|
||||
// to: 'dev@fineract.apache.org',
|
||||
mime: 'text/plain',
|
||||
subjectTemplate: [
|
||||
templateFile: "${projectDir}/buildSrc/src/main/resources/email/release.step11.vote.subject.ftl"
|
||||
],
|
||||
messageTemplate: [
|
||||
templateFile: "${projectDir}/buildSrc/src/main/resources/email/release.step11.vote.message.ftl"
|
||||
]
|
||||
]
|
||||
],
|
||||
step12: [
|
||||
order: 12,
|
||||
|
||||
@@ -18,7 +18,6 @@
|
||||
*/
|
||||
package org.apache.fineract.gradle
|
||||
|
||||
import groovy.json.JsonSlurper
|
||||
import org.apache.commons.io.FileUtils
|
||||
import org.apache.commons.io.filefilter.NotFileFilter
|
||||
import org.apache.commons.io.filefilter.PrefixFileFilter
|
||||
@@ -384,23 +383,7 @@ class FineractPlugin implements Plugin<Project> {
|
||||
doFirst {
|
||||
FineractPluginExtension.FineractPluginStep step = step(extension, "step10")
|
||||
|
||||
String version = project.properties?['fineract.release.version']
|
||||
|
||||
if(!version) {
|
||||
TextIO textIO = TextIoFactory.getTextIO();
|
||||
|
||||
version = textIO.newStringInputReader()
|
||||
.withPattern("\\d+.\\d+.\\d+")
|
||||
.read("Release Version");
|
||||
}
|
||||
|
||||
// TODO: input validation, see FINERACT-1610
|
||||
|
||||
this.context?.project?['fineract.release.version'] = version
|
||||
|
||||
if(step.email) {
|
||||
emailService.send( processEmailParams(step.email, this.context) )
|
||||
}
|
||||
printInstructions(project, "step10")
|
||||
}
|
||||
}
|
||||
|
||||
@@ -409,28 +392,7 @@ class FineractPlugin implements Plugin<Project> {
|
||||
doFirst {
|
||||
FineractPluginExtension.FineractPluginStep step = step(extension, "step11")
|
||||
|
||||
String version = project.properties?['fineract.release.version']
|
||||
|
||||
if(!version) {
|
||||
TextIO textIO = TextIoFactory.getTextIO()
|
||||
|
||||
version = textIO.newStringInputReader()
|
||||
.withPattern("\\d+.\\d+.\\d+")
|
||||
.read("Release Version");
|
||||
}
|
||||
|
||||
// TODO: input validation, see FINERACT-1610
|
||||
|
||||
this.context?.project?['fineract.release.version'] = version
|
||||
|
||||
def jsonSlurper = new JsonSlurper()
|
||||
def data = jsonSlurper.parse(new File("buildSrc/src/main/resources/vote/result.${version}.json"))
|
||||
|
||||
this.context?.project?['fineract.vote'] = data
|
||||
|
||||
if(step.email) {
|
||||
emailService.send( processEmailParams(step.email, this.context) )
|
||||
}
|
||||
printInstructions(project, "step11")
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -1,51 +0,0 @@
|
||||
<#--
|
||||
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
|
||||
-->
|
||||
Hello everyone,
|
||||
|
||||
We are proud to present Apache Fineract ${project['fineract.release.version']}, with the artifacts below up for a vote. Releases are important for a number of reasons: They put a stamp of approval on a set of code changes and they build momentum for future improvements.
|
||||
|
||||
Release notes and ChangeLog: https://cwiki.apache.org/confluence/display/FINERACT/${project['fineract.release.version']}+-+Apache+Fineract
|
||||
|
||||
Source and binary artifacts: https://dist.apache.org/repos/dist/dev/fineract/${project['fineract.release.version']}/
|
||||
|
||||
Tagged as ${project['fineract.release.version']}
|
||||
|
||||
Committer PGP keys, including the release signing key: https://dist.apache.org/repos/dist/dev/fineract/KEYS
|
||||
|
||||
Note that this release candidate contains source and binary artifacts.
|
||||
|
||||
This vote will be open for 72 hours:
|
||||
|
||||
[ ] +1 approve
|
||||
[ ] +0 no opinion
|
||||
[ ] -1 disapprove (and reason why)
|
||||
|
||||
Please indicate if yours is a binding vote, and "Verified: YES/NO/PARTIAL".
|
||||
|
||||
Verified: YES ... Verified integrity and signatures of release artifacts locally, built from source, ran jar/war: Did everything mentioned in the current release candidate verification guidance ( https://fineract.apache.org/docs/rc/#_artifact_verification ). If you did more than that, please specify. "Verified: YES" is required for binding votes.
|
||||
|
||||
Verified: NO ... No testing performed on release candidate, e.g. relying on testing performed by other contributors and/or output of GitHub Actions, while exercising your right to vote.
|
||||
|
||||
Verified: PARTIAL ... Please specify.
|
||||
|
||||
Cheers,
|
||||
|
||||
${project['fineract.config.name']}
|
||||
@@ -1,89 +0,0 @@
|
||||
<#--
|
||||
|
||||
Licensed to the Apache Software Foundation (ASF) under one
|
||||
or more contributor license agreements. See the NOTICE file
|
||||
distributed with this work for additional information
|
||||
regarding copyright ownership. The ASF licenses this file
|
||||
to you under the Apache License, Version 2.0 (the
|
||||
"License"); you may not use this file except in compliance
|
||||
with the License. You may obtain a copy of the License at
|
||||
|
||||
http://www.apache.org/licenses/LICENSE-2.0
|
||||
|
||||
Unless required by applicable law or agreed to in writing,
|
||||
software distributed under the License is distributed on an
|
||||
"AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
KIND, either express or implied. See the License for the
|
||||
specific language governing permissions and limitations
|
||||
under the License.
|
||||
|
||||
-->
|
||||
<#if (project['fineract.vote'].approve.binding?size + project['fineract.vote'].approve.nonBinding?size > project['fineract.vote'].disapprove.binding?size + project['fineract.vote'].disapprove.nonBinding?size)>
|
||||
Voting is now closed and has passed with the following tally,
|
||||
|
||||
Binding +1s: ${project['fineract.vote'].approve.binding?size}
|
||||
Non binding +1s: ${project['fineract.vote'].approve.nonBinding?size}
|
||||
<#else>
|
||||
Voting is now closed and has not passed with the following tally,
|
||||
|
||||
Binding +1s: ${project['fineract.vote'].approve.binding?size}
|
||||
Non binding +1s: ${project['fineract.vote'].approve.nonBinding?size}
|
||||
|
||||
Binding -1s: ${project['fineract.vote'].disapprove.binding?size}
|
||||
Non binding -1s: ${project['fineract.vote'].disapprove.nonBinding?size}
|
||||
</#if>
|
||||
|
||||
Here are the detailed results:
|
||||
|
||||
<#list project['fineract.vote'].approve.binding>
|
||||
Binding +1s:
|
||||
<#items as item>
|
||||
- ${item.name}
|
||||
</#items>
|
||||
</#list>
|
||||
|
||||
|
||||
<#list project['fineract.vote'].approve.nonBinding>
|
||||
Non binding +1s:
|
||||
<#items as item>
|
||||
- ${item.name}
|
||||
</#items>
|
||||
</#list>
|
||||
|
||||
|
||||
<#list project['fineract.vote'].disapprove.binding>
|
||||
Binding -1s:
|
||||
<#items as item>
|
||||
- ${item.name}
|
||||
</#items>
|
||||
</#list>
|
||||
|
||||
<#list project['fineract.vote'].disapprove.nonBinding>
|
||||
Non binding -1s:
|
||||
<#items as item>
|
||||
- ${item.name}
|
||||
</#items>
|
||||
</#list>
|
||||
|
||||
|
||||
<#list project['fineract.vote'].noOpinion.binding>
|
||||
Binding +0s:
|
||||
<#items as item>
|
||||
- ${item.name}
|
||||
</#items>
|
||||
</#list>
|
||||
|
||||
<#list project['fineract.vote'].noOpinion.nonBinding>
|
||||
Non binding +0s:
|
||||
<#items as item>
|
||||
- ${item.name}
|
||||
</#items>
|
||||
</#list>
|
||||
|
||||
<#if (project['fineract.vote'].approve.binding?size + project['fineract.vote'].approve.nonBinding?size > project['fineract.vote'].disapprove.binding?size + project['fineract.vote'].disapprove.nonBinding?size)>
|
||||
Thanks to everyone who voted! I'll now continue with the rest of the release process.
|
||||
<#else>
|
||||
Thanks to everyone who voted! Looks like we have to repeat the vote.
|
||||
</#if>
|
||||
|
||||
${project['fineract.config.name']}
|
||||
+9
-1
@@ -18,4 +18,12 @@
|
||||
under the License.
|
||||
|
||||
-->
|
||||
[FINERACT] [VOTE] 🗳️ ${project['fineract.release.version']} for release
|
||||
|
||||
|
||||
[INSTRUCTIONS:START]
|
||||
|
||||
Initiate voting with the ATR (ASF Trusted Releases) tool.
|
||||
|
||||
https://release-test.apache.org
|
||||
|
||||
[INSTRUCTIONS:END]
|
||||
+9
-1
@@ -18,4 +18,12 @@
|
||||
under the License.
|
||||
|
||||
-->
|
||||
[FINERACT] [VOTE] [RESULT] 🧾️ ${project['fineract.release.version']} for release
|
||||
|
||||
|
||||
[INSTRUCTIONS:START]
|
||||
|
||||
Conclude voting with the ATR (ASF Trusted Releases) tool.
|
||||
|
||||
https://release-test.apache.org
|
||||
|
||||
[INSTRUCTIONS:END]
|
||||
@@ -24,6 +24,7 @@
|
||||
|
||||
Move the release candidate from the dev area to the release area using a Subversion server-side copy:
|
||||
|
||||
svn mv https://dist.apache.org/repos/dist/dev/fineract/${project['fineract.release.version']} https://dist.apache.org/repos/dist/release /fineract/
|
||||
# this is a remote operation
|
||||
svn mv -m "Release Fineract 1.14.0 🚢" https://dist.apache.org/repos/dist/dev/fineract/${project['fineract.release.version']} https://dist.apache.org/repos/dist/release/fineract/
|
||||
|
||||
[INSTRUCTIONS:END]
|
||||
|
||||
@@ -30,5 +30,6 @@ and make sure that everything on the release tag is merged to develop and that e
|
||||
>> git push origin develop
|
||||
>> git branch -D release/${project['fineract.release.version']}
|
||||
>> git push origin :release/${project['fineract.release.version']}
|
||||
>> git describe
|
||||
|
||||
[INSTRUCTIONS:END]
|
||||
|
||||
@@ -22,17 +22,6 @@
|
||||
|
||||
[INSTRUCTIONS:START]
|
||||
|
||||
Following are the typical things we need to verify before voting on a release candidate. And the release manager should verify them too before calling out a vote.
|
||||
|
||||
Make sure release artifacts are hosted at https://dist.apache.org/repos/dist/dev/fineract
|
||||
|
||||
* Release candidates should be in format apache-fineract-bin-${project['fineract.release.version']}.tar.gz
|
||||
* Verify signatures and hashes. You may have to import the public key of the release manager to verify the signatures. (gpg --import KEYS or gpg --recv-key <key id>)
|
||||
* Git tag matches the released bits (diff -rf)
|
||||
* Can compile docs and code successfully from source
|
||||
* Verify DISCLAIMER, NOTICE and LICENSE (year etc)
|
||||
* All files have correct headers (Rat check should be clean - gradlew rat)
|
||||
* No jar files in the source artifacts
|
||||
* Integration tests should work
|
||||
See https://fineract.apache.org/docs/current/#_step_9_verify_distribution_staging
|
||||
|
||||
[INSTRUCTIONS:END]
|
||||
|
||||
@@ -1,9 +1,4 @@
|
||||
= Loan Re-Aging
|
||||
:doctype: book
|
||||
:icons: font
|
||||
:toc: left
|
||||
:toclevels: 3
|
||||
:sectnums:
|
||||
|
||||
== Overview
|
||||
|
||||
|
||||
@@ -4,6 +4,8 @@
|
||||
|
||||
The RM should, if one doesn't already exist, first create a new release umbrella issue in JIRA. This issue is dedicated to tracking (a summary of) any discussion related to the planned new release. An example of such an issue is https://issues.apache.org/jira/browse/FINERACT-873[FINERACT-873].
|
||||
|
||||
Next, the RM logs in to https://release-test.apache.org[the ATR (ASF Trusted Releases)] tool and clicks "+ Start a new release", naming the release `{revnumber}`.
|
||||
|
||||
The RM then creates a list of resolved issues & features through an initial check in JIRA for already resolved issues for the release, and then setup a timeline for release branch point. The time for the day the issue list is created to the release branch point must be at least two weeks in order to give the community a chance to prioritize and commit any last minute features and issues they would like to see in the upcoming release.
|
||||
|
||||
The RM must then send the pointer to the umbrella issue along with the tentative timeline for branch point to the developer lists. Any work identified as release related that needs to be completed should be added as a sub tasks of the umbrella issue to allow all developers and users to see the overall release progress in one place. The umbrella issue shall also link to any issues still requiring clarification whether or not they will make it into the release.
|
||||
|
||||
@@ -36,7 +36,7 @@ git checkout -b release/{revnumber}
|
||||
git push origin release/{revnumber}
|
||||
----
|
||||
|
||||
5. Add new release notes in Release Folders. The change list can be swiped from the JIRA release note tool (use the "text" format for the change log). See JIRA Cleanup above to ensure that the release notes generated by this tool are what you are expecting.
|
||||
5. Start new release notes page under https://cwiki.apache.org/confluence/display/FINERACT/Fineract+Releases[Fineract Releases]. The change list can be swiped from the JIRA release note tool (use the "text" format for the change log). See JIRA Cleanup above to ensure that the release notes generated by this tool are what you are expecting.
|
||||
|
||||
6. Send en email announcing the new release branch on the earlier email thread
|
||||
+
|
||||
|
||||
@@ -11,19 +11,27 @@ Next we'll stage the release candidate. Create a new folder and add these files:
|
||||
* apache-fineract-src-{revnumber}.tar.gz.sha512
|
||||
* apache-fineract-src-{revnumber}.tar.gz.asc
|
||||
|
||||
These files (or "artifacts") comprise the release candidate. Upload these files to https://www.apache.org/legal/release-policy.html#stage[ASF's distribution dev/staging area] like so:
|
||||
These files (or "artifacts") comprise the release candidate.
|
||||
|
||||
First, upload these files to https://release-test.apache.org/compose/fineract/{revnumber}. This tool will initiate automated checks on the files. We'll come back to those in next step and ensure they pass.
|
||||
|
||||
Next, upload these files to https://www.apache.org/legal/release-policy.html#stage[ASF's distribution dev/staging area] like so:
|
||||
|
||||
[source,bash,subs="attributes+"]
|
||||
----
|
||||
# this is a remote operation
|
||||
svn mkdir https://dist.apache.org/repos/dist/dev/fineract/{revnumber}
|
||||
svn mkdir -m "Create Fineract {revnumber} staging area 🏗️" \
|
||||
https://dist.apache.org/repos/dist/dev/fineract/{revnumber}
|
||||
|
||||
# create local svn-tracked folder "{revnumber}"
|
||||
svn checkout https://dist.apache.org/repos/dist/dev/fineract/{revnumber}
|
||||
|
||||
# prepare to upload
|
||||
cp path/to/new/folder/* {revnumber}/
|
||||
cd {revnumber}/
|
||||
|
||||
# actual upload occurs here
|
||||
svn add * && svn commit
|
||||
svn add * && svn commit -m "Stage Fineract {revnumber} 🎭"
|
||||
----
|
||||
|
||||
NOTE: You will need your ASF Committer credentials to be able to access the Subversion host at `dist.apache.org`.
|
||||
@@ -36,4 +44,4 @@ NOTE: You will need your ASF Committer credentials to be able to access the Subv
|
||||
./gradlew fineractReleaseStep8 -Pfineract.release.version={revnumber}
|
||||
----
|
||||
|
||||
CAUTION: This task is inefficient. Follow `svn mkdir` and other manual steps above.
|
||||
CAUTION: Gradle task 8 is inefficient. We recommend `svn mkdir` and other manual steps above.
|
||||
|
||||
@@ -2,9 +2,9 @@
|
||||
|
||||
== Description
|
||||
|
||||
Following are the typical things we need to verify before voting on a release candidate. And the release manager should verify them too before calling out a vote.
|
||||
Following are the typical things we need to verify before voting on a release candidate. And the release manager should verify them too before calling out a vote. Some of these checks are duplicated by https://release-test.apache.org[the ATR (ASF Trusted Releases) tool], and will need to continue to be duplicated until we get more comfortable with that tool.
|
||||
|
||||
Make sure release artifacts are hosted at https://dist.apache.org/repos/dist/dev/fineract
|
||||
Make sure release artifacts are hosted at both https://release-test.apache.org/compose/fineract/{revnumber} AND https://dist.apache.org/repos/dist/dev/fineract
|
||||
|
||||
* Release candidate files should match filenames mentioned earlier, and will be moved without renaming if/when the release vote passes.
|
||||
* Verify signatures and hashes. You may have to import the public key of the release manager to verify the signatures. (`gpg --import KEYS` or `gpg --recv-key <key id>`)
|
||||
@@ -14,6 +14,7 @@ Make sure release artifacts are hosted at https://dist.apache.org/repos/dist/dev
|
||||
* All files have correct headers (Rat check should be clean - `./gradlew rat`)
|
||||
* No jar files in the source artifacts
|
||||
* All tests pass both in CI and locally
|
||||
* All ATR checks pass
|
||||
|
||||
=== Artifact verification
|
||||
|
||||
|
||||
@@ -2,19 +2,14 @@
|
||||
|
||||
== Description
|
||||
|
||||
Voting has to be done on dev@fineract.apache.org. You can close the vote after voting period expires (72 hours) and you accumulate sufficient votes (minimum 3 x +1 PMC votes).
|
||||
|
||||
[source,text]
|
||||
----
|
||||
include::{rootdir}/buildSrc/src/main/resources/email/release.step10.vote.subject.ftl[lines=21..]
|
||||
|
||||
include::{rootdir}/buildSrc/src/main/resources/email/release.step10.vote.message.ftl[lines=21..]
|
||||
----
|
||||
Initiate voting with https://release-test.apache.org[the ATR (ASF Trusted Releases) tool].
|
||||
|
||||
== Gradle Task
|
||||
|
||||
.Command
|
||||
[source,bash,subs="attributes+,+macros"]
|
||||
----
|
||||
./gradlew fineractReleaseStep10 -Pfineract.release.version={revnumber}
|
||||
./gradlew fineractReleaseStep10
|
||||
----
|
||||
|
||||
INFO: Use the ATR for this task.
|
||||
|
||||
@@ -2,19 +2,14 @@
|
||||
|
||||
== Description
|
||||
|
||||
Upon receiving 3 x +1 from the PMC, or after 72 hours (whichever one comes first), reply to the voting thread and add the prefix "[RESULT]" to the subject line with the results, as follows:
|
||||
|
||||
[source,text]
|
||||
----
|
||||
include::{rootdir}/buildSrc/src/main/resources/email/release.step11.vote.subject.ftl[lines=21..]
|
||||
|
||||
include::{rootdir}/buildSrc/src/main/resources/email/release.step11.vote.message.ftl[lines=21..]
|
||||
----
|
||||
Conclude voting with https://release-test.apache.org[the ATR (ASF Trusted Releases) tool].
|
||||
|
||||
== Gradle Task
|
||||
|
||||
.Command
|
||||
[source,text,subs="attributes+,+macros"]
|
||||
----
|
||||
./gradlew fineractReleaseStep11 -Pfineract.release.version={revnumber}
|
||||
./gradlew fineractReleaseStep11
|
||||
----
|
||||
|
||||
INFO: Use the ATR for this task.
|
||||
|
||||
@@ -6,7 +6,10 @@ Move the release candidate from the dev area to the release area using a Subvers
|
||||
|
||||
[source,bash,subs="attributes+"]
|
||||
----
|
||||
svn mv https://dist.apache.org/repos/dist/dev/fineract/{revnumber} https://dist.apache.org/repos/dist/release/fineract/
|
||||
# this is a remote operation
|
||||
svn mv -m "Release Fineract {revnumber} 🚢" \
|
||||
https://dist.apache.org/repos/dist/dev/fineract/{revnumber} \
|
||||
https://dist.apache.org/repos/dist/release/fineract/
|
||||
----
|
||||
|
||||
NOTE: https://www.apache.org/legal/release-policy.html#upload-ci[This must be done by a Fineract PMC member].
|
||||
|
||||
@@ -136,6 +136,9 @@ distributions {
|
||||
|
||||
from "$rootDir/fineract-doc/build/docs/pdf/en/index.pdf"
|
||||
rename ('index.pdf', 'fineract-documentation.pdf')
|
||||
|
||||
from "$rootDir/.atr-rat-excludes-bin.txt"
|
||||
rename ('.atr-rat-excludes-bin.txt', '.rat-excludes')
|
||||
}
|
||||
}
|
||||
src {
|
||||
@@ -147,7 +150,7 @@ distributions {
|
||||
'**/.classpath', '.idea', 'out', '._.DS_Store', '.DS_Store', 'WebContent',
|
||||
'**/.externalToolbuilders', '.theia', 'LICENSE_RELEASE',
|
||||
'NOTICE_RELEASE', '**/licenses', '*.class', '**/bin', '*.log', '.dockerignore',
|
||||
'**/.gitkeep'
|
||||
'**/.gitkeep', '*.swp', '.atr-rat-excludes-bin.txt', '**/jquery-1.7.min.js'
|
||||
|
||||
// Ensure consistent file paths for caching
|
||||
eachFile { details ->
|
||||
@@ -156,6 +159,7 @@ distributions {
|
||||
}
|
||||
rename ('LICENSE_SOURCE', 'LICENSE')
|
||||
rename ('NOTICE_SOURCE', 'NOTICE')
|
||||
rename ('.atr-rat-excludes-src.txt', '.rat-excludes')
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1,5 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# Exit on any error
|
||||
set -e
|
||||
|
||||
|
||||
@@ -1,4 +1,22 @@
|
||||
#!/bin/bash
|
||||
|
||||
# Licensed to the Apache Software Foundation (ASF) under one
|
||||
# or more contributor license agreements. See the NOTICE file
|
||||
# distributed with this work for additional information
|
||||
# regarding copyright ownership. The ASF licenses this file
|
||||
# to you under the Apache License, Version 2.0 (the
|
||||
# "License"); you may not use this file except in compliance
|
||||
# with the License. You may obtain a copy of the License at
|
||||
#
|
||||
# http://www.apache.org/licenses/LICENSE-2.0
|
||||
#
|
||||
# Unless required by applicable law or agreed to in writing,
|
||||
# software distributed under the License is distributed on an
|
||||
# "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
|
||||
# KIND, either express or implied. See the License for the
|
||||
# specific language governing permissions and limitations
|
||||
# under the License.
|
||||
|
||||
# Usage: ./split-tests.sh <total-shards> <shard-index>
|
||||
set -e
|
||||
|
||||
|
||||
Reference in New Issue
Block a user