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

Add native schema support for org.fugerit.java:fj-doc-base and org.fugeri.tjava:fj-doc-freemarker #557

Conversation

fugerit79
Copy link
Contributor

What does this PR do?

I recently added to one of my project the native metadata needed for GraalVM :
https://github.com/fugerit-org/fj-doc/tree/main/fj-doc-base
https://github.com/fugerit-org/fj-doc/tree/main/fj-doc-freemarker

As for the "CONTRIBUTING" section, the metadata are mantained and tested direcly in my project repository, But as I understand a pull request is needed to be listed here https://www.graalvm.org/native-image/libraries-and-frameworks/

PS: This is my first pull request here, so I hope i filled it property. I tried to read the documentation and I hope I understood it properly.
PSS: Thanks a lot for your great work with GraalVM, we converted already a few production projects to AOT and we are very happy for the gain in

Code sections where the PR accesses files, network, docker or some external service

Tests are note enabled as the metadata and testing is provided direclty on the prohect repository :

https://github.com/fugerit-org/fj-doc

A module test project using https://quarkus.io/ is included :
https://github.com/fugerit-org/fj-doc/tree/main/fj-doc-native-quarkus

And a workflow for continuous testing :
https://github.com/fugerit-org/fj-doc/actions/workflows/build_fj-doc-native-quarkus_test.yml

Checklist before merging

@fugerit79 fugerit79 requested a review from fniephaus as a code owner November 1, 2024 23:14
@fugerit79 fugerit79 changed the title 1 add native schema support for orgfugeritjavafj doc base and orgfugeritjavafj doc freemarker 1 add native schema support for org.fugerit.java:fj doc base and org.fugeri.tjava:fj doc freemarker Nov 1, 2024
@fugerit79 fugerit79 changed the title 1 add native schema support for org.fugerit.java:fj doc base and org.fugeri.tjava:fj doc freemarker Add native schema support for org.fugerit.java:fj-doc-base and org.fugeri.tjava:fj-doc-freemarker Nov 1, 2024
@mttfranci mttfranci force-pushed the 1-add-native-schema-support-for-orgfugeritjavafj-doc-base-and-orgfugeritjavafj-doc-freemarker branch from f18fed5 to 81dd313 Compare November 4, 2024 14:15
@fugerit79 fugerit79 force-pushed the 1-add-native-schema-support-for-orgfugeritjavafj-doc-base-and-orgfugeritjavafj-doc-freemarker branch from 81dd313 to 1dee98b Compare November 8, 2024 19:08
@fugerit79
Copy link
Contributor Author

Hello, may I know if got something wrong about the pull request @fniephaus ?

As far as I have understood as we included in the project repository the native metadata, tests and so on are handled on our repository. Is it correct?

Thanks in advance.

Copy link
Member

@fniephaus fniephaus left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Apologies for the delay, and thanks for the contribution!

As far as I have understood as we included in the project repository the native metadata, tests and so on are handled on our repository. Is it correct?

Yes, that's correct. There's one minor detail I liked to make you aware of. From the docs

To avoid a situation when constituent parts of a project are built with overlapping configurations, we recommended you use subdirectories within META-INF/native-image: a JAR file built from multiple maven projects cannot suffer from overlapping native-image configurations. For example:

  • foo.jar has its configurations in META-INF/native-image/foo_groupID/foo_artifactID
  • bar.jar has its configurations in META-INF/native-image/bar_groupID/bar_artifactID

So maybe move your config files into sub directories to avoid any user-side warnings.

library-and-framework-list.json Outdated Show resolved Hide resolved
@fugerit79 fugerit79 force-pushed the 1-add-native-schema-support-for-orgfugeritjavafj-doc-base-and-orgfugeritjavafj-doc-freemarker branch from 73804cc to 3c20b3d Compare January 2, 2025 13:41
@fugerit79 fugerit79 force-pushed the 1-add-native-schema-support-for-orgfugeritjavafj-doc-base-and-orgfugeritjavafj-doc-freemarker branch from b52d1ee to 242358b Compare January 2, 2025 13:47
@fniephaus fniephaus merged commit e3242d9 into oracle:master Jan 2, 2025
5 checks passed
@fniephaus
Copy link
Member

The new entries will appear on the website very soon.

@fugerit79
Copy link
Contributor Author

Apologies for the delay, and thanks for the contribution!

As far as I have understood as we included in the project repository the native metadata, tests and so on are handled on our repository. Is it correct?

Yes, that's correct. There's one minor detail I liked to make you aware of. From the docs

To avoid a situation when constituent parts of a project are built with overlapping configurations, we recommended you use subdirectories within META-INF/native-image: a JAR file built from multiple maven projects cannot suffer from overlapping native-image configurations. For example:

  • foo.jar has its configurations in META-INF/native-image/foo_groupID/foo_artifactID
  • bar.jar has its configurations in META-INF/native-image/bar_groupID/bar_artifactID

So maybe move your config files into sub directories to avoid any user-side warnings.

No problem for the delay, thanks for merging the pull request.
Currently I do not provide an all modules jar.
But this situation applies to maven-shade-plugin or quarkus uber jar?

In case we will change the structure in the next release.

Do we need to change the metadata location too?

        "metadata_locations": [
          "https://github.com/fugerit-org/fj-doc/tree/main/fj-doc-base/src/main/resources/META-INF/native-image"
        ],

@fugerit79 fugerit79 deleted the 1-add-native-schema-support-for-orgfugeritjavafj-doc-base-and-orgfugeritjavafj-doc-freemarker branch January 2, 2025 14:03
@fniephaus
Copy link
Member

Currently I do not provide an all modules jar.

The recommendation is not just for modules. group and artifact ID are the Maven coordinates.

In case we will change the structure in the next release.

Great, thank you!

Do we need to change the metadata location too?

I don't think so, the metadata will be in a subdirectory of the linked location, right?

@fugerit79
Copy link
Contributor Author

Do we need to change the metadata location too?

I don't think so, the metadata will be in a subdirectory of the linked location, right?

Correct, thanks

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