* update release notice years in NOTICE_RELEASE and NOTICE_SOURCE
* step 5
* simplify mention of tests: "Ensure all tests pass for this commit both in CI and locally"
* recommend GPG signing annotated release tag
* step 8: improve svn commands
* This way is simpler and more efficient, especially with a bunch of release candidate dirs in the staging area.
* step 10: mention need to test rc before +1 vote -- See:
* https://www.apache.org/legal/release-policy.html#release-approval
* https://www.apache.org/legal/release-policy.html#approving-a-release
* step 12: only PMC members can upload releases
* step 13: simplify & explain "finalize branch" instructions
* Document what worked for me for 1.12.1.
* I didn't need to create the extra `merge-$VERSION` branch and do the recursive merge.
* document how asciidoctor upgrade is blocked
* see "official docs - deps stuck" thread on fineract dev mailing list
* https://lists.apache.org/thread/7mmsj13spb11vgz0z38fhwgzwtq03brr
* can't upgrade to 4.x because of one of these:
* https://github.com/asciidoctor/asciidoctorj-pdf/issues/25
* https://github.com/jruby/jruby/issues/5573
* https://github.com/asciidoctor/asciidoctorj-pdf/issues/16
* improve asciidoc config - opt for simplicity where the complexity adds nothing
* compat-mode is off by default, no need for it here
* default optimization should be fine
* media should have been screen | print | prepress, just leave it as default instead
* page size? I really don't think this is going to be printed much, just go with default
* PDF version 1.8 is invalid, just use the default unless we someday have a good reason to pin this
* reduce copyright years sources of truth
* see also: https://docs.asciidoctor.org/pdf-converter/latest/asciidoc-attributes/
* remove unnecessary asciidoctorj 3.0.0 version string -- no need to pin this
* remove prompt character from Bash shell examples
* it isn't properly syntax-highlighted and it looks confusing with line numbers (which we might want to add)
* it isn't necessary
* the prompt character ("%" in this case) is not typically included in shell code examples because it makes it harder to copy and paste shell code examples
* $ is likely more common than % (at least on Debian/Ubuntu), but either way I'd say exclude it
* fix source code syntax labels - use "bash" only when it is actually Bash shell code
* persistence.adoc
* fix broken enumerated list
* resolves these warnings seen with, e.g.: `gradle --info doc`
* `Jul 27, 2025 8:26:48 PM uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/parser.rb parse_list_item`
* `WARNING: chapters/architecture/persistence.adoc: line 104: list item index: expected 1, got 2`
* `Jul 27, 2025 8:26:48 PM uri:classloader:/gems/asciidoctor-2.0.10/lib/asciidoctor/parser.rb parse_list`
* `WARNING: chapters/architecture/persistence.adoc: line 110: list item index: expected 1, got 3`
* fix wrapping (we use hardbreaks)
* fix typo: `s/plane text/plain text/`
* switch to rouge syntax highlighter - it handles more source languages
* fix broken long shell code lines
* fix .avro file syntax highlighting (it's JSON)
* configuration-gpg.adoc
* fix accidental block continuation
* One little plus sign was making `= Email` appear verbatim in rendered output because it was interpreted as a list continuation.
* See https://docs.asciidoctor.org/asciidoc/latest/lists/continuation/#list-continuation
* recommend more secure keys
* add a line continuation for an enumerated list
* architecture-overview.puml: remove this unused (likely a "Hello World") diagram
* release-schedule.puml: fix pluralization of days
* purely aesthetic: doesn't affect chart rendering
* fix src/bin/binary tarball name typos
* missed a few in e090da2a01
* fix release branch name
* must match `release/{revnumber}`, per gitVersioning stanza in top level build.gradle
* harden.adoc: fix broken link to CISA
* fineract-doc/build.gradle
* ensure HTML task has diagrams and images availble
117 lines
3.2 KiB
Groovy
117 lines
3.2 KiB
Groovy
/**
|
|
* 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.
|
|
*/
|
|
apply plugin: 'org.asciidoctor.jvm.convert'
|
|
apply plugin: 'org.asciidoctor.jvm.pdf'
|
|
|
|
// see also: https://asciidoctor.github.io/asciidoctor-gradle-plugin/master/user-guide/
|
|
|
|
asciidoctorj {
|
|
attributes = [
|
|
version: "${project.version}",
|
|
docdate: new Date(),
|
|
generated: "${buildDir}/generated/asciidoc",
|
|
imagesdir: "${buildDir}/generated/images",
|
|
diagramsdir: "${buildDir}/generated/diagrams",
|
|
years: '2015-2025',
|
|
revnumber: "${project.version}".toString(),
|
|
rootdir: "${rootDir}".toString(),
|
|
baseurl: 'fineract.apache.org',
|
|
]
|
|
|
|
modules {
|
|
diagram.use()
|
|
}
|
|
|
|
fatalWarnings ~/include file not found|missing callout|image to embed not found or not readable/
|
|
fatalWarnings missingIncludes()
|
|
}
|
|
|
|
task copyImages(type: Copy) {
|
|
from "${projectDir}/src/docs/en/images"
|
|
into "${buildDir}/generated/images"
|
|
}
|
|
|
|
task copyDiagrams(type: Copy) {
|
|
from "${projectDir}/src/docs/en/diagrams"
|
|
into "${buildDir}/generated/diagrams"
|
|
}
|
|
|
|
asciidoctor {
|
|
languages 'en'
|
|
|
|
baseDir 'src/docs'
|
|
sourceDir 'src/docs'
|
|
sources {
|
|
include('index.adoc')
|
|
}
|
|
outputDir 'build/docs/html'
|
|
|
|
logging.captureStandardError LogLevel.INFO
|
|
|
|
dependsOn copyImages, copyDiagrams
|
|
|
|
dependsOn(':fineract-client:clean', ':fineract-client:buildAsciidoc')
|
|
}
|
|
|
|
asciidoctorPdf {
|
|
languages 'en'
|
|
|
|
baseDir 'src/docs'
|
|
sourceDir 'src/docs'
|
|
sources {
|
|
include('index.adoc')
|
|
}
|
|
outputDir 'build/docs/pdf'
|
|
|
|
logging.captureStandardError LogLevel.INFO
|
|
|
|
dependsOn copyImages, copyDiagrams
|
|
|
|
// TODO: @vidakovic prepare a nicer theme
|
|
// theme 'fineract-default'
|
|
// pdfThemes {
|
|
// local 'fineract-default', {
|
|
// themeDir = "$projectDir/src/resources/themes"
|
|
// }
|
|
// }
|
|
// fontsDir "$projectDir/src/resources/fonts"
|
|
dependsOn(':fineract-client:clean', ':fineract-client:buildAsciidoc')
|
|
}
|
|
|
|
task doc(type: Zip) {
|
|
dependsOn(asciidoctor, asciidoctorPdf)
|
|
|
|
into("fineract-${project.version}/html") {
|
|
from("$buildDir/docs/html") {
|
|
include "**/*"
|
|
exclude "**/.asciidoctor"
|
|
}
|
|
}
|
|
into("fineract-${project.version}/pdf") {
|
|
from("$buildDir/docs/pdf") {
|
|
include "**/index.pdf"
|
|
exclude "**/.asciidoctor"
|
|
rename {
|
|
"fineract-${project.version}.pdf"
|
|
}
|
|
}
|
|
}
|
|
archiveFileName = "${project.name}-${project.version}.zip"
|
|
}
|