diff --git a/.github/workflows/build.yml b/.github/workflows/build.yml index 6c4f9fa..ba7132a 100644 --- a/.github/workflows/build.yml +++ b/.github/workflows/build.yml @@ -26,46 +26,33 @@ concurrency: jobs: - # Prepare environment and build the plugin + # Prepare the environment and build the plugin build: name: Build runs-on: ubuntu-latest - outputs: - version: ${{ steps.properties.outputs.version }} - changelog: ${{ steps.properties.outputs.changelog }} - pluginVerifierHomeDir: ${{ steps.properties.outputs.pluginVerifierHomeDir }} steps: + # Free GitHub Actions Environment Disk Space + - name: Maximize Build Space + uses: jlumbroso/free-disk-space@v1.3.1 + with: + tool-cache: false + large-packages: false + # Check out the current repository - name: Fetch Sources - uses: actions/checkout@v4 + uses: actions/checkout@v5 - # Set up Java environment for the next steps + # Set up the Java environment for the next steps - name: Setup Java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: zulu java-version: 21 # Setup Gradle - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - # Set environment variables - - name: Export Properties - id: properties - shell: bash - run: | - PROPERTIES="$(./gradlew properties --console=plain -q)" - VERSION="$(echo "$PROPERTIES" | grep "^version:" | cut -f2- -d ' ')" - CHANGELOG="$(./gradlew getChangelog --unreleased --no-header --console=plain -q)" - - echo "version=$VERSION" >> $GITHUB_OUTPUT - echo "pluginVerifierHomeDir=~/.pluginVerifier" >> $GITHUB_OUTPUT - - echo "changelog<> $GITHUB_OUTPUT - echo "$CHANGELOG" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT + uses: gradle/actions/setup-gradle@v5 # Build plugin - name: Build plugin @@ -82,9 +69,9 @@ jobs: echo "filename=${FILENAME:0:-4}" >> $GITHUB_OUTPUT - # Store already-built plugin as an artifact for downloading + # Store an already-built plugin as an artifact for downloading - name: Upload artifact - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: ${{ steps.artifact.outputs.filename }} path: ./build/distributions/content/*/* @@ -96,20 +83,29 @@ jobs: runs-on: ubuntu-latest steps: + # Free GitHub Actions Environment Disk Space + - name: Maximize Build Space + uses: jlumbroso/free-disk-space@v1.3.1 + with: + tool-cache: false + large-packages: false + # Check out the current repository - name: Fetch Sources - uses: actions/checkout@v4 + uses: actions/checkout@v5 - # Set up Java environment for the next steps + # Set up the Java environment for the next steps - name: Setup Java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: zulu java-version: 21 # Setup Gradle - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 + uses: gradle/actions/setup-gradle@v5 + with: + cache-read-only: true # Run tests - name: Run Tests @@ -118,7 +114,7 @@ jobs: # Collect Tests Result of failed tests - name: Collect Tests Result if: ${{ failure() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: tests-result path: ${{ github.workspace }}/build/reports/tests @@ -128,8 +124,9 @@ jobs: uses: codecov/codecov-action@v5 with: files: ${{ github.workspace }}/build/reports/kover/report.xml + token: ${{ secrets.CODECOV_TOKEN }} - # Run Qodana inspections and provide report + # Run Qodana inspections and provide a report inspectCode: name: Inspect code needs: [ build ] @@ -142,28 +139,28 @@ jobs: # Free GitHub Actions Environment Disk Space - name: Maximize Build Space - uses: jlumbroso/free-disk-space@main + uses: jlumbroso/free-disk-space@v1.3.1 with: tool-cache: false large-packages: false # Check out the current repository - name: Fetch Sources - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: - ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit - fetch-depth: 0 # a full history is required for pull request analysis + ref: ${{ github.event.pull_request.head.sha }} # to check out the actual pull request commit, not the merge commit + fetch-depth: 0 # a full history is required for pull request analysis - # Set up Java environment for the next steps + # Set up the Java environment for the next steps - name: Setup Java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: zulu java-version: 21 # Run Qodana inspections - name: Qodana - Code Inspection - uses: JetBrains/qodana-action@v2024.2 + uses: JetBrains/qodana-action@v2025.1.1 with: cache-default-branch-only: true @@ -176,47 +173,42 @@ jobs: # Free GitHub Actions Environment Disk Space - name: Maximize Build Space - uses: jlumbroso/free-disk-space@main + uses: jlumbroso/free-disk-space@v1.3.1 with: tool-cache: false large-packages: false # Check out the current repository - name: Fetch Sources - uses: actions/checkout@v4 + uses: actions/checkout@v5 - # Set up Java environment for the next steps + # Set up the Java environment for the next steps - name: Setup Java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: zulu java-version: 21 # Setup Gradle - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - # Cache Plugin Verifier IDEs - - name: Setup Plugin Verifier IDEs Cache - uses: actions/cache@v4 + uses: gradle/actions/setup-gradle@v5 with: - path: ${{ needs.build.outputs.pluginVerifierHomeDir }}/ides - key: plugin-verifier-${{ hashFiles('build/listProductsReleases.txt') }} + cache-read-only: true # Run Verify Plugin task and IntelliJ Plugin Verifier tool - name: Run Plugin Verification tasks - run: ./gradlew verifyPlugin -Dplugin.verifier.home.dir=${{ needs.build.outputs.pluginVerifierHomeDir }} + run: ./gradlew verifyPlugin # Collect Plugin Verifier Result - name: Collect Plugin Verifier Result if: ${{ always() }} - uses: actions/upload-artifact@v4 + uses: actions/upload-artifact@v5 with: name: pluginVerifier-result path: ${{ github.workspace }}/build/reports/pluginVerifier # Prepare a draft release for GitHub Releases page for the manual verification - # If accepted and published, release workflow would be triggered + # If accepted and published, the release workflow would be triggered releaseDraft: name: Release draft if: github.event_name != 'pull_request' @@ -228,7 +220,7 @@ jobs: # Check out the current repository - name: Fetch Sources - uses: actions/checkout@v4 + uses: actions/checkout@v5 # Remove old release drafts by using the curl request for the available releases with a draft flag - name: Remove Old Release Drafts @@ -244,10 +236,11 @@ jobs: env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | - gh release create "v${{ needs.build.outputs.version }}" \ + VERSION=$(./gradlew properties --property version --quiet --console=plain | tail -n 1 | cut -f2- -d ' ') + RELEASE_NOTE="./build/tmp/release_note.txt" + ./gradlew getChangelog --unreleased --no-header --quiet --console=plain --output-file=$RELEASE_NOTE + + gh release create $VERSION \ --draft \ - --title "v${{ needs.build.outputs.version }}" \ - --notes "$(cat << 'EOM' - ${{ needs.build.outputs.changelog }} - EOM - )" + --title $VERSION \ + --notes-file $RELEASE_NOTE diff --git a/.github/workflows/release.yml b/.github/workflows/release.yml index f1a512c..49fb01c 100644 --- a/.github/workflows/release.yml +++ b/.github/workflows/release.yml @@ -1,5 +1,5 @@ # GitHub Actions Workflow created for handling the release process based on the draft release prepared with the Build workflow. -# Running the publishPlugin task requires all following secrets to be provided: PUBLISH_TOKEN, PRIVATE_KEY, PRIVATE_KEY_PASSWORD, CERTIFICATE_CHAIN. +# Running the publishPlugin task requires all the following secrets to be provided: PUBLISH_TOKEN, PRIVATE_KEY, PRIVATE_KEY_PASSWORD, CERTIFICATE_CHAIN. # See https://plugins.jetbrains.com/docs/intellij/plugin-signing.html for more information. name: Release @@ -18,44 +18,43 @@ jobs: pull-requests: write steps: + # Free GitHub Actions Environment Disk Space + - name: Maximize Build Space + uses: jlumbroso/free-disk-space@v1.3.1 + with: + tool-cache: false + large-packages: false + # Check out the current repository - name: Fetch Sources - uses: actions/checkout@v4 + uses: actions/checkout@v5 with: ref: ${{ github.event.release.tag_name }} - # Set up Java environment for the next steps + # Set up the Java environment for the next steps - name: Setup Java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: zulu java-version: 21 # Setup Gradle - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 - - # Set environment variables - - name: Export Properties - id: properties - shell: bash - run: | - CHANGELOG="$(cat << 'EOM' | sed -e 's/^[[:space:]]*$//g' -e '/./,$!d' - ${{ github.event.release.body }} - EOM - )" - - echo "changelog<> $GITHUB_OUTPUT - echo "$CHANGELOG" >> $GITHUB_OUTPUT - echo "EOF" >> $GITHUB_OUTPUT + uses: gradle/actions/setup-gradle@v5 + with: + cache-read-only: true # Update the Unreleased section with the current release note - name: Patch Changelog - if: ${{ steps.properties.outputs.changelog != '' }} + if: ${{ github.event.release.body != '' }} env: - CHANGELOG: ${{ steps.properties.outputs.changelog }} + CHANGELOG: ${{ github.event.release.body }} run: | - ./gradlew patchChangelog --release-note="$CHANGELOG" + RELEASE_NOTE="./build/tmp/release_note.txt" + mkdir -p "$(dirname "$RELEASE_NOTE")" + echo "$CHANGELOG" > $RELEASE_NOTE + + ./gradlew patchChangelog --release-note-file=$RELEASE_NOTE # Publish the plugin to JetBrains Marketplace - name: Publish Plugin @@ -66,7 +65,7 @@ jobs: PRIVATE_KEY_PASSWORD: ${{ secrets.PRIVATE_KEY_PASSWORD }} run: ./gradlew publishPlugin - # Upload artifact as a release asset + # Upload an artifact as a release asset - name: Upload Release Asset env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} @@ -74,7 +73,7 @@ jobs: # Create a pull request - name: Create Pull Request - if: ${{ steps.properties.outputs.changelog != '' }} + if: ${{ github.event.release.body != '' }} env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} run: | @@ -88,7 +87,7 @@ jobs: git checkout -b $BRANCH git commit -am "Changelog update - $VERSION" git push --set-upstream origin $BRANCH - + gh label create "$LABEL" \ --description "Pull requests with release changelog update" \ --force \ diff --git a/.github/workflows/run-ui-tests.yml b/.github/workflows/run-ui-tests.yml index 230d6c5..dca12a7 100644 --- a/.github/workflows/run-ui-tests.yml +++ b/.github/workflows/run-ui-tests.yml @@ -33,18 +33,20 @@ jobs: # Check out the current repository - name: Fetch Sources - uses: actions/checkout@v4 + uses: actions/checkout@v5 - # Set up Java environment for the next steps + # Set up the Java environment for the next steps - name: Setup Java - uses: actions/setup-java@v4 + uses: actions/setup-java@v5 with: distribution: zulu java-version: 21 # Setup Gradle - name: Setup Gradle - uses: gradle/actions/setup-gradle@v4 + uses: gradle/actions/setup-gradle@v5 + with: + cache-read-only: true # Run IDEA prepared for UI testing - name: Run IDE diff --git a/.gitignore b/.gitignore index aa4b86f..df108a4 100644 --- a/.gitignore +++ b/.gitignore @@ -1,6 +1,8 @@ +.DS_Store .gradle .idea .intellijPlatform +.kotlin .qodana build .envrc diff --git a/.java-version b/.java-version index b5045cc..25e6ec2 100644 --- a/.java-version +++ b/.java-version @@ -1 +1 @@ -21 \ No newline at end of file +21.0.7 diff --git a/.run/Run IDE for UI Tests.run.xml b/.run/Run IDE for UI Tests.run.xml deleted file mode 100644 index 9b028c3..0000000 --- a/.run/Run IDE for UI Tests.run.xml +++ /dev/null @@ -1,22 +0,0 @@ - - - - - - - - true - true - false - - - \ No newline at end of file diff --git a/.run/Run Plugin Verification.run.xml b/.run/Run Plugin Verification.run.xml deleted file mode 100644 index 3a8d688..0000000 --- a/.run/Run Plugin Verification.run.xml +++ /dev/null @@ -1,26 +0,0 @@ - - - - - - - - true - true - false - - - - \ No newline at end of file diff --git a/.run/Run Qodana.run.xml b/.run/Run Plugin.run.xml similarity index 58% rename from .run/Run Qodana.run.xml rename to .run/Run Plugin.run.xml index 9603583..9db62fb 100644 --- a/.run/Run Qodana.run.xml +++ b/.run/Run Plugin.run.xml @@ -1,26 +1,25 @@ - + + - - - true + false true false + false \ No newline at end of file diff --git a/.run/Run Plugin Tests.run.xml b/.run/Run Tests.run.xml similarity index 96% rename from .run/Run Plugin Tests.run.xml rename to .run/Run Tests.run.xml index 132d9ad..f281bdc 100644 --- a/.run/Run Plugin Tests.run.xml +++ b/.run/Run Tests.run.xml @@ -19,6 +19,7 @@ true true false + true diff --git a/.run/Run IDE with Plugin.run.xml b/.run/Run Verifications.run.xml similarity index 82% rename from .run/Run IDE with Plugin.run.xml rename to .run/Run Verifications.run.xml index d15ff68..32783f5 100644 --- a/.run/Run IDE with Plugin.run.xml +++ b/.run/Run Verifications.run.xml @@ -1,5 +1,5 @@ - + \ No newline at end of file diff --git a/CHANGELOG.md b/CHANGELOG.md index 323079a..8261194 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -4,6 +4,10 @@ ## [Unreleased] +### Added + +- Compatibility with IntelliJ 2025.3 + ## [0.0.14] - 2025-05-04 ### Added diff --git a/build.gradle.kts b/build.gradle.kts index 69ca8f4..9c026e0 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -29,14 +29,14 @@ repositories { } } -// Dependencies are managed with Gradle version catalog - read more: https://docs.gradle.org/current/userguide/platforms.html#sub:version-catalog +// Dependencies are managed with Gradle version catalog - read more: https://docs.gradle.org/current/userguide/version_catalogs.html dependencies { testImplementation(libs.junit) testImplementation(libs.opentest4j) // IntelliJ Platform Gradle Plugin Dependencies Extension - read more: https://plugins.jetbrains.com/docs/intellij/tools-intellij-platform-gradle-plugin-dependencies-extension.html intellijPlatform { - create(providers.gradleProperty("platformType"), providers.gradleProperty("platformVersion")) + intellijIdea(providers.gradleProperty("platformVersion")) // Plugin Dependencies. Uses `platformBundledPlugins` property from the gradle.properties file for bundled IntelliJ Platform plugins. bundledPlugins(providers.gradleProperty("platformBundledPlugins").map { it.split(',') }) @@ -44,6 +44,9 @@ dependencies { // Plugin Dependencies. Uses `platformPlugins` property from the gradle.properties file for plugin from JetBrains Marketplace. plugins(providers.gradleProperty("platformPlugins").map { it.split(',') }) + // Module Dependencies. Uses `platformBundledModules` property from the gradle.properties file for bundled IntelliJ Platform modules. + bundledModules(providers.gradleProperty("platformBundledModules").map { it.split(',') }) + testFramework(TestFrameworkType.Platform) } } @@ -82,7 +85,6 @@ intellijPlatform { ideaVersion { sinceBuild = providers.gradleProperty("pluginSinceBuild") - untilBuild = providers.gradleProperty("pluginUntilBuild") } } @@ -96,7 +98,7 @@ intellijPlatform { token = providers.environmentVariable("PUBLISH_TOKEN") // The pluginVersion is based on the SemVer (https://semver.org) and supports pre-release labels, like 2.1.7-alpha.3 // Specify pre-release label to publish the plugin in a custom Release Channel automatically. Read more: - // https://plugins.jetbrains.com/docs/intellij/deployment.html#specifying-a-release-channel + // https://plugins.jetbrains.com/docs/intellij/publishing-plugin.html#specifying-a-release-channel channels = providers.gradleProperty("pluginVersion").map { listOf(it.substringAfter('-', "").substringBefore('.').ifEmpty { "default" }) } } @@ -113,7 +115,7 @@ changelog { repositoryUrl = providers.gradleProperty("pluginRepositoryUrl") } -// Configure Gradle Kover Plugin - read more: https://github.com/Kotlin/kotlinx-kover#configuration +// Configure Gradle Kover Plugin - read more: https://kotlin.github.io/kotlinx-kover/gradle-plugin/#configuration-details kover { reports { total { diff --git a/codecov.yml b/codecov.yml new file mode 100644 index 0000000..f6e0f07 --- /dev/null +++ b/codecov.yml @@ -0,0 +1,10 @@ +coverage: + status: + project: + default: + informational: true + threshold: 0% + base: auto + patch: + default: + informational: true diff --git a/gradle.properties b/gradle.properties index 9b0419b..2cce6eb 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,26 +4,25 @@ pluginGroup = io.github.srizzo pluginName = rspector pluginRepositoryUrl = https://github.com/srizzo/rspector-rubymine-plugin # SemVer format -> https://semver.org -pluginVersion = 0.0.14 +pluginVersion = 0.0.15 # Supported build number ranges and IntelliJ Platform versions -> https://plugins.jetbrains.com/docs/intellij/build-number-ranges.html -pluginSinceBuild = 251 -pluginUntilBuild = 252.* +pluginSinceBuild = 252 -# IntelliJ Platform Properties -> https://github.com/JetBrains/gradle-intellij-plugin#intellij-platform-properties -platformType = IU -platformVersion = 2025.1 +# IntelliJ Platform Properties -> https://plugins.jetbrains.com/docs/intellij/tools-gradle-intellij-plugin.html#configuration-intellij-extension +platformVersion = 2025.3 # Plugin Dependencies -> https://plugins.jetbrains.com/docs/intellij/plugin-dependencies.html # Example: platformPlugins = com.jetbrains.php:203.4449.22, org.intellij.scala:2023.3.27@EAP -#platformPlugins = +# Check latest Ruby versions: https://plugins.jetbrains.com/plugin/1293-ruby/versions +platformPlugins = org.jetbrains.plugins.ruby:253.29346.138 # Example: platformBundledPlugins = com.intellij.java platformBundledPlugins = -# Check latest Ruby versions: https://plugins.jetbrains.com/plugin/1293-ruby/versions -platformPlugins = org.jetbrains.plugins.ruby:251.25410.59 +# Example: platformBundledModules = intellij.spellchecker +platformBundledModules = # Gradle Releases -> https://github.com/gradle/gradle/releases -gradleVersion = 8.13 +gradleVersion = 9.2.1 # Opt-out flag for bundling Kotlin standard library -> https://jb.gg/intellij-platform-kotlin-stdlib kotlin.stdlib.default.dependency = false diff --git a/gradle/libs.versions.toml b/gradle/libs.versions.toml index 538e8c1..3fd64a1 100644 --- a/gradle/libs.versions.toml +++ b/gradle/libs.versions.toml @@ -4,11 +4,11 @@ junit = "4.13.2" opentest4j = "1.3.0" # plugins -changelog = "2.2.1" -intelliJPlatform = "2.5.0" -kotlin = "2.1.20" -kover = "0.9.1" -qodana = "2025.1.0" +changelog = "2.5.0" +intelliJPlatform = "2.10.5" +kotlin = "2.2.21" +kover = "0.9.3" +qodana = "2025.2.2" [libraries] junit = { group = "junit", name = "junit", version.ref = "junit" } diff --git a/gradle/wrapper/gradle-wrapper.jar b/gradle/wrapper/gradle-wrapper.jar index 9bbc975..f8e1ee3 100644 Binary files a/gradle/wrapper/gradle-wrapper.jar and b/gradle/wrapper/gradle-wrapper.jar differ diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 37f853b..23449a2 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,6 +1,6 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-8.13-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-9.2.1-bin.zip networkTimeout=10000 validateDistributionUrl=true zipStoreBase=GRADLE_USER_HOME diff --git a/gradlew b/gradlew index faf9300..adff685 100755 --- a/gradlew +++ b/gradlew @@ -1,7 +1,7 @@ #!/bin/sh # -# Copyright © 2015-2021 the original authors. +# Copyright © 2015 the original authors. # # Licensed under the Apache License, Version 2.0 (the "License"); # you may not use this file except in compliance with the License. @@ -114,7 +114,6 @@ case "$( uname )" in #( NONSTOP* ) nonstop=true ;; esac -CLASSPATH=$APP_HOME/gradle/wrapper/gradle-wrapper.jar # Determine the Java command to use to start the JVM. @@ -172,7 +171,6 @@ fi # For Cygwin or MSYS, switch paths to Windows format before running java if "$cygwin" || "$msys" ; then APP_HOME=$( cygpath --path --mixed "$APP_HOME" ) - CLASSPATH=$( cygpath --path --mixed "$CLASSPATH" ) JAVACMD=$( cygpath --unix "$JAVACMD" ) @@ -212,8 +210,7 @@ DEFAULT_JVM_OPTS='"-Xmx64m" "-Xms64m"' set -- \ "-Dorg.gradle.appname=$APP_BASE_NAME" \ - -classpath "$CLASSPATH" \ - org.gradle.wrapper.GradleWrapperMain \ + -jar "$APP_HOME/gradle/wrapper/gradle-wrapper.jar" \ "$@" # Stop when "xargs" is not available. diff --git a/gradlew.bat b/gradlew.bat index 9d21a21..c4bdd3a 100644 --- a/gradlew.bat +++ b/gradlew.bat @@ -70,11 +70,10 @@ goto fail :execute @rem Setup the command line -set CLASSPATH=%APP_HOME%\gradle\wrapper\gradle-wrapper.jar @rem Execute Gradle -"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -classpath "%CLASSPATH%" org.gradle.wrapper.GradleWrapperMain %* +"%JAVA_EXE%" %DEFAULT_JVM_OPTS% %JAVA_OPTS% %GRADLE_OPTS% "-Dorg.gradle.appname=%APP_BASE_NAME%" -jar "%APP_HOME%\gradle\wrapper\gradle-wrapper.jar" %* :end @rem End local scope for the variables with windows NT shell diff --git a/qodana.yml b/qodana.yml index 54b11bc..81f13b9 100644 --- a/qodana.yml +++ b/qodana.yml @@ -2,7 +2,7 @@ # https://www.jetbrains.com/help/qodana/qodana-yaml.html version: "1.0" -linter: jetbrains/qodana-jvm-community:latest +linter: jetbrains/qodana-jvm-community:2024.3 projectJDK: "21" profile: name: qodana.recommended diff --git a/settings.gradle.kts b/settings.gradle.kts index bdc667f..f8ec235 100644 --- a/settings.gradle.kts +++ b/settings.gradle.kts @@ -1,5 +1,5 @@ plugins { - id("org.gradle.toolchains.foojay-resolver-convention") version "0.10.0" + id("org.gradle.toolchains.foojay-resolver-convention") version "1.0.0" } rootProject.name = "rspector"