Releases: slackhq/foundry
0.22.4
- [gradle] Improve Detekt configuration to better ignore generated source files.
- [gradle] Add skippy support to validateModuleTopography. Now there are
globalCiValidateModuleTopography
andciValidateModuleTopography
tasks. - [gradle] Use
mustRunAfter
for depending on source gen tasks + add back sqldelight's schema task as a source-generating task. - [gradle] Improve compose matching text to include
.setContent {
. - [gradle] Support custom configurations and overrides of ModuleTopography features via JSON file specified by the
foundry.topography.features.config
property. - Update kaml to
0.65.0
. - Build against develocity plugin
3.18.2
. - Build against Roborazzi plugin
1.32.2
.
What's Changed
- Update actionsdesk/lfs-warning action to v3.3 by @slack-oss-bot in #1087
- Update dependency com.charleskorn.kaml:kaml to v0.63.0 by @slack-oss-bot in #1088
- Update dependency com.gradle:develocity-gradle-plugin to v3.18.2 by @slack-oss-bot in #1090
- Update dependency com.mikepenz:multiplatform-markdown-renderer to v0.27.0 by @slack-oss-bot in #1075
- Update plugin com.gradle.develocity to v3.18.2 by @slack-oss-bot in #1091
- Improve detekt exclusion of build dir files by @ZacSweers in #1092
- Remove GenerateSchema task from source-generating tasks by @ZacSweers in #1094
- Add another compose matching text by @ZacSweers in #1097
- Fix snapshot tests job on CI by @ZacSweers in #1096
- Use mustRunAfter for depending on source gen tasks + add back schema task by @ZacSweers in #1098
- Add skippy support for validateModuleTopography by @ZacSweers in #1095
- Update dependency com.charleskorn.kaml:kaml to v0.65.0 by @slack-oss-bot in #1099
- Update roborazzi to v1.32.2 by @slack-oss-bot in #1100
- Introduce ModuleFeaturesConfig by @ZacSweers in #1101
Full Changelog: 0.22.3...0.22.4
0.22.3
- [gradle] Only make
LocTask
depend on source-generating tasks ifMODULE_SCORE_INCLUDE_GENERATED
is true.
Full Changelog: 0.22.2...0.22.3
0.22.2
- [gradle] Fix dependencies on source-generating tasks in module stats and topography.
Full Changelog: 0.22.1...0.22.2
0.22.1
- [gradle] Fix FoundryProperties hierarchical init.
Full Changelog: 0.22.0...0.22.1
0.22.0
- [gradle] Introduce new
moduleTopography
task. This is a general task that attempts to validate project configurations by looking for features that are enabled but unused. Currently covers a few core features like kapt, ksp, moshi code gen, dagger/anvil, and viewbinding. Outputs are printed and written to a JSON file. Add--validate-all
to make the tasks fail on validation issues. - [gradle] Cache global
FoundryProperties
instance for subproject use. - [gradle] Add
composeRuntimeOnly()
DSL feature. - [cli] Check for non-existent paths before traversing in
Path.walkEachFile()
. - [gradle] Don't depend on build sources in mod score if
MODULE_SCORE_INCLUDE_GENERATED
is false - [gradle] Source module topography in mod score stats collecting
- [gradle] Build against Gradle
8.11
. - [gradle] Do not track state in
RakeDependencies
task. - Update to KotlinPoet
2.0.0
. - Update to xmlutil
0.90.3
. - Update to kaml
0.62.2
. - Update to Mordant
3.0.1
. - Build against gradle-dependency-sorter
0.12
. - Build against KSP
2.0.21-1.0.27
. - Build against DAGP
2.4.2
. - Build against Compose Multiplatform
1.7.0
.
What's Changed
- Improve Skate publishing by @ZacSweers in #1057
- Update dependency com.android.tools.build:gradle to v8.8.0-alpha08 by @slack-oss-bot in #1058
- Update dependency org.jetbrains.compose:compose-gradle-plugin to v1.7.1+build1894-release-1.7.1 by @slack-oss-bot in #1060
- Do not track internal state in DependencyRake by @ZacSweers in #1067
- Don't depend on build sources in mod score if
MODULE_SCORE_INCLUDE_GENERATED
is false by @ZacSweers in #1065 - Update jewel to v0.26.2 by @slack-oss-bot in #1061
- Initial pass at ModuleTopographyTask by @ZacSweers in #1070
- Update agp to v8.7.2 by @slack-oss-bot in #1072
- Update dependency com.android.tools.build:gradle to v8.8.0-alpha09 by @slack-oss-bot in #1073
- Update dependency gradle to v8.11-rc-2 by @slack-oss-bot in #1074
- Update mordant to v3.0.1 by @slack-oss-bot in #1076
- Update dependency com.charleskorn.kaml:kaml to v0.62.2 by @slack-oss-bot in #1069
- Update xmlutil to v0.90.3 by @slack-oss-bot in #1077
- Update dependency com.facebook:ktfmt to v0.53 by @slack-oss-bot in #1071
- Update dependency gradle to v8.11-rc-3 by @slack-oss-bot in #1078
- Update dependency org.jetbrains.compose to v1.7.1+build1910-release-1.7.1 by @slack-oss-bot in #1059
- Update dependency org.jetbrains.compose:compose-gradle-plugin to v1.7.1+build1910-release-1.7.1 by @slack-oss-bot in #1079
- Update dependencyAnalysisPlugin to v2.4.2 by @slack-oss-bot in #1062
- Update ksp to v2.0.21-1.0.27 by @slack-oss-bot in #1080
- Revert "Update dependency org.jetbrains.compose:compose-gradle-plugin to v1.7.1+build1910-release-1.7.1" by @ZacSweers in #1083
- Paper over test fixture dependency cycles in mod score computation by @ZacSweers in #1082
- Source ModuleTopography in mod stats + various refactorings by @ZacSweers in #1081
- Update dependency com.squareup:kotlinpoet to v2 by @slack-oss-bot in #1068
- Update sortDependencies to v0.12 by @slack-oss-bot in #1063
- Roborazzi Test for Markdown Playground by @kateliu20 in #1064
Full Changelog: 0.21.0...0.22.0
0.21.0
- New: Extract
better-gradle-properties
artifact, which is our hierarchical Gradle properties solution that better handles properties in Gradle. This is what powersFoundryProperties
but is now extracted to be more portable.- This checks in the following order of priority
- project-local
local.properties
- project-local
gradle.properties
- root-project
local.properties
- root-project/global
gradle.properties
- project-local
- This checks in the following order of priority
- New: Extract
version-number
artifact. This contains a Kotlin, non-deprecatedVersionNumber
API. This is useful given that Gradle's is both deprecated and not available in standard JVM projects. - New: Support Robolectric 4.14.
- Changed: Remove defunct
foundry.git.hooksPath
andfoundry.git.ignoreRevsFile
properties. - Changed: Rename
SgpArtifact
toFoundryArtifact
. - Misc doc fixes + reorganize docsite around new repo structure.
- Update xmlutil to
0.90.2
. - Build against Spotless
7.0.0.BETA4
. - Build against KSP
2.0.21-1.0.26
. - Build against DAGP
2.2.0
. - Build against nullaway-gradle
2.1.0
. - Build against errorprone-gradle
4.1.0
. - Build against Compose multiplatform
1.7.0
. - Build against Dokka
2.0.0-Beta
.
What's Changed
- Update dependency org.jetbrains.kotlinx:kotlinx-coroutines-core to v1.9.0 by @slack-oss-bot in #1020
- Update Docsite Dependencies (major) by @slack-oss-bot in #1021
- Update ksp to v2.0.21-1.0.25 by @slack-oss-bot in #1029
- Update dependency com.vanniktech.maven.publish to v0.30.0 by @slack-oss-bot in #1030
- Update kotlin monorepo to v2.0.21 by @slack-oss-bot in #1028
- Update renovatebot/github-action action to v40 by @slack-oss-bot in #1022
- Port CLI readme by @ZacSweers in #1031
- Update to Dokka 2 by @ZacSweers in #1016
- Add isLoading State to Chat by @kateliu20 in #1018
- Extract better-gradle-properties artifact by @ZacSweers in #1034
- Start organizing docs better for new foundry structure by @ZacSweers in #1035
- Update dependency com.android.tools.build:gradle to v8.8.0-alpha06 by @slack-oss-bot in #1033
- Update agp to v8.7.1 by @slack-oss-bot in #1032
- Update dependency org.jetbrains.compose to v1.7.0 by @slack-oss-bot in #1036
- Update slack.lint to v0.8.2 by @slack-oss-bot in #1037
- Extract
VersionNumber
to standalone artifact by @ZacSweers in #1039 - Update spotless to v7.0.0.BETA3 by @slack-oss-bot in #1040
- Update dependency com.android.tools.build:gradle to v8.8.0-alpha07 by @slack-oss-bot in #1043
- Update xmlutil to v0.90.2 by @slack-oss-bot in #1041
- Update dependency org.jetbrains.compose:compose-gradle-plugin to v1.7.0 by @slack-oss-bot in #1044
- Update dependency net.ltgt.gradle:gradle-errorprone-plugin to v4.1.0 by @slack-oss-bot in #1047
- Update dependency net.ltgt.gradle:gradle-nullaway-plugin to v2.1.0 by @slack-oss-bot in #1048
- Update dependencyAnalysisPlugin to v2.2.0 by @slack-oss-bot in #1046
- Rename SgpArtifact to FoundryArtifact by @ZacSweers in #1045
- Update jewel to v0.26.0 by @slack-oss-bot in #1050
- Update dependency com.slack.lint.compose:compose-lint-checks to v1.4.2 by @slack-oss-bot in #1051
- Update jewel to v0.26.1 by @slack-oss-bot in #1052
- Update ksp to v2.0.21-1.0.26 by @slack-oss-bot in #1053
- Fixing TextFieldState bug with new submodule of Project Gen by @kateliu20 in #1042
- Fix missing link color in WhatsNew panel by @linhpha in #1038
- Update dependency com.slack.circuit:circuit-foundation to v0.25.0 by @slack-oss-bot in #1055
- Support robolectric 4.14/SDK 35 by @ZacSweers in #1056
- Update spotless to v7.0.0.BETA4 by @slack-oss-bot in #1054
Full Changelog: 0.20.1...0.21.0
0.20.2
- Fix: Fall back to old property name for kotlin JVM args if the new one isn't found.
- Enhancement: Don't try to apply kotlin JVM args if there are none.
Full Changelog: 0.20.1...0.20.2
0.20.1
Don't use this release! We goofed on something.
Full Changelog: 0.20.0...0.20.1
0.20.0
Project Restructuring
We've restructured this project! Since its early days as a simple Gradle convention plugin it's expanded into IntelliJ plugins, CLIs, CI tooling, and more. To better capture this, we've renamed the project to Foundry, restructured its artifacts into a more cohesive setup, moved kotlin-cli-util into this repo, and will likely split out some more artifacts down the line.
Migration Guide
-
Any gradle properties prefixed with
slack.
orsgp.
have now moved tofoundry.
.slack.gradle.
prefix have also removed thegradle.
(i.e.slack.gradle.foo
would now befoundry.foo
).SlackProperties
has been renamed toFoundryProperties
.- Some properties have been further refined to be more specific.
- There is a helper script you can use to automatically rename all properties in
foundry-migration/
.- Download
mapping.txt
- Download
property_migration.sh
- Run
./property_migration.sh mapping.txt <path to target project>
.- Note this only covers
*.kts
and*.properties
files. This does not cover args passed via CLI or envs.
- Note this only covers
- Download
-
Package names have all aligned to
foundry.*
. In most cases it should be simple enough to replaceimport com.slack.*
withimport foundry.*
. -
Gradle coordinates group have moved to the
com.slack.foundry
group name.Old Artifact ID New Artifact ID sgp gradle-plugin sgp-agp-handler-api agp-handler-api sgp-common foundry-common sgp-tracing tracing skippy skippy -
The former
kotlin-cli-util
APIs have moved to thecom.slack.foundry:cli
artifact. -
Platform-specific plugins now live under the
platforms/
directory. -
All other tools now live under the
tools/
directory. -
Most top-level
Slack
-prefixed APIs are now prefixed withFoundry
. -
The primary gradle entry points are now
foundry {}
, but the previousslack {}
entry points are left with deprecationReplaceWith
options. -
Gradle plugin IDs have migrated to
com.slack.foundry.*
names.Old New com.slack.gradle.root
com.slack.foundry.root
com.slack.gradle.base
com.slack.foundry.base
com.slack.gradle.apk-versioning
com.slack.foundry.apk-versioning
-
Introduce new required
foundry.android.defaultNamespacePrefix
property for android projects. This is necessary for projects that don't define anandroid.namespace
explicitly.
Misc
- New: Make JDK configuration docs and error messages configurable via
FoundryProperties
. - Fix: Gracefully handle undefined kapt language versions when computing
progressive
. - Fix: Track deleted build files when computing parent projects in Skippy.
- Update Clikt to
5.0.1
. - Update oshi-core to
6.6.5
. - Build against DAGP 2.x.
- Build against gradle-error-prone
4.0.1
. - Build against gradle-nullaway
2.0.0
. - Build against Gradle versions plugin
0.51.0
. - Build against Develocity plugin
3.18.1
.
What's Changed
- Mass rename + restructure to foundry by @ZacSweers in #985
- Clean up aliases by @ZacSweers in #988
- Update plugin pluginUploader to v1.3.5 by @slack-oss-bot in #987
- Update dependency com.gradle:develocity-gradle-plugin to v3.18.1 by @slack-oss-bot in #989
- Update dependency com.jraska.module.graph.assertion:plugin to v2.7.1 by @slack-oss-bot in #990
- Update dependency com.github.oshi:oshi-core to v6.6.5 by @slack-oss-bot in #993
- Update dependency net.ltgt.gradle:gradle-errorprone-plugin to v3.1.0 by @slack-oss-bot in #991
- Update dependency net.ltgt.gradle:gradle-nullaway-plugin to v1.6.0 by @slack-oss-bot in #992
- Update dependency org.gradle:test-retry-gradle-plugin to v1.6.0 by @slack-oss-bot in #994
- Update plugin buildConfig to v5.5.0 by @slack-oss-bot in #996
- Upgrade to Jewel 0.25.0 by @kateliu20 in #997
- Update plugin com.gradle.develocity to v3.18.1 by @slack-oss-bot in #1000
- Update dependency org.jetbrains.compose to v1.7.0-rc01 by @slack-oss-bot in #999
- Port over kotlin-cli-util to :tools:cli by @ZacSweers in #998
- Update intellij.platform to v2.1.0 by @slack-oss-bot in #995
- UI Changes with Text Area (Shift + Enter, Starting and Continuing Conversation) by @kateliu20 in #1001
- Misc foundry renames and documentation updates by @ZacSweers in #1005
- Update agp to v8.7.0 by @slack-oss-bot in #1002
- Update dependency com.slack.lint.compose:compose-lint-checks to v1.4.1 by @slack-oss-bot in #1007
- Update dependency com.android.tools.build:gradle to v8.8.0-alpha05 by @slack-oss-bot in #1009
- Update slack.lint to v0.8.1 by @slack-oss-bot in #1008
- Update dependency com.github.ajalt.clikt:clikt to v5.0.1 by @slack-oss-bot in #1013
- Update versionsPlugin to v0.51.0 by @slack-oss-bot in #1010
- Update dependency net.ltgt.gradle:gradle-errorprone-plugin to v4 by @slack-oss-bot in #1011
- Update dependency net.ltgt.gradle:gradle-nullaway-plugin to v2 by @slack-oss-bot in #1012
- Update dependencyAnalysisPlugin to v2 (major) by @slack-oss-bot in #939
- Rename more properties by @ZacSweers in #1014
- Provide default for kapt language version by @ZacSweers in #1015
- Supporting K2 with Skate + update to IJ 2024.2.1 by @kateliu20 in #1006
- Track deleted build files when computing parent projects in Skippy by @ZacSweers in #1017
- Disable AI Chat Window for New Skate Release by @kateliu20 in #1023
- Add Skate release notes by @linhpha in #1024
- Small project gen updates by @ZacSweers in #1025
- Source blockmapFile from generator task by @ZacSweers in #1026
Full Changelog: 0.19.6...0.20.0
0.19.6
- Intro
SoftRefLRUPolicyMSPerMB
+ReservedCodeCacheSize
jvm args to bootstrap - Update kotlin-cli-util to
3.0.1
. - Update to Guava
33.3.1-jre
. - Build against Gradle
8.10.2
.
What's Changed
- Update dependency com.google.guava:guava to v33.3.1-jre by @slack-oss-bot in #978
- Update dependency gradle to v8.10.2 by @slack-oss-bot in #979
- Update dependency com.slack.cli:kotlin-cli-util to v3.0.1 by @slack-oss-bot in #980
- Intro SoftRefLRUPolicyMSPerMB + ReservedCodeCacheSize args by @ZacSweers in #983
Full Changelog: 0.19.5...0.19.6