Skip to content

Releases: KyoriPowered/blossom

🌼 blossom 2.2.0

12 Oct 04:23

Choose a tag to compare

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

  • Use mammoth's runtime version filtering to fix tests by @zml2008 in #64

Full Changelog: v2.1.0...v2.2.0

🌼 blossom 2.1.0

16 Sep 17:55

Choose a tag to compare

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 variant template 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

04 Sep 02:35

Choose a tag to compare

A hotfix release for blossom 2.0.0. See its release notes for information about the major changes in that release.

🐛 Fixes

  • fix: Correct inverted header newline condition by @zml2008 in #27

Full Changelog: v2.0.0...v2.0.1

🌼 blossom 2.0.0

04 Sep 02:16

Choose a tag to compare

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.

blossom 1.3.1

26 Jul 02:59

Choose a tag to compare

🐛 Fixes

  • Fix compatibility with Kotlin 1.7.0

Full Changelog: v1.3.0...v1.3.1