shadow icon indicating copy to clipboard operation
shadow copied to clipboard

Automatically relocate package in Kotlin module files when moving packages

Open elizarov opened this issue 3 years ago • 2 comments

Kotlin keeps additional package metadata in .kotlin_module files; however, these files are not adjusted automatically when relocate function of shadow plugin is used. This does not prevent proper usage of the resulting libraries at runtime, but can cause issues if you try to compile Kotlin code against libraries with such relocated packages, as Kotlin compiler uses this metadata to filter out packages.

There is a kotlinx-metadata-jvm library that can manipulate (read/write) Kotlin metadata, including .kotlin_module files. I can make a PR to support automatic package relocation in Kotlin metadata when relocate is used. Will you accept this sort of contribution?

elizarov avatar Mar 17 '23 09:03 elizarov

Good to see!

Goooler avatar Mar 19 '23 15:03 Goooler

@elizarov I'd be happy to take a look at a PR. My gut is telling me that based on how complex that support is, that I might want to take this time to see if there is a way to have Shadow be extending in a way that makes adding this type of language specific support be added externally instead of in the main library. Would you be willing to work through that process? (My time is pretty small to work on this, so it could drag on, but if you're willing, we can try).

johnrengelman avatar Mar 21 '23 20:03 johnrengelman