Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [iot-pmc] top-level GitHub project

So summing this all up, and only focusing on the topic of a dedicated organization, I don't really see the need for that.

(1) You can build with JIPP, so that should be fine. You can still have a Travis build in addition, so that others can use this. But the project default can be JIPP. And it can validate PRs as well.
(3) I am not really sure if those recipes belong in cyclonedds or not. In any case the project must be buildable without relying on conan, or bintray IMHO. And even if you want to store the recipes in cyclone, then you can do this in e.g. a dedicated cyclonedds-dependencies repository.

Aside from the question about the organization, a question to me would be how the project would ensure a vendor neutral approach to the management of binary artifacts? I, as a committer of cyclonedds, not being an adlink employee: how would I push new binaries into this bintray repository? Or set up a new job to do so?

On Thu, Nov 8, 2018 at 5:33 PM Jeroen Koekkoek <jeroen@xxxxxxxxxxx> wrote:
Hi Jens,

(3a) Yes, it's possible if they have the libraries installed on their
system and CMake can find them. But it's tricky to create them yourself
especially on Windows (Debug, Release, x86, x86_64, patches). Something
we rather not have potential contributors (or colleagues) go through.

(3b) The recipes are rather small and certainly wouldn't qualify as an
open source project in their own right. However, they are purposely
created for cyclonedds (CUnit got adopted by Bincrafters) and I think
the project should be able to exercise some level of control which
versions, binaries etc are used as long as they're not "official"
packages (as in adopted by Bincrafters or the Conan project itself).

(3c) The recipes themselves are automatically build and tested on both
Travis and AppVeyor, if successful, the artifacts are automatically
pushed to Bintray. There are a lot of custom scripts provided by
Bincrafters, an initiative to create recipes for many open source
libraries, that require a special repository layout etc. Something I
don't want to recreate myself.


To give an idea of how/when Conan comes into play.

---- with conan ----
$ pip install conan
$ mkdir cyclonedds/build
$ cd cyclonedds/build
$ conan install ..
$ cmake -DBUILD_TESTING=on ../src
$ cmake --build .
---- /with conan ----

---- without conan ----
>> Download, build and install CUnit (mostly available in distro
>> repositories, but not for Windows or macOS, Windows even needs some
>> patches)
>> Download, build and install Criterion (ppa available for Ubuntu, but a
>> nightmare for every other platform, official source tarball doesn't
>> include everything to build)
>> The same as above for all future dependencies, let's hope the user
>> built everything with the right flags etc.
>> Export paths for all dependencies
$ mkdir cyclonedds/build
$ cd cyclonedds/build
$ cmake -DBUILD_TESTING=on ../src
$ cmake --build .
---- /without conan ----

I know the "without conan" doesn't seem like a lot of work, it's just
two extra lines :), but trust me when I say it saves A LOT of time and
effort.

Cheers,
Jeroen


On 2018-11-08 16:37, Jens Reimann wrote:

> Hi Jeroen,
>
> regarding (3), I would like to understand:
>
> (a) if it is possible for people to build cyclonedds without having
> access to precompiled dependencies?
> (b) what would be the benefit of having an additional organization?
> (c) As this organization would be part of your project, why can't you
> store those dependencies in your project repository instead?
>
> Thanks
>
> Jens
>
> On Thu, Nov 8, 2018 at 1:57 PM Jeroen Koekkoek <jeroen@xxxxxxxxxxx>
> wrote:
>
>> Hi Kai,
>>
>> I too am sorry for taking this long to respond. It's not lack of
>> interest, but rather to get an idea first on how to proceed.
>>
>> (1) While it's not impossible for cyclonedds to use JIPP, using Travis
>> and AppVeyor is easier for developers that want to send us pull
>> requests
>> because they build their sources on the exact same platform using the
>> exact same build recipes and dependencies.
>>
>> (2) We're still looking into this, but we're probably going to fork
>> and
>> start the process for the CQ soon.
>>
>> (3) Build recipes for dependencies. We use Conan.io to manage build
>> dependencies for the platforms on which we build. This makes it
>> extremely easy for developers and users to simply get pre-compiled
>> dependencies by pulling them from Bintray (https://bintray.com/) if
>> they're not available on their system. Apart from that we have a
>> guarantee that the product is build on the "exact same" platform every
>> time because even the build dependencies are version controlled. I've
>> written a bunch of these recipes, so the source for the recipe is
>> "owned" by the project already, but it must not (and cannot) be stored
>> in the cyclonedds repository. Currently we provide them through a
>> GitHub
>> organization tied to the company I work for (ADLINK), but it would be
>> better if they're hosted with the project. We're going to be adding
>> more
>> and more of these recipes in the future as the number of dependencies
>> grows. Please see https://github.com/atolab/conan-criterion to get an
>> idea of what such a recipe looks like. I think maintaining them under
>> our own organization would be best.
>>
>> I'll get a bugzilla ticket created, let's continue the discussion
>> there
>> if there's still doubts wrt the validity of the request.
>>
>> Cheers,
>> Jeroen
>>
>> On 2018-10-31 11:37, Kai Kreuzer wrote:
>>
>>> Hi Jeroen,
>>>
>>> Sorry for my late reply on this.
>>> As an outcome of the PMC discussion, I have added a section about
>>> Github orgs here: https://wiki.eclipse.org/IoT/PMC#Project
>>>
>>> As you can see, there are no general requirements that would allow
>>> it,
>>> but decisions have to be taken on a case by case evaluation.
>>>
>>> So please let us again dive into your two arguments, why you are
>>> requesting such an org:
>>>
>>> (1) In general, the PMC is of the opinion that Eclipse projects
>>> should
>>> use the provided build infrastructure (i.e. JIPP). Note that it is
>>> possible to also use Windows nodes for JIPP. External services such
>>> as
>>> Travis should only be a last resort, if it isn't possible to use
>>> JIPP.
>>> It would therefore be nice if you could check whether you can do the
>>> builds on JIPP and if this isn't possible to give the concrete
>>> reasons
>>> for that.
>>>
>>> (2) As Wayne already stated: Any source code that is added in Eclipse
>>> project repositories IS source code of the Eclipse project. So you
>>> cannot maintain a fork (as part of your project) and continue to
>>> claim
>>> that it is merely a dependency of your project. The code would
>>> require
>>> to go through a full CQ as a code contribution to Eclipse. In any
>>> case,
>>> this should not require a dedicated Github org, but could be done as
>>> a
>>> sub-project in its own repo under the eclipse org.
>>>
>>> Best regards,
>>> Kai
>>>
>>> On 30. Oct 2018, at 15:18, Jeroen Koekkoek <jeroen@xxxxxxxxxxx>
>>> wrote:
>>>
>>> Hi All,
>>>
>>> Just curious what the outcome of the discussion regarding TLOrg's is.
>>> Perhaps I can read about it somewhere or a short summary with
>>> requirements etc can be given?
>>>
>>> Thanks in advance.
>>>
>>> Cheers,
>>> Jeroen
>>>
>>> On 2018-10-23 12:54, Wayne Beaton wrote:
>>>
>>> If you want to keep content under the project's control, it needs to
>>> become project code. The first step to do that is to convince the PMC
>>> that it makes sense to do so (i.e. convince them that forking is
>>> desirable and in the best interests of the project and the Eclipse
>>> community). Then you need to engage the IP Team to get their review
>>> and
>>> approval.
>>> HTH,
>>> Wayne
>>> On Mon, Oct 22, 2018 at 6:27 PM Jeroen Koekkoek <jeroen@xxxxxxxxxxx>
>>> wrote:
>>> Hi Kai,
>>> Well we need it primarily for our own Conan recipes (build dependency
>>> build recipes), currently six or so, and faster Travis and AppVeyor
>>> builds. The recipes are all written by me btw, so no forking involved
>>> there.
>>> That being said, and this just out of curiosity and trying to
>>> understand
>>> the reasons, mcpp is very likely to become a dependency for
>>> cyclonedds,
>>> one that we must have to do code generation. mcpp is a fine project,
>>> but
>>> it's not very actively maintained. I could just write a Conan recipe
>>> and
>>> keep some patches on the side, or I could fork it under the
>>> ADLINK-IST
>>> GitHub organization, but it all boils down to the same thing really.
>>> What's wrong with keeping a dependency directly under the projects
>>> control? Keeping some level of control over it is actually why I
>>> thought
>>> it would be a good idea.
>>> Cheers,
>>> Jeroen
>>> On 2018-10-22 21:04, Kai Kreuzer wrote:
>>> Hi Jeroen,
>>> Please wait with creating an according Bugzilla ticket - while it is
>>> in
>>> general technically possible, we would like to discuss this within
>>> the
>>> PMC (which is together at ECE this week).
>>> Also note that a TLOrg won't allow you to add a (2) forked
>>> sourceforge
>>> project, so this actually won't help you much (EMO, correct me, if I
>>> am
>>> wrong).
>>> Cheers,
>>> Kai
>>> Am 22.10.2018 um 18:12 schrieb Jeroen Koekkoek <jeroen@xxxxxxxxxxx>:
>>> Hi Wayne,
>>> Never mind. I saw a GitHub Organization request for a different
>>> project, so I know what to do now. Thanks for your help.
>>> Best regards,
>>> Jeroen
>>> P.S.
>>> Should anyone find this thread in search of the same information,
>>> here's an example of a BugZilla ticket requesting a GitHub
>>> Organization
>>> for a project: https://bugs.eclipse.org/bugs/show_bug.cgi?id=539829
>>> On 2018-10-22 17:45, Jeroen Koekkoek wrote:
>>> Hi Wayne,
>>> I take it you mean requesting another repository under the Eclipse
>>> organization? I can't find any bugs regarding the promotion to to a
>>> top-level GitHub project?
>>> Thanks in advance.
>>> Regards,
>>> Jeroen
>>> On 2018-10-22 16:50, Wayne Beaton wrote: We added this sort of
>>> support
>>> recently. Open a bug against Community/GitHub to ask the webmaster
>>> for
>>> assistance.
>>> Wayne
>>> On Mon, Oct 22, 2018, 14:29 Kai Kreuzer, <kai@xxxxxxxxxxx> wrote:
>>> Hi Jeroen,
>>> I very much doubt that this is possible. Afaik, ALL Eclipse projects
>>> are under the eclipse github org and that's mandatory. For a
>>> definitive
>>> answer on this, you might want to contact EMO.
>>> Note that it is possible to request additional repositories for your
>>> sub projects / components, though (see e.g.
>>> https://github.com/eclipse/smarthome-packaging-sample, which belongs
>>> to
>>> the SmartHome project, where the main repo is
>>> https://github.com/eclipse/smarthome) - simply create a Bugzilla
>>> issue
>>> for it and the webmasters will provision it for you.
>>> Regards,
>>> Kai
>>> Am 22.10.2018 um 12:04 schrieb Jeroen Koekkoek <jeroen@xxxxxxxxxxx>:
>>> Hi All,
>>> I've got a question regarding the possibility of making cyclonedds a
>>> top-level GitHub project. I'm not sure if this is the right list to
>>> ask
>>> that question, if it isn't, please let me know the right list. If it
>>> is, and I'm looking at the problem in the wrong way, please let me
>>> know
>>> too. It's just that making it a top-level project seems like the best
>>> solution.
>>> There's two reasons for me to want to promote it to a top-level
>>> GitHub
>>> project.
>>> 1. Faster Travis and AppVeyor builds. Right now builds for pull
>>> requests take a long time and that'll only get worse when more
>>> projects
>>> are going to join.
>>> 2. Dependencies. We're planning on implementing a better IDL compiler
>>> to get quicker build and drop the Java dependency. Because we're
>>> looking to implement support for more language bindings, now seems
>>> like
>>> the right time to do that. Now, the IDL compiler will need a
>>> preprocessor. We've more-or-less decided to go with mcpp
>>> (http://mcpp.sourceforge.net/). The product itself is hosted on
>>> SourceForge, which is a little slow and code is still hosted in svn.
>>> The biggest problem however is that the original author isn't doing
>>> any
>>> work on the project anymore and nobody can accept patches etc. For
>>> that
>>> reason we want to "fork" it (svn import on GitHub) to fix some small
>>> bugs etc. In my opinion hosting the project under a top-level
>>> cyclonedds GitHub project is the best place. That way it's neatly
>>> separated from the cyclonedds code while all members/privileges etc
>>> can
>>> be managed by the project leads and committers.
>>> Please let me know if it's possible or if there are better ways to go
>>> about this.
>>> Best regards,
>>> Jeroen Koekkoek
>>> _______________________________________________
>>> iot-pmc mailing list
>>> iot-pmc@xxxxxxxxxxx
>>> To change your delivery options, retrieve your password, or
>>> unsubscribe
>>> from this list, visit
>>> https://dev.eclipse.org/mailman/listinfo/iot-pmc
>>> _______________________________________________
>>> iot-pmc mailing list
>>> iot-pmc@xxxxxxxxxxx
>>> To change your delivery options, retrieve your password, or
>>> unsubscribe
>>> from this list, visit
>>> https://dev.eclipse.org/mailman/listinfo/iot-pmc
>>> _______________________________________________
>>> iot-pmc mailing list
>>> iot-pmc@xxxxxxxxxxx
>>> To change your delivery options, retrieve your password, or
>>> unsubscribe
>>> from this list, visit
>>> https://dev.eclipse.org/mailman/listinfo/iot-pmc
>>> _______________________________________________
>>> iot-pmc mailing list
>>> iot-pmc@xxxxxxxxxxx
>>> To change your delivery options, retrieve your password, or
>>> unsubscribe
>>> from this list, visit
>>> https://dev.eclipse.org/mailman/listinfo/iot-pmc
>>> _______________________________________________
>>> iot-pmc mailing list
>>> iot-pmc@xxxxxxxxxxx
>>> To change your delivery options, retrieve your password, or
>>> unsubscribe
>>> from this list, visit
>>> https://dev.eclipse.org/mailman/listinfo/iot-pmc
>>> _______________________________________________
>>> iot-pmc mailing list
>>> iot-pmc@xxxxxxxxxxx
>>> To change your delivery options, retrieve your password, or
>>> unsubscribe
>>> from this list, visit
>>> https://dev.eclipse.org/mailman/listinfo/iot-pmc
>>> _______________________________________________
>>> iot-pmc mailing list
>>> iot-pmc@xxxxxxxxxxx
>>> To change your delivery options, retrieve your password, or
>>> unsubscribe
>>> from this list, visit
>>> https://dev.eclipse.org/mailman/listinfo/iot-pmc
>> --
>> Wayne Beaton
>> Director of Open Source Projects | Eclipse Foundation, Inc. Meet us at
>> EclipseCon Europe 2018: LUDWIGSBURG, OCTOBER 23 - 25
>> _______________________________________________
>> iot-pmc mailing list
>> iot-pmc@xxxxxxxxxxx
>> To change your delivery options, retrieve your password, or
>> unsubscribe
>> from this list, visit
>> https://dev.eclipse.org/mailman/listinfo/iot-pmc
>> _______________________________________________
>> iot-pmc mailing list
>> iot-pmc@xxxxxxxxxxx
>> To change your delivery options, retrieve your password, or
>> unsubscribe
>> from this list, visit
>> https://www.eclipse.org/mailman/listinfo/iot-pmc
>> _______________________________________________
>> iot-pmc mailing list
>> iot-pmc@xxxxxxxxxxx
>> To change your delivery options, retrieve your password, or
>> unsubscribe
>> from this list, visit
>> https://www.eclipse.org/mailman/listinfo/iot-pmc
>> _______________________________________________
>> iot-pmc mailing list
>> iot-pmc@xxxxxxxxxxx
>> To change your delivery options, retrieve your password, or
>> unsubscribe from this list, visit
>> https://www.eclipse.org/mailman/listinfo/iot-pmc
>
> --
>
> Jens Reimann
> Senior Software Engineer / EMEA ENG Middleware
> Werner-von-Siemens-Ring 14
> 85630 Grasbrunn
> Germany
> phone: +49 89 2050 71286
> _____________________________________________________________________________
>
> Red Hat GmbH, www.de.redhat.com,
> Registered seat: Grasbrunn, Commercial register: Amtsgericht Muenchen,
> HRB 153243,
> Managing Directors: Paul Argiry, Charles Cachera, Michael Cunningham,
> Michael O'Neill
> _______________________________________________
> iot-pmc mailing list
> iot-pmc@xxxxxxxxxxx
> To change your delivery options, retrieve your password, or unsubscribe
> from this list, visit
> https://www.eclipse.org/mailman/listinfo/iot-pmc


--
Jens Reimann
Senior Software Engineer / EMEA ENG Middleware
Werner-von-Siemens-Ring 14
85630 Grasbrunn
Germany
phone: +49 89 2050 71286
_____________________________________________________________________________

Red Hat GmbH, www.de.redhat.com,
Registered seat: Grasbrunn, Commercial register: Amtsgericht Muenchen, HRB 153243,
Managing Directors: Paul Argiry, Charles Cachera, Michael Cunningham, Michael O'Neill

Back to the top