The changelog format can be found here. Tickets that create lasting requirements can be found here.

Tickets are referenced with a hashtag and prefix in order to indicate the server, that hosts the ticket: for example #g1 stands for the first Github issue and #s1 for the first sourcehut issue. Ticket references without a prefix are probably hosted on Github.

Prefix to Server:

  • g = Github:
  • s = sourcehut:

Ticket information located on platforms and not in the repository are considered throw away information. Links to such platforms may or may not be valid.

Releases are done everytime an important ticket is completed.


Major Changes

  • 2021-10-18:
    1. #10 Privatize Constructor of NotImplementedYet exception. Thereby, the public API is unified.
    2. #10 Privatize Constructor of LinkTranslator for CommonMark. Thereby, the public API is unified.
  • 2021-10-01: Install man pages to ~/bin/man/man1 so that the common man command can find and display man pages installed by os state interface.
  • 2021-09-18: Install pip modules via pip.module.install for user and therefore without admin rights.
  • 2021-09-18: Remove command of OS state interface project.
  • 2021-09-17: #10
    1. Delete the interface net.splitcells.dem.resource.communication.Subscribable, because it was not used.
    2. Make package structure more consistent.
      1. Move Dem's Files interface from communication package to more general resource package.
      2. Move Dem's LogMessage, LogMessageI and LogLevel from the package net.splitcells.dem.resource.communication.interaction to, because sees interfaces and classes are not host specific.
    3. Rename net.splitcells.dem.lang.annotations.Return_this to ReturnThis in order to unify naming.
  • 2021-09-15: #8 Migrate Domsole from XML node base to Perspective base. Thereby, a custom rendering format is created, which is more suitable for the console, as it is a lot shorter, simpler and nicer. The XML rendering is currently broken and will be fixed for the website, when it is used again. Logging based on XML nodes is removed, also some deprecated method still exists, but they have no functionality.
  • 2021-09-11: now echos content of stderr to the shell during the execution normally. This way one knows all the errors, that appeared after a successful execution of the given command. If for instance one has a data synchronization script for multiple backup servers, one can see which server could not be reached, without marking the whole execution as failure.
  • 2021-09-05:
    1. Disable caching for default weblayout in order to keep CSS styling in webbrowser up to date.
  • 2021-08-29:
    1. #79: now renders text files with the file suffix .html instead of .txt. For the end user it means, that links to these file needs to be adjusted. This needs to be done, because static file webservers need to know the file type. Otherwise, text files transformed to HTML are not rendered correctly on web browsers. In practice this is used in order to serve the license files to See this example.
  • 2021-08-14:
    1. user.bin.configure now does not require additional user specific implementation. The command now works out of the box without an error message.
  • 2021-08-10:
    1. command.repositories.install now only installs sh, Bash and Python commands.
  • 2021-08-05:
    1. Rename net.splitcells.dem.utils.CommonFunctions#hash_code to hashCode.

Minor Changes

  • 2021-10-11
    1. #119 Document deployment:
      1. Create Maven profile deployment in order to create deployable jars.
      2. Document deployment and link it from README.
    2. #128 Create word dictionary with links to their definition..
  • 2021-10-05 Create blog articles:
    1. Development Timing And Discovery Based Networks Of Perspectives 2.There is the bad, there is the horrible and than there is <sight> error handling.
  • 2021-10-03 #101 Support gemini protocol for network blog: The site was deployed to link).
  • 2021-10-02 #99 Add license headers to all webservers default content:
    1. The network's blog articles
    2. CSS files
    3. Javascript files
    4. HTML files
    5. Layout/XSL files
  • 2021-09-30 #s6 Jumpstart State Network Optimization (SEP): Provide an API in order to manage and work on complex optimizations, that consist of multiple sub problems. Thereby the SchoolSchedulingTest was migrated to new the API in order to simplify future code for this test.
  • 2021-09-19 Define chrome installation command via flatpak.
  • 2021-09-17: #10 Introduce the first pure project: net.splitcells.dem.merger
  • 2021-09-14
    1. Create concept presentation for Gel based on thought experiment.
    2. Support serving raw HTML files via webserver.
    3. Render changelog on website.
  • 2021-09-11: Support Fedora Silverblue, by implementing package.install via rpm-ostree. This package install command has the highest priority, because package managers like dnf should be ignored in this case.
  • 2021-09-04:
    1. Create command user.ssh.key.login.allow in order to allow login via public key. This command mainly grants read access to ~/.ssh/authorized_keys for the ssh server.
    2. Create command user.ssh.key.authorize in order to import public keys into ~/.ssh/authorized_keys via command. Already present entries are not inserted.
    3. Remove Lombok plugin installation steps inside because an update of Flatpak broke this.
  • 2021-08-29:
    1. Create method Paths.removeFileSuffix in order to unify file suffix manipulation implementations.
    2. #79: Render new license info on website.
    3. #s2: Create Host independent ticket numbering. Numbering is done via a prefix, that indicates the server hosting the ticket. This is documented in the changelog description located at the start.
  • 2021-08-28:
    1. Create helper command wait.interactively.until in order to wait until condition is fulfilled.
  • 2021-08-24:
    1. Add secondary arguments to maven.execute command.
    2. Add ENFORCING_UNIT_CONSISTENCY environment property to Dem, so it can be set during program startup without programming.
    3. Create project command execute.example for gel.sheath in order to make easy to create custom execution command.
  • 2021-08-11:
    1. Server SVG images from source folder by webserver and add them to the layout.
    2. Deprecated untyped repositories in webserver.
    3. Render LaTex math formulas via MathJax in website.
    4. Translate local image links in CommonMark to the link of the website.
  • 2021-08-10:
    1. Create command project.repository.register in order to omit editing config files manually.
  • 2021-08-09: Create for deploying the build process on multiple computers.
  • 2021-08-08: command.repositories.install now strips known file suffixes during installation. This way os.state.interface repos can now state their file endings and thereby have better IDE support in such repos.


  • 2021-10-18: #100 Fix links from CommonMark files transformed to CommonMark files: Before the patches the webserver could not create links between CommonMark files, because the file suffix .md was not replaced with .html. .md are the file suffix for the source CommonMark files. .html are the file suffix for the rendered CommonMark files.
  • 2021-08-28:
    1. Fix licensing issues found via FOSSA.
  • 2021-08-05:
    1. Fix Dependabot alert.
    2. Make hashCode and equals of net.splitcells.gel.rating.framework.MetaRatingI consistent.
    3. Make hashCode of HasMinimalSize, HasSize, MinimalDistance, MinimalDistanceBasedOnDiffs, Compliance, Cost, BoolI, Comparators more consistent to equals, in order to improve Code quality score in

[3.0.0] - 2021-08-05

Starting from this point a deprecated changelog format is used.

Major Changes

  1. 2021-07-08:
    1. Default configuration of Dem's process does not ensure determinism or randomness.
  2. 2021-07-04:
    1. #61 Remove XSL parameter from rendering API in webserver.
  3. 2021-07-03:
    1. Port 'repo.synchronize.with' to Python, add standardized argument handling and use better sub commands for each synchronization step. Also adds a logging message in case of error.
  4. 2021-07-01:
    1. Remove experimental web layouts.
  5. 2021-06-25:
    1. #8 Remove deprecated constructor ProjectRenderer.
    2. #8 Provide path /net/splitcells/website/layout/build in server, in order to refresh project layout.
    3. #8 Clean up error logging in HttpServer.
    4. #8 Add description to RaterBasedOnLineValue based on classifier.
    5. Remove verification step after repair inside in order to prevent duplicate verification calls.
    6. Install project commands in Ossi from repos listed in ~/.config/net.splitcells.os.state.interface/project.repositories. In other words: command.repositories.install and command.managed.install.project.commands now each have their own repo list. The reason for this is the fact, that repos for projects cannot be installed like repos for commands in OSSI. The reason for this, is the fact, that files located in the src folder of the project repo, may not work as an independent command.
    7. Use ~/.config/net.splitcells.os.state.interface/command.repositories for command.repositories.install. This way it is easier to understand the Ossi config files.
  6. 2021-06-24:
    1. #8 Rename ForallI to ForAll, in order to simplify name.
    2. #8 Create valid XML for natural argumentation.
    3. Use established px default value for default font-size in default web layout.
    4. Rename ConstraintAI#process_lines_before_removal to processLinesBeforeRemoval in order to unify naming.
    5. Rename ConstraintAI#register_before_removal to registerBeforeRemoval in order to unify naming.
    6. Rename ConstraintAI#register_additions to registerAdditions in order to unify naming.
    7. Rename ConstraintAI#process_line_addition to processLineAddition in order to unify naming.
    8. Prevent random test error in SimplifiedAnnealingProblemTest#testProbability.
    9. Adjust default value of ProcessPath, so it does not clutter project repo, if the program is executed with default settings inside IDE.
  7. 2021-06-23: #8 Remove deprecated usage of and mark these as protected. These constructors will be made private in the future.
  8. 2021-06-21: Remove net.splitcells.gel.problem.Problem#toSolution(), because it is not used and was not implemented yet.
  9. 2021-04-13: #7: Model and solve oral exam problem.
  10. 2021-04-07: #42: Make Gel workspace visible in website.
  11. 2021-04-12: #46: Use deterministic environment and execution in CI.
  12. Some undocumented work.

Minor Changes

  1. 2021-06-27:
    1. Publish Ses project.
    2. Limit depth of Local Path Context in default web layout.
    3. Render Local Path Context for CommonMark documents.
  2. 2021-06-25:
    1. #8 Create index file, for standard analysis.
  3. #8 Create RegulatedLength AllSame.
  4. #8 Create RegulatedLength Rater.
  5. 2021-06-19: Create command convention Exits with 0, if this repo can be synchronized and else exits 1. This can be used as a safeguard for automated synchronization command by exiting a command, when uncommitted changes are present.
  6. 2021-06-06: #54: Integrate CommonMark documentation into project rendering.
  7. Some undocumented work.
  8. 2020-12-31: Create public git repository.
  9. Some undocumented work.
  10. 2019-05-05: Create private git repositories.
  11. Some undocumented work.


  1. 2021-06-27 Log error stack traces in web server.
  2. 2021-06-26 Add optimization to den.xsd.
  3. 2021-06-25 Determine project's source folder correctly in ProjectRenderer.
  4. Some undocumented work.


Second version created during master thesis.


First version created during practical course in university study.