Giter Site home page Giter Site logo

jxbrowser-gradle-plugin's People

Contributors

artem-trofimov avatar danil-didkovskiy avatar renovate[bot] avatar vlad-lubenskyi avatar vladimir-ikryanov avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

jxbrowser-gradle-plugin's Issues

Make plugin DSL more consistent in terms of `repository` definition

At the moment, our DSL provides some matters on defining the Maven repository to use:

jxbrowser {
    // The JxBrowser version. A mandatory field.
    version = "7.24"

    // The location of JxBrowser repository to use. It's either the US or Europe.
    // By default, it's the US.
    repositoryLocation = Repository.US

    // A custom Maven repository. 
    // If set, this field overrides `repositoryLocation`.
    repositoryUrl = "https://my.custom.repository"

    // ...
}

It looks a bit messy, since repositoryUrl overrides repositoryLocation โ€” which is not too obvious, especially, if you-as-a-user apply it to your project without any comments, and then your teammates try to interpret it.

Let's make it more precise by leaving just a single repository field. E.g.

jxbrowser {
    // The JxBrowser version. A mandatory field.
    version = "7.24"

    // The location of JxBrowser repository to use. It's either the US or Europe.
    // By default, it's the US.
    repository = Repository.US

    // Alternatively, it may point to a custom repo via its URL, as follows:
    // repository = "https://my.custom.repository"

    // ...
}

Since we are in Kotlin here, Repository may become anything String-friendly, like a typealias.

Dependency Dashboard

This issue lists Renovate updates and detected dependencies. Read the Dependency Dashboard docs to learn more.

This repository currently has no open or pending branches.

Detected dependencies

github-actions
.github/workflows/publish.yml
  • actions/checkout v4
  • actions/setup-java v3
.github/workflows/validate.yml
  • actions/checkout v4
  • actions/checkout v4
gradle
settings.gradle.kts
build.gradle.kts
  • org.jetbrains.kotlin.jvm 1.9.20
  • com.gradle.plugin-publish 1.2.1
  • org.jlleitschuh.gradle.ktlint 11.6.1
  • io.kotest:kotest-assertions-core 5.8.0
gradle-wrapper
gradle/wrapper/gradle-wrapper.properties
  • gradle 8.4

  • Check this box to trigger a request for Renovate to run again on this repository

Allow not specifying plugin version

Right now we have to specify plugin version like that:

plugins {
    id("com.teamdev.jxbrowser") version "1.0.2"
}

Other plugins such as "java" don't require this:

plugins {
    id("java")
}

We assume that if we don't specify the version, the latest stable version will be downloaded and used. This is the behavior we would like to have.

But right now, if we don't specify the version, we will get the following error:

* Exception is:
org.gradle.api.plugins.UnknownPluginException: Plugin [id: 'com.teamdev.jxbrowser'] was not found in any of the following sources:

- Gradle Core Plugins (plugin is not in 'org.gradle' namespace)
- Plugin Repositories (plugin dependency must include a version number for this source)
	at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolveToFoundResult(DefaultPluginRequestApplicator.java:275)
	at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.lambda$resolvePluginRequests$3(DefaultPluginRequestApplicator.java:200)
	at org.gradle.util.internal.CollectionUtils.collect(CollectionUtils.java:212)
	at org.gradle.util.internal.CollectionUtils.collect(CollectionUtils.java:206)
	at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolvePluginRequests(DefaultPluginRequestApplicator.java:198)
	at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.resolvePluginRequests(DefaultPluginRequestApplicator.java:114)
	at org.gradle.plugin.use.internal.DefaultPluginRequestApplicator.applyPlugins(DefaultPluginRequestApplicator.java:103)
	at org.gradle.kotlin.dsl.provider.PluginRequestsHandler.handle(PluginRequestsHandler.kt:44)
	at org.gradle.kotlin.dsl.provider.StandardKotlinScriptEvaluator$InterpreterHost.applyPluginsTo(KotlinScriptEvaluator.kt:220)
	at org.gradle.kotlin.dsl.execution.Interpreter$ProgramHost.applyPluginsTo(Interpreter.kt:388)
	...

In terms of this task we need to find out why we have to specify the plugin version and find out a way to skip the version declaration to force Gradle use the latest version of our plugin.

Automatically check compatibility with the latest Gradle versions

We need to design and implement the approach that allows checking availability of the new stable Gradle versions and check compatibility of our plugin with it.

If our plugin is not compatible with the latest Gradle version, because of errors or warnings, then we should be somehow informed about this, so that developers can make the plugin compatible.

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.