Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Feature: KSP/Compiler Plugins #81

Merged
merged 114 commits into from
Nov 29, 2022
Merged

Feature: KSP/Compiler Plugins #81

merged 114 commits into from
Nov 29, 2022

Conversation

sgammon
Copy link
Member

@sgammon sgammon commented Nov 19, 2022

Ready for review Powered by Pull Request Badge

This changeset restructures the build to provide more control over Kotlin targets. Support is introduced for KSP processors and Kotlin compiler plugins.

The plugins don't do much yet, but will host rich functionality later down the road once the build flow is perfected. A number of other important changes are also enclosed which prepare the lib for an initial beta release.

Related PRs

Changes enclosed

  • Cleanup all workflow configs
  • Add sharing of codebase-wide properties
  • Add ABI check validation (fixes and closes ABI validation #70), + build step
  • Refactor convention plugins (relates to Convention plugins #71)
  • Prep version catalog and platform releases (relates to Version catalog, Java platform #73)
  • Prep for SSG compiler (relates to Ability to build static sites (SSG mode) #65 and Framework website #76)
  • Fix state sharing issue (fixes and closes State sharing breaks native SSR #35)
  • Continuous JMH benchmarks
  • Minimum JVM level -> 11
  • Working initial set of compiler plugins
  • Invocation of SSG compiler from CLI and programmatically
  • SSG compiler implementation code
    • Read manifest
    • Generate requests
    • Write to zip
    • Write to tarball
    • Write to directory
  • Final cleanup / known issues
    • KotlinX add'l co-routine deps
    • Fix issue with absolute archive paths
    • Drop inline docs
    • Drop inline protos
    • Fix all Sonar warnings, etc
    • Invocation of SSG compiler from Gradle plugin
    • Check spawned requests for uniqueness
    • Check written files for collisions
    • Compression for inner files?
    • JAR loading mode -- do we need a shadow JAR? note: yes
    • Finish JAR loading mode
    • TAR writing issues
    • Finish implementing directory mode
    • Native distribution (maybe?)
    • Curtail verbose logging before push
    • URL rewriting issues (i.e. shut off rewriting on target app) note: kicked to issue URL rewriting breaks SSG #91

@sgammon sgammon added this to the Release R1: Alpha 1 milestone Nov 19, 2022
@sgammon sgammon self-assigned this Nov 19, 2022
@github-actions github-actions bot added module:base Changes and issues relating to the Elide `base` module module:model Modules, changes, and issues relating to the Elide model layer module:server Modules, changes, and issues relating to Elide for servers platform:browser PRs and issues relating to browser support. platform:jvm PRs and issues relating to JVM support. tools Issues and PRs related to tooling labels Nov 19, 2022
@sgammon sgammon added ci:build-native Build native targets in CI ci:test-native Run native tests module:base Changes and issues relating to the Elide `base` module module:rpc Modules, changes, and issues relating to the Elide RPC layer platform:jvm PRs and issues relating to JVM support. 🚧 WIP Works-in-progress. Blocks merge tools Issues and PRs related to tooling site Main website or broad site tasks and removed module:server Modules, changes, and issues relating to Elide for servers module:base Changes and issues relating to the Elide `base` module module:model Modules, changes, and issues relating to the Elide model layer platform:jvm PRs and issues relating to JVM support. tools Issues and PRs related to tooling platform:browser PRs and issues relating to browser support. labels Nov 19, 2022
@sgammon sgammon force-pushed the feat/compiler branch 8 times, most recently from be0c11c to 4e8bef7 Compare November 19, 2022 10:37
@sgammon sgammon temporarily deployed to github-pages November 29, 2022 07:26 Inactive
@sgammon sgammon temporarily deployed to github-pages November 29, 2022 08:57 Inactive
@sonarcloud
Copy link

sonarcloud bot commented Nov 29, 2022

Kudos, SonarCloud Quality Gate passed!    Quality Gate passed

Bug A 0 Bugs
Vulnerability A 0 Vulnerabilities
Security Hotspot A 0 Security Hotspots
Code Smell A 9 Code Smells

62.1% 62.1% Coverage
0.0% 0.0% Duplication

@sgammon sgammon temporarily deployed to snapshots November 29, 2022 09:20 Inactive
@sgammon sgammon removed the 🚧 WIP Works-in-progress. Blocks merge label Nov 29, 2022
@sgammon sgammon marked this pull request as ready for review November 29, 2022 09:34
@sgammon sgammon temporarily deployed to github-pages November 29, 2022 09:36 Inactive
@sgammon sgammon merged commit ea1fb81 into v3 Nov 29, 2022
@sgammon sgammon deleted the feat/compiler branch November 29, 2022 09:37
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
ci:build-native Build native targets in CI ci:deploy-site Deploy the Elide site ci:publish-snapshot Publish snapshots from a given PR. ci:test-native Run native tests module:base Changes and issues relating to the Elide `base` module module:rpc Modules, changes, and issues relating to the Elide RPC layer platform:jvm PRs and issues relating to JVM support. site Main website or broad site tasks tools Issues and PRs related to tooling
Projects
Status: Done
1 participant