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

Clean up split packages between deployment and run time artifacts #44710

Open
dmlloyd opened this issue Nov 26, 2024 · 4 comments
Open

Clean up split packages between deployment and run time artifacts #44710

dmlloyd opened this issue Nov 26, 2024 · 4 comments
Labels
kind/epic Large issue with links to sub-issues triage/needs-triage

Comments

@dmlloyd
Copy link
Member

dmlloyd commented Nov 26, 2024

There are several instances of extensions which split packages across more than one artifact. Each individual problem will be opened as a sub-issue.

External related issues:

@dmlloyd dmlloyd added the kind/epic Large issue with links to sub-issues label Nov 26, 2024
@dmlloyd
Copy link
Member Author

dmlloyd commented Nov 26, 2024

The recommended strategy is:

Alexey Loubyansky: what would be a typical strategy to move the classes around? Duplicate and deprecate?
Clement Escoffier: yes, duplicate and deprecate with a clear indication (in the @deprecated) that it's mark for removal.
David Lloyd: I'd also prefer breaking extensions over breaking applications, usually (if it's one or the other)

I would also suggest that private packages be named impl or _private or some such, until such time that we can add explicit module-info.java which could then not export the private packages.

@gsmet
Copy link
Member

gsmet commented Nov 26, 2024

Let's not go too far with this, please.

The current rules are:

  • Deployment packages should be under extension.package.deployment
  • Runtime base package is extension.package
    • User API stuff should be under extension.package (user-facing annotations for instance, some user-facing interfaces)
    • Internal stuff should be under extension.package.runtime (config classes, implementation...)

Let's first see if we can fix the issues just by respecting these simple rules that have been there since the start.

Also, we don't need to duplicate the classes if they are not user-facing APIs (except if we have a build item that is used by everyone for instance). We can have some level of breakage.

And then we can have deeper discussion as part of the WG as to what is the target in the future and make sure we follow it.

But I don't want to have the discussion now that we are time-constrained to get the issues fixed.

@dmlloyd
Copy link
Member Author

dmlloyd commented Nov 26, 2024

Sure, that's completely in line with my suggestion. As long as we have a convention that is consistent then we're in agreement.

@dmlloyd
Copy link
Member Author

dmlloyd commented Nov 26, 2024

Here's the script I used to find the split packages. Notably, this doesn't cover integration tests, which add a large number of additional split package issues.

https://gist.github.com/dmlloyd/4963077077c4757da6d4481e55c87841

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
kind/epic Large issue with links to sub-issues triage/needs-triage
Projects
None yet
Development

No branches or pull requests

2 participants