Skip to content

Forma Target: Implement plugin publish configuration #132

@stepango

Description

@stepango

Currently, the plugin publishing configuration does not benefit from Forma concept. Ideally instead of following the code:

ext {
    set("group", "tools.forma")
    set("version", "0.1.3")
    set("tags", listOf("kotlin", "android", "structure", "target", "rules", "project"))
    set("website", "https://forma.tools/")
    set("vcsUrl", "https://github.com/formatools/forma.git")
    set("displayName", "Forma - Meta Build System with Gradle and Android support")
    set("description", "Best way to structure your Gradle Project")
}
gradlePlugin {
    website.set(rootProject.ext["website"] as String)
    vcsUrl.set(rootProject.ext["vcsUrl"] as String)
    plugins {
        create(name) {
            id = "$group.$name"
            displayName = rootProject.ext["displayName"] as String
            description = rootProject.ext["description"] as String
            implementationClass = "$id.plugin.FormaPlugin"
            @Suppress("UNCHECKED_CAST")
            tags.set(rootProject.ext["tags"] as List<String>)
        }
    }
}

We want to implement smth like

// root build.gradle
formaPluginConfiguration {
  group = "tools.forma"
  website = "..."
...
}

```kotlin
// plugin build.gradle
gradlePlugin(
  name = "android"
  description = " Bla bla"
  implementationClass = "plugins.FormaPlugin",
  extraTags = listOf(...)
  ...
)

Metadata

Metadata

Assignees

Labels

enhancementNew feature or requestfeature requestNecessary features for developmenthelp wantedExtra attention is needed

Type

No type

Projects

No projects

Milestone

No milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions