Skip to content

Commit

Permalink
Adjust template stuff with SWARC4AI name
Browse files Browse the repository at this point in the history
  • Loading branch information
programming-wolf committed Jul 26, 2024
1 parent 8106a06 commit 522b535
Show file tree
Hide file tree
Showing 7 changed files with 14 additions and 144 deletions.
141 changes: 8 additions & 133 deletions README.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -22,7 +22,7 @@ image:https://img.shields.io/github/issues-closed/isaqb-org/advanced-template.sv
This is <<copyrighted,copyrighted work>>.

== Content
This repository contains a template for iSAQB Advanced Level *curricula* in AsciiDoc.
This repository contains the iSAQB^(R)^ Advanced Level curriculum Software Architecture for AI Systems.

toc::[]

Expand All @@ -31,153 +31,28 @@ Create an issue, a merge- or pull-request

== How to use this template

. Either click on "Use this template" in the Github UI or Clone the repository - including the submodule:
. Clone the repository - including all submodules:
+
--
[source,shell]
----
Via SSH:
git clone git@github.com:isaqb-org/advanced-template.git --recursive
git clone git@github.com:isaqb-org/curriculum-swarc4ai.git --recursive
Via HTTPS:
git clone https://github.com/isaqb-org/advanced-template.git --recursive
git clone https://github.com/isaqb-org/curriculum-swarc4ai.git --recursive
----
--
. Rename the repository to the name of your curriculum e.g. `curriculum-flex`
. Rename the file `/docs/advanced-template.adoc` to the name of your curriculum e.g. `curriculum-flex.adoc` (this is later on referred to as `curriculumFileName`)
. Open the file `./config/setup.adoc` to adjust configuration specific to your curriculum:
.. `:curriculum-short: MODULKUERZEL`: this is the abbreviation of your module. Replace MODULKUERZEL with your module name e.g. FLEX
.. `:curriculum-name: MODULNAME IN VOLLER LAENGE`: the full German title of your CPSA-A module. replace "MODULNAME IN VOLLER LAENGE" with your module name e.g. "Flexible Architecture Models - Microservices und Self-Contained Systems"
.. `:curriculum-name: MODULNAME IN VOLLER LAENGE`: the full English title of your CPSA-A module. replace "MODULNAME IN VOLLER LAENGE" with your module name e.g. "Flexible Architecture Models - Microservices and Self-Contained Systems"
. Open the file `build.gradle` to adjust attributes specific to your curriculum:
[loweralpha]
.. `curriculumFileName`: the name of the asciidoc root file of your curriculum e.g. `curriculum-flex` (see above! The `.adoc` suffix is added automatically, omit it here!)
. Open README.adoc and replace the string `curriculum-template` with the name of your Github repository e.g. `curriculum-flex`
. Build the project with http://www.gradle.com[gradle] (you need a locally installed JDK 17 or higher) via `./gradlew`.
. Once the "BUILD SUCCESSFUL" is show, you can review the build result under `./build/index.html`

== How to write iSAQB Advanced Level Curricula with AsciiDoc

=== Requirements and (our) solutions

[cols="1,2a",options="header"]
|===
|Requirement
|Solution

|Visually appealing pdf output
|We created an iSAQB pdf theme, located under the `/style` directory. The original is maintained in the `adoc2pdf` repository.

|Multiple people contribute content, review and comment
|highly modularized content: Small chunks, like learning-goals or subsections, are contained in their own asciidoc-files.

|Multiple languages, at least EN and DE (i18n)
|Every piece of text is enclosed in _tags_ like `tag::EN[]`. The build process collects all parts for the desired language.

|Simple conversion from asciidoc to pdf (and html)
|There is currently one option available:

* Gradle based build, requiring a local Java runtime.
|===

- - -

**TODO:** Add explanation for keywords and general procedure when creating a new Advanced Level Curriculum.

- - -

=== How to organize files?

==== Prerequisite: AsciiDoc include
You should know some details about the AsciiDoc include statement.

If the Asciidoctor processor encounters a statement like the one below:

[source,asciidoc]
----
include::directory/file.adoc[]
----

It will replace this include statement with the contents of `file.adoc`. That's easy and straightforward.

=== Content and Structure files
As we are writing i18n we need to strictly distiguish between two
kind of files:

* *content* files, they contain text, tables or diagrams that shall be included in the output.
* *structure* files, containing only include-statements, configuration information. Structure files include both content-files and other structure files.

For content files, specific parts will be included via the tag-syntax described above.
For that purpose we define a variable named `include_configuration` in the file `config/setup.adoc`.

==== Structure File Example

In theory, you can just use the `docs/curriculum-template.adoc` as is and just
edit the section documents in the subdirectories. If you want to create your own file,
we recommend to stick with the following:

From `docs/curriculum-template.adoc` (excerpts):

[source,asciidoc]
----
= Template Curriculum: CPSA Certified Professional for Software Architecture^(R)^
:doctype: book
include::config/setup.adoc[] // // <1>
:document-version: 2020.2 // //<2>
:sectnums!: // // <3>
include::00-preamble/copyright.adoc[{include_configuration}] // // <4>
<<< // // <5>
:toc:
<<<
:sectnums!:
include::00-preamble/00-introduction.adoc[] // //<6>
----

1. We propose to put the asciidoc configuration in this special file (`docs/config/setup.adoc`).
2. You can set a version, but it may be overridden in the build process.
3. You can turn section numbering on and off (here: off).
4. This includes parts of the `docs/00-preamble/copyright.adoc` file.
5. The `<<<` will create a pagebreak in pdf files.
6. Include the whole file 00-introduction.adoc.


=== Suggestions

TBD.

== How to build the documents

Prerequisite: You need a Java Runtime(tm) installed.

You build the output documents with gradle.
That will produce both pdf and html output in German (DE) _and_ English (EN), unless you modify the configuration.

In case you want to change that, adjust the following part of `build.gradle`:

[source,groovy]
----
task buildDocs {
group 'Documentation'
description 'Grouping task for generating all languages in several formats'
dependsOn "renderDE", "renderEN"
}
----

In the task "renderDE", certain attributes (aka variables) are defined that configure the corresponding output.

== Additional translations/languages
include::docs-ext/EXTERNAL_DOCUMENTS_README.adoc[]
Prerequisite: You need a Java 17 (or higher) JDK installed.
Build the project with http://www.gradle.com[Gradle] (you need a locally installed JDK 17 or higher) via `./gradlew`.

== Maintainers

This repository is currently maintained by Benjamin Wolf.
It was forked from https://github.com/isaqb-org/curriculum-template,
This repository is currently maintained by the curators of the SWARC4AI curriculum.
It was forked from https://github.com/isaqb-org/advanced-template,
so the contributors of that project basically contributed to this one, too.


Expand Down
2 changes: 1 addition & 1 deletion build.gradle
Original file line number Diff line number Diff line change
Expand Up @@ -9,7 +9,7 @@ def group = "org.isaqb"
def releaseVersion = System.getenv("RELEASE_VERSION")
def localVersion = "LocalBuild"
project.version = releaseVersion == null ? localVersion : releaseVersion
def curriculumFileName = "curriculum-template"
def curriculumFileName = "curriculum-swarc4ai"
def versionDate = new SimpleDateFormat("yyyyMMdd").format(new Date())
def languages = ["DE", "EN"]

Expand Down
Binary file removed docs-ext/curriculum-template-es.pdf
Binary file not shown.
6 changes: 3 additions & 3 deletions docs/config/setup.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -12,14 +12,14 @@
// additional markers might be configured here!
:include_configuration: tags=**;{language};!*

:curriculum-short: MODULKUERZEL
:curriculum-short: SWARC4AI

ifeval::["{language}" == "DE"]
:curriculum-name: MODULNAME IN VOLLER LAENGE
:curriculum-name: Softwarearchitektur für KI-Systeme
:curriculum-header-title: iSAQB-Curriculum für Advanced Level: {curriculum-short}
endif::[]

ifeval::["{language}" == "EN"]
:curriculum-name: FULL NAME OF MODULE
:curriculum-name: Software Architecture for AI Systems
:curriculum-header-title: iSAQB curriculum for Advanced Level: {curriculum-short}
endif::[]
File renamed without changes.
7 changes: 1 addition & 6 deletions docs/index.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -9,8 +9,7 @@ The terminology used in the iSAQB curricula can be found as a (freely available)

== Latest Release {release-version}

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.
The advanced level curriculum **{curriculum-name} [{curriculum-short}]** is 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.

[cols="<,^,^"]
|===
Expand All @@ -24,8 +23,4 @@ Maintainers and volunteer reviewers collaborate on GitHub to improve the curricu
| link:{curriculumFileName}-en.html[HTML]
| link:{curriculumFileName}-en.pdf[PDF]

| Español
|
| link:{curriculumFileName}-es.pdf[PDF]

|===
2 changes: 1 addition & 1 deletion docs/index_rc.adoc
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,7 @@ include::config/setup.adoc[]
= image:isaqb-logo.jpg[width=150]Certified Professional for Software Architecture^(R)^ (CPSA)
- Curriculum {curriculum-name} [{curriculum-short}] – Release Candidate -

:repo-name: advanced-template
:repo-name: curriculum-swarc4ai

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

Expand Down

0 comments on commit 522b535

Please sign in to comment.