John D. Ament wrote on 8/2/17 9:13 PM:
> On Wed, Aug 2, 2017 at 8:54 PM Roman Shaposhnik <ro...@shaposhnik.org>
> wrote:
> 
>> On Wed, Aug 2, 2017 at 5:40 PM, Abhishek Tiwari <a...@apache.org> wrote:
>>> Hi all,
>>>
>>> In regards to the recently incubated project - Gobblin, we were wondering
>>> about the policy around renaming Java package names to org.apache.* Is
>> it a
>>> mandatory requirement or good to have?
>>>
>>> The reason to ask this is that while we see many projects have migrated
>> to
>>> use org.apache.* package name for their Java source files, the Kafka
>>> project uses kafka.* for Scala sources and org.apache.kafka.* for Java
>>> sources.
>>>
>>> Please let us know as soon as possible, because we are in process of
>>> renaming the  packages but if not mandatory we would want to keep
>> gobblin.*
>>> package name and avoid the cost of downstream migrations and backwards
>>> incompatibility.
>>
>> You don't have to do it right away, but it is a requirement unless you
>> have a really,
>> really, really good reason of why you can't do that.
>>
>>
> I'm not aware of any requirement around Java package naming.  IN fact, last
> time it came up it was clear that its a best practice only, and doesn't
> have any actual naming requirements.
John: Do you have a link to that discussion?  I'm of the mind that it's
an expected best practice, unless you have a really, really good reason
otherwise.

Abhishek: Can you describe in more detail what these packages do in the
context of your software product?

In general, yes, I'd echo Roman's point strongly for the primary
external API that most users would call:

>> Or to put it a different way: during your eventual graduation this
>> question will be
>> asked and you better have a really, really good explanation if you're
>> still using
>> something other than o.a.

That is, supporting packages, or things that are standards, or things
that are specific plugins that integrate with external code - those I
could understand staying with a non-a.o package name for compatibility
or other reasons.

But the main program that users run in the JVM, or the primary Gobblin
classes that users integrating the code into their application?  That
should be in an org.apache.gobblin.* package.

Simple "backwards compatibility for users" as an argument is only
suitable if you're deprecating and have a plan to switch in the
reasonably-near future after graduation.  Not for the long term.

Thanks for raising the question early!

>>
>> Thanks,
>> Roman.

-- 

- Shane
  https://www.apache.org/foundation/marks/resources

---------------------------------------------------------------------
To unsubscribe, e-mail: general-unsubscr...@incubator.apache.org
For additional commands, e-mail: general-h...@incubator.apache.org

Reply via email to