-
v1-alpha4
released this
2024-09-05 01:53:14 +02:00 | 97 commits to develop since this release⚠️ This is an experimental release. Stuff may break unexpectedly or contain bugs. Here be dragons! ⚠️
Breaking changes are marked in bold, important changes are marked in italic.Preface
.... what? It has been two months again? Wow, time flies fast. Anyway, here's the fifth alpha release!
✨ Highlights ✨
- internal engine access
- rewritten
DependencyResolver#resolve
method, which now works properly - no busy-waiting anymore! all threads now call
Thread#onSpinWait
- renamed the
graphics
subsystem towindowing
including GLFW, removed OpenGL and Vulkan APIs
Added
- cool Forgejo stuff: Issue templates and working CI/CD
- option which now fails javadoc generation when a warning is issued
EngineInternals
class, which allows access to internal parts of the engine with the ability to restrict accessEngineState.EARLY_STARTUP
InitLogger
class, which is responsible for providing a simple logging infrastructure when the normal one isn't availablePrintStreamService
class, which providesPrintStream
s for printing log messages- Java version check
- safety shutdown hook, which ensures the engine is shut down properly even when
Runtime#exit
orSystem#exit
is called - the
Logger
now supports printing newlines nicely ListFormatter
's functionality has finally been implemented. It only took three monthsEngineInformation#getJavaSource
and#getJavaTarget
methods, which provide the java version of the source code and what version it was compiled against respectively- ability to control test execution. See the README
Removed
StackTraceParser
. It's functionality has been migrated toMiscellaneous
@SuppressWarnings("unused")
from almost everything (why was this even in the source from day one?!)- the
UnexpectedThrowableException
has been yeeted. Why not useException
orThrowable
instead, it works just as fine - removed the
OpenGL
andVulkan
subsystems as thegraphics
subsystem is now thewindowing
subsystem - unused
CompatibilityLogger#log
method
Changed
- copyright notice in source files
- removed classpath exception
- packages were moved (for example,
sosengine.classes
->sosengine.implementable
) - renamed logger implementations to logging adapters
- moved logging thread code out of the
Logger
class into the separateLoggingThread
class - testing infrastructure into separate gradle subproject
- testing infrastructure can now be downloaded via maven and used by projects using the engine
- moved shutdown handlers to new
EngineInternals
class - renamed some classes to more meaningful names
- the
UnmetDependenciesException
class now uses@NotNull List<@NotNull String>
instead of@NotNull Map<@NotNull DependencyVector, @NotNull String
for storing unmet dependency errors - all threads no longer busy wait, but instead call
Thread#onSpinWait
, which allows the CPU to do other stuff while our thread is sleeping - the logging thread can now be restarted
- rewrote how the
Logger
replaces placeholders - tests now work a bit differently, see
TestBase
before the testing infrastructure move - updated the "Javadoc" and "Welcome" documentation pages
- renamed the
graphics
subsystem to thewindowing
subsystem including GLFW
Fixed
- the ansi shortcode converter no longer toggles attributes
DependencyResolver
jank. It now works and resolves dependencies properly (which was a nightmare to implement), thoughDependencyResolver#getOrder
still does not work (will likely work in the next one or two alpha releases)- multiple shutdowns running in parallel. A simple check was enough for that
- inaccurate
VersioningSystem#compare
API documentation - of course, API documentation. Every release, period
Downloads
-
Source code (ZIP)
0 downloads
-
Source code (TAR.GZ)
0 downloads