From f8c5f354f8af4854bfa884f5caa7f10f23219ef9 Mon Sep 17 00:00:00 2001 From: Filip Hrisafov Date: Mon, 12 Aug 2024 22:49:46 +0200 Subject: [PATCH] Blog post for 1.6.0 --- .../news/2024-08-12-mapstruct-1_6_0-is-out.md | 134 ++++++++++++++++++ static/images/downloads_08-2023_08-2024.png | Bin 0 -> 34718 bytes 2 files changed, 134 insertions(+) create mode 100644 content/news/2024-08-12-mapstruct-1_6_0-is-out.md create mode 100644 static/images/downloads_08-2023_08-2024.png diff --git a/content/news/2024-08-12-mapstruct-1_6_0-is-out.md b/content/news/2024-08-12-mapstruct-1_6_0-is-out.md new file mode 100644 index 000000000..60066f315 --- /dev/null +++ b/content/news/2024-08-12-mapstruct-1_6_0-is-out.md @@ -0,0 +1,134 @@ +--- +title: "MapStruct 1.6.0 is out" +author: Filip Hrisafov +date: "2024-08-12" +tags: [release, news] +--- + +I am very happy to announce the final release of MapStruct 1.6! +This is our 6th major release since November 2015. + +As you can see with this release we decided to remove the `.Final` and only use the version (1.6.0). +We'll keep doing this for final releases. + +Besides bug fixes, the 1.6 release brings some new exciting features: + +* Access to target / source property names in conditional and mapping methods +* Conditional mapping for source parameters +* Passing annotations to generated code +* Add javadoc to generated code +* New built-in conversions + + + +For more details checkout the individual release announcements for the +[Beta1](/news/2023-11-04-mapstruct-1_6_0_Beta1-is-out.md), +[Beta2](/news/2024-05-11-mapstruct-1_6_0_Beta2-is-out.md), +[RC1](/news/2024-07-20-mapstruct-1_6_0_RC1-is-out.md) + +### What's inside + +This major release brings few big new features for MapStruct: +* [Access to target / source property names in conditional and mapping methods](/news/2023-11-04-mapstruct-1_6_0_Beta1-is-out.md/#access-to-target--source-property-names-in-conditional-and-mapping-methods) +* [Conditional mapping for source parameters](/news/2023-11-04-mapstruct-1_6_0_Beta1-is-out.md/#conditional-mapping-for-source-parameters) +* [Passing annotations to generated code](/documentation/stable/reference/html/#adding-annotations) +* [Add javadoc to generated code](/documentation/stable/reference/html/#javadoc) + +In total 90 issues have been fixed between the 1.5.0.Final and 1.6.0 release. + +### What's next + +We currently have few issues that have been requested a lot: +* [Support Java 8 Optional](https://github.com/mapstruct/mapstruct/issues/674) +* [Support or NonNull / Nullable annotations](https://github.com/mapstruct/mapstruct/issues/1243) + +and we have some issues with requesting support for Kotlin. +The most requested here are: + +* [Support KSP](https://github.com/mapstruct/mapstruct/issues/2522) +* [Support for Kotlin data classes](https://github.com/mapstruct/mapstruct/issues/2281) + +We would like to see if we can tackle some of these issues in the next release. +The KSP support is something that might require a lot of work and refactoring in the internals of MapStruct, but we will see. + +### Stats + +Like every final release, we like to release some statistics about the project. +We are very proud and thankful to our growing community. +It is really satisfying to see how everyone helps each other in our on [StackOverflow](https://stackoverflow.com/questions/tagged/mapstruct) or in our [GitHub Discussions](https://github.com/mapstruct/mapstruct/discussions). +We currently have 7000+ stars and 133 contributors on GitHub. +More than 100 000 people are using our [IntelliJ](https://plugins.jetbrains.com/plugin/10036-mapstruct-support) plugin. + +Most impressive though are the download numbers we get from the Maven Central repo. +As an example here are the numbers for the _org.mapstruct:mapstruct-processor_ artifact: + +
+ +
+ +The number of Downloads compared to the time we released 1.5.0.Final has more than doubled (increased by 2.3 times). + +### Thanks + +In this release we also started accepting donations through [Open Collective](https://opencollective.com/mapstruct) or [GitHub](https://github.com/sponsors/mapstruct). + +We'd like to thank all the supporters that supported us with donations in this period: + +* [addesso SE](https://github.com/adessoSE) +* [Bileto](https://opencollective.com/bileto) +* [Cybozu](https://github.com/cybozu) +* [Frederik Hahne](https://opencollective.com/atomfrede) +* [Juyoung Kim](https://github.com/kjuyoung) +* [Lansana](https://opencollective.com/lansana) +* [Lee Anne](https://github.com/AnneMayor) +* [Mariselvam](https://github.com/marisnb) +* [PRISMA European Capacity Platform GmbH](https://github.com/jan-prisma) +* [St. Galler Kantonalbank AG](https://opencollective.com/st-galler-kantonalbank-ag) + + +Last but not least we would like to congratulate all the enthusiastic MapStruct contributors making this release possible. +In alphabetic order this are all the contributors that contributed to the 1.6 release of Mapstruct: + +* [@anton-erofeev](https://github.com/anton-erofeev) +* [@Blackbaud-JasonBodnar](https://github.com/Blackbaud-JasonBodnar) +* [@Bragolgirith](https://github.com/Bragolgirith) +* [@chenzijia12300](https://github.com/chenzijia12300) +* [@cmcgowanprovidertrust](https://github.com/cmcgowanprovidertrust) +* [@dehasi](https://github.com/dehasi) +* [@eroznik](https://github.com/eroznik) +* [@EvaristeGalois11](https://github.com/EvaristeGalois11) +* [@hduelme](https://github.com/hduelme) +* [@Hypnagokali](https://github.com/Hypnagokali) +* [@ivlcic](https://github.com/ivlcic) +* [@jccampanero](https://github.com/jccampanero) +* [@kooixh](https://github.com/kooixh) +* [@MengxingYuan](https://github.com/MengxingYuan) +* [@MLNW](https://github.com/MLNW) +* [@mosesonline](https://github.com/mosesonline) +* [@Nikolas-Charalambidis](https://github.com/Nikolas-Charalambidis) +* [@Obolrom](https://github.com/Obolrom) +* [@paparadva](https://github.com/paparadva) +* [@prasanth08](https://github.com/prasanth08) +* [@ro0sterjam](https://github.com/ro0sterjam) +* [@rgdoliveira](https://github.com/rgdoliveira) +* [@the-mgi](https://github.com/the-mgi) +* [@venkatesh2090](https://github.com/venkatesh2090) +* [@wandi34](https://github.com/wandi34) + and of course seasoned MapStruct hackers [Oliver Erhart](https://github.com/thunderhook) (who is a new member of the team), [Ben Zegveld](https://github.com/Zegveld), [Sjaak Derksen](https://github.com/sjaakd) and [Filip Hrisafov](https://github.com/filiphr). + +Happy coding with MapStruct 1.6!! + +### Download + +You can fetch the new release from Maven Central using the following GAV coordinates: + +* Annotation JAR: [org.mapstruct:mapstruct:1.6.0](http://search.maven.org/#artifactdetails|org.mapstruct|mapstruct|1.6.0|jar) +* Annotation processor JAR: [org.mapstruct:mapstruct-processor:1.6.0](http://search.maven.org/#artifactdetails|org.mapstruct|mapstruct-processor|1.6.0|jar) + +Alternatively, you can get ZIP and TAR.GZ distribution bundles - containing all the JARs, documentation etc. - [from GitHub](https://github.com/mapstruct/mapstruct/releases/tag/1.6.0). + +If you run into any trouble or would like to report a bug, feature request or similar, use the following channels to get in touch: + +* Get help in our [GitHub Discussions](https://github.com/mapstruct/mapstruct/discussions) or [StackOverflow](https://stackoverflow.com/questions/tagged/mapstruct) +* Report bugs and feature requests via the [issue tracker](https://github.com/mapstruct/mapstruct/issues) +* Follow [@GetMapStruct](https://twitter.com/GetMapStruct) on Twitter diff --git a/static/images/downloads_08-2023_08-2024.png b/static/images/downloads_08-2023_08-2024.png new file mode 100644 index 0000000000000000000000000000000000000000..5fca809dff6764a97b0be13f96a148cd2b5a5876 GIT binary patch literal 34718 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 glLPk^X2>$$b+4?z!r!$c_(=??9*bx!v0+J8!d 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 literal 0 HcmV?d00001