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

maven module separation #378

Open
Enrice opened this issue Aug 7, 2024 · 3 comments
Open

maven module separation #378

Enrice opened this issue Aug 7, 2024 · 3 comments

Comments

@Enrice
Copy link

Enrice commented Aug 7, 2024

I propose separating the maven modules (as is partly already done by "javet-core") as follows:
Provide a separate module for each combination of OS and architecture by "classifier" coordinate. The only module containing Java code would then be "javet-core".

@caoccao
Copy link
Owner

caoccao commented Aug 7, 2024

This is the decision that I've being thinking of for long time, but haven't convinced myself on.

The current approach only requires one dependency. A one line config can exclude the duplicated code from 2+ dependencies.

The new approach requires at least 2 dependencies. That adds more work to the users and to me because I'll have to package all of them separately. As the release publishing process is not completely automated, I'll spend 2x-3x more time on that. Please consider I've been doing that for free for many years.

As end users, curl + zip commands can simply help build out the ideal package at will, as javet-core is designed for that. That's a one-time set up in the CI/CD systems.

@Enrice
Copy link
Author

Enrice commented Aug 7, 2024

Thank you.
Full publishing automation would be of great help for yourself of course.

Don't get me wrong: I highly appreciate your great work!

I will consider implementing your proposal in our CI/CD pipeline.

@caoccao
Copy link
Owner

caoccao commented Aug 7, 2024

Thank you.

Some other users also tweak their CI/CD systems this way.

Complete automation currently is impossible for me.

  1. Some OS / CPU Arch require special build env and process that github doesn't support.
  2. I don't have the resource to set up everything locally.

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

No branches or pull requests

2 participants