Skip to content

Commit

Permalink
Merge pull request #7 from isaqb-org/prepare-for-release
Browse files Browse the repository at this point in the history
Prepare for Release
  • Loading branch information
programming-wolf authored Nov 17, 2023
2 parents fd9f4d1 + 685efd8 commit a701f81
Show file tree
Hide file tree
Showing 16 changed files with 271 additions and 152 deletions.
116 changes: 29 additions & 87 deletions build.gradle
Original file line number Diff line number Diff line change
@@ -1,103 +1,45 @@
import org.asciidoctor.gradle.jvm.AsciidoctorTask
import java.text.SimpleDateFormat

plugins {
id "org.asciidoctor.jvm.base" version "3.3.2"
id "org.asciidoctor.jvm.convert" version "3.3.2"
id "org.asciidoctor.jvm.pdf" version "3.3.2"
}
repositories {
mavenCentral()
}

asciidoctorj {
version = '2.5.3'
id "java"
id "application"
}

ext {
today = new Date()
versionDate = new SimpleDateFormat("yyyyMMdd").format(today)
def group = "org.isaqb"
def releaseVersion = System.getenv("RELEASE_VERSION")
def localVersion = "LocalBuild"
project.version = releaseVersion == null ? localVersion : releaseVersion
def curriculumFileName = "examination-regulations"
def criteriaFileName = "examination-criteria"
def versionDate = new SimpleDateFormat("yyyyMMdd").format(new Date())
def languages = ["DE", "EN"]

releaseVersion = System.getenv("RELEASE_VERSION")
localVersion = "LocalBuild"
project.version = releaseVersion == null ? localVersion : releaseVersion;

curriculumFileName = "examination-regulations"
addSuffixToCurriculum = { suffix ->
for (extension in ["html", "pdf"]) {
File source = new File("${buildDir}/${curriculumFileName}.${extension}")
File target = new File("${buildDir}/${curriculumFileName}${suffix}.${extension}")

source.renameTo(target)
}
}
repositories {
mavenCentral()
}




class RenderCurriculumTask extends AsciidoctorTask {
@Inject
RenderCurriculumTask(WorkerExecutor we, String curriculumFileName, String versionDate, String language) {
super(we)

forkOptions {
jvmArgs "--add-opens", "java.base/sun.nio.ch=ALL-UNNAMED", "--add-opens", "java.base/java.io=ALL-UNNAMED"
}


sourceDir = new File("./docs/")
baseDir = new File ("./docs/")
sources {
include "index.adoc"
include "examination-criteria.adoc"
include "${curriculumFileName}.adoc"
}
outputDir = new File("./build/")
outputOptions {
separateOutputDirs = false
backends 'pdf', 'html5'
}

def fileVersion = project.version.trim() + "-" + language

attributes = [
'icons' : 'font',
'version-label' : '',
'revnumber' : fileVersion,
'revdate' : versionDate,
'document-version' : fileVersion + "-" + versionDate,
'currentDate' : versionDate,
'language' : language,
'curriculumFileName': curriculumFileName,
'debug_adoc' : false,
'pdf-stylesdir' : '../pdf-theme/themes',
'pdf-fontsdir' : '../pdf-theme/fonts',
'pdf-style' : 'isaqb',
'stylesheet' : '../html-theme/adoc-github.css',
'stylesheet-dir' : '../html-theme'
]
}
dependencies {
implementation("org.asciidoctor:asciidoctorj:2.5.10")
implementation("org.asciidoctor:asciidoctorj-pdf:2.3.9")
}

task buildDocs {
group 'Documentation'
description 'Grouping task for generating all languages in several formats'
dependsOn "renderDE", "renderEN"
application {
mainClass.set("org.isaqb.asciidoc.Main")
applicationDefaultJvmArgs = [
"""-DprojectVersion=${project.version}""",
"""-DcurriculumFileName=${curriculumFileName}""",
"""-DcriteriaFileName=${criteriaFileName}""",
"""-DversionDate=${versionDate}""",
"""-Dlanguages=${languages.join(',')}""",
"""--add-opens""", """java.base/sun.nio.ch=ALL-UNNAMED""",
"""--add-opens""", """java.base/java.io=ALL-UNNAMED"""]
}

task renderDE(type: RenderCurriculumTask,
constructorArgs: [curriculumFileName, versionDate, "DE"]) {
doLast {
addSuffixToCurriculum("-de")
}
}

task renderEN(type: RenderCurriculumTask,
constructorArgs: [curriculumFileName, versionDate, "EN"]) {
doLast {
addSuffixToCurriculum("-en")
}
tasks.register('buildDocs') {
description = 'Grouping task for generating all languages in several formats'
group = 'documentation'
dependsOn "run"
}

defaultTasks "buildDocs"
10 changes: 8 additions & 2 deletions docs/05-criteria/00-structure.adoc
Original file line number Diff line number Diff line change
@@ -1,9 +1,15 @@
// we have to adjust the heading levels of all included files, as this structure file
// is used as the only include for the examination-criteria, and thus requires a different
// heading structure. Some of the files included below are also included in examination-regulations,
// which is why they should follow the regular heading style of all the other files.
// therefore, we also do not need a specific German/English section. To remove warnings, we'll just
// add empty blocks.
:leveloffset: -2

// tag::DE[]
== Kriterien
// end::DE[]

// tag::EN[]
== Criteria
// end::EN[]

include::01-accreditation.adoc[{include_configuration}]
Expand Down
6 changes: 4 additions & 2 deletions docs/05-criteria/01-accreditation.adoc
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@
// tag::DE[]
=== Akkreditierung
==== Trainingsprovider
Trainingsprovider müssen nachfolgende Kriterien erfüllen, damit sie von iSAQB die Akkreditierung bekommen:

Expand Down Expand Up @@ -45,7 +44,10 @@ Zur Akkreditierung muss ein:e Themenmoderator:in folgende Kriterien erfüllen:
// end::DE[]

// tag::EN[]
=== Accreditation
==== Training Provider
TODO

==== Training Facilitators


// end::EN[]
2 changes: 1 addition & 1 deletion docs/05-criteria/05-criteria-roadmap.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -44,7 +44,7 @@
// tag::EN[]
==== Criteria for a Roadmap

[cols="<3,<1,<7a"]
[cols="<3,<2,<7a"]
|===
| Criterion | Requirement | Description

Expand Down
2 changes: 1 addition & 1 deletion docs/05-criteria/06-criteria-formal.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -90,7 +90,7 @@

==== Formal Criteria

[cols="<3,<1,<7a"]
[cols="<3,<2,<7a"]
|===
| Criterion | Requirement | Description

Expand Down
3 changes: 2 additions & 1 deletion docs/config/setup.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,8 @@
:icons: font
:sectnumlevels: 2
:imagesdir: images
:chapter-label:

:!chapter-signifier:

// ":language:" denotes the language or the target document.
// currently only DE and EN are supported
Expand Down
1 change: 0 additions & 1 deletion docs/config/setup_criteria.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -6,7 +6,6 @@ ifeval::["{language}" == "DE"]
endif::[]

ifeval::["{language}" == "EN"]
:curriculum-name: FULL NAME OF MODULE
:curriculum-header-title: Criteria for the iSAQB® CPSA® Expert Level
:hyphens: en_US
endif::[]
3 changes: 0 additions & 3 deletions docs/config/setup_regulations.adoc
Original file line number Diff line number Diff line change
@@ -1,14 +1,11 @@
include::setup.adoc[]

:curriculum-short: MODULKUERZEL

ifeval::["{language}" == "DE"]
:curriculum-header-title: Prüfungsordnung iSAQB® CPSA® Expert Level
:hyphens: de
endif::[]

ifeval::["{language}" == "EN"]
:curriculum-name: FULL NAME OF MODULE
:curriculum-header-title: Examination Regulations iSAQB® CPSA® Expert Level
:hyphens: en_US
endif::[]
Expand Down
8 changes: 1 addition & 7 deletions docs/examination-criteria.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -4,25 +4,19 @@ include::config/setup_criteria.adoc[]

ifeval::["{language}" == "DE"]
= Kriterien für pass:q[<br><br>]Certified Professional forpass:q[<br>]Software Architecture (CPSA)^(R)^pass:q[<br>]_Expert Level_ pass:q[<br>]
:toc-title: Inhaltsverzeichnis
:toc: left
endif::[]

ifeval::["{language}" == "EN"]
= Criteria for pass:q[<br><br>]Certified Professional forpass:q[<br>]Software Architecture (CPSA)^(R)^pass:q[<br>]_Expert Level_ pass:q[<br>]
:toc: left
endif::[]

// define terms for toc, learning-goals
include::config/i18n-definitions.adoc[tags={language}]

<<<
:sectnums!:
include::../license-copyright/copyright.adoc[{include_configuration}]

<<<
toc::[]
include::../license-copyright/copyright.adoc[{include_configuration}]

<<<
:sectnums:
include::05-criteria/00-structure.adoc[{include_configuration}]
30 changes: 14 additions & 16 deletions docs/index.adoc
Original file line number Diff line number Diff line change
@@ -1,31 +1,29 @@
include::config/setup.adoc[]

= image:isaqb-logo.jpg[width=150]Certified Professional for Software Architecture^(R)^ (CPSA)
Curriculum {curriculum-name} [{curriculum-short}]
Expert Level

The international Software Architecture Qualification Board (link:https://isaqb.org[iSAQB]) defines curricula on several levels for software architects.

The terminology used in the iSAQB curricula can be found as a (freely available) ebook, published on https://leanpub.com/isaqbglossary/read[Leanpub].

== Development versions
The regulations and criteria of the Expert Level are currently maintained and published in both English (EN) and German (DE).
Maintainers and volunteer reviewers collaborate on GitHub to improve those documents.

The Advanced Level Template Curriculum is currently maintained and published in both English (EN) and German (DE).
Maintainers and volunteer reviewers collaborate on GitHub to improve the curriculum.

[cols="<,^,^"]
[cols="<,<"]
|===
| Version | HTML | PDF
| German | English

| link:examination-regulations-de.pdf[Prüfungsordnung (PDF)]
| link:examination-regulations-en.pdf[Examination Regulations (PDF)]

| German
| link:{curriculumFileName}-de.html[HTML]
| link:{curriculumFileName}-de.pdf[PDF]
| link:examination-criteria-de.pdf[Kriterien (PDF)]
| link:examination-criteria-en.pdf[Examination Criteria (PDF)]

| English
| link:{curriculumFileName}-en.html[HTML]
| link:{curriculumFileName}-en.pdf[PDF]
| link:iSAQB_CPSA_Expert_Level_Template_Roadmap_DE.docx[Vorlage für eine Roadmap (DOCX)]
| link:iSAQB_CPSA_Expert_Level_Template_Roadmap_DE.docx[Roadmap Template (DOCX)]

| Español
|
| link:{curriculumFileName}-es.pdf[PDF]
| link:iSAQB_CPSA_Expert_Level_Field_Report_DE.docx[Erfahrungsbericht zum Expert Level (DOCX)]
| link:iSAQB_CPSA_Expert_Level_Field_Report_EN.docx[Field Report Expert Level (DOCX)]

|===
42 changes: 25 additions & 17 deletions docs/index_rc.adoc
Original file line number Diff line number Diff line change
@@ -1,32 +1,40 @@
include::config/setup.adoc[]

= image:isaqb-logo.jpg[width=150]Certified Professional for Software Architecture^(R)^ (CPSA)
- Curriculum {curriculum-name} [{curriculum-short}] – Release Candidate -
Expert Level

The international Software Architecture Qualification Board (link:https://isaqb.org[iSAQB]) defines curricula on several levels for software architects.

The **Release Candidates** of the **{curriculum-name} [{curriculum-short}]** advanced level curriculum are currently maintained and published in both English (EN) and German (DE). Maintainers of this curriculum and voluntary reviewers collaborate on https://github.com/isaqb-org[GitHub] to improve the curriculum.

== Current Release Candidate v2023.1
The **Release Candidates** of the **Expert Level Regulations and Criteria** are currently maintained and published in both English (EN) and German (DE).
Maintainers of this curriculum and voluntary reviewers collaborate on https://github.com/isaqb-org[GitHub] to improve the curriculum.

image:https://img.shields.io/github/last-commit/isaqb-org/advanced-template/main.svg["Last commit"]
image:https://img.shields.io/github/contributors/isaqb-org/advanced-template.svg["Contributors",link="https://github.com/isaqb-org/advanced-template/graphs/contributors"]
image:https://img.shields.io/github/issues/isaqb-org/advanced-template.svg["Issues",link="https://github.com/isaqb-org/advanced-template/issues"]
image:https://img.shields.io/github/issues-closed/isaqb-org/advanced-template.svg["Issues closed",link="https://github.com/isaqb-org/advanced-template/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aclosed+"]
image:https://img.shields.io/github/commits-since/isaqb-org/advanced-template/latest.svg[]
== Current Release Candidate {document-version}

image:https://img.shields.io/github/last-commit/isaqb-org/examination-expert/main.svg["Last commit"]
image:https://img.shields.io/github/contributors/isaqb-org/examination-expert.svg["Contributors",link="https://github.com/isaqb-org/examination-expert/graphs/contributors"]
image:https://img.shields.io/github/issues/isaqb-org/examination-expert.svg["Issues",link="https://github.com/isaqb-org/examination-expert/issues"]
image:https://img.shields.io/github/issues-closed/isaqb-org/examination-expert.svg["Issues closed",link="https://github.com/isaqb-org/examination-expert/issues?utf8=%E2%9C%93&q=is%3Aissue+is%3Aclosed+"]
image:https://img.shields.io/github/commits-since/isaqb-org/examination-expert/latest.svg[]
[cols="<,<"]
|===
| Version | HTML | PDF
| German | English

| link:examination-regulations-de.pdf[Prüfungsordnung (PDF)]
| link:examination-regulations-en.pdf[Examination Regulations (PDF)]

| German
| link:{curriculumFileName}-de.html[HTML]
| link:{curriculumFileName}-de.pdf[PDF]
| link:examination-criteria-de.pdf[Kriterien (PDF)]
| link:examination-criteria-en.pdf[Examination Criteria (PDF)]

| English
| link:{curriculumFileName}-en.html[HTML]
| link:{curriculumFileName}-en.pdf[PDF]
| link:iSAQB_CPSA_Expert_Level_Template_Roadmap_DE.docx[Vorlage für eine Roadmap (DOCX)]
| link:iSAQB_CPSA_Expert_Level_Template_Roadmap_DE.docx[Roadmap Template (DOCX)]

| link:iSAQB_CPSA_Expert_Level_Field_Report_DE.docx[Erfahrungsbericht zum Expert Level (DOCX)]
| link:iSAQB_CPSA_Expert_Level_Field_Report_EN.docx[Field Report Expert Level (DOCX)]

|===

== Changes compared to XXX
- link:https://github.com/isaqb-org/advanced-template/blob/main/CHANGELOG.md[CHANGELOG.md on GitHub]

== Changes compared to the previous version
- link:https://github.com/isaqb-org/examination-expert/blob/main/CHANGELOG.md[CHANGELOG.md on GitHub]
// - link: [HTML diff to the latest curriculum] T.B.A.
Binary file modified gradle/wrapper/gradle-wrapper.jar
Binary file not shown.
3 changes: 2 additions & 1 deletion gradle/wrapper/gradle-wrapper.properties
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
distributionBase=GRADLE_USER_HOME
distributionPath=wrapper/dists
distributionUrl=https\://services.gradle.org/distributions/gradle-7.6.2-bin.zip
distributionUrl=https\://services.gradle.org/distributions/gradle-8.4-bin.zip
networkTimeout=10000
validateDistributionUrl=true
zipStoreBase=GRADLE_USER_HOME
zipStorePath=wrapper/dists
Loading

0 comments on commit a701f81

Please sign in to comment.