Skip to content

Refactor native-load plugin structure and document runtime boundaries#2

Open
Copilot wants to merge 4 commits into
mainfrom
copilot/refactor-plugin-duties-structure
Open

Refactor native-load plugin structure and document runtime boundaries#2
Copilot wants to merge 4 commits into
mainfrom
copilot/refactor-plugin-duties-structure

Conversation

Copy link
Copy Markdown
Contributor

Copilot AI commented May 28, 2026

The plugin had core build logic, YAML parsing, native pack generation, manifest rendering, and ASM instrumentation concentrated in one source file, with limited documentation around runtime expectations and known boundaries. This change separates those responsibilities and makes the current contract clearer for future testing and configuration-cache work.

  • Source structure

    • Split config models, YAML parsing, task wiring, native pack generation, manifest rendering, and ASM visitors into focused Kotlin files.
    • Moved ASM classes under instrumentation/.
  • Configuration

    • Added a nativeLoad extension while preserving root native-load.yml as the default.
nativeLoad {
    configFile.set(rootProject.layout.projectDirectory.file("native-load.yml"))
}
  • Native pack generation

    • Moved AAR resolution setup out of the task action.
    • Added explicit task inputs for artifact coordinates, resolved AAR files, output path, and staging/output directories.
    • Improved errors for missing config, invalid YAML paths, artifact mismatches, and missing .so files.
  • Tests and CI

    • Added unit coverage for YAML parsing, manifest/zip determinism, missing-library failures, and System.loadLibrary(String) ASM rewriting.
    • Added GitHub Actions CI for the plugin build.
  • Documentation

    • Expanded README with runtime loader contract, manifest schema expectations, non-transitive artifact behavior, global .so exclusion behavior, and current limitations.

@oxyroid
Copy link
Copy Markdown
Owner

oxyroid commented May 28, 2026

@copilot resolve the merge conflicts in this pull request

Copy link
Copy Markdown
Contributor Author

Copilot AI commented May 28, 2026

@copilot resolve the merge conflicts in this pull request

Resolved the merge conflicts in local merge commit 0efb625. Validation: gradle build is still blocked by sandbox DNS resolution for dl.google.com while resolving com.android.tools.build:gradle-api:8.9.3; CodeQL found no analyzable code changes for this merge resolution.

Copilot AI requested a review from oxyroid May 28, 2026 12:03
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants