You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@qpid.apache.org by Justin Ross <ju...@gmail.com> on 2018/03/08 17:15:19 UTC

Proton C source reorg and removal of deprecated or obsolete code

Hi, all.  After we split Proton J out of Proton, the existing Proton C
source tree no longer made sense.  This proposed change moves the
proton-c/* content to the top level and generally aligns the source tree
with conventions we use in some of our other code bases.

It also removes bindings, APIs, docs, and test code that have been
deprecated for some time, are no longer used, or are not maintained.

The tree after the reorg:
https://github.com/ssorj/qpid-proton/tree/ssorj-reorganize-the-source-tree

Pull requests (these build on each other):
https://github.com/apache/qpid-proton/pull/136 - Remove deprecated bindings
and APIs
https://github.com/apache/qpid-proton/pull/138 - Remove obsolete docs and
test code
https://github.com/apache/qpid-proton/pull/140 - Reorganize the source tree

CI results (passing apart from an unrelated OS X issue and a known
intermittent failure on Windows):
https://travis-ci.org/ssorj/qpid-proton
https://ci.appveyor.com/project/ssorj/qpid-proton

Re: Proton C source reorg and removal of deprecated or obsolete code

Posted by Alan Conway <ac...@redhat.com>.
Well done, what a monster! Now to weed out the last of the messenger code...

On Thu, Apr 5, 2018 at 3:40 PM, Justin Ross <ju...@gmail.com> wrote:

> Just a note to everyone that the Proton C source reorg has now landed on
> master.  Please let me know if you have any trouble.
>
> https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=tree;h=HEAD
>
> On Wed, Mar 14, 2018 at 5:40 AM, Alan Conway <ac...@redhat.com> wrote:
>
> > On Mon, Mar 12, 2018 at 12:14 PM, Justin Ross <ju...@gmail.com>
> > wrote:
> >
> > > > src/messenger still there - oversight, or do we need to hold onto
> this?
> > > >
> > >
> > > It's still used by one of the test tools.
> > >
> > >
> > We can replace msgr-send.c and msgr-recv.c by copying from
> > examples/c/[send.c, send-ssl.c, receive.c] and adding options (ssl
> config,
> > container name, prefetch etc.) IMO a  day or two of work. The examples
> > already have the required code, just need to parameterize it with command
> > line options. Not required for the initial re-org, but something to do
> > shortly after.
> >
>

Re: Proton C source reorg and removal of deprecated or obsolete code

Posted by Justin Ross <ju...@gmail.com>.
Just a note to everyone that the Proton C source reorg has now landed on
master.  Please let me know if you have any trouble.

https://git-wip-us.apache.org/repos/asf?p=qpid-proton.git;a=tree;h=HEAD

On Wed, Mar 14, 2018 at 5:40 AM, Alan Conway <ac...@redhat.com> wrote:

> On Mon, Mar 12, 2018 at 12:14 PM, Justin Ross <ju...@gmail.com>
> wrote:
>
> > > src/messenger still there - oversight, or do we need to hold onto this?
> > >
> >
> > It's still used by one of the test tools.
> >
> >
> We can replace msgr-send.c and msgr-recv.c by copying from
> examples/c/[send.c, send-ssl.c, receive.c] and adding options (ssl config,
> container name, prefetch etc.) IMO a  day or two of work. The examples
> already have the required code, just need to parameterize it with command
> line options. Not required for the initial re-org, but something to do
> shortly after.
>

Re: Proton C source reorg and removal of deprecated or obsolete code

Posted by Alan Conway <ac...@redhat.com>.
On Mon, Mar 12, 2018 at 12:14 PM, Justin Ross <ju...@gmail.com> wrote:

> > src/messenger still there - oversight, or do we need to hold onto this?
> >
>
> It's still used by one of the test tools.
>
>
We can replace msgr-send.c and msgr-recv.c by copying from
examples/c/[send.c, send-ssl.c, receive.c] and adding options (ssl config,
container name, prefetch etc.) IMO a  day or two of work. The examples
already have the required code, just need to parameterize it with command
line options. Not required for the initial re-org, but something to do
shortly after.

Re: Proton C source reorg and removal of deprecated or obsolete code

Posted by Justin Ross <ju...@gmail.com>.
On Mon, Mar 12, 2018 at 8:57 AM, Alan Conway <ac...@redhat.com> wrote:

> Overall it's good.
>
> Things to consider - none are essential:
>
> drop  'binding/', put the language bindings directly in the root dir. It's
> pretty obvious what they are - ruby, go, cpp etc.
>
> Possibility: a "c" or "core" subdir rather than having the core src/
> directly in root - clarify that the c-core is a separate "module". It is a
> runtime dependency for the bindings but still separate and self-contained.
> I'm not sure about this but it does seem more "balanced" somehow.
>

Taking these two together, I like the idea - I considered it myself but
ended up sticking with existing conventions.  I'd definitely be willing to
go in that direction.


> src/messenger still there - oversight, or do we need to hold onto this?
>

It's still used by one of the test tools.


> src/reactor - python is the only remaining user of this if we ditch
> perl/php, more reasons to fix that.
>

Agreed.


> Practical point - there may be some extra tweaks to keep our `go get` setup
> working when the go subdir moves. I don't think the move will have any
> immediate impact, but we may need care & updated instructions on the next
> merge out to the "go1" branch

Re: Proton C source reorg and removal of deprecated or obsolete code

Posted by Alan Conway <ac...@redhat.com>.
Overall it's good.

Things to consider - none are essential:

drop  'binding/', put the language bindings directly in the root dir. It's
pretty obvious what they are - ruby, go, cpp etc.

Possibility: a "c" or "core" subdir rather than having the core src/
directly in root - clarify that the c-core is a separate "module". It is a
runtime dependency for the bindings but still separate and self-contained.
I'm not sure about this but it does seem more "balanced" somehow.

src/messenger still there - oversight, or do we need to hold onto this?

src/reactor - python is the only remaining user of this if we ditch
perl/php, more reasons to fix that.

Practical point - there may be some extra tweaks to keep our `go get` setup
working when the go subdir moves. I don't think the move will have any
immediate impact, but we may need care & updated instructions on the next
merge out to the "go1" branch


On Thu, Mar 8, 2018 at 12:15 PM, Justin Ross <ju...@gmail.com> wrote:

> Hi, all.  After we split Proton J out of Proton, the existing Proton C
> source tree no longer made sense.  This proposed change moves the
> proton-c/* content to the top level and generally aligns the source tree
> with conventions we use in some of our other code bases.
>
> It also removes bindings, APIs, docs, and test code that have been
> deprecated for some time, are no longer used, or are not maintained.
>
> The tree after the reorg:
> https://github.com/ssorj/qpid-proton/tree/ssorj-reorganize-the-source-tree
>
> Pull requests (these build on each other):
> https://github.com/apache/qpid-proton/pull/136 - Remove deprecated
> bindings
> and APIs
> https://github.com/apache/qpid-proton/pull/138 - Remove obsolete docs and
> test code
> https://github.com/apache/qpid-proton/pull/140 - Reorganize the source
> tree
>
> CI results (passing apart from an unrelated OS X issue and a known
> intermittent failure on Windows):
> https://travis-ci.org/ssorj/qpid-proton
> https://ci.appveyor.com/project/ssorj/qpid-proton
>