Kotlin / Kotlin/compiler-plugin-template

GitHub workflow to cleanup template after repository creation

Open
#16 1 comment 0 reactions 0 assignees View on GitHub
open to contributions
Dominant language
Kotlin
Stars
163
Forks
30
PR merge metrics
No merged PRs in 30d

Description

The [Kotlin Advent of Code template project](https://github.com/kotlin-hands-on/advent-of-code-kotlin-template) has this [really cool GitHub workflow](https://github.com/kotlin-hands-on/advent-of-code-kotlin-template/blob/main/.github/workflows/template-cleanup.yml) which edits the project files after the new repository is created and deletes itself when complete.

There are a lot of files that need to be updated when a compiler plugin project is created. It would be nice if a workflow could handle many of these automatically. For example:
* Files within `compiler-plugin` need to be renamed and relocated based on the desired package and plugin name.
* Files within `gradle-plugin` need to be renamed and relocated as well.
* Both files in `META-INF/services` need to be updated based on class names and package.
* The group ID in the root `build.gradle.kts` file needs to be updated.
* The plugin name and implementation class in `gradle-plugin/build.gradle.kts` needs to be updated.
* And probably lots more...

Since there will be multiple pieces of information that need to be provided to correctly update all of these files, maybe a manually triggered workflow would work better?

Contributor guide

No contributing guide indexed for this repository

Research direction

Start by reading the linked template-cleanup.yml workflow and inventorying the paths named in this issue: compiler-plugin, gradle-plugin, META-INF/services, and the two build.gradle.kts files. Define the required project metadata and confirm that a workflow can update or relocate all listed files, including its own cleanup, with a newly created repository as the done-state test.

Written by the indexing model from the issue text.

Assessment

Tech stack
github-actions, kotlin
Domain
build-system, tooling
Issue type
Feature
Difficulty
5/5
Estimated time
Over a week
Activity status
Stale
Clarity
Needs clarification
Newbie friendliness
25/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.