- 9999-08-27 Proposal of the Project Ensure local unique discoverability
 - 9999-04-27 Project Proposal: Establish the concept of article projects.
 - 2025-10-14 Proposal of the Project Check XML Schemas
 - 2025-09-27 (link):  #8: Define 
HtmlClientImpl#evalIfExists. - 2025-09-03 Proposal of the Project Migrate to Maven 4
 - 2025-09-02 Proposal of the Project Support Maven Artifact Resolver
 - 2025-08-26 End of the Project Migrate repo access from HTTPS to SSH
 - 2025-08-24 Proposal of the Project Migrate repo access from HTTPS to SSH
 - 2025-08-24 Start of the Project Migrate repo access from HTTPS to SSH
 - 2025-06-10 (link):  #37 Prefer implicit throw via 
NotImplementedYet#throwNotImplementedYet, instead of explicitthrow #notImplementedYet(), in order to simplify code and allow more centralised error handling. - 2025-06-05 (link):  #49 Reimplement 
bin/worker.executeasbin/worker.execute.py, in order to:- Add automatic tests.
 - Deploy remotely without extra scripts via just 
bin/worker.execute(for command dispatch) and thebin/bootstrap.*(initial build commands). - Deploy persistent user systemd service remotely without extra scripts.
 - Simplify code by generating bash scripts.
 - Find out, that a Java implementation of 
bin/worker.execute, currently would not be a net benefit by remove Python 3 from the software stack. - In the future this script may support
 
 - 2025-06-01 Proposal of the Project Migrate local app to SWT without OSGI
 - 2025-05-19 Proposal of the Project Migrate live distro from Hetzner server to private server
 - 2025-05-06 Project Proposal: Create new art.
 - 2025-05-06 Project Proposal: Make existing optimization examples more challenging.
 - 2025-04-29 Proposal of the Project Consolidating the project's focus
 - 2025-04-16 Project Proposal: Create a meme strategy.
 - 2025-04-16 Proposal of the Project Create logo for network project
 - 2025-04-06 Project End: Use Lombok's new val implementation.
 - 2025-03-31 Project Proposal: Improve performance via profilers.
 - 2025-03-24 Project Start: Use Lombok's new val implementation.
 - 2025-03-16 (link):  #59
- Define UserHomeFileSystem option, that provides access to 
~/. - Define delete methods for file systems.
 
 - Define UserHomeFileSystem option, that provides access to 
 - 2025-03-13 Project Proposal: Create a custom annotation processor for custom getter setter generation.
 - 2025-03-13 Project Proposal: Use Lombok's new val implementation.
 - 2025-03-07 (link): #37 Create new code editor backend, that is the basis for a shared editor backend for the code and no-code version.
 - 2025-03-05 Project Proposal: Mark ANTLR code as legacy code.
 - 2025-03-01 Project Proposal: Establish a symbiosis strategy.
 - 2025-02-28 Proposal of the Project Sigma Grind starting from March 4th to March 16th
 - 2025-02-28 Proposal of the Project Create advertisement system
 - 2025-02-25 Proposal of the Project Port Shell project to Java and the Network Worker
 - 2025-02-24 Proposal of the Project Speech to Text for Shell
 - 2025-01-23 Project Proposal: Boostrap behaviour driven development (BDD).
 - 2025-01-23 Proposal of the Project Consider RSS feed for news distribution
 - 2025-01-19 Project Proposal: Provide and use XSD for XML of webserver.
 - 2025-01-16 Project Proposal: Improve Maven build runtime.
 - 2025-01-13 Project Proposal: Improve group rater performance.
 - 2024-12-28 Proposal of the Project The Great Convergence
 - 2024-12-24 Proposal of the Project Document compatibility guidelines
 - 2024-12-07 Proposal of the Project Implement constraints without assignments
 - 2024-12-04 (link):  #55
- Rename 
LookupComponents#lookuptoLookupComponents#persistedLookup. - Define new 
LookupComponents#lookupmethods, that returns a lookup, that may be persisted or not. - Delete LookupFactory and LookupIFactory, as it was not needed.
 - Rename Lookup related implementations to PersistedLookup implementations.
 
 - Rename 
 - 2024-11-22 Proposal of the Project Create main guidelines
 - 2024-11-20 Proposal of the Project Consider column focused query API for tables
 - 2024-11-19 (link):  #51 Create wrapper for Java's 
Collection#stream(), in order to provide own additional methods fluently. - 2024-11-15 (link):  #51
- Define rating method after line removal instead of before for raters. This makes it possible to create simplified rater implementation.
 - Deprecate RaterBasedOnLineGroup, as it is too complicated. Create LineGroupRater as an alternative.
 
 - 2024-11-14 Project Proposal: Consider creating a stable API.
 - 2024-11-13 Proposal of the Project Solve sport lesson assignment
 - 2024-11-13 (link): #51 Define description string API of ratings for users.
 - 2024-11-10 Proposal of the Project Consider Supporting External Frontend Library
 - 2024-11-06 Proposal of the Project Use Links Instead of Snippets
 - 2024-11-01 Project Proposal: Create bootstrapping commands for contributors.
 - 2024-10-31 Project Proposal: Create error reporter with GUI.
 - 2024-10-31 Project Proposal: Create recommended development tools list.
 - 2024-10-31 Project Proposal: Create Dem process and thread observer.
 - 2024-10-29 Proposal of the Project Support Behavior Driven Development
 - 2024-10-28 (link):  #51 Make Table naming more logical and consistent with public communities like SQL.
- Rename Table to View in order to avoid confusion.
 - Rename Database to Table in order to avoid confusion.
 
 - 2024-10-23 Proposal of the Project Consider Backward and Forward Compatibility
 - 2024-10-21 Proposal of the Project Support databases based on primitives
 - 2024-10-21 Proposal of the Project Fix table and table name
 - 2024-10-15 Proposal of the Project Consider fault injection
 - 2024-10-14 Proposal of the Project Add code scanners
 - 2024-10-14 Proposal of the Project Bootstrap game based on optimization networks
 - 2024-10-11 Proposal of the Project Translate/translate core code to other languages
 - 2024-10-09 Proposal of the Project Ensure access control for all external connections
 - 2024-09-27 (link):  Rename 
net.splitcells.dem.lang.perspective.Perspective*tonet.splitcells.dem.lang.tree.Tree*in order to make code compact and more readable. Also, renameDomable#toPerspective()toDomable#toTree(). - 2024-09-25 Proposal of the Project Disrespecting APIs
 - 2024-09-20 (link):  #26 Migrate 
Table#toFods,SolutionView#toFodsTableAnalysisandHistory#toAnalysisFodsfrom XML to Perspective. - 2024-09-03 Proposal of the Project Fully bootstrap Network Worker
 - 2024-09-03 Proposal of the Project No-Code Editor
 - 2024-08-27 Proposal of the Project Make copies of the webserver thread safe
 - 2024-08-27 Proposal of the Project Make constraint multi-threading usable
 - 2024-08-24 (link):  #37: Provide optional multi-threading of 
net.splitcells.website.server.Server#serveToHttpAt. The multi-threading is achieved by using a copy of theProjectsRendererfor each thread. This minimizes the amount of code needed, in order to achieve thread safety. - 2024-08-22 Proposal of the Project Sigma Grind of 24th of August 2024
 - 2024-08-18 Project Proposal: Document why CSP was not used.
 - 2024-08-18 Project Proposal: Provide logos for interest groups in this project.
 - 2024-08-18 Project Proposal: Create dedicated Doc projects.
 - 2024-08-06 Project Proposal: Make no-code editor viable.
 - 2024-08-06 Proposal of the Project Establish Cell API
 - 2024-08-06 Project Proposal: Move personal lib into personal support.
 - 2024-08-06 Project Proposal: Implement multi threading via effect system.
 - 2024-08-02 Proposal of the Project Double-Entry Bookkeeping in IT
 - 2024-07-31 Project Proposal: Create file browser for meta column.
 - 2024-07-28 Proposal of the Project Why has everything its own custom interface?
 - 2024-07-28 Project Proposal: Consider outside info for Java performance.
 - 2024-07-28 (link):  #26 
NameSpace#isXmlAttributenow encodes, if values of that namespace should be rendered as XML attributes. - 2024-07-25 (link):  #24 Rename 
Query#constrainttoQuery#parseConstraintin order to mark the intent better. - 2024-07-24 (link): #24 Constraint queries can now be used to check for the existence of constraint nodes without creating new constraints.
 - 2024-07-09 Proposal of the Project Support ARIA for Assistive Web Technologies
 - 2024-07-07 Proposal of the Project Migration From SourceHut to Codeberg
 - 2024-06-20 Proposal of the Project Speed up Maven build on developer computer
 - 2024-06-04 (link): #c11 Create a lightweight IDE for the Generic Allocator.
 - 2024-06-02 Proposal of the Project Read about performance engineering in Java
 - 2024-05-31 Proposal of the Project Get first user
 - 2024-05-31 Project Proposal: Create no-code gel editor.
 - 2024-05-20 Project Proposal: Blog on how virus scanner should work.
 - 2024-05-20 Project Proposal: Blog about package manager versus dependency management.
 - 2024-05-19 Proposal of the Project Add licensing link to side menu
 - 2024-04-26 (link):  #c11 Create 
ssh.download.filecommand. - 2024-04-26 (link):  #c11: Create 
ServerLog, that outputs log messages as JSON documents in a single line. This is suitable for log files on servers. - 2024-04-14 Proposal of the Project AssertJ considered unfit
 - 2024-04-06 Proposal of the Project Projekt zur Planungs-Unterstützung von Schulen
 - 2024-04-06 Proposal of the Project Project for supporting scheduling at schools
 - 2024-04-02 Proposal of the Project Commentary guidelines on external dependencies regarding the attack on the xz project
 - 2024-04-01 (link):  #170 Deprecate ResourceOptionI.
Implement the ResourceOption API directly instead,
by implementing the 
Option#defaulValue()instead of implementing this via the default constructor. - 2024-03-26 (link): #252 Provide scheduling tool for schools in general.
 - 2024-03-24 Project Proposal: Providing an experimental school scheduling tool for schools in general.
 - 2024-03-24 Project End: Provide scheduling tool for schools in general.
 - 2024-03-10 Project Proposal: Migrate from SourceHut to Codeberg.
 - 2024-03-05 (link):  #170 Deprecate 
OptionIin order to remove all abstraction classes in the future. - 2024-02-12 (link):  #213 Disallow using 
./.net.splitcells.os.state.interface.repo/subs.jsonfor storing the child repo names. Use./bin/net.splitcells.osi.repos.childreninstead. Both files have the same format. This simplifies the file structure. - 2024-02-04 Project Proposal: Preferring minimal APIs.
 - 2024-01-31 Proposal of the Project Make project executable in browser via TeaVM
 - 2024-01-02 Proposal of the Project The Second Reprioritization
 - 2023-12-30 Proposal of the Project Make project advertisable
 - 2023-12-22 (link):  ##252: 
DefaultOptimizationnow provides the recommended optimizer for problems in general. - 2023-12-18 Proposal of the Project Support for Complex Refactoring
 - 2023-12-17 Proposal of the Project Test repo commands
 - 2023-11-27 (link):  #252: Rename logging facilities as such.
This avoids, that someone interprets such logging facilities as something else based on their complex names.
The idea of a Domsole is not abandoned and therefore such an interface was recreated with an appropriate note.
- CommonMarkDui -> CommonMarkLog.
 - Domsole -> Logs
 - Pdsui -> LogImpl
 - Ui -> Log
 - UiRouter -> LogRouter
 
 - 2023-11-19 (link):  #213 
repo.processnow loads the list of sub repositories via./.net.splitcells.os.state.interface.repo/sub-repo-namesand not./.net.splitcells.os.state.interface.repo/subs.jsonin order to simplify the format../.net.splitcells.os.state.interface.repo/sub-repo-namesis now a command that is executed and returns a list of sub repo names, that are separated via new line symbols, which in turn is a csv file. This makes it also easier to make it compatible with other software like hakoerber's GRM. - 2023-11-17 Proposal of the Project Define documentation inside program code
 - 2023-11-15 Project Proposal: Configure logging via external config and not code.
 - 2023-10-25 (link):  #242 
net.splitcells.dem.data.set.map.Map#putnow throws an exception, if the key is already present. This is done, because in this case, there is an increased chance, of a programming bug being present. If the value of the map should be updated regardless of the presence of the given key, the methodensurePresenceshould be used instead. - 2023-10-05 Project Start: Provide scheduling tool for schools in general.
 - 2023-10-02 Project Proposal: Provide scheduling tool for schools in general.
 - 2023-09-15 (link): #256 Stop active support for offline builds.
 - 2023-09-15 (link):  #281 Create dedicated project for a project files standard:
- This project moves all such files to one dedicated place and thereby creates a standard, that is easier to understand, support and check.
 - Some files were moved from the root project and 
projects/net.splitcells.os.state.interfacetoprojects/net.splitcells.project.standard. 
 - 2023-09-15 (link):  #281 Rename 
net.splitcells.network.workertonet.splitcells.network.worker.via.java. It is required for a newnet.splitcells.network.workerproject. This new project will integrate different implementations of the network worker and provide a common interface for that. Different implementations are required in order to support worker tasks for different environments. For instance cloning and updating all repos in different contexts. A build server needs to be able to update its repos via native programs for bootstrapping the build, but requires integration code for the used operation system. A Java based server instance running with a copy of the repos can updates its repos via Java code, without requiring any additional native programs. The Java based server is more portable as the build server with the bootstrapping build. - 2023-09-15 (link):  Migrate articles of 
net.splitcells.network.blogtonet.splitcells.network.communityand delete the projectnet.splitcells.network.blog, because the blog provides insight into - 2023-08-17 (link):  #249 Provide default value for 
net.splitcells.website.server.Config#detailedXslMenu. - 2023-08-14 (link):  #249: Split 
net.splitcells.networkroot project into a root project, that is used for building all network projects, and a network file project containing documentation. This way the root folder of the network project is just a multi module Maven project for building and the projects sub folder contains all projects of the network project. - 2023-07-13 (link): #249 Migrate Java's Path API usage to new FileSystem API, in order to support operation system unspecific deployment.
 - 2023-07-12 Project Proposal: Make the project deployable as a single jar.
 - 2023-07-12 (link): #249 Provide file system API in order to not to rely on Paths specific to the operation system.
 - 2023-07-12 (link): #249 Implement FileSystemViaClassResources in order to provide FileSystem API for class resources. This can be used in order to provide file systems via jar files.
 - 2023-06-27 (link):  #170 
Line#values()are now read only, in order to allow more performant code, by not requiring lines to provide a new copy of line values for everyLine#values()call. - 2023-06-27 (link): :
- Rename 
ListI#list()intoListI#_list(), in order to simplify autocompletion for import statements in IDEs by avoiding name duplication withLists#list(). - Migrate 
net.splitcells.dem.utils.ComonFunctions#removeAnytonet.splitcells.dem.data.set.Set.removeAny(). 
 - Rename 
 - 2023-06-21 (link):  #170 
Table#columnsViewnow only returns a read-only access to the columns, in order to enable faster alternative Database implementations, that do not have writeable columns. Also, writeable access to the columns via the public interface was never planned. Especially, in the Table interface, that is thought to be a read-only interface. - 2023-06-16 (link):  #245 Notify users of 
echo.errorcall by default. - 2023-06-15 (link):  #170
- Rename 
net.splitcells.gel.data.allocation.Allocation*tonet.splitcells.gel.data.assignment.Assignment*, which is more in line with the name of the core model problem the assignment problem. - Provide new Allocations interface, that is the foundation of the Assignments interface. The key difference is, that the Allocations only allows one assignment for each demand and for each supply. This interface can be used instead, in order to improve the performance, if an appropriate usage is possible.
 
 - Rename 
 - 2023-06-14 (link):  ##170: Add 
DatabaseI#addWithSameHeaderPrefixas a faster alternative toDatabaseI#add, if the line's header to be added to the database is a prefix to the database's header. - 2023-06-11 (link):  #s140: Publish repo of 
net.splitcells.symbiosis. - 2023-06-11 (link): ##170: Introduce IndexedAttribute in order to access values of Lines faster.
 - 2023-06-08 (link):  #170 
Table#columnsViewnow returns a view of the list, instead of a writeable copy, in order to improve the runtime performance. - 2023-06-06 Proposal of the Project Create performance analyser
 - 2023-06-06 (link):  #248
- Delete obsolete class 
net.splitcells.dem.lang.perspective.PerspectiveXmlRenderer, because it was not used. - Delete obsolete classes 
net.splitcells.dem.resource.communication.interaction.Dsui & DsuiTest, because it was not used. - Delete obsolete interface 
net.splitcells.dem.resource.communication.interaction.Sui, because it has no function anymore as the previous classes were removed. - Move content of 
net.splitcells.dem.resource.communication.interactiontonet.splitcells.dem.resource.communication.log, in order to simplify package structure. 
 - Delete obsolete class 
 - 2023-06-01 Project Proposal: Clean up web server architecture.
 - 2023-05-14 Proposal of the Project Manage servers via Ansible
 - 2023-04-14 (link):  #241 Adjust projects to the project partitioning guidelines:
- Rename 
net.splitcells.dem.coretonet.splitcells.dem.ext. - Rename 
net.splitcells.dem.mergertonet.splitcells.dem.api. - Rename 
net.splitcells.gel.sheathtonet.splitcells.gel.ext. 
 - Rename 
 - 2023-04-13 (link): ##170: Extend Query with optional value containing the Allocations the Query is being applied to. This allows one to create constraints, that depend on the supply and demand Tables of assignments of the given problem.
 - 2023-04-12 Proposal of the Project Clean up test tags
 - 2023-04-12 Proposal of the Project Create table based on ints and floats
 - 2023-04-12 (link):  #170 Rename 
Table#line(int)toTable#orderedLine(int)in order to avoid misunderstandings by avoiding ambiguity. - 2023-04-07 (link): 
- Rename 
Table#linestoTable#unorderedLinesin order to avoid programmer errors. - Rename 
Table#linesStreamtoTable#unorderedLinesStreamin order to avoid programmer errors. - Rename 
LinearInitializationtoOfflineLinearInitializationin order to discourage its usage. 
 - Rename 
 - 2023-04-04 Proposal of the Project Log if not, most performant settings are chosen
 - 2023-03-30 (link): #170 Require raters to implement toSimpleDescription in order always have a working report, for a given optimization problem.
 - 2023-03-26 (link):  #s109 
repo.processshould not create the folder of missing sub repos by default. If--command-for-missingis not set or is set asexit 1, the folder - 2023-03-25 (link):  
Set#remove(Object)will throw an exception, if the given Object is not present inside the set. In this case there is a higher probability, that the developer made a programming mistake, compared to the case, where the to be removed element is really present. If the developer really intended optionally remove an element of a Set, the methodSet#ensureRemoved(T)is provided instead. - 2023-03-17 (link):  ##170: Introduce 
HistoryForDatabasefor debugging purposes. An instance can be connected to a given database via theDatabaseFactory, which can be viewed via the webserver in order to understand how the content of the given database was created. - 2023-03-17 (link):  Revers priorities of 
LogLevelso thatLogLevel.DEBUG.smallerThan(LogLevel.ERROR)returnstrue. - 2023-03-14 Proposal of the Project Create option/method to enforce the best performance
 - 2023-03-12 Proposal of the Project Document differences of software to competition
 - 2023-03-07 (link):  ##170: New 
GroupIdnow require an parentGroupId, if the newGroupIdis explicitly stated to be a rootGroupId. This makes it easier to get the meaning of aGroupIdduring debugging, if Constraints with overlappingGroupIdare present. - 2023-02-26 (link):  #170: The development config 
GelDevnow starts the web server in the background, in order to provide GUI access to all Tables of the program. - 2023-02-19 (link): #10: Create DescribedBool for assertions with descriptions.
 - 2023-02-19 (link): #170: Log if most runtime performant settings are not active.
 - 2023-02-12 Proposal of the Project Deploy snapshot builds during CI
 - 2023-02-12 (link):  #218 Relicense main repo to EPL-2.0 with GPL-2.0-or-later as a secondary license.
- This was done, because 
EPL-2.0 OR MITwas planned as an transitioning licensing, untilEPL 2.0withGPL-2.0-or-lateras the secondary license (EPL-2.0 OR GPL-2.0-or-later) could be adopted. Before this change it was assumed, thatEPL-2.0 OR GPL-2.0-or-laterrequires dependencies to be compliant withGPL-2.0-or-laterat all times. It was later found out, thatGPL-2.0-or-latercompliance seems to be only relevant, when work is actively made available under the secondary licenseGPL-2.0-or-laterand this only has to be done by the distributor. - Create licensing guidelines.
 
 - This was done, because 
 - 2023-02-02 (link): #170: Add meta data container to GroupId.
 - 2023-02-02 (link): #170: Create container for arbitrary typed values with a type safe interface.
 - 2023-01-29 Proposal of the Project Use standardized build and test command for deploy.build.at
 - 2023-01-24 (link):  Delete 
system.updateimplementation for docker. This implementation did not make much sense, as it downloaded the newest version of each image being present. Thereby, no containers were being updated. This also steadily increased the number of local images and therefore storage usage, because the old ones were not deleted. - 2023-01-22 (link): :
- \#196 Create sane default config and behaviour regarding temporary data for, i.e. logging:
- Store logs etc. at 
~./.local/state/net.splitcells.dem/src/main/[file type]/[program name]/[date time of program start]/by default. - Introduce the option 
RenderUserStateRepo, in order to render~./.local/state/net.splitcells.dem, if desired. Thereby, the logs can be found at the website's file layout (/net/splitcells/website/layout.html). - The server now has the internal file 
/net/splitcells/website/server/config/menu/detailed.xsl, that can be configured. This XSL script generates the website's menu. The result is used for the website's side menu, that is visible on most pages. A dedicated menu page, is also generated by the XSL script and available at/net/splitcells/website/main-menu.html. It has basically the same content as the side menu. While the side menu is not visible on mobile phones in the default layout, the dedicated menu page can be viewed on mobile phones as well. Mobile users have an easy access to this page, via a link at the very top of every page. 
 - Store logs etc. at 
 - \#213: If a CommonMark file starts with the standard license header, the license header is placed at the end of the file during rendering, in order to improve read flow.
 
 - \#196 Create sane default config and behaviour regarding temporary data for, i.e. logging:
 - 2023-01-22 (link):  #s109 
Perspective#toXmlStringWithPrefixesnow renders leaf nodes as normal strings, if these contain characters that are not allowed in XML element names. For example, the perspectiveperspective("test", DEN).withChild(perspective("values.", DEN))will now be rendered as<d:test>values.</d:test>, instead of<d:test><d:val name="values."></d:val></d:test>. - 2023-01-16 Project Proposal: Establish uniform code formatting for Java.
 - 2023-01-14 (link): : \#27 Introduce 
net.splitcells.website.server.Config.cssFiles, in order to be able to replace the used css files used by the layout. This in turn improves customizability of the layout, with - 2022-12-21 Project Proposal: Create game based on optimization networks.
 - 2022-12-05 (link):  #s118 Speed up SourceHut build via m2 cache:
The new repo 
net.splitcells.network.m2is created, that contains a Maven m2 repo. This m2 repo is used in order to build Maven projects locally. This m2 repo also works as an inventory of external Maven dependencies. - 2022-12-02 (link): #198 Manage dot files: Recommend Chezmoi in order to manage dotfiles.
 - 2022-12-02 (link):  #27 When 
IsEchoToFileis set to true,Consoledoes no longer cancel its output to the standard output. IfIsEchoToFileis set to true, console output is written to a file and to the standard output. - 2022-11-27 (link):  #183: The property 
test.groupsis now used in Maven to determine, which Tags are required for a test to be executed, during the build. - 2022-11-27 (link):  ##8: 
OnlineLinearInitializationnow ensures, demands and supplies are allocated in the same order, as it is present in their respective tables. - 2022-11-27 (link):  #183: Create 
net.splitcells.dem.testing.TestExtensivelyin order to execute any type of test. - 2022-11-20 (link):  #170: Constraint nodes (i.e. 
ForAllandThen) now internally require an optional parent discoverability path. This is the basis required, so that constraints can be viewed via the web server. The end goal is to provide for each constraint a path, that starts with the problem's path and after that continues with the constraint node's path. For example:/net/splitcells/run/conway-s-game-of-life/forAll/timeStepspoints to the constraint node of an instance of conway's game of life, that groups all values according to their time value. In other words, the aim is to provide a unique id for all constraint nodes, that can be easily discovered. - 2022-11-19 (link): : \#s115 Speed up website deployment.:
Introduce 
net.splitcells.website.server.Config.mutableProjectsPathin order to state, ifprojectsPathcan be assumed to stay the same during the web servers execution. This speeds up the rendering of static websites enormously, becauseProjectsRendererIcachesprojectsPath, ifmutableProjectsPathis set to true. This in turn greatly improves the performance ofRenderingValidatorForHtmlLinks, as it usesprojectsPathin order to validate internal links. - 2022-11-18 (link): : \#8: If 
net.splitcells.website.RenderUserStateRepois set to true, add the project at~/.local/state/net.splitcells.dem/to the default set of projects for the project renderer. This project is used in order to store log files and other documents.RenderUserStateRepois set to false by default, because this should only be rendered, if the user explicitly wants it, in order to prevent leakage of private information be accident. This could otherwise happen, if the user renders a website with defaults settings and uploads it without checking the results in detail. - 2022-11-18 (link): Recommend chezmoi for dotfile management.
 - 2022-11-12 Proposal of the Project Create versioning policy
 - 2022-11-12 (link): Allow leading digits in file and folder names in filesystem guidelines.
 - 2022-11-07 (link): 
- Remove unused methods 
CommonFunctions#findSystemOutput. - Remove unused methods 
CommonFunctions#currentTime. - Remove unused methods 
CommonFunctions#disableSystemOutput. 
 - Remove unused methods 
 - 2022-10-31 (link): : #s97 Document migration based development.
 - 2022-10-25 Project Proposal: Consider compatibility with git-repo-manager.
 - 2022-10-23 (link): : #s89 Fix cookie issue.
- There is now HTML guidelines regarding cookies.
 - Access to 
document.cookieis now blocked, by overwriting its getter and setter methods in the standard layout. This ensures, that cookies are not used by accident. 
 - 2022-10-21 (link): #162 Ensure that integration and capabilities tests are executed from time to time.
 - 2022-10-17 (link): : #s107 Document core, API and extension concepts in the project guidelines.
 - 2022-10-16 (link):  #168 Integrate repo management.
repo.processnow usesbin/net.splitcells.osi.repos.peersin order to find all peer repos, that are on the same folder level as the current repo. Sub repos are repos located in the folder of the current repo. Peer repos are repos located at the same folder as the current repo. This make synchronizing local repos with online repo hosters like SourceHut and GitHub a lot easier, because before that, each repo had to be pushed manually, or via a script. This was more burdensome compared to pushing a meta to another meta repo, because online repo hosters typically do not allow nested hierachies of repos. Now one can push all SourceHut repos viarepo.push.at.all, instead of using many instances ofcd [...]; git remote show SourceHut || git remote add SourceHut [...]; git remote set-url SourceHut [...]; git push SourceHut.- Introduction of the project file 
bin/net.splitcells.osi.repos.hosts. This command echos all hosts of the current repo, its subs and peers. This is used byrepo.push.at.allin order to not only push all repos, but to also push these to all hosts (i.e. GitLab, GitHub, SourceHut etc.). - Overall, the changes made it a lot easier to adapt to changes of the repo structure and its hosts. This is particularly the case, when mainstream git hosters are used. It makes it a lot easier, to create completely new commands.
 
 - 2022-10-16 (link): :
- #210: Create general source code guidelines with the current main on automatically formatting the code.
 - #200: Join the OpenSSF Best Practices Badge Program.
 
 - 2022-10-16 (link):  #170: Convert 
DatabaseIRefFactoryto database aspect and rename it toDatabaseMetaAspect. - 2022-10-16 (link):  #170: Define the concept of a 
ConnectingConstructor. - 2022-10-16 (link): #170: Define standard configuration for rendering current state of all created tables.
 - 2022-10-11 Proposal of the Project Reprioritization
 - 2022-10-10 (link):  #196: Files created during execution are now stored at 
~/.local/state/<ProgramName>by default. The format there should abide by the Software Project File System Standards - 2022-10-10 (link):  #8: Create interface Identifiable, in order to be able to correctly implement 
Object#equalsin wrappers and aspects. - 2022-10-07 (link): #162: There are now 3 recommended types of test: minimal, extensive and side effect tests
 - 2022-10-03 (link):  Deprecate 
shell.execute.as.background.task, because it is not working correctly. - 2022-09-23 Proposal of the Project We want to use the software, guys. RIGHT?! Right? right? ... ehh
 - 2022-09-22 Proposal of the Project Release system on FlatHub, so it can be easily installed and started
 - 2022-09-11 (link):  #162: Create command 
system.network.peer.reachable, in order to test if peer is reachable via (local/internet etc.) network. - 2022-09-11 (link):  #168:
- Rename 
dependencies.testtotest.dependencies, in order to preparetest.*prefix for all test commands. - Also rename 
user.bin.configure.uses.dependencies.testtouser.bin.configure.uses.test.dependencies. 
 - Rename 
 - 2022-09-06 (link): #8: Disable history of solutions by default.
 - 2022-09-04 (link): :
- Render 
DEVELOPMENT.mdof each project. - Render 
BUILD.mdof each project. - Render 
LICENSE.mdof each project. - Render 
NOTICE.mdof each project. 
 - Render 
 - 2022-08-27 (link): : The global changelog now widens the definition of events searched in other changelogs. Previously every list starting with just a date, was considered an event description. Now random strings after the date are accepted, as long as these are seperated by a whitespace from the date.
 - 2022-08-24 (link):  #8: Unify Table methods naming:
- Rename 
Table#getLinestoTable#lines. - Rename 
Table#getDistinctLinestoTable#distinctLines. - Rename 
Table#getDistinctLineValuestoTable#distinctLineValues. - Rename 
Table#getLines(int)toTable#line(int). - Rename 
Table#getLines(int)toTable#line(int). 
 - Rename 
 - 2022-08-22 (link): : Create new projects and link to their respective peer repos:
net.splitcells.network.community.via.javadocnet.splitcells.network.community.git-bugnet.splitcells.network.repos
 - 2022-08-21 Proposal of the Project Provide easy way to avoid all Dem based aspects for better runtime performance
 - 2022-08-19 Proposal of the Project Analyse performance characteristics regarding logging options
 - 2022-07-29 (link):  Deprecate 
repo.push.to.sh. - 2022-07-29 (link): : #165 Create deprecation protocol guidelines.
 - 2022-07-24 (link):  #8:
- Deprecate 
LinearInitializationand prefer usingOnlineLinearInitializationfor better performance. - Solution optimization now supports an 
OptimizationConfig, which simplifies future backward-compatible changes to the Solution interface. 
 - Deprecate 
 - 2022-07-18 Project Proposal: Writing tests after the fact.
 - 2022-07-15 (link):  #8: Rename 
RoutingRating#eventstoRoutingRating#ratingComponents, in order to communicate meaning a bit better. - 2022-07-06 (link): : #114: Links to XML documents in CommonMark documents are translated to links to corresponding HTML documents
(i.e. 
/net/splitcells/gel/index.xml->/net/splitcells/gel/index.html) in order to link between different document types. - 2022-07-06 (link):  Installed project commands now pass their arguments to the original real command, instead of suppressing these.
If one installs the 
net.splitcells.networkas a project repository, arguments to the call ofnet.splitcells.network.deploy.build.atare now passed tonet.splitcells.network/bin/deploy.build.at. - 2022-07-01 (link):  #8: Create 
Query#constraintPathin order to select a constraint path of a solution via the query interface, which is a lot easier to understand, than selecting paths by recursive calls ofConstraint#childrenView. - 2022-06-30 (link):  #8:
- Remove 
Constraint#parentOf, because its definition does not seem to be useful and this method is not used. - Rename 
Query#constrainttoQuery#currentConstraintin order to clarify its meaning. 
 - Remove 
 - 2022-06-18 (link): : #168: Create command 
repo.push.at.all. - 2022-06-11 Proposal of the Project Improve runtime performance of `History#resetTo`
 - 2022-06-03 (link):  #8: The history interface for assignments defines now a 
toAnalysisFodsmethod, that creates an alternative more searchable version ofTable#toFods. The new version has dedicated columns for fields of complex attributes. This makes it easier to search for events in the optimization history by i.e. demand or supply attributes. - 2022-06-03 (link):  #8: 
MathUtils#sumsForTargetnow supports generating sums with a given exact number of components. If this number is 2 for instance, it only returns sums, that contain 2 numbers. - 2022-05-29 (link): : #s78 Wrong Context Path:
- This is primarily caused by not passing the path of a rendered file to the rendering process.
 - Prevent usage of FileStructureTransformer inside extensions, as this class does not manage the handling of path information of a rendered document directly/explicitly. Instead, provide rendering methods in ProjectRenderer and ProjectsRenderer, which require and handle path information for a given document and pass it to the FileStructureTransformer.
 - Extensions should pass relative and not absolute paths to the Project(s)Renderers.
 
 - 2022-05-29 (link): : #s84 Centralise build instruction documentaton.:
- Render 
CONTRIBUTING.mdfor each project. - Instead of duplicate build instructions links to the 
CONTRIBUTING.mddocument is provided. 
 - Render 
 - 2022-05-28 (link):  #87 Fix links inside documents:
/net/splitcells/network/status.htmlnow shows, if from a historic perspective the number of invalid links is zero or at least improves. It checks the reponet.splitcells.network.log, if according to the filesrc/main/csv/net/splitcells/website/server/project/validator/RenderingValidatorForHtmlLinks/<build name>/<builder server>.csv, the number of invalid links of the last build is as small as the lowest number of invalid links in the complete build history. - 2022-05-28 (link): : #168: 
repo.statusnow executes./bin/net.splitcells.osi.repos.peersin order to find additional sub repos, that are located in the same repo as the current is. This is a way to support repo nesting with a flat folder structure. - 2022-05-23 (link): : #82: XML-Rendering can now handle the header 
<?xml version="1.0" encoding="UTF-8"?>of the input document without triggering an error. This is patch is implemented hackily. - 2022-05-23 (link):  #170: 
SolutionBuildernow requires to always define the demand and solution set explicitly. The helper methodswithNoDemandsandwithNoSuppliesare created for that, in order to state intent. Also, setting the supply or demand set multiple times during solution building is not allowed anymore, in order to simplify the building workflow. - 2022-05-06 Proposal of the Project Create update command for FUWPD
 - 2022-05-06 (link): 
repo.processnow shows the repo path, where the error occur.- Fixed quoting issues of echo's arguments in 
command.repositories.install. 
 - 2022-05-02 (link): : #142 Make it easy to support arbitrary input formats and output styling.
 - 2022-05-01 Proposal of the Project Note On Creating Your Own Web Layout And Style
 - 2022-04-29 (link): : #91: Links to sub projects READMEs in CommonMark files are now translated correctly.
 - 2022-04-25 Proposal of the Project Make it possible to check code, licensing and dependencies automatically and locally
 - 2022-04-25 (link): : #162: On the default layout,
there is now status button on the website in the top left corner.
It currently shows, if all available computers executed the build system in last 7 days.
If this is the case it states 
INFO, which is based on the log levels. If this is not the case it statesWARNING. The button leads tohttps://splitcells.net/net/splitcells/network/status.htmlwhich lists all successful and failed executions. Keep in mind, that on the version hosted athttps://splitcells.net/, the status only refers to the status during the build time of the website, as it is static. - 2022-04-19 (link):  #170: Create method 
complexAdditionsforRatingEventin order to prepare assigning multiple groups to one line. - 2022-04-18 (link):  #162: There is now a default Comparator named 
naturalComparatorprovided for comparable objects in Dem. - 2022-04-17 (link): :
- #142 Deploy first draft of minimal styled version to 
splitcells.net. - #57 Render Javadoc of projects at 
<projectFolder>/javadoc/*, if a Javadoc build is located attarget/site/apidocs. 
 - #142 Deploy first draft of minimal styled version to 
 - 2022-04-17 (link):  
repo.synchronize.withexecutesrepo.is.cleanafterrepo.repair, in order to avoid errors caused by missing sub repos. - 2022-04-10 (link): : Support rendering website to filesystem with a custom root path.
This way multiple versions of a website can be deployed to a single filesystem.
Compare 
https://splitcells.net/net/splitcells/martins/avots/website/index.htmlandhttps://splitcells.net/net/splitcells/website/minimal/net/splitcells/martins/avots/website/index.html. Previously, this was supported in theory, but there was a bug making it impossible. - 2022-04-04 (link): : #171: Log number of warnings:
This are logged via 
./bin/test.via.network.workerand logged atnet.splitcells.network.log/src/main/csv/net/splitcells/network/worker/builder/warnings/$(hostname).csv. - 2022-04-04 (link):  Remove no args method 
Query.then, as it does not seem to make sense. - 2022-04-03 (link):  #10: Rename 
Resourceinterface toResourceOptionand it'sResourceIimplementation toResourceOptionIin order to clarify its meaning. This also makes it possible to use the nameResourcefor an interface of resource like things. - 2022-03-31 (link):  #8:
Rename optimizer components,
so it will be easy to distinguish the offline repair from the planned online repair:
- Rename 
ConstraintGroupBasedRepairtoConstraintGroupBasedOfflineRepair. - Rename 
SupplySelectortoSupplyOfflineSelector. - Rename 
SupplySelectorstoSupplyOfflineSelectors. 
 - Rename 
 - 2022-03-29 Proposal of the Project Implement test recursion
 - 2022-03-29 (link): : Create renderer extension for JavaScript files.
Thereby, 
*.jsfiles can be requested and thetext/javascriptMIME type will be used. These JavaScript can be stored undersrc/main/js/**for each project. - 2022-03-27 (link):  Create 
ssh.upload.file.pyin order to more easily upload files to new remote servers. - 2022-03-20 (link): :
#125 Create global news feeds:
It is located at 
/net/splitcells/CHANGELOG.global.html. - 2022-03-20 (link): :
- The webserver now maps some paths to the root index file.
This allows the user to interact with the live server more easily,
as it does not have to write the root index file into the URL in order to open it.
Thereby, the user does not have to handle an error,
because it tried to open a website with the most common URL.
In other words 
https://localhost:8443/index.htmlbecomeshttps://localhost:8443. 
 - The webserver now maps some paths to the root index file.
This allows the user to interact with the live server more easily,
as it does not have to write the root index file into the URL in order to open it.
Thereby, the user does not have to handle an error,
because it tried to open a website with the most common URL.
In other words 
 - 2022-03-12 (link):  
echo.errornow also sends the message tonotify.error, if$echo_error_notifies_useris set to true. Thereby, it is more easily to know, if some optional feature was not executed during a long command. For instance, when a command synchronizes a repo with multiple other computers, a notification for each not available computer is helpful. In this case it can be normal, that some computers were not available during each synchronization, and therefore the execution as a whole does not have to be aborted or marked as a failure. - 2022-03-07 (link): :
- Move 
net.splitcells.website.server.project.ProjectsRenderertonet.splitcells.website.server.projects.ProjectsRendererIin order to have a dedicated package for combining the rendering of multiple projects. - Create interface 
ProjectsRendererused byProjectsRendererI. This way alternative web server implementations are possible. 
 - Move 
 - 2022-03-06 (link): : #10: Create project 
net.splitcells.dem.core, which contains interface implementations of the Dem project. The goal is to split the Dem project into an interface project (merger) and implementation project (core). - 2022-02-28 (link): : #125: Create and add 
CommonMarkChangelogEventRendererto the web server in order to extract events from one changelog file. For every supported path[...}/CHANGELOG.htmlthere is now an appropriate supported path[...}/CHANGELOG.events.html. - 2022-02-28 (link):  #125:
- Rename 
*Renderer*ofnet.splitcells.website.server.project.renderer.**to*ProjectRendererExtension*in order to ensure unique class names in the future. - Improve package structure by moving 
net.splitcells.website.server.project.renderer.*tonet.splitcells.website.server.project.renderer.extension.*. 
 - Rename 
 - 2022-02-25 (link):  #158 Do not change the PATH during the installation of OS state interface:
command.repositories.install.shnow does not callcommand.managed.environment.configure.shand therefore does not edit~/.bashrc. This avoids unexpected changes to the user configs. The commandcommand.repositories.setup.shwas created, which is the original version ofcommand.repositories.install.sh. This way there is still a command, that installs the OSSI project with full functionality. - 2022-02-25 (link): 
- Create command 
repo.copy. It makes therepo.clone*commands more usable, by providing useful options and making it easy to combine said flags. For instance, in order to ensure that a folder contains a repo one can use the following call:repo.copy --target-folder=. --omit-if-exists=true --remote-repo='<URL of remote repo>'. I do not know, if this is better thanrepo.exists || repo.clone.into.current '<URL of remote repo>'. It may be the case, because additional checks can be added more easily this way, without changing existing code, but I am not quite sure. On the other hand, this is also a way to document the expected use cases of a tool and can be used as a guide, informing the user how to use the software. - #142:
- Define 
rootPathoption to web server config. - Translate links according to the 
rootPathconfig, which is/by default. If/is used asrootPath, then the path translation does not change the path. For instance,/net/splitcells/gel/index.htmlis translated to/net/splitcells/gel/index.htmlin this case. IfrootPathis set to/net/splitcells/martins/avots/website/, then it is translated to/net/splitcells/martins/avots/website/net/splitcells/gel/index.html. 
 - Define 
 
 - Create command 
 - 2022-02-23 (link): 
- #s69 Create easier to navigate alternative to local path context in website:
The default layout for the website contains now a 
Relevant Local Path Contextsection in the secondary content column. It is located right before theLocal Path Contextand only lists paths, that are relevant for ordinary users. The new section makes it easier to navigate between the different pages of the site. - #s69: The web server's renderers now have a concept of a relevant path layout. Other than the regular path layout, it contains not all supported path of the web server. The relevant layout contains a subset of the regular layout and focuses on the paths, that are relevant for the normal users.
 
 - #s69 Create easier to navigate alternative to local path context in website:
The default layout for the website contains now a 
 - 2022-02-23 (link):  #s69: Rename Renderer class names in order to unify
naming:
CommonMarkChangelogExtension->CommonMarkChangelogRendererCommonMarkReadmeExtension->CommonMarkReadmeRenderer
 - 2022-02-22 (link):  #s72:
- Remove unused class 
net.splitcells.website.server.project.Location. - Define config class, in order to pass additional or configuration info to renderers and server.
 - Add config parameter to 
ProjectRenderer#renderHtmlBodyContent,Renderer#renderFileandServer. - Move validators of 
net.splitcells.website.server.*tonet.splitcells.website.server.project.validator, in order to improve code structure overview. - Use 
/net/splitcells/website/server/config/layout.xmlinside XSL scripts for the file layout file. This way, multiple XSL scripts for different webserver configurations are not needed. The layout file is also not stored in the file system anymore and is queried from the new Config class. Thereby the number of different locations for the webserver is reduced. 
 - Remove unused class 
 - 2022-02-21 (link):  #142 Remove 
net.splitcells.website.html.contentproject. It was an alternative minimal style for the website. It is now integrated into the default style and can be enabled via thegenerated.styleoption and the valueminimal. For this theRenderingConfigclass was created and is used byProjectsRenderer. The standard styling is too complex. Using one unified style with switches makes it easy to recognize the complex parts and to migrate these to simpler forms. Furthermore, maintaining 2 styles that are mostly identical is costly. - 2022-02-20 (link): : Fix syntax errors in 
system.ssh.server.requireandsystem.ssh.server.require. - 2022-02-20 (link): : Move 
package.installimplementation for rpm-ostree from OS state interface lib, to the OS state interface lib GPL 2.0, because rpm-ostree contains GPL 2.0 code. - 2022-02-17 (link): : #8: Make argumentation rendering in Gel less verbose for
optimization solutions.
This makes it easier to understand errors in solutions by omitting the
excessive usage of the word 
argumentation.- Every 
Constraint#naturalArgumentationmethod now returns an optional perspective. Thereby, the number of nodes in the AST of the argumentation is reduced. - The usage of the word 
argumentationitself was greatly reduced. Before the change an argumentation would look like the following:
Now it looks like thisArgumentation For all rail Argumentation Argumentation Then values of allocated hours should have the same valueFor all rail Then values of allocated hours should have the same value. 
 - Every 
 - 2022-02-15 Proposal of the Project Generic Allocator's Fourth Version
 - 2022-02-15 (link): : Comment On Generic Allocators Fourth Version (Gemini Link)
 - 2022-02-14 (link): : #138 Create developer introduction.
 - 2022-02-14 (link): : #138 Create developer introduction:
- An introduction to the constraint system was created. It shows how to model and solve the N queen problem on a conceptional and source code level.
 - The performance of Gel was improved as well by 5 times, because the runtime for solving the N queen problem was completely unacceptable. The original runtime for the Backtracking algorithm was 65 seconds and was improved to about 25 seconds. This is still a lot, but somewhat bearable as one (hopefully) would not make a new coffee in that time.
 - There are also now 2 new repositories in order to avoid data bloat in the main repo:
- net.splitcells.network.log: This is used as a public repo for logs like performance data or the execution time of project tasks.
 - net.splitcells.network.media: Contains media files like SVGs.
 
 
 - 2022-02-12 (link): :
- #s68: Recommend stating the license in CommonMark files.
 - #s68: Create repo for media files:
This repo is named 
net.splitcells.network.mediaand is a peer repo to this repo cluster. 
 - 2022-02-12 (link): : #s66 Move suitable Dem guidelines to the network project.
 - 2022-02-11 (link): :
- Fix source code error in 
user.ssh.key.authorize, which prohibited its execution. - Simplify and generalize detection for Fedora based systems with DNF in
system.ssh.server.start. This makes this script also workable on Fedora Silverblue. 
 - Fix source code error in 
 - 2022-02-10 (link): : JPG images served by website server's resource extension now get the correct content type.
 - 2022-02-07 (link): : SVG images served by website server's resource extension now get the correct content type.
 - 2022-02-07 (link): : #43: Ensure at least 30% test coverage.
 - 2022-02-05 (link): :
- #163: Create 
repo.push.atas the new version ofrepo.push.to:- Deprecate 
repo.push.to, because it uses positional arguments and therefore understanding argument meaning gets hard. The command also only supports remote IDs and not URLs. The positional argument parsing makes it hard to add simple features. The deprecated commands signals this with an error message, but works otherwise. - Create command 
repo.push.at, that uses only classical Unix style argument handling. Support for pushing to URLs was added as well. 
 - Deprecate 
 - #10: Create 
generation.stylevariable for default XSL style for multiple output style configuration. - #10: Integrate JaCoCo report into website via an additional renderer.
 
 - #163: Create 
 - 2022-02-04 (link): : #s68: Add peer repository 
net.splitcells.network.mediato website. - 2022-01-31 (link): : Make test coverage via codecov.io public. It can be seen on the README.
 - 2022-01-30 (link): : Create command 
world.manage, that calls all configuration and update commands provided by OS state interface. Thereby, the user can check, if all possible configurations and updates are applied. This also acts as a central documentation for all configuration and update commands of the OS state interface project. This command adds the new concept of a world in the context of the user, system and network concepts. The world contains and represents all top level concepts and therefore is a representation of all accessible objects. - 2022-01-30 (link): : Remove all additional commands in 
user.startlikeuser.configure, because this makes the command too complicated and it also makes it too hard to maintain backwards compatibility. - 2022-01-23 (link): : #s27: Fix local path content for rendering of text files.
 - 2022-01-23 (link): : #138: LinearDeinitializer now correctly selects the allocation of a supply.
 - 2022-01-23 (link): : #43 The default XSL style sheet for the website does not convert the layout links for the local path context anymore. The conversion was introduced as a hack in order to compensate for other bad code. It converted paths for XML files by replacing the XML suffix via an HTML suffix, which made the links invalid.
 - 2022-01-23 (link): : Create command 
flatpak.gui, in order to easily find Flatpak's default GUI based application manager. - 2022-01-21 Proposal of the Project Create minimal build with zero dependency except for the standard runtime
 - 2022-01-21 (link): : Create command 
sh.scroll.enable.- Sometimes scrolling is not enabled in a shell. This can be the case, if one is opened over ssh. This command enables scrolling for the current session. This command is not used for scripting, but makes it easy to look this command up for manual usage.
 
 - 2022-01-18 (link): : Create command 
ssh.executein order to execute commands on remote server in foreground. - 2022-01-16 (link): : Create and publish blog article A Case For Repo Process.
 - 2022-01-11 (link): : #s58 Implement first draft for injecting blogs of different projects into the network blog.
 - 2022-01-09 (link): : #148: Fix local path context for rendered XML files in website server.
 - 2022-01-09 (link): : Remove 
run.and.print.only.errors.shandrun.and.print.sh, because there are too manyrun.and.*commands, that are not used and are too similar. This makes it unjustifiable hard to choice a fittingrun.and.*command. - 2022-01-09 (link): : #138: Make default values of StaticFlags more reasonable performant.
 - 2022-01-05 (link): : #138 Create project 
net.splitcells.gel.quickstart. It is a minimal project, that demonstrates how use the Gel framework. It can also be used as a template for new projects. - 2022-01-02 (link): : #138 Fix user command rendering via 
UserCommandRendererby rendering command tree withhttp://splitcells.net/den.xsdnamespace. - 2021-12-31 (link): : #138 The website server now supports via the LinkTranslator links from CommonMark files to other files located at other projects, instead to other files of the same projects.
 - 2021-12-28 (link): : #s44 The Domsole now filters log messages with a lesser priority than INFO by default. This behaviour can be overwritten with the Option MessageFilter.
 - 2021-12-27 (link): :
- #s44:
- Restore rendering of stack traces for logging in
Domsole (see 
Ui#append). - Fix warning in webserver caused by 
UserCommandRenderer#projectPaths. This method now correctly provides its managed project paths. 
 - Restore rendering of stack traces for logging in
Domsole (see 
 
 - #s44:
 - 2021-12-27 (link): : #s44 Create first draft of HTML link Validator based on heuristics regarding HTML parsing, so that a framework does not need to be included.
 - 2021-12-26 (link): : #s44 Rename 
ValidatortoSourceValidatorin order to clarify purpose, because a validator for rendered files via the web server is needed. - 2021-12-23 (link): : The supply selector had a probability to throw an exception, if there are freed supplies given an optimization event list, but no free supplies are present before applying the optimization event list to a given solution. If there are no free supplies present, freed supplies are used by the supply selector instead.
 - 2021-12-23 (link): : #138 CSV rendering via 
chart.jsnow renders the requested csv file. Previously, this renderer always rendered the same file, regardless of the request - 2021-12-20 (link): :
- Create command 
ssh.execute.in.backgroundin order to start background tasks on remote servers with systemd and ssh. - Create command 
system.lock, that locks all input and output devices of the system users' (i.e. lockscreen). 
 - Create command 
 - 2021-12-19 (link): : 
repo.synchronize.withnow uses the new interface ofrepo.repair, which got a breaking change previously in order to improve and standardize argument parsing. - 2021-12-19 (link): : #138 Create rating cache for constraints via ConstraintAspect. In the future, it may be implemented in such a way, that it may be disabled. This is easy to implement, because this feature is implemented as an aspect.
 - 2021-12-16 (link): : The rating methods of the constraint interface now only return
ratings instead of meta ratings,
in order to increase runtime performance.
Meta ratings have a higher overhead than primitive ratings,
because these are wrappers around primitive ratings based on a lookup
map.
In most common optimization problems and also for simple problems in general,
meta ratings are not required.
Supporting this common case explicitly, yields performance gains.
Meta ratings can be still obtained via the 
asMetaRatingmethod of ratings. - 2021-12-13 (link): : #132 Justify current bias toward online optimization.
 - 2021-12-12 (link): : The command 
repo.repairwas rewritten in Python in order to support better argument parsing, which has a relatively complex syntax in Bash. The implicit argument (no flag required for setting) was converted to an explicit argument (--remote-repo=[...]. The command now also accepts one value for this argument, because multiple ones do not make sense. - 2021-12-11 (link): : #138
- Add 
net.splitcells.network.logto website's default projects. This is a new git repository containing log files. These files are primarily performance data and are used in order to show performance regressions. - Create CSV serving and rendering of CSV files as charts to website server (CsvRenderer and CsvChartRenderer). This is used in order to create a simple visualization of the new repository.
 
 - Add 
 - 2021-12-10 (link): : #138 Remove temporary duplicate assignments during HistoryI reset, in order to improve performance.
 - 2021-12-09 (link): :
- #148 Unify method naming by renaming 2 methods:
- Rename 
Contraint#register_additiontoContraint#registerAddition. - Rename 
Contraint#register_before_removaltoContraint#registerBeforeRemoval. 
 - Rename 
 - #148 Fix typos:
- Rename 
Database#subscriberToBeforeRemovaltoDatabase#subscribeToBeforeRemoval. - Rename 
Database#subscriberToAfterRemovaltoDatabase#subscribeToAfterRemoval. 
 - Rename 
 
 - #148 Unify method naming by renaming 2 methods:
 - 2021-12-05 (link): : 
Ordered#compare_tonow does not always double-check equality. - 2021-12-05 (link): : Fix implementation and runtime check of 
HistoryI#resetTo. - 2021-12-05 (link): : #148 Fix local path context for XML files: Add path information to XML documents during website rendering.
 - 2021-12-05 (link): : #148 Fix local path context for XML files: Remove choice Documents from custom XML format. A choice elements can be wrapped with an article element in order to get the same result, but with metadata support.
 - 2021-12-04 (link): :
- #138: Replace 
net.splitcells.dem.environment.config.StaticFlags.PROFILING_RUNTIMEwithPROFILING_METHOD_STATISTICS. The former one was deprecated, because it was not used and its intent was not clear. The latter one was introduced, because its usage is quite clear. Note that generic static flags are not that useful, because by enabling a generic one, many additional runtime tasks may be activated, which may destroy the software's performance. - #138: Rename package 
net.splitcells.dem.resource.host.integrationtonet.splitcells.dem.resource.communication.log. The reason for this, is the fact, that the shell may not be on the host computer. 
 - #138: Replace 
 - 2021-12-03 (link): : 
command.managed.executenow usesshutil.whichinstead ofdistutils.spawn.find_executable, because the latter one is deprecated and will be removed from Python with the version 3.12. - 2021-11-29 (link): :
- #138 Create 
test.capabilitiesandtest.integrationin order to execute tests, that require relatively long time for execution. 
 - #138 Create 
 - 2021-11-27 Proposal of the Project Supporting Arbitrary Website Renderers
 - 2021-11-27 (link): :
- #s22 Fix the ordering of MetaRatingI. Previously, the order was inverse: a meta rating with cost of 0 was worse than a meta rating with cost of 1.
 shell.width.shnow works in Bourne shell as well.
 - 2021-11-27 (link): :
- #s22 Implement backtracking optimization:
- Implements backtracking as an OnlineOptimization.
 - In this context EnumerableOptimizationSpace was created in order to provide a search space for backtracking.
 
 - #142 Create 
net.splitcells.website.html.contentproject in order to provide an alternative HTML styling. - #s26 Support arbitrary renderers for website server:
- Details are described in the network's blog.
 - Create OS State Interface command 
project.render, in order to define a primitive unified building API for different build systems and projects. - Create command 
project.render.as.net.splitcells.websitein order to support arbitrary website renderers. This is currently used in order to deploy the network's blog, my private website and the network's website as one website. Linking between the network's blog and the rest of the site is currently lacking. 
 
 - #s22 Implement backtracking optimization:
 - 2021-11-27 (link): : #s22: Rename Optimization interface to OfflineOptimization in order to clarify the difference to the new OnlineOptimization interface.
 - 2021-11-21 (link): : #s22: Rename 
net.splitcells.gel.solution.optimization.OptimizationtoOfflineOptimizationin order to clarify its meaning. - 2021-11-20 (link): : Fix text file rendering in web server via 
txtfile suffix. - 2021-11-20 (link): : #37 Simplify default web layout.
 - 2021-11-08 (link): :
- #26 Create command 
project.render.as.net.splitcells.websiteas an API for creating plugins forsplitcells.net's website server built out of software, which have no explicit integration for said website server. Integration is done by reading or writing to the same filesystem. In order to create a plugin following needs to be done:- Add and implement the following executable at a project: 
./bin/render.as.net.splitcells.website.to. It takes one argument containing a path. The command needs to write the plugin's part of the website to that path. - Add the following to the website's build script:
cd <plugin's path>project.render.as.net.splitcells.website
 
 - Add and implement the following executable at a project: 
 - #s24 Deprecate usage of CommonMark as the main documentation format: CommonMark is now only supported on second level. Sew XML is now the primarily supported format for articles. The source type guidelines were updated accordingly.
 
 - #26 Create command 
 - 2021-11-06 (link): :
- #10 Rename 
net.splitcells.dem.data.order.Comparison.comparator_. tocomparatorLegacyin order to have a clear name and remove its usage, where it is not needed. - #10 Rename 
net.splitcells.dem.data.order.Comparators.comparatorstocomparisonin order to unify naming. 
 - #10 Rename 
 - 2021-11-05 (link): : 
system.updatefor Flatpak now does not exit with an error, if Flatpak's version itself is deprecated. This is done because otherwise the whole update process would be aborted. An appropriate echo to stderr is created instead. - 2021-10-31 (link): :
- #55 Minimize number of used languages and protocols: Create guidelines for the formats used in the source code.
 - #117 Document N-Queen-Problem for users: The file is located here.
 
 - 2021-10-31 (link): : #110 Register extension path via extension instead of duplicate code:
Remove deprecated 
ProjectsRenderer#projectsLayoutmethod and useProjectsRenderer#projectsPathinstead. This new method is a lot easier to implement than the precursor, especially if future extension may be implemented via third party software. - 2021-10-25 (link): #90 Fix deployment of CommonMark files: Before the patch CommonMark were not rendered and uploaded via the website server.
 - 2021-10-22 Project Proposal: Test whether repo commands can detect bit rot in git repos.
 - 2021-10-22 (link):  
command.managed.installnow removes the file suffix of the source file, when installing the command as a dependency. Previously this was only done for the API defining commands. For example: the Ossi project has the commandrepo.push.sh, which uses dependency injection in order to do its job. This command is installed to~/bin/net.splitcells.os.state.interface.commands.managed/repo.push. Note the stripped file suffix in order to have a name, that is not specific to the implementation (this behaviour was already present before the implementation). Another file provides the implementation for Git repositories and is named like the original command + its implementation specific file suffix. Let's sayrepo.push.sh. Before the patch the file suffix would not be removed and the file would be installed to~/bin/net.splitcells.os.state.interface.commands.managed/repo.push.sh.0. This would lead to an error, during the execution ofrepo.push, because the dependencyrepo.push.0would not be present. After the patch the file is installed to~/bin/net.splitcells.os.state.interface.commands.managed/repo.push.0. - 2021-10-20 Proposal of the Project Support different backends for Gel's API
 - 2021-10-19 (link):  #s7: Fix CI timeout on sourcehut.
user.ssh.key.generate.shcauses a timeout on the build job for FreeBSD. This was caused by the fact, that the file location and the password were set by sending newline symbols via the echo command and a shell pipe to thessy-keygencommand. The echo command was used in a non POSIX way, which fails on the new FreeBSD release. This patch sets the file location and password via flags provided byssh-keygen. - 2021-10-18 (link): : #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 
.mdwas not replaced with.html..mdare the file suffix for the source CommonMark files..htmlare the file suffix for the rendered CommonMark files. - 2021-10-18 (link): :
- #10 Privatize Constructor of NotImplementedYet exception. Thereby, the public API is unified.
 - #10 Privatize Constructor of LinkTranslator for CommonMark. Thereby, the public API is unified.
 
 - 2021-10-11 (link): :
- #119 Document deployment:
- Create Maven profile 
deploymentin order to create deployable jars. - Document deployment and link it from README.
 
 - Create Maven profile 
 - #128 Create word dictionary with links to their definition..
 
 - #119 Document deployment:
 - 2021-10-05 (link): Create blog articles:
 - 2021-10-04 Proposal of the Project "Development Timing And Discovery Based Networks Of Perspectives"
 - 2021-10-04 Proposal of the Project "There is the bad, there is the horrible, and then there is [sight] error handling."
 - 2021-10-03 (link):  #101 Support gemini protocol for network blog:
The site was deployed to 
splitcells-net.srht.site(Gemini link). - 2021-10-02 (link):  #99 Add license headers to all webservers default content:
- The network's blog articles
 - CSS files
 - Javascript files
 - HTML files
 - Layout/XSL files
 
 - 2021-10-01 (link): : Install man pages to 
~/bin/man/man1so that the common man command can find and display man pages installed by os state interface. - 2021-09-30 (link): #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-28 Proposal of the Project Release software to Maven Central repositories
 - 2021-09-28 Proposal of the Project Create machine learning interface
 - 2021-09-19 (link): Define chrome installation command via flatpak.
 - 2021-09-18 (link): : Remove command 
system.configure.autoof OS state interface project. - 2021-09-18 (link): : Install pip modules via 
pip.module.installfor user and therefore without admin rights. - 2021-09-17 (link): : #10 Introduce the first pure project: net.splitcells.dem.merger
 - 2021-09-17 (link): : #10
- Delete the interface
net.splitcells.dem.resource.communication.Subscribable, because it was not used. - Make package structure more consistent.
- Move Dem's Files interface from communication package to more general resource package.
 - Move Dem's LogMessage, LogMessageI and LogLevel from the package
net.splitcells.dem.resource.communication.interactiontonet.splitcells.dem.resource.host.interaction, because sees interfaces and classes are not host specific. 
 - Rename 
net.splitcells.dem.lang.annotations.Return_thistoReturnThisin order to unify naming. 
 - Delete the interface
 - 2021-09-15 (link): : #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-14 (link): 
- Create concept presentation for Gel based on thought experiment.
 - Support serving raw HTML files via webserver.
 - Render changelog on website.
 
 - 2021-09-12 Proposal of the Project Support usage of website in text form
 - 2021-09-11 (link): : Support Fedora Silverblue, by implementing 
package.installviarpm-ostree. This package install command has the highest priority, because package managers like dnf should be ignored in this case. - 2021-09-11 (link): : 
run.and.show.if.failednow 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 (link): :
- Disable caching for default weblayout in order to keep CSS styling in webbrowser up to date.
 
 - 2021-09-04 (link): :
- Create command 
user.ssh.key.login.allowin order to allow login via public key. This command mainly grants read access to~/.ssh/authorized_keysfor the ssh server. - Create command 
user.ssh.key.authorizein order to import public keys into~/.ssh/authorized_keysvia command. Already present entries are not inserted. - Remove Lombok plugin installation steps inside
package.install.java.ide.via.eclipsebecause an update of Flatpak broke this. 
 - Create command 
 - 2021-08-29 (link): :
- Create method 
Paths.removeFileSuffixin order to unify file suffix manipulation implementations. - #79: Render new license info on website.
 - #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.
 
 - Create method 
 - 2021-08-29 (link): :
- #79: 
net.splitcells.website.servernow renders text files with the file suffix.htmlinstead 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 tosplitcells.net. See this example. 
 - #79: 
 - 2021-08-28 (link): :
- Fix licensing issues found via FOSSA.
 
 - 2021-08-28 (link): :
- Create helper command 
wait.interactively.untilin order to wait until condition is fulfilled. 
 - Create helper command 
 - 2021-08-24 (link): :
- Add secondary arguments to 
maven.executecommand. - Add 
ENFORCING_UNIT_CONSISTENCYenvironment property to Dem, so it can be set during program startup without programming. - Create project command 
execute.exampleforgel.sheathin order to make easy to create custom execution command. 
 - Add secondary arguments to 
 - 2021-08-17 Proposal of the Project Implement mutation testing
 - 2021-08-17 Proposal of the Project Implement fuzzy testing
 - 2021-08-15 Proposal of the Project Make project core and API GPL 2.0+ compatible
 - 2021-08-14 (link): :
user.bin.configurenow does not require additional user specific implementation. The command now works out of the box without an error message.
 - 2021-08-11 (link): :
- Server SVG images from source folder by webserver and add them to the layout.
 - Deprecated untyped repositories in webserver.
 - Render LaTex math formulas via MathJax in website.
 - Translate local image links in CommonMark to the link of the website.
 
 - 2021-08-10 Proposal of the Project "Developing Software at Gunpoint: Weak Copy Left Versus Pseudo Permissive"
 - 2021-08-10 (link): :
- Create command 
project.repository.registerin order to omit editing config files manually. 
 - Create command 
 - 2021-08-10 (link): :
command.repositories.installnow only installs sh, Bash and Python commands.
 - 2021-08-09 (link): : Create 
net.splitcells.network.deploy.buildfor deploying the build process on multiple computers. - 2021-08-08 (link): : 
command.repositories.installnow strips known file suffixes during installation. This wayos.state.interfacerepos can now state their file endings and thereby have better IDE support in such repos. - 2021-08-05 Proposal of the Project Ensure Source Code Integrity
 - 2021-08-05 (link): :
- Fix Dependabot alert.
 - Make 
hashCodeandequalsofnet.splitcells.gel.rating.framework.MetaRatingIconsistent. - Make 
hashCodeofHasMinimalSize,HasSize,MinimalDistance,MinimalDistanceBasedOnDiffs,Compliance,Cost,BoolI,Comparatorsmore consistent toequals, in order to improve Code quality score in lgtm.com. 
 - 2021-08-05 (link): :
- Rename 
net.splitcells.dem.utils.CommonFunctions#hash_codetohashCode. 
 - Rename 
 - 2021-08-04 Proposal of the Project Improve licensing practices
 - 2021-07-20 Proposal of the Project Pulling The Rip Line
 - 2021-07-08 (link): :
- Default configuration of Dem's process does not ensure determinism or randomness.
 
 - 2021-07-07 Proposal of the Project On Creating The First Public Release
 - 2021-07-04 (link): :
- #61 Remove XSL parameter from rendering API in webserver.
 
 - 2021-07-03 (link): :
- 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.
 
 - 2021-07-01 (link): :
- Remove experimental web layouts.
 
 - 2021-06-27 (link): Log error stack traces in web server.
 - 2021-06-27 (link): :
- Publish Ses project.
 - Limit depth of 
Local Path Contextin default web layout. - Render 
Local Path Contextfor CommonMark documents. 
 - 2021-06-26 (link):  Add optimization to 
den.xsd. - 2021-06-25 (link): Determine project's source folder correctly in ProjectRenderer.
 - 2021-06-25 (link): :
- #8 Create index file, for standard analysis.
 
 - 2021-06-25 (link): :
- #8 Remove deprecated constructor ProjectRenderer.
 - #8 Provide path 
/net/splitcells/website/layout/buildin server, in order to refresh project layout. - #8 Clean up error logging in HttpServer.
 - #8 Add description to RaterBasedOnLineValue based on classifier.
 - Remove verification step after repair inside 
repo.repairin order to prevent duplicate verification calls. - Install project commands in Ossi from repos listed in 
~/.config/net.splitcells.os.state.interface/project.repositories. In other words:command.repositories.installandcommand.managed.install.project.commandsnow 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. - Use 
~/.config/net.splitcells.os.state.interface/command.repositoriesforcommand.repositories.install. This way it is easier to understand the Ossi config files. 
 - 2021-06-24 (link): :
- #8 Rename ForallI to ForAll, in order to simplify name.
 - #8 Create valid XML for natural argumentation.
 - Use established px default value for default font-size in default web layout.
 - Rename 
ConstraintAI#process_lines_before_removaltoprocessLinesBeforeRemovalin order to unify naming. - Rename 
ConstraintAI#register_before_removaltoregisterBeforeRemovalin order to unify naming. - Rename 
ConstraintAI#register_additionstoregisterAdditionsin order to unify naming. - Rename 
ConstraintAI#process_line_additiontoprocessLineAdditionin order to unify naming. - Prevent random test error in 
SimplifiedAnnealingProblemTest#testProbability. - Adjust default value of ProcessPath, so it does not clutter project repo, if the program is executed with default settings inside IDE.
 
 - 2021-06-23 (link): : #8 Remove deprecated usage of 
net.splitcells.gel.data.database.DatabaseIand mark these as protected. These constructors will be made private in the future. - 2021-06-21 (link): : Remove 
net.splitcells.gel.problem.Problem#toSolution(), because it is not used and was not implemented yet. - 2021-06-19 (link): : Create command convention 
repo.is.clean. 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. - 2021-06-06 (link): : #54: Integrate CommonMark documentation into project rendering.
 - 2021-04-13 (link): : #7: Model and solve oral exam problem.
 - 2021-04-12 (link): : #46: Use deterministic environment and execution in CI.
 - 2021-04-07 (link): : #42: Make Gel workspace visible in website.
 - 2021-04-01 Proposal of the Project Create and check minimal grammar for XML
 - 2021-03-08 Proposal of the Project Create minimal Java grammar for this project in order to make code less complex
 - 2021-03-07 Proposal of the Project Solve school course scheduling problem
 - 2020-12-31 (link): : Create public git repository.
 - 2019-05-05 (link): : Create private git repositories.
 - 2017-01-01 (link): : Work Without Version Control (The date is an approximation.)
 - 2016-11-01 (link): : Created the second version of assignment solver written from the ground up for master thesis and named it 
Generic Allocatorfor the first time. See here for more info. (The date is an approximation.) - 2015-01-01 (link): : Created precursor assignment solver of this project during an internship at university. See here for more info. (The date is an approximation.)
 - 2013-05-19 Proposal of the Project Create writing guidelines