You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@avro.apache.org by Gildas Quéméner <gi...@gmail.com> on 2019/01/31 07:17:54 UTC

Re: Modern PHP support

Hello Dan,

I wish you a happy new year!

We've been quite busy this month sorting out implementation details of the
avro php library rewrite (which is available at
https://gitlab.com/Jaumo/avro-php).
I believe we're already covering all the features that the official library
is providing, as well as a few others (validation of the default record
field value, support for logical type, ...).
Furthermore, the library is extensively tested (we have written more than
450 test cases), supports PSR-4 autoloading, follow a strict set of code
standard rules, as well as the highest quality level of phpstan.

Now is the time to start thinking about the release and how we can
efficiently provide the library to the world.
As a first step, I believe it would be really useful, and would avoid
wasting everyone's time, if someone at the Avro organization could spend
some time reviewing the library.
That way you could tell us if you're interested, or not, in having it moved
under the Avro organization.

As separating the official repository for each implementations is not an
option for you (at least until 1.9 is released), I suggest that we, at
Jaumo, keep "ownership" of the git repository for now.

That brings me to the point you have raised on your previous message, about
trademark.

It appears that many subtree projects of the official library has re-used
"avro" in their package name (
https://github.com/wikimedia/avro-php/blob/master/composer.json#L2,
https://github.com/researchgate/avro-php/blob/master/composer.json#L2 and
https://github.com/flix-tech/avro-php/blob/master/composer.json#L2, for
instance).

I would like to know if this is an issue as well, and if not, how is it
different to our case?

We are, naturally, willing to comply to any trademark obligation, and as
such would like to ask if you have any suggestions?

However, we find it difficult to release an avro php library, without
mentioning "avro" in its name.

Thanks in advance for your time,
Best Regards.

*Gildas Quéméner*


On Sat, Dec 22, 2018 at 7:05 PM Daniel Kulp <dk...@apache.org> wrote:

>
> Keep in mind, if this is done outside of Apache, you cannot call it
> avro-php.  You will need to find a name that does not use Apache trademarks
> and would not cause confusion with people trying to find the official Avro
> PHP builds and such that are supplied by Apache.
>
> Dan
>
>
>
> > On Dec 21, 2018, at 11:16 PM, Gildas Quéméner <gi...@gmail.com>
> wrote:
> >
> > Hello,
> >
> > Thanks for your answer.
> >
> > After giving a little bit more time to think about this situation, we've
> > decided to rewrite the php implementation of the avro library (keeping it
> > open sourced).
> > We're doing the development on this repository:
> > https://gitlab.com/Jaumo/avro-php/merge_requests/1.
> >
> > Let's see what we decide to do when we reach a correct level of
> > specification coverage (The rewrite relis on the 1.8.2 version).
> >
> > The current plan is, besides taking care of the few issues pointed in my
> > first mail, to have the schema (de)serialization (from/to json), data
> > (de)serialization (from/to avro) and protocol implementation at the end
> of
> > January 2019.
> >
> > Any contribution/review is very welcome!
> >
> > I'm off now until January 7th, enjoy the rest of the year!
> >
> > Best regards.
> >
> > *Gildas Quéméner*
> >
> >
> > On Thu, Dec 20, 2018 at 6:37 PM Driesprong, Fokko <fo...@driesprong.frl>
> > wrote:
> >
> >> Hi Gildas,
> >>
> >> This would be very welcome. Currently, I'm working on getting the CI to
> >> work with a newer base image <https://github.com/apache/avro/pull/390>.
> >> But
> >> the tests only pass against a specific version of PHP 5.6. Let me know
> if
> >> there is anything that I can do.
> >>
> >> You could use git blame
> >> <https://github.com/apache/avro/blame/master/lang/php/lib/avro.php> to
> >> check who worked on the PHP stuff, but most of it has been migrated from
> >> SVN so a lot of history is lost. If you feel confident in taking
> ownership
> >> of the PHP, please do! :-)
> >>
> >> Cheers, Fokko
> >>
> >> Op di 18 dec. 2018 om 17:26 schreef Gildas Quéméner <
> >> gildas.quemener@gmail.com>:
> >>
> >>> Hello Daniel,
> >>>
> >>> Thanks for your answer.
> >>>
> >>> I will prepare a pull request in the next days (basically more or less
> >> with
> >>> the content of https://gitlab.com/Jaumo/avro-php/).
> >>>
> >>> The most important things to do in order to make this package usable by
> >> any
> >>> php projects out there is:
> >>>
> >>> 1) To synchronize a separate read-only repository with the content of
> >>> https://github.com/apache/avro/tree/master/lang/php/lib (I'm looking
> at
> >>> various solution to do so) => required by 3).
> >>> 2) To setup a serious CI/CD pipeline which jobs will be to run the
> tests
> >>> (against several php environments), check the code consistency and
> >>> synchronize the read only repository.
> >>> 3) To register the php package on packagist.org
> >>>
> >>> I would gladly take responsibility for these actions as I have
> experience
> >>> in this area and will directly benefit from them.
> >>>
> >>> Problem is that this would require some administrative permission on
> the
> >>> org/repository and I would probably need a referent at the ASF to know
> >> how
> >>> things are done in your organization.
> >>> Is there already someone in charge of the PHP implementation I could
> >>> contact directly?
> >>> If you have some apply process to become an official maintainer as
> well,
> >>> please let me know.
> >>>
> >>> Cheers.
> >>>
> >>> *Gildas Quéméner*
> >>>
> >>>
> >>> On Tue, Dec 18, 2018 at 8:11 PM Daniel Kulp <dk...@apache.org> wrote:
> >>>
> >>>> We would definitely welcome any php contributions.   If you have any
> >>>> specific fixes or updates or anything, PR’s would be more than
> welcome.
> >>>> It would be great if someone with some PHP expertise could take some
> >>>> ownership in collecting various fixes/enhancements from various
> >> locations
> >>>> and getting pull requests submitted for review.   That would be
> >> awesome.
> >>>>
> >>>> At this point, we won’t be splitting out the various languages to
> >>> separate
> >>>> repositories.   We have discussed it in the past and we MAY do it in
> >> the
> >>>> future, but right now we’re trying to concentrate on getting 1.9 out
> >> (and
> >>>> then likely a patch or two follow up) and splitting the repo right now
> >>>> would be too disruptive to that process.
> >>>>
> >>>>
> >>>> Dan
> >>>>
> >>>>
> >>>>> On Dec 18, 2018, at 1:26 AM, Gildas Quéméner <
> >>> gildas.quemener@gmail.com>
> >>>> wrote:
> >>>>>
> >>>>> Hello,
> >>>>>
> >>>>> We've been working for a few months on using Avro encoded messages
> >>>> between
> >>>>> our services in my company.
> >>>>>
> >>>>> Our backend heavily relies on PHP, whereas some orbiting services are
> >>>>> written in Java/Kotlin/Python.
> >>>>> At first glance, the lake of official support for PHP looked like a
> >> big
> >>>>> no-go for us.
> >>>>>
> >>>>> I know that there is an official library, embedded in the avro
> >> library
> >>> at
> >>>>> https://github.com/apache/avro/tree/master/lang/php/lib.
> >>>>>
> >>>>> However this library suffers from blocking issues:
> >>>>> - It is not available through the de facto standard Composer
> >> dependency
> >>>>> manager
> >>>>> - It is not tested
> >>>>> - It does not rely on autoloading PSR
> >>>>> - It uses global namespace
> >>>>> - It uses unknown php functions
> >>>>> - It lacks some spec features (support for logicalType attribute for
> >>>>> instance)
> >>>>> - It is buggy
> >>>>>
> >>>>> Despite these issues, latest commit is 1 year old (about a typo), and
> >>> the
> >>>>> one before that is almost 3 years old. Thus, I think it is safe to
> >> say
> >>>> that
> >>>>> this library is not maintained anymore.
> >>>>>
> >>>>> Many organizations have realized such issue and have created their
> >> own
> >>>> fork
> >>>>> of the library, none of them being thoroughly maintained and having
> >> the
> >>>>> same level of bug fixing.
> >>>>>
> >>>>> Here are a few examples:
> >>>>> - https://github.com/wikimedia/avro-php
> >>>>> - https://github.com/flix-tech/avro-php
> >>>>> - https://github.com/researchgate/avro-php
> >>>>> - https://gitlab.com/Jaumo/avro-php (I am the maintainer of this
> >> one)
> >>>>>
> >>>>> I have tried to contribute to Wikimedia's fork, but they also seem to
> >>>> have
> >>>>> dropped support (see activity in
> >>>>> https://gerrit.wikimedia.org/r/q/status:open+project:avro-php). The
> >>>> awesome
> >>>>> thing is that they have brought a test suite (that we are reusing in
> >>> our
> >>>>> fork)!
> >>>>>
> >>>>> Flix-tech is doing an awesome job at providing a Schema Registry API
> >>>> client
> >>>>> as well as an Avro Serializer/Deserializer using their Schema
> >> Registry
> >>>>> client.
> >>>>>
> >>>>> There are great initiatives out there to modernize this library, but
> >>> none
> >>>>> of them trully gather the focus of the many maintainers, scattered
> >>>> through
> >>>>> private organizations.
> >>>>>
> >>>>> I think it is time to give avro-php some love and I would like to
> >> help
> >>> in
> >>>>> this matter.
> >>>>>
> >>>>> My feeling is that the first step should be to open a separate git
> >>>>> repository under the hood of the ASF organization.
> >>>>> This could either be done through an automatic subtree of
> >>>>> https://github.com/apache/avro/tree/master/lang/php/lib to a
> >> read-only
> >>>>> repository (as Symfony is doing), in order to register it on
> >>>> packagist.org
> >>>>> or through the opening of a separate read/write repository (and the
> >>>> removal
> >>>>> of the lib from the avro lib repository).
> >>>>>
> >>>>> Second step is to communicate, directly by contacting fork
> >> maintainers
> >>>>> annoucing the good news, and through ASF official communication
> >> vectors
> >>>>> (thinking about ML, Twitter, ...). The goal being to bring back all
> >> the
> >>>> PHP
> >>>>> avro user to an official implementation of the library.
> >>>>>
> >>>>> Thank you very much for your answer,
> >>>>> And I wish you all fantastic time within friends and family for the
> >> end
> >>>> of
> >>>>> the year.
> >>>>>
> >>>>> Best Regards.
> >>>>>
> >>>>> *Gildas Quéméner*
> >>>>
> >>>> --
> >>>> Daniel Kulp
> >>>> dkulp@apache.org <ma...@apache.org> - http://dankulp.com/blog
> <
> >>>> http://dankulp.com/blog>
> >>>> Talend Community Coder - http://talend.com <http://coders.talend.com/
> >
> >>>>
> >>>
> >>
>
> --
> Daniel Kulp
> dkulp@apache.org <ma...@apache.org> - http://dankulp.com/blog <
> http://dankulp.com/blog>
> Talend Community Coder - http://talend.com <http://coders.talend.com/>
>