Skip to content

Split SpinePublishing into an extension class and a plugin class #562

@alexander-yevsyukov

Description

@alexander-yevsyukov

The io.spine.gradle.publish.SpinePublishing extension class (please see it under buildSrc) is overloaded with functionality.
It does both extension jobs, like managing data) and plugin jobs, like creating publication handlers, managing task depenendicies.

The SpinePublishing.kt is already 536 lines long, and it's hard to understand. For example, we've had hard time finding the cause of duplicated publishing tasks when fixing publishing in tool-base.

We should revisit this publishing functionality, which took the current form during the course of development of the Spine SDK and adding and revisiting things in Gradle.

The most obvious course seen at the time of writing is having a plugin class residing under buildSrc which would be applied via its class to the root project, AND to subprojects, should they need custom publishing.

Metadata

Metadata

Assignees

No one assigned

    Labels

    /PublishBuild tasks related to publishingtech. debtWhat made us slow in dev?

    Type

    No type

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions