Code Monkey home page Code Monkey logo

gradle-curseforge-publish's Introduction

Hello there! ๐Ÿ‘‹

About Me

  • ๐Ÿง‘ My name is Leon Linhart.
  • ๐Ÿ‡ฉ๐Ÿ‡ช I'm from Aachen, Germany.
  • ๐Ÿญ I currently work at Yukawa Exponential GmbH as backend software engineer.
  • ๐Ÿซ I've earned a bachelor's degree in computer science at RWTH Aachen University.
  • ๐Ÿ› ๏ธ I feel most comfortable on the JVM and have years of Java and Kotlin experience.
  • ๐Ÿถ Dogs > Cats (but both is fine).

Notable Projects

There is nothing here yet? Maybe I should finish and release a project I consider notable... or this section. Until then, you'll find a selection of projects I work/ed on below.

GitHub Actions

Languages: Typescript, JavaScript
Key Techs: Node.js, Yarn, Jest

  • nexus-actions โ€” A set of GitHub Actions to automate publishing to Maven Central (and other Nexus instances).
  • setup-msvc-dev โ€” A GitHub Action to set up a Developer Command Prompt for Microsoft Visual C++

Gradle Plugins

I develop and maintain several plugins for the build automation tool Gradle to automate various development tasks and simplify configuration while seamlessly integrating with Gradle.

Languages: Kotlin, Java, Groovy
Key Techs: Gradle, Gradle TestKit, JUnit 5

Socials

LinkedInย  ย  ย  Mastodonย  ย  ย  StackOverflowย  ย  ย  Twitchย  ย  ย  YouTube

gradle-curseforge-publish's People

Contributors

dependabot[bot] avatar renovate[bot] avatar themrmilchmann avatar

Stargazers

 avatar  avatar  avatar

Watchers

 avatar  avatar  avatar

gradle-curseforge-publish's Issues

Gradle Configuration Cache support

I'll have to do some refactoring but this should hopefully be possible with recent Loom and ForgeGradle updates. At least, I should be able to stop this plugin from preventing configuration cache usage if that remains blocked by Loom or ForgeGradle.

Action Required: Fix Renovate Configuration

There is an error with this repository's Renovate configuration that needs to be fixed. As a precaution, Renovate will stop PRs until it is resolved.

Location: .github/renovate.json
Error type: The renovate configuration file contains some invalid settings
Message: Invalid regExp for packageRules[0].matchPackagePatterns: '^org.jetbrains.kotlin(?!x)'

Unable to specify jar location or execute gradle task publish

Gradle sync is success but not able to publish.

build.gradle.kts

val curseForgeKey: String by project
val curseForgeId: String by project

publishing {
    repositories.curseForge {
        apiKey.set(curseForgeKey)
    }
    publications.create<CurseForgePublication1>("curseForge") {
        projectID.set(curseForgeId.toInt()) // The CurseForge project ID (required)
        // Specify which game and version the mod/plugin targets (required)
        includeGameVersions { type, version -> type == "minecraft-1-19" && version == "minecraft-1-19-1" }
        artifact {
            changelog = Changelog("Changelog...", ChangelogType.TEXT) // The changelog (required)
            releaseType = ReleaseType.RELEASE // The release type (required)
            displayName = "Effortless Fabric" // A user-friendly name for the project (optional)
        }
    }
}

Stacktrace

In plugin 'io.github.themrmilchmann.curseforge-publish' type 'io.github.themrmilchmann.gradle.publish.curseforge.tasks.PublishToCurseForgeRepository' property 'publication.publishableFiles' cannot be resolved:  Cannot convert the provided notation to a File or URI: io.github.themrmilchmann.gradle.publish.curseforge.internal.artifacts.PublishArtifactBasedCurseForgeArtifact@593b9989. The following types/formats are supported:  - A String or CharSequence path, for example 'src/main/java' or '/usr/include'. - A String or CharSequence URI, for example 'file:/usr/include'. - A File instance. - A Path instance. - A Directory instance. - A RegularFile instance. - A URI or URL instance. - A TextResource instance. Reason: An input file collection couldn't be resolved, making it impossible to determine task inputs. Please refer to https://docs.gradle.org/7.4.2/userguide/validation_problems.html#unresolvable_input for more details about this problem. This behaviour has been deprecated and is scheduled to be removed in Gradle 8.0. Execution optimizations are disabled to ensure correctness. See https://docs.gradle.org/7.4.2/userguide/more_about_tasks.html#sec:up_to_date_checks for more details.

Is there any way to specify jar location or handle this error? This project can be found here.

Notice: curseForgeKey and curseForgeId are in gradle.properties.kts. If you need them please let me know.

Thanks a lot.

Ignore unknown keys in JSON

The JSON response from CurseForge seems to have changed.

* What went wrong:
Execution failed for task ':publishCurseForgePublicationToCurseForgeRepository'.
> Unexpected JSON token at offset 75: Encountered an unknown key 'apiVersion'.
  Use 'ignoreUnknownKeys = true' in 'Json {}' builder to ignore unknown keys.
  JSON input: .....a 1.7.3","slug":"beta-1-7-3","apiVersion":null},{"id":157,"g.....

Add flags to disable mod toolchain integrations

I believe there is no need to detect the specific mod gradle plugin, whether it's forge, fabric, or any other used in the project and read the minecraft version from them.

In my opinion, this plugin should only focus on publishing JARs to curseforge. The minecraft version should be set through a gameVersion property only.

Enable execution optimizations

Execution optimizations are currently disabled because publication.publishableFiles cannot be resolved. This should be fixed.

> Task :publishCurseForgePublicationToCurseForgeRepository
Execution optimizations have been disabled for task ':publishCurseForgePublicationToCurseForgeRepository' to ensure correctness due to the following reasons:
  - In plugin 'io.github.themrmilchmann.curseforge-publish' type 'io.github.themrmilchmann.gradle.publish.curseforge.tasks.PublishToCurseForgeRepository' property 'publication.publishableFiles' cannot be resolved:  Cannot convert the provided notation to a File or URI: io.github.themrmilchmann.gradle.publish.curseforge.internal.artifacts.PublishArtifactBasedCurseForgeArtifact@7c785ad0. The following types/formats are supported:  - A String or CharSequence path, for example 'src/main/java' or '/usr/include'. - A String or CharSequence URI, for example 'file:/usr/include'. - A File instance. - A Path instance. - A Directory instance. - A RegularFile instance. - A URI or URL instance. - A TextResource instance. Reason: An input file collection couldn't be resolved, making it impossible to determine task inputs. Please refer to https://docs.gradle.org/7.5.1/userguide/validation_problems.html#unresolvable_input for more details about this problem.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.