net.splitcells.dem.core
to net.splitcells.dem.ext
.net.splitcells.dem.merger
to net.splitcells.dem.api
.net.splitcells.gel.sheath
to net.splitcells.gel.ext
.EPL-2.0 OR MIT
was planned as an transitioning licensing,
until EPL 2.0
with GPL-2.0-or-later
as the secondary license (EPL-2.0 OR GPL-2.0-or-later
) could be adopted.
Before this change it was assumed, that EPL-2.0 OR GPL-2.0-or-later
requires dependencies to be
compliant with GPL-2.0-or-later
at all times.
It was later found out, that GPL-2.0-or-later
compliance seems to be only relevant,
when work is actively made available under the secondary license GPL-2.0-or-later
and
this only has to be done by the distributor.net.splitcells.network.m2
is 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.test.groups
is now used in Maven to determine,
which Tags are required for a test to be executed,
during the build.net.splitcells.network.community.via.javadoc
net.splitcells.network.community.git-bug
net.splitcells.network.repos
./bin/test.via.network.worker
and logged at net.splitcells.network.log/src/main/csv/net/splitcells/network/worker/builder/warnings/$(hostname).csv
.https://localhost:8443/index.html
becomes https://localhost:8443
.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).*Renderer*
of net.splitcells.website.server.project.renderer.**
to *ProjectRendererExtension*
in order to ensure unique class names in the
future.net.splitcells.website.server.project.renderer.*
to net.splitcells.website.server.project.renderer.extension.*
.CommonMarkChangelogEventRenderer
to the web server in order to extract events from one changelog file.
For every supported path [...}/CHANGELOG.html
there is now an appropriate
supported path [...}/CHANGELOG.events.html
.repo.copy
.
It makes the repo.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 than
repo.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.rootPath
option to web server config.rootPath
config,
which is /
by default.
If /
is used as rootPath
,
then the path translation does not change the path.
For instance, /net/splitcells/gel/index.html
is translated to /net/splitcells/gel/index.html
in this case.
If rootPath
is set to /net/splitcells/martins/avots/website/
,
then it is translated to /net/splitcells/martins/avots/website/net/splitcells/gel/index.html
.CommonMarkChangelogExtension
-> CommonMarkChangelogRenderer
CommonMarkReadmeExtension
-> CommonMarkReadmeRenderer
Relevant Local Path Context
section
in the secondary content column.
It is located right before the Local Path Context
and only lists paths,
that are relevant for ordinary users.
The new section makes it easier to navigate between the different pages of
the site.net.splitcells.website.server.project.Location
.ProjectRenderer#renderHtmlBodyContent
,
Renderer#renderFile
and Server
.net.splitcells.website.server.*
to net.splitcells.website.server.project.validator
,
in order to improve code structure overview./net/splitcells/website/server/config/layout.xml
inside 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.net.splitcells.website.html.content
project.
It was an alternative minimal style for the website.
It is now integrated into the default style and can be enabled via the
generated.style
option and the value minimal
.
For this the RenderingConfig
class was created and is used by ProjectsRenderer
.
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.package.install
implementation 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.system.ssh.server.require
and
system.ssh.server.require
.argumentation
.
Constraint#naturalArgumentation
method now returns an optional
perspective.
Thereby, the number of nodes in the AST of the argumentation is reduced.argumentation
itself was greatly reduced.
Before the change an argumentation would look like the following:
Argumentation For all rail
Argumentation Argumentation Then values of allocated hours should have the same value
Now it looks like this For all rail Then values of allocated hours should have the same value
.net.splitcells.network.media
and is a peer repo to
this repo cluster.user.ssh.key.authorize
,
which prohibited its execution.system.ssh.server.start
.
This makes this script also workable on Fedora Silverblue.repo.push.at
as the new version of repo.push.to
:
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.repo.push.at
, that uses only classical Unix style argument
handling.
Support for pushing to URLs was added as well.generation.style
variable for default XSL style
for multiple output style configuration.net.splitcells.network.media
to website.user.start
like
user.configure
,
because this makes the command too complicated and it also makes it too hard
to maintain backwards compatibility.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.flatpak.gui
, in order to easily find
Flatpak's default GUI based application manager.sh.scroll.enable
.
ssh.execute
in order to execute commands
on remote server in foreground.run.and.print.only.errors.sh
and run.and.print.sh
,
because there are too many run.and.*
commands,
that are not used and are too similar.
This makes it unjustifiable hard to choice a fitting run.and.*
command.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.UserCommandRenderer
by rendering command tree with http://splitcells.net/den.xsd
namespace.Ui#append
).UserCommandRenderer#projectPaths
.
This method now correctly provides its managed project paths.Validator
to SourceValidator
in order to
clarify purpose,
because a validator for rendered files via the web server is needed.chart.js
now renders the
requested csv file.
Previously, this renderer always rendered the same file,
regardless of the requestssh.execute.in.background
in order to start
background tasks on remote servers with systemd and ssh.system.lock
,
that locks all input and output devices of the system users'
(i.e. lockscreen).repo.synchronize.with
now uses the new interface of
repo.repair
,
which got a breaking change previously in order to improve
and standardize argument parsing.asMetaRating
method of ratings.repo.repair
was 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.net.splitcells.network.log
to 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.Contraint#register_addition
to Contraint#registerAddition
.Contraint#register_before_removal
to Contraint#registerBeforeRemoval
.Database#subscriberToBeforeRemoval
to Database#subscribeToBeforeRemoval
.Database#subscriberToAfterRemoval
to Database#subscribeToAfterRemoval
.HistoryI#resetTo
.Ordered#compare_to
now does not always double-check
equality.net.splitcells.dem.environment.config.StaticFlags.PROFILING_RUNTIME
with PROFILING_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.net.splitcells.dem.resource.host.integration
to net.splitcells.dem.resource.communication.log
.
The reason for this, is the fact, that the shell may not be on the host
computer.command.managed.execute
now uses shutil.which
instead of
distutils.spawn.find_executable
,
because the latter one is deprecated and will be
removed from Python with the version 3.12.test.capabilities
and test.integration
in order to
execute tests, that require relatively long time for execution.net.splitcells.website.html.content
project in order to
provide an alternative HTML styling.project.render
,
in order to define a primitive unified building API for different build
systems and projects.project.render.as.net.splitcells.website
in 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.shell.width.sh
now works in Bourne shell as well.net.splitcells.gel.solution.optimization.Optimization
to OfflineOptimization
in order to clarify its meaning.txt
file suffix.project.render.as.net.splitcells.website
as an
API for creating plugins for splitcells.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:
./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.cd <plugin's path>
project.render.as.net.splitcells.website
net.splitcells.dem.data.order.Comparator.comparator_
.
to comparatorLegacy
in order to have a clear name and remove its usage,
where it is not needed.net.splitcells.dem.data.order.Comparators.comparators
to comparator
in order to unify naming.system.update
for 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.ProjectsRenderer#projectsLayout
method and use
ProjectsRenderer#projectsPath
instead.
This new method is a lot easier to implement than the precursor,
especially if future extension may be implemented via third party software.command.managed.install
now 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 command repo.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 say repo.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 of repo.push
,
because the dependency repo.push.0
would not be present.
After the patch the file is installed to ~/bin/net.splitcells.os.state.interface.commands.managed/repo.push.0
.user.ssh.key.generate.sh
causes 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 the
ssy-keygen
command.
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 by
ssh-keygen
..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.deployment
in order to create deployable jars.splitcells-net.srht.site
(Gemini link).~/bin/man/man1
so that the common man
command can find and display man pages installed by os state interface.pip.module.install
for user
and therefore without admin rights.system.configure.auto
of OS state interface
project.net.splitcells.dem.resource.communication.Subscribable
,
because it was not used.net.splitcells.dem.resource.communication.interaction
to
net.splitcells.dem.resource.host.interaction
,
because sees interfaces and classes are not host specific.net.splitcells.dem.lang.annotations.Return_this
to ReturnThis
in order to unify naming.run.and.show.if.failed
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.package.install
via rpm-ostree
.
This package install command has the highest priority, because package managers like dnf should be ignored
in this case.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.user.ssh.key.authorize
in order to import public keys
into ~/.ssh/authorized_keys
via command.
Already present entries are not inserted.package.install.java.ide.via.eclipse
because an update of Flatpak
broke this.net.splitcells.website.server
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 splitcells.net
.
See this example.Paths.removeFileSuffix
in order to unify file suffix
manipulation implementations.wait.interactively.until
in order to wait until
condition is fulfilled.maven.execute
command.ENFORCING_UNIT_CONSISTENCY
environment property to Dem,
so it can be set during program startup without programming.execute.example
for gel.sheath
in order to make
easy to create custom execution command.user.bin.configure
now does not require additional user specific
implementation.
The command now works out of the box without an error message.command.repositories.install
now only installs sh, Bash and
Python commands.project.repository.register
in order to omit editing
config files manually.net.splitcells.network.deploy.build
for deploying
the build process on multiple computers.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.net.splitcells.dem.utils.CommonFunctions#hash_code
to hashCode
.hashCode
and equals
of net.splitcells.gel.rating.framework.MetaRatingI
consistent.hashCode
of HasMinimalSize
, HasSize
, MinimalDistance
,
MinimalDistanceBasedOnDiffs
, Compliance
, Cost
, BoolI
,
Comparators
more consistent to equals
, in order to improve Code
quality score in lgtm.com.Local Path Context
in default web layout.Local Path Context
for CommonMark documents.den.xsd
./net/splitcells/website/layout/build
in server,
in order to refresh project layout.repo.repair
in order to
prevent duplicate verification calls.~/.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.~/.config/net.splitcells.os.state.interface/command.repositories
for command.repositories.install
.
This way it is easier to understand the Ossi config files.ConstraintAI#process_lines_before_removal
to processLinesBeforeRemoval
in order to unify naming.ConstraintAI#register_before_removal
to registerBeforeRemoval
in order to unify naming.ConstraintAI#register_additions
to registerAdditions
in order to unify naming.ConstraintAI#process_line_addition
to processLineAddition
in order to unify naming.SimplifiedAnnealingProblemTest#testProbability
.net.splitcells.gel.data.database.DatabaseI
and mark these as protected.
These constructors will be made private in the future.net.splitcells.gel.problem.Problem#toSolution()
,
because it is not used and was not implemented yet.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.Generic Allocator
for the first time.
See here for more info.
(The date is an approximation.)