Skip to content

Latest commit

 

History

History
301 lines (194 loc) · 8.26 KB

CHANGELOG.md

File metadata and controls

301 lines (194 loc) · 8.26 KB

Changelog

1.8.1

2024-04-26

  • Allow @Unredacted to be applied to a class, only when a supertype is @Redacted
  • Allow @Redacted supertypes to be inherited by objects, only when the child does not implement a custom toString method
  • Fail compilation when @Unredacted and @Redacted are applied to the same class

Special thanks to @DrewCarlson for contributing to this release!

1.8.0

2024-04-23

  • New: Support for annotating interfaces and non-final classes as @Redacted. In this event, all data/value subclasses will be treated as @Redacted.
  • New: Support for @Unredacted to explicitly opt out of redacting specific properties in otherwise-redacted classes.
    @Redacted
    data class User(
      @Unredacted val name: String,
      val phoneNumber: String
    )
    
    // This will redact `phoneNumber` but not `name`
    // User(name=Bob, phoneNumber=██)
  • Update Kotlin to 1.9.23.

Special thanks to @DrewCarlson for contributing to this release!

1.7.1

2023-11-26

  • Update Kotlin to 1.9.21.

1.7.0

2023-10-31

  • Update to Kotlin 1.9.20. This plugin now requires 1.9.20.
  • Update wasm target to wasmJs.

1.6.1

2023-09-02

  • Enhancement: Simplify lookup of KotlinCompilation's implementation configuration name in the Gradle plugin when using the default annotation.
  • Update to Kotlin 1.9.10.
  • Build against Gradle 8.3.

1.6.0

2023-07-08

  • New: Support value class types. Note that only annotating the class is supported, as annotating the property would be redundant.

1.5.0

2023-07-06

  • Update to Kotlin 1.9.0. This plugin now requires 1.9.0.

1.4.0

2023-04-03

  • Update to Kotlin 1.8.20. This plugin now requires 1.8.20.
  • [annotations] Mark JS binaries as executable.
  • [annotations] Remove deprecated watchosX86().
  • [annotations] Add wasm target. Note this is experimental and not stable.
  • [annotations] Add androidNativeArm32, androidNativeArm64, androidNativeX86, androidNativeX64, and watchosDeviceArm64 targets.

1.3.1

2023-03-16

  • Fix: Missing jvmTarget in the annotations artifact. Target is now properly set to Java 11.
  • Update to Kotlin 1.8.10.

1.3.0

2022-12-28

  • Update to Kotlin 1.8.0. This release is only compatible with Kotlin 1.8 or later.
  • Update JVM target to 11.
  • Kotlin JS artifact now only supports IR.
  • Migrate the IR and FIR plugins to new CompilerPluginRegistrar entrypoint API.

1.2.1

2022-12-03

This release is primarily under-the-hood changes + extra compile-time checks.

  • [IR] Fail compilation if both class and any number of properties are annotated with @Redacted.
  • [IR] Fail compilation if @Redacted is used in a non-class context.
    • Before it would only check if the class is non-data, but with Kotlin 1.8 introducing data object classes we need to also check that the target type is itself a class.
  • [IR] Fail compilation if a custom toString() function is implemented in a data class using @Redacted.
  • [IR] Harden toString() function declaration matching.
  • [FIR] Promote REDACTED_ON_CLASS_AND_PROPERTY_WARNING to error.
  • Update to Kotlin 1.7.22.

1.2.0

2022-10-03

Experimental support for the new K2 compiler + FIR plugin.

Note this comes with several caveats:

  • No IDE support yet
  • Errors and warnings can't have custom messages yet: KT-53510.
  • Multiple errors and warnings result in only a single error being emitted: KT-54287.
  • K2 compiler itself is extremely experimental.

In short, this is only really to unblock anyone doing their own testing of K2 and don't want this plugin to disable it. If you see any issues, please file a bug here and disable K2 in your project in the meantime.

Details on K2 and instructions for enabling it can be found here: https://kotlinlang.org/docs/whatsnew17.html#new-kotlin-k2-compiler-for-the-jvm-in-alpha

Also: update to Kotlin 1.7.20.

1.1.0

2022-06-09

Update to Kotlin 1.7.0.

Note that Kotlin 1.7.0 is now the minimum for this version due to breaking API changes in Kotlin IR APIs.

1.0.1

2022-01-13

  • Use implementation instead of api adding the redacted-compiler-plugin-annotations dependency. #76

Thanks to @gpeal for contributing to this release!

1.0.0

2021-12-24

Stable release!

While Kotlin IR is not a stable API, the public API of redacted-compiler-plugin is. This project will use semver only for its own API but intermediate versions may only work with specific versions of Kotlin (documented in the changelog).

Changes since 0.10.0

  • Remove remaining obsolete descriptor API usages.
  • Update to Kotlin 1.6.10.

0.10.0

2021-12-20

This release introduces formal support for Kotlin multiplatform!

There are two parts to this:

  • The compiler plugin itself supports all compilation types, not just JVM and Android.
  • The first-party annotations artifact is now multiplatform.

The legacy backend support is now removed, IR is required going forward.

0.10.0-RC1

2021-11-21

This is a release candidate with support for Kotlin multiplatform. Please test this out and report any issues.

There are two parts to this:

  • The compiler plugin itself supports all compilation types, not just JVM and Android.
  • The first-party annotations artifact is now multiplatform.

The legacy backend support is now removed, IR is required going forward.

0.9.0

2021-11-16

  • Formal support for Kotlin 1.6. This plugin requires Kotlin 1.6 now.

0.8.3

2021-10-15

  • Support for Kotlin 1.6 (built against 1.6.0-RC). This release should only be used for testing with Kotlin 1.6 previews.

0.8.2

2021-10-12

This release was accidentally broken and should not be used! Specifically, the gradle plugin accidentally targeted Java 17.

0.8.1

This release was accidentally broken and should not be used! Specifically, the compiler plugin itself was missing a service file and would not run.

0.8.0

2021-02-05

  • Change: The gradle plugin id is now dev.zacsweers.redacted.
  • Support (and requires) Kotlin 1.4.30.

There may be 0.7.x versions on sonatype. Don't use them, they are broken.

0.6.1

2021-01-10

0.6.0

2021-01-09

  • Gradle plugin extension now uses modern Gradle Property APIs. Minimum Gradle version is now 5.1.
  • Android-specific APIs (i.e. variantFilter) are now removed. If you still want this, consider configuring this manually in your own build however you see fit in tandem with the enabled property.
  • Fix: IR supports redacted classes now too.

0.5.0

2021-01-08

  • New! Experimental support for Kotlin IR. Note that IR is still incubating and subject to change.
  • Update Kotlin to 1.4.21.
  • Tested up to JDK 15.

0.4.0

2020-11-27

This version requires Kotlin 1.4.20 or higher!

  • Compatible with Kotlin 1.4.20
  • Supports Kotlin's new StringConcatFactory automatically when -Xstring-concat is enabled.

0.3.0

2020-08-15

This is identical in functionality to 0.2.0 but built against Kotlin 1.4.

0.2.0-1.4

2020-07-16

This is identical in functionality to 0.2.0 but built against Kotlin 1.4. This version is not considered stable and should only be used for testing compatibility with Kotlin 1.4 pre-releases.

0.2.0

2020-01-25

New: There's now a batteries-included redacted-compiler-plugin-annotations artifact with a @Redacted annotation you can use if you don't want to manage your own. The redacted Gradle extension now defaults to this and will automatically add this annotations artifact to your project dependencies if a custom one isn't set. This means that, if you use the default, then all you need to do to use this plugin is simply apply the gradle plugin 🎉.

0.1.0

2020-01-24

Initial release!