You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by Micah Kornfield <em...@gmail.com> on 2020/06/02 07:04:02 UTC

Re: Namespace validation/requirements

Thanks, I should have a PR up in the next few days for the spec.

On Fri, May 29, 2020 at 12:57 AM Ryan Skraba <ry...@skraba.com> wrote:

> I'm certain that the Java implementation doesn't validate full names
> correctly (https://issues.apache.org/jira/browse/AVRO-2659 has a fun
> example).  This should be an easy fix, I'll give it a go.
>
> A PR to clarify the spec on this point would be welcome!
>
> On Thu, May 28, 2020 at 6:47 PM Micah Kornfield <em...@gmail.com>
> wrote:
> >
> > I'm happy to make PR clarifying this.  I'm a little bit concerned that if
> > validation doesn't exist in Java (and maybe other languages today) if we
> > make the spec stricter it could break users.  How has the community
> handled
> > issues like this in the past?
> >
> > Would someone familiar with the Java implementation be able to comment if
> > there is validation around this (I couldn't find it on a quick search)?
> >
> > Thanks,
> > Micah
> >
> > On Thu, May 28, 2020 at 9:23 AM Doug Cutting <cu...@gmail.com> wrote:
> >
> > > Yes, the intent was to prohibit namespaces starting with a dot.
> > >
> > > <empty> | (<name>((<dot><name>)*))  was the intended grammar.
> > >
> > > Doug
> > >
> > > On Thu, May 28, 2020 at 1:50 AM Ryan Skraba <ry...@skraba.com> wrote:
> > >
> > > > Hello!  Hmmm... reading through the spec (again), there is a small
> > > > ambiguous point!  Good catch!
> > > >
> > > > Specifically, it specifically says that ".a" is not a valid namespace
> > > > attribute:
> > > >
> > > > "A namespace is a dot-separated sequence of such [non-empty] names.
> > > > The empty string may also be used as a namespace ..."
> > > >
> > > > But it could be a valid full name: made from a valid namespace (the
> > > > empty string) and a valid name.
> > > >
> > > > I suspect that the original intention was that it should not be a
> > > > valid fullname, with the consequence that all valid fullnames are
> > > > valid Java class names.
> > > >
> > > > If it *were* a valid fullname, however, it would be useful to
> > > > distinguish between specifying the default namespace versus
> inheriting
> > > > a namespace from a parent record!  As far as I can tell, this
> > > > behaviour isn't implemented anywhere or specified in the spec either.
> > > >
> > > > What do you think?  The spec could be clarified either way.
> > > >
> > > > Ryan
> > > >
> > > >
> > > > On Wed, May 27, 2020 at 7:20 PM Micah Kornfield <
> emkornfield@gmail.com>
> > > > wrote:
> > > > >
> > > > > Hi Avro Dev,
> > > > > I think there is a little bit of ambiguity in the requirements for
> the
> > > > > namespace component of a full name in the specification [1].  In
> > > > particular
> > > > > it isn't clear whether namespaces like:
> > > > > ".namespace" should be considered valid (i.e. a "null" namespace
> > > > followed a
> > > > > valid name).
> > > > >
> > > > > It appears the the C++ implementation does not think this is valid
> [2]
> > > > but
> > > > > I couldn't find a corresponding check in the Java code base (I'm
> still
> > > > > familiarizing myself with both).
> > > > >
> > > > > Should ".namespace" be considered valid?
> > > > >
> > > > > Thanks,
> > > > > Micah
> > > > >
> > > > > [1] https://avro.apache.org/docs/current/spec.html
> > > > > [2]
> > > >
> https://github.com/apache/avro/blob/master/lang/c%2B%2B/impl/Node.cc#L72
> > > >
> > >
>

Re: Namespace validation/requirements

Posted by Ryan Skraba <ry...@skraba.com>.
Hello, it's not a silly question -- it's kind of hidden inside the
./build.sh dist script.

Just run ant from inside the ./doc directory and the html files are
generated in the ./build/avro-doc-1.11.0-SNAPSHOT/ directory (N.B. not
the ./doc/build directory).

I don't have ant installed on my machine, so I find it easiest to use
the docker image that we use to build avro.

Good luck!  Ryan


On Fri, Jun 5, 2020 at 6:11 AM Micah Kornfield <em...@gmail.com> wrote:
>
> This might be a silly question, but how can I build the specification
> documentation?  Is it part of the javadoc build?
>
> Sorry i scanned the documentation and couldn't find anything specific.
>
> Thanks,
> Micah
>
> On Tue, Jun 2, 2020 at 12:04 AM Micah Kornfield <em...@gmail.com>
> wrote:
>
> > Thanks, I should have a PR up in the next few days for the spec.
> >
> > On Fri, May 29, 2020 at 12:57 AM Ryan Skraba <ry...@skraba.com> wrote:
> >
> >> I'm certain that the Java implementation doesn't validate full names
> >> correctly (https://issues.apache.org/jira/browse/AVRO-2659 has a fun
> >> example).  This should be an easy fix, I'll give it a go.
> >>
> >> A PR to clarify the spec on this point would be welcome!
> >>
> >> On Thu, May 28, 2020 at 6:47 PM Micah Kornfield <em...@gmail.com>
> >> wrote:
> >> >
> >> > I'm happy to make PR clarifying this.  I'm a little bit concerned that
> >> if
> >> > validation doesn't exist in Java (and maybe other languages today) if we
> >> > make the spec stricter it could break users.  How has the community
> >> handled
> >> > issues like this in the past?
> >> >
> >> > Would someone familiar with the Java implementation be able to comment
> >> if
> >> > there is validation around this (I couldn't find it on a quick search)?
> >> >
> >> > Thanks,
> >> > Micah
> >> >
> >> > On Thu, May 28, 2020 at 9:23 AM Doug Cutting <cu...@gmail.com> wrote:
> >> >
> >> > > Yes, the intent was to prohibit namespaces starting with a dot.
> >> > >
> >> > > <empty> | (<name>((<dot><name>)*))  was the intended grammar.
> >> > >
> >> > > Doug
> >> > >
> >> > > On Thu, May 28, 2020 at 1:50 AM Ryan Skraba <ry...@skraba.com> wrote:
> >> > >
> >> > > > Hello!  Hmmm... reading through the spec (again), there is a small
> >> > > > ambiguous point!  Good catch!
> >> > > >
> >> > > > Specifically, it specifically says that ".a" is not a valid
> >> namespace
> >> > > > attribute:
> >> > > >
> >> > > > "A namespace is a dot-separated sequence of such [non-empty] names.
> >> > > > The empty string may also be used as a namespace ..."
> >> > > >
> >> > > > But it could be a valid full name: made from a valid namespace (the
> >> > > > empty string) and a valid name.
> >> > > >
> >> > > > I suspect that the original intention was that it should not be a
> >> > > > valid fullname, with the consequence that all valid fullnames are
> >> > > > valid Java class names.
> >> > > >
> >> > > > If it *were* a valid fullname, however, it would be useful to
> >> > > > distinguish between specifying the default namespace versus
> >> inheriting
> >> > > > a namespace from a parent record!  As far as I can tell, this
> >> > > > behaviour isn't implemented anywhere or specified in the spec
> >> either.
> >> > > >
> >> > > > What do you think?  The spec could be clarified either way.
> >> > > >
> >> > > > Ryan
> >> > > >
> >> > > >
> >> > > > On Wed, May 27, 2020 at 7:20 PM Micah Kornfield <
> >> emkornfield@gmail.com>
> >> > > > wrote:
> >> > > > >
> >> > > > > Hi Avro Dev,
> >> > > > > I think there is a little bit of ambiguity in the requirements
> >> for the
> >> > > > > namespace component of a full name in the specification [1].  In
> >> > > > particular
> >> > > > > it isn't clear whether namespaces like:
> >> > > > > ".namespace" should be considered valid (i.e. a "null" namespace
> >> > > > followed a
> >> > > > > valid name).
> >> > > > >
> >> > > > > It appears the the C++ implementation does not think this is
> >> valid [2]
> >> > > > but
> >> > > > > I couldn't find a corresponding check in the Java code base (I'm
> >> still
> >> > > > > familiarizing myself with both).
> >> > > > >
> >> > > > > Should ".namespace" be considered valid?
> >> > > > >
> >> > > > > Thanks,
> >> > > > > Micah
> >> > > > >
> >> > > > > [1] https://avro.apache.org/docs/current/spec.html
> >> > > > > [2]
> >> > > >
> >> https://github.com/apache/avro/blob/master/lang/c%2B%2B/impl/Node.cc#L72
> >> > > >
> >> > >
> >>
> >

Re: Namespace validation/requirements

Posted by Micah Kornfield <em...@gmail.com>.
This might be a silly question, but how can I build the specification
documentation?  Is it part of the javadoc build?

Sorry i scanned the documentation and couldn't find anything specific.

Thanks,
Micah

On Tue, Jun 2, 2020 at 12:04 AM Micah Kornfield <em...@gmail.com>
wrote:

> Thanks, I should have a PR up in the next few days for the spec.
>
> On Fri, May 29, 2020 at 12:57 AM Ryan Skraba <ry...@skraba.com> wrote:
>
>> I'm certain that the Java implementation doesn't validate full names
>> correctly (https://issues.apache.org/jira/browse/AVRO-2659 has a fun
>> example).  This should be an easy fix, I'll give it a go.
>>
>> A PR to clarify the spec on this point would be welcome!
>>
>> On Thu, May 28, 2020 at 6:47 PM Micah Kornfield <em...@gmail.com>
>> wrote:
>> >
>> > I'm happy to make PR clarifying this.  I'm a little bit concerned that
>> if
>> > validation doesn't exist in Java (and maybe other languages today) if we
>> > make the spec stricter it could break users.  How has the community
>> handled
>> > issues like this in the past?
>> >
>> > Would someone familiar with the Java implementation be able to comment
>> if
>> > there is validation around this (I couldn't find it on a quick search)?
>> >
>> > Thanks,
>> > Micah
>> >
>> > On Thu, May 28, 2020 at 9:23 AM Doug Cutting <cu...@gmail.com> wrote:
>> >
>> > > Yes, the intent was to prohibit namespaces starting with a dot.
>> > >
>> > > <empty> | (<name>((<dot><name>)*))  was the intended grammar.
>> > >
>> > > Doug
>> > >
>> > > On Thu, May 28, 2020 at 1:50 AM Ryan Skraba <ry...@skraba.com> wrote:
>> > >
>> > > > Hello!  Hmmm... reading through the spec (again), there is a small
>> > > > ambiguous point!  Good catch!
>> > > >
>> > > > Specifically, it specifically says that ".a" is not a valid
>> namespace
>> > > > attribute:
>> > > >
>> > > > "A namespace is a dot-separated sequence of such [non-empty] names.
>> > > > The empty string may also be used as a namespace ..."
>> > > >
>> > > > But it could be a valid full name: made from a valid namespace (the
>> > > > empty string) and a valid name.
>> > > >
>> > > > I suspect that the original intention was that it should not be a
>> > > > valid fullname, with the consequence that all valid fullnames are
>> > > > valid Java class names.
>> > > >
>> > > > If it *were* a valid fullname, however, it would be useful to
>> > > > distinguish between specifying the default namespace versus
>> inheriting
>> > > > a namespace from a parent record!  As far as I can tell, this
>> > > > behaviour isn't implemented anywhere or specified in the spec
>> either.
>> > > >
>> > > > What do you think?  The spec could be clarified either way.
>> > > >
>> > > > Ryan
>> > > >
>> > > >
>> > > > On Wed, May 27, 2020 at 7:20 PM Micah Kornfield <
>> emkornfield@gmail.com>
>> > > > wrote:
>> > > > >
>> > > > > Hi Avro Dev,
>> > > > > I think there is a little bit of ambiguity in the requirements
>> for the
>> > > > > namespace component of a full name in the specification [1].  In
>> > > > particular
>> > > > > it isn't clear whether namespaces like:
>> > > > > ".namespace" should be considered valid (i.e. a "null" namespace
>> > > > followed a
>> > > > > valid name).
>> > > > >
>> > > > > It appears the the C++ implementation does not think this is
>> valid [2]
>> > > > but
>> > > > > I couldn't find a corresponding check in the Java code base (I'm
>> still
>> > > > > familiarizing myself with both).
>> > > > >
>> > > > > Should ".namespace" be considered valid?
>> > > > >
>> > > > > Thanks,
>> > > > > Micah
>> > > > >
>> > > > > [1] https://avro.apache.org/docs/current/spec.html
>> > > > > [2]
>> > > >
>> https://github.com/apache/avro/blob/master/lang/c%2B%2B/impl/Node.cc#L72
>> > > >
>> > >
>>
>