On Thu, Aug 3, 2017 at 2:42 AM, Andy Seaborne <a...@apache.org> wrote:

> On 03/08/17 05:13, Roman Shaposhnik wrote:
>
>> On Wed, Aug 2, 2017 at 6:13 PM, John D. Ament <johndam...@apache.org>
>> wrote:
>>
>>> 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.
>>>
>>
>> I'm not a policy wonk, but for every single podling I've witnessed this
>> has been a very strong bias to be in o.a namespace.
>>
>> Speaking as an IPMC member I would like to see new projects migrate
>> into o.a namespace unless there's a really good reason not to.
>>
>> Or to put it another way, if you want to avoid threads like this one:
>>     http://markmail.org/message/2bsrtgckuuihhnv4
>> during your graduation VOTE -- it is better to think about rename now.
>>
>
> Jena was in a similar position with the main APIs under non o.a package
> spaces.
>
> We waited until a major version came along and that was several years
> after graduation.  While it had always been the intent to change, we could
> see that there was going to be major version hop due to othe factors and we
> didn't want to do it twice. We did move non-API code under o.a much earlier
> on an piecemeal basis.
>
> Jena users also have data with URI naming based on host names from our
> origins in HP. We have not moved those to a.o names but encourage migration
> though outputting some warnings when it is encountered and can easily
> changed.
>
> I think it sends a positive signal to new contributors to make the package
> change but it isn't always practical to do so by graduation. The user
> community is already impacted by moving the mailing lists and web sites etc.
>
> For JVM-related projects, the maven coordinates change on entering
> incubation. That is a strong enough signal.


Apache Subversion created a new org.apache.subversion API, and then rebuilt
our old org.tigris API on top of that. The old API is deprecated but still
available. It was also a great chance to refine the API after feedback from
users, and to drop ugly approaches. Much cleaner.

I'd definitely recommend constructing a new API within the org.apache
namespace, and deprecating the old. If you can't do it by graduation, then
get it on the roadmap as a high priority. Keep the old around as (say) a
separate compatibility package, layered onto the new API/naming.

Cheers,
-g

Reply via email to