v4.0.0 Release: Multiple Themes
2024-04-10One week after the v3, we now have a brand new version! It is about twice as fast and makes lots of internal changes:
Breaking Changes
Due to the ReadyToRun and Multiple themes features, there are some changes that users must be aware when upgrading their sites. More on that later.
Features
ReadyToRun
Recent DotNet versions allow a hybrid approach between compiled vs JIT compilation. It is called ReadyToRun. It tries to optimize the code converting some into native code and also make some inferences about the JIT optimizations.
The main advantage is speed. It will probably be about 2 times faster. It will also pave the way to further attempt to complete AOT compilation #35 , which would bring even more speed and smaller size. However, it required some changes, specially in the YAML parser, because it needed to avoid Reflection.
BREAKING CHANGE: all page and site settings (YAML) that are not de default variables will be ignored. Only custom data present under
Params:will be kept into your pages. Before, unknown values were automatically placed under Params, even if placed elsewhere.
Multiple themes
SuCoS now allow sites to install multiple themes (but still only use one). They will be placed inside a themes/ folder (or overwriting it using ThemeDir variable in the site settings sucus.yaml). It will also allow using nested git repositories and splitting the theme into other remote repositories.
BREAKING CHANGE: until now, the theme data was supposed to be placed in theme/ folder. Now, one must create a themes/ folder and put the theme data into a folder within it, like themes/my-theme
new theme terminal command
You can now scaffold the theme structure using the new SuCoS new theme command. It will -still- not populate with any generic theme, but it's the plan for the future.
CODE_OF_CONDUCT and CONTRIBUTING
The source code now has CODE_OF_CONDUCT and CONTRIBUTING documents. The first state the expected conduct for everything in the project, from users or maintainers. Respect, tolerance and a bit o humor are a must. The second contains instructions on ways to start contributing and making changes for yourself. Further instructions are in developer section of this site.
Fixes
404 page Exception
When using live server, if the 404 page is hit (non-existing page), the server was raising an exception and crashing.
Return 0 (success) for help and version
when calling SuCoS version or SuCoS help terminal commands, it was crashing.
Internal Organization
Some changes in the code that do not change the behavior of the app.
- Nuke build project is now merged inside
.nuke - All app commands are placed in
Commandsfolder - Updated dependencies and libraries
- Fixes and enhancements in code comments and code style