As philosophical as that sounds ...
I really am asking about Java code. :)
I hope everyone knows that package visibility
outside it's bundle is controlled by whether it is listed in the manifest.mf
file.
Historically, we in WTP have followed
the Eclipse
Platform's policy of always making
every package visible to others, even if it was
not API and even if it really was never
used any where else. But, now we in WTP are considering
to change our policy, to allow
some
packages to be hidden, if they really
are completely internal. We see this potentially as an improved way to
specify API's, along with
the usual correct use of x-internal,
x-friend, etc. And also, we hope it will motivate us to be more careful
in our future code and designs to
better separate API from implementation.
So, two things came to mind:
1. What do other projects do?, and
2. Would it be useful to request each
project in Ganymede to document their policy?
To address both these questions, I've
started Ganymede_Policies_on_Package_Visibility
as a place where Projects
can specify, and link to, their written
policy on the matter.
So, if you would please, take a minute
and fill in the tables listed there, if you think it would be useful.
I created the table assuming each top
level project would have one policy, and that it would not differ from
component to
component ... so, that's another thing
... let me know if that's an incorrect assumption.
And, by all means, respond here if you
have strong feelings about what a project's policy should be.