-
Notifications
You must be signed in to change notification settings - Fork 889
Updating org.netbeans.modules.gototest/ org.netbeans.modules.gsf.codecoverage and org.netbeans.modules.gsf.testrunner as public packages #7433
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
base: master
Are you sure you want to change the base?
Conversation
…coverage and org.netbeans.modules.gsf.testrunner as public packages
@@ -69,6 +69,7 @@ | |||
</dependency> | |||
</module-dependencies> | |||
<public-packages> | |||
<package>org.netbeans.modules.gsf.testrunner</package> |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
IMHO - it is not a good idea to make a public API from the code that was not originally designed to be an API.
Note that from a 'common' sense review (I've never worked with that API), the quality is ... strange. Take for example this: https://github.com/apache/netbeans/blob/master/ide/gsf.testrunner/src/org/netbeans/modules/gsf/testrunner/plugin/CommonTestUtilProvider.java#L31
... that would normally lead to a final settings bean class or r/o class with a builder rather than untyped map. Nobody cared that much since it is a friend API with a limited impact, but if we ever make it public, it has to be maintained forever. Going public is the last chance the API can be cleaned up and made future-changes-compatible. It's not that just a "flag is flipped". |
I concur with @dbalek and @sdedic - while exposing a package to be public is easy, we then need to take care of it as an API for a long time/forever, which is difficult code that was originally arbitrary implementation code. I would suggest to first find out and describe what are the usecases/what you need, and then we can talk about how to extend the API to support that usecases. And do the API extension in a way that can be supported in long term. Thanks. |
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I don't understand this PR. I 100% support your original request to remove the friend restrictions on the API for these modules. I've consistently said we should not use the friend feature for this purpose. Unstable / in-development APIs should be marked as such, and opt-in, without expecting them never to break. The JDK has at least woken up to the importance of incubating and preview features, and we should too!
However, this PR doesn't make that change?! What are you trying to achieve and why?
Thanks all: @neilcsmith-net @sdedic @dbalek for your feedbacks and sorry for the late response.
I am trying to make these API public so that plugin developpers are no longer restricted by the friend restriction: meaning avoid to have to provide a new build of a plugin depending on these API for each Netbeans release. From this DEV thread https://lists.apache.org/thread/rdwh4vh07zxgbxyjfzfhxd8yjk7o23wv, Laszlo Kishalmi seemed ok with these API going public. That's why i made the PR.
Here are what i need:
@lahodaj : I understand the concerns from everyone. I will be glad for any other solution to achieve this |
Fix for #6871
Making gototest/gsf.codecoverage/gsf.testrunner public APIs