The recent #Gradle 7.6 release supports #compiling, #testing, and running on #Java19 - https://docs.gradle.org/7.6/release-notes.html#:~:text=Added%20Support%20for%20Java%2019
Developer Advocate for Gradle Build Tool
FOSS enthusiast
Scuba, Sailor and Caver
The recent #Gradle 7.6 release supports #compiling, #testing, and running on #Java19 - https://docs.gradle.org/7.6/release-notes.html#:~:text=Added%20Support%20for%20Java%2019
Yes, #grade is hiring a Tech Writer! This is not your normal TW role. Software engineers that have a passion and skill for writing would make the strongest candidates.
https://www.linkedin.com/jobs/view/3381309054/?referenceId=dAOBRZ6MRYCa3gJ6XuIJmQ%3D%3D
Design Specs are now public for #Gradle
https://blog.gradle.org/design-spec-annoucement
🥳
Once you split your #java project into components, you can have multiple compile classpaths. You can leverage that to have neatly isolated components with "plain old Java" at development time.
Of course, you should use #gradle to set this up.
Learn how this works, and why to distinguish between 'implementation' and 'api' scopes, in my second video on Java Modularity.
https://www.youtube.com/watch?v=Z5n9VK3sOnI&list=PLWQK2ZdV4Yl2k2OmC_gsjDpdIBTN0qqkE
I just tried out Twitodon (https://twitodon.com) to find people to follow on Mastodon based on who I follow on Twitter. The more people that use it, the more people it'll be able to find and suggest.
A sleeping elephant family photographed by a drone…
Gradle Goodness: Set Project Version In Version Catalog
https://blog.mrhaki.com/2022/12/gradle-goodness-set-project-version-in.html #gradle #java
For Gradle 8.0, should the default be to write the resolved version? If a dynamic version is given, the resolved version is listed. The default is a reproducible build with the version used, not the dynamic version.
🧵6/6
Provide your feedback here - https://forms.gle/kfpcaTWYC58MSDRPA
For example, if you supply version 2+ for your build, the output shows "2+" but perhaps 3 was used. Later, if you want to make the same build, you again supply 2+, but this time, perhaps 6 is used as it is 2+, clearly a non-reproducible build.
🧵5/6
VariantVersions
The best practice is to explicitly lock the versions used. But, if you do use dynamic versions, that value is persisted into the output. Currently, dynamic versions are never reproducible since who knows what version is used. https://docs.gradle.org/current/userguide/publishing_maven.html#publishing_maven:resolved_dependencies
🧵4/6
Flag `reproducibleFileOrder`
The ordering of files in an archive can vary from system to system. If a project is built on Windows and the same project is built at the same time on Linux, they will be different because of how these files are ordered.
🧵3/6
Flag `preserveFileTimestamps`
When Gradle compiles code, there is a timestamp that is added. So a jar made today will (by default) not match a jar made tomorrow, even if everything's the same.
🧵2/6
The idea surrounds reproducible builds. Shadow Plugin author @johnrengelman@twitter.com sums it up nicely here https://imperceptiblethoughts.com/shadow/configuration/reproducible-builds/
🧵1/6
I am conducting a survey for #gradle about reproducible builds and the default flags. Would love your input. More details in the thread or just fill out the form:
https://forms.gle/b5BX8BLehzQj6WdAA
New post JDriven blog: Generic Derivation - a comparison #Functional Programming #Scala #TypeDriven #magnolia https://blog.jdriven.com/2022/11/Generic-Derivation-Comparison/
Time to make your voice heard on #Gradle Build Tool documentation. Share your thoughts on what we should focus on and how to improve. Want input from all users, regardless of usage! Take this short survey and share your input: https://docs.google.com/forms/d/e/1FAIpQLSclpOsiTaXqijUP17yio8-I7bCSyw7nNTCbcGcH1E59AdfsZg/viewform
@Cara this was my first programming book! Brings back memories! I always read my school books to my kids, price of getting a doctorate while being a mom.