Releases: KyoriPowered/blossom
🌼 blossom 2.2.0
This is a small feature release, adding an option to configure newline trimming.
This release is also tested against Gradle 9.
At some point in the future, new versions of Blossom will begin requiring Java 17 at runtime. This matches the baseline for newer Gradle versions, and lets us take advantage of new language features where it makes sense for the project. Realistically it'll probably be a while since Blossom doesn't tend to need much updating, but it will happen eventually.
What's Changed
✨ Features
- feat: add option to configure whether newlines are trimmed by @zml2008 in #91
- Migrate to JSpecify by @zml2008 in #92
Other
Full Changelog: v2.1.0...v2.2.0
🌼 blossom 2.1.0
blossom 2.1.0 is a feature release introducing some minor QOL features, and fixing handling of included files. It should be a straightforward upgrade for existing users of Blossom 2.0.1.
✨ Features
- Add default
varianttemplate property when using variants by @jpenilla in #37 - feat: Add helper API to make it easier to register custom sets by @zml2008 in #38
🐛 Fixes
Full Changelog: v2.0.1...v2.1.0
🌼 blossom 2.0.1
A hotfix release for blossom 2.0.0. See its release notes for information about the major changes in that release.
🐛 Fixes
Full Changelog: v2.0.0...v2.0.1
🌼 blossom 2.0.0
NOTE 2.0.1 has been released as a hotfix to this version, resolving an issue with applying headers. See its release notes for details about those changes. We recommend using 2.0.1 instead, but the following release notes still provide helpful migration advice.
Blossom 2.0.0 is a complete redesign of the Blossom plugin to provide a fully featured solution for source and resource templating. It is based on the template engine used to build Sponge's math library. See the README for an introduction to Blossom v2's features.
Migrating from Blossom v1
The key difference in functionality with v2 is that only source files within the specific templates root will be processed as templates -- all other source files will have no other change.
This allows more efficient execution since templates only need to be regenerated when there are actual changes, and means that any compile errors in non-templated files will be linked correctly in IDE logs. Template output will also be exposed correctly to any IDE run configurations, since templates are processed at project import time.
The quickest migration from v1 starts with a buildscript like:
sourceSets {
main {
blossom {
javaSources {
// template values here
property("token", value)
}
}
}
}Then place files that should be processed as templates in src/main/java-templates. These are Pebble templates, so the variable syntax is {{ token }}. See their documentation for more of the language's features.
Substitute java with groovy, kotlin, or scala as desired.