Skip to content

Instantly share code, notes, and snippets.

< org/gradle/api/artifacts/verification/DependencyVerificationMode.class
< org/gradle/api/Describable.class
16,17d13
< org/gradle/api/internal/DocumentationRegistry.class
< org/gradle/api/internal/file/BasicFileResolver.class
19,20d14
< org/gradle/api/internal/StartParameterInternal.class
< org/gradle/api/InvalidUserDataException.class
22,27d15
@alllex
alllex / cmd_caps_to_ctrl_tab.json
Created May 5, 2025 16:48
Karabiner: Remap Cmd + Caps Lock to Ctrl + Tab for more ergonomic tag switching (`~/.config/karabiner/assets/complex_modifications/cmd_caps_to_ctrl_tab.json`)
{
"title": "Cmd + Caps Lock to Ctrl + Tab",
"rules": [
{
"description": "Remap Cmd + Caps Lock to Ctrl + Tab",
"manipulators": [
{
"type": "basic",
"from": {
"key_code": "caps_lock",
@alllex
alllex / settings.gradle.kts
Created December 23, 2024 10:58
Quick Develocity Gradle Plugin config
plugins {
id("com.gradle.develocity") version "3.19"
}
develocity {
buildScan {
termsOfUseUrl = "https://gradle.com/terms-of-service"
termsOfUseAgree = "yes"
val ci = providers.environmentVariable("CI").orNull != null
publishing { onlyIf { ci } }
@alllex
alllex / bskypost.sh
Created December 21, 2024 13:19
Post to Bluesky from Bash
#!/bin/bash -e
set -e
# Script to post to Bluesky
# See: https://docs.bsky.app/blog/create-post
if [ $# -ne 1 ]; then
echo "Usage: ./bskypost.sh '<content>'"
exit 1
fi
@alllex
alllex / cheapci.sh
Created December 21, 2024 12:55
Cheap ci as a bash script
#!/bin/bash
set -e
function echorun {
CMD=$@
echo "> $CMD"
eval "$CMD"
}
@alllex
alllex / buildScan.init.gradle
Last active June 11, 2024 12:59
Validate whether build scan is going to be published to an expected Develocity server
def BUILD_SCAN_SERVER_LIST = ["your servers"]
gradle.settingsEvaluated { settings ->
def geExtension = settings.extensions.findByName("gradleEnterprise")
if (geExtension && geExtension.server) {
if (geExtension.server !in BUILD_SCAN_SERVER_LIST) {
throw new GradleException('Illegal build scan server!')
}
}
}
@alllex
alllex / aggregate-report.md
Created March 5, 2024 05:53
Usages of before/afterResolve by Gradle Plugins

Plugin validation report

Produced at 2024-03-05 13:49:38

Calls any of beforeResolve, afterResolve on Lorg/gradle/api/artifacts/ResolvableDependencies; (5)

  • 💬 method com.android.build.gradle.internal.DependencyConfigurator$configureDependencyChecks$1.execute(Configuration) calls afterResolve on org.gradle.api.artifacts.ResolvableDependencies
  • 💬 method com.android.build.gradle.internal.DependencyResolutionChecks$registerDependencyCheck$4.execute(Configuration) calls beforeResolve on org.gradle.api.artifacts.ResolvableDependencies
@alllex
alllex / notes.md
Last active January 23, 2024 03:53
Gradle service graph visualization

Gradle service graph visualization

Branch: https://github.com/gradle/gradle/compare/alllex/service-registry-graph-tracing

On the branch, run any test, grep the test output for lines starting with YYY:. This provides a Mermaid diagram sources.

Caution

The graph is not correct, because it conflates nodes from different classloaders and processes

@alllex
alllex / MyWrapperIntegrationTest.java
Created December 9, 2023 22:45
Test that allows extending a built-in Wrapper task by a non abstract user-defined class
class TmpIntegrationTest extends AbstractIntegrationSpec {
def "tmp test"() {
settingsFile << """
rootProject.name = "root"
"""
buildFile << """
class MyWrapper extends Wrapper {
// Just to make MyWrapper compile
@alllex
alllex / idea-sync-models-simple-java.csv
Created November 22, 2023 18:28
Idea sync models for a simple Java project
'org.gradle.tooling.model.gradle.GradleBuild' build ':'
'org.gradle.tooling.model.build.BuildEnvironment' root project 'my-project'
'org.jetbrains.plugins.gradle.model.internal.DummyModel' root project 'my-project'
'org.gradle.tooling.model.build.BuildEnvironment' root project 'my-project'
'org.jetbrains.kotlin.idea.gradleTooling.PrepareKotlinIdeImportTaskModel' root project 'my-project'
'org.jetbrains.kotlin.idea.gradleTooling.PrepareKotlinIdeImportTaskModel' project ':app'
'org.jetbrains.kotlin.idea.gradleTooling.PrepareKotlinIdeImportTaskModel' project ':lib'
'org.jetbrains.kotlin.idea.gradleTooling.KotlinDslScriptAdditionalTask' root project 'my-project'
'org.jetbrains.plugins.gradle.model.internal.TurnOffDefaultTasks' root project 'my-project'
'org.gradle.tooling.model.build.BuildEnvironment' root project 'my-project'