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

Opened up multiple final and package private classes and methods in Nodes and Propertysheet APIs #2099

Closed
wants to merge 1 commit into from
Closed

Conversation

makusuko
Copy link

Opened up multiple final and package private classes and methods to support more flexible subclassing and modifications in the Nodes and Propertysheet APIs.

See https://issues.apache.org/jira/browse/NETBEANS-4222.

to support more flexible subclassing and modifications in the
Nodes and Propertysheet APIs.
@matthiasblaesing
Copy link
Contributor

As Geertjan said in Jira, this should be discussed first. Opened API can become a burden and this means without concrete usecases, that can't be realized with the current API this won't fly. It is also a long time commitment, so will you be around to fix issues in 2-3 years?

@JaroslavTulach JaroslavTulach self-requested a review April 24, 2020 12:34
Copy link

@JaroslavTulach JaroslavTulach left a comment

Choose a reason for hiding this comment

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

I tried to summarize the rationale for not making everything public in my Practical API Design book. There is even a story where a colleague of mine wanted to make Node.getChildren() method overridable in subclasses and why it is still final. In short: there has to be a balance between freedom of API users and freedom of API maintainers. Btw. there is a freedom chapter in the 20 API Paradoxes e-book.

Chapter 16 of the Practical API Design book contains a section "Accepting API Patches". Reading it I can say that your proposal removes our freedom because:

  • Your patch restricts future evolution
  • You have provided completely underdocumented patch
    • the classes/methods you make public aren't documented
    • but worse: the overall use-case isn't explained
  • You want to make API changes without any test coverage
  • Your API changes aren't versioned

I am not convinced it is enough justified to give up the NetBeans API evolution freedom by accepting your changes at current state.

@ebarboni ebarboni added this to the 12.1 milestone Apr 29, 2020
@JaroslavTulach
Copy link

I guess I scared the reporter enough... Sorry for that, I hope you will not give up on NetBeans, Markus.

@neilcsmith-net neilcsmith-net removed this from the 12.1 milestone Sep 16, 2020
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.

None yet

5 participants