Discussion:
[etherlab-dev] Community contribution
Esben Haabendal
2018-02-28 12:48:45 UTC
Permalink
Hi all

In order to ease maintenance and improve the development of
etherlabmaster, I believe we need to make some changes to how things are
done.

In the current situation, it is not clear what can be done to get
patches merged to the official repository. So we are basically all
relying on Gavin maintaining his patchset, which he does based on the
default branch and backports from stable-1.5 branch.

The default branch is mostly unmaintained, last commit is from August
2017, and as far as I can see, the last patch coming from community
contribution (as in not from IgH) is dated back to April 2015.

The idea of viewing the default branch as "upstream" does not really
make sense, when you cannot actually get something "upstreamed" to it.

The only true upstream we have is currently Gavins patchset
https://sourceforge.net/u/uecasm/etherlab-patches/ci/default/tree/
However neither the patches nor the patchset is stable, in the sense
that future versions of the patchset may add, remove, reorder, or
modify existing patches
So our upstream is per definition not stable.

Note, this by no means a criticism of Gavins work. We have and are
still very pleased with the work he has done. I don't know what we
should have done without it for the last couple of years!

But I believe we can and should do better than that. Together with you,
Gavin.

Sending patches to an "unstable" patchstack is IMHO much harder than
what is usual for community FOSS projects. It is most likely keeping
some people from contributing their work back to the etherlabmaster
community.

And for those who do try to work actively with this model, it is placing
an unreasonable maintenance burden, as you have to be prepared for
continous rebasing your work, as the patchset is such a moving target.

I propose we switch from the current patchset approach, and start
cooperating via a GitHub project. Changes can then be sent to the
project in the form of a GitHub pull request, and this can be reviewed,
discussed and merged much simpler.

Compared to the current situation, it could be a replacement for the
patchset by Gavin. I expect that IgH (Florian) will continue maintaining
the stable-1.5 and default branch for its customers in the current
sourceforge mercurial repostiory. But it would ofcourse be nice if IgH
would be willing to work together with the etherlabmaster community yet
again, and they will be more than welcome to do that.

On the GitHub project, we could maintain a master branch which carries
the latest development version of our etherlabmaster, and one or more
stable branches.

With this as a platform, it should be possible to start making releases
(again). Putting a proper version number on the code, taking care of
API and ABI breakage, providing structured information about what
changed since last version, and with library ABI versioning managed for
released versions.

To ease sharing of code with IgH etherlabmaster, vendor branches should
be setup to track IgH stable-1.5 and default branches in the GitHub
project. Changes made by IgH can then either be cherry-picked or merged
from them.

If we do this, I hope it should be much more obvious for new-comers how
to work with and contribute to the etherlabmaster community.

As it is now, a typical new-comer will have a hard time finding out what
to do.

Just finding the correct "baseline" to start with is hard. Should you
use stable-1.5 branch, default branch, the full patchset on top of
default, or some combination of these?

And when you have made some changes based on the chosen baseline, how do
you send it "back"? Where and in which form? What can and should you
do to get it "merged", for whatever that might mean?

If you have some changes that have not been merged in the chosen
"baseline", and the baseline is updated, how do you integrate your
changes with the new baseline version?

Let's address this together by creating a GitHub project for maintaining
the etherlabmaster code together.

Contributing to etherlabmaster will be easy. You start by picking the
branch to work from, either a stable branch or the current development
branch. When you want to contribute changes back, you send a GitHub
pull request. When you want to integrate changes made to the branch you
use as baseline, you do a simple git merge or git rebase.

Well, this got **really** long.

If you made it all the way through it, please let me know what you
think.

If we setup a GitHub project, will you work with that? Do you prefer
the current setup? Or do you have other ideas for how we should work
together.

/Esben
Titouan Mesot
2018-03-01 08:45:58 UTC
Permalink
Hello,

Thanks for your email. I had the same concern when I started working with
Etherlab. I've also some patch (mostly EoE and SoE) but ... well I don't
want to add a patchset as it's done now. For me the main question remain how
to manage starting a new project on github but also keeping the sourceforge
branch ?

Do main contributors (Florian Pose, Philipp Weyer, Gavin ...) have an
opinion on that ?

Thanks to ask this question,
Best regards,

Titouan Mesot

-----Message d'origine-----
De : etherlab-dev [mailto:etherlab-dev-***@etherlab.org] De la part de
Esben Haabendal
Envoyé : mercredi 28 février 2018 13:49
À : etherlab-***@etherlab.org
Objet : [etherlab-dev] Community contribution

Hi all

In order to ease maintenance and improve the development of etherlabmaster,
I believe we need to make some changes to how things are done.

In the current situation, it is not clear what can be done to get patches
merged to the official repository. So we are basically all relying on Gavin
maintaining his patchset, which he does based on the default branch and
backports from stable-1.5 branch.

The default branch is mostly unmaintained, last commit is from August 2017,
and as far as I can see, the last patch coming from community contribution
(as in not from IgH) is dated back to April 2015.

The idea of viewing the default branch as "upstream" does not really make
sense, when you cannot actually get something "upstreamed" to it.

The only true upstream we have is currently Gavins patchset
https://sourceforge.net/u/uecasm/etherlab-patches/ci/default/tree/
However neither the patches nor the patchset is stable, in the sense
that future versions of the patchset may add, remove, reorder, or
modify existing patches
So our upstream is per definition not stable.

Note, this by no means a criticism of Gavins work. We have and are still
very pleased with the work he has done. I don't know what we should have
done without it for the last couple of years!

But I believe we can and should do better than that. Together with you,
Gavin.

Sending patches to an "unstable" patchstack is IMHO much harder than what is
usual for community FOSS projects. It is most likely keeping some people
from contributing their work back to the etherlabmaster community.

And for those who do try to work actively with this model, it is placing an
unreasonable maintenance burden, as you have to be prepared for continous
rebasing your work, as the patchset is such a moving target.

I propose we switch from the current patchset approach, and start
cooperating via a GitHub project. Changes can then be sent to the project
in the form of a GitHub pull request, and this can be reviewed, discussed
and merged much simpler.

Compared to the current situation, it could be a replacement for the
patchset by Gavin. I expect that IgH (Florian) will continue maintaining the
stable-1.5 and default branch for its customers in the current sourceforge
mercurial repostiory. But it would ofcourse be nice if IgH would be willing
to work together with the etherlabmaster community yet again, and they will
be more than welcome to do that.

On the GitHub project, we could maintain a master branch which carries the
latest development version of our etherlabmaster, and one or more stable
branches.

With this as a platform, it should be possible to start making releases
(again). Putting a proper version number on the code, taking care of API
and ABI breakage, providing structured information about what changed since
last version, and with library ABI versioning managed for released versions.

To ease sharing of code with IgH etherlabmaster, vendor branches should be
setup to track IgH stable-1.5 and default branches in the GitHub project.
Changes made by IgH can then either be cherry-picked or merged from them.

If we do this, I hope it should be much more obvious for new-comers how to
work with and contribute to the etherlabmaster community.

As it is now, a typical new-comer will have a hard time finding out what to
do.

Just finding the correct "baseline" to start with is hard. Should you use
stable-1.5 branch, default branch, the full patchset on top of default, or
some combination of these?

And when you have made some changes based on the chosen baseline, how do you
send it "back"? Where and in which form? What can and should you do to get
it "merged", for whatever that might mean?

If you have some changes that have not been merged in the chosen "baseline",
and the baseline is updated, how do you integrate your changes with the new
baseline version?

Let's address this together by creating a GitHub project for maintaining the
etherlabmaster code together.

Contributing to etherlabmaster will be easy. You start by picking the
branch to work from, either a stable branch or the current development
branch. When you want to contribute changes back, you send a GitHub pull
request. When you want to integrate changes made to the branch you use as
baseline, you do a simple git merge or git rebase.

Well, this got **really** long.

If you made it all the way through it, please let me know what you think.

If we setup a GitHub project, will you work with that? Do you prefer the
current setup? Or do you have other ideas for how we should work together.

/Esben
Esben Haabendal
2018-03-02 09:58:54 UTC
Permalink
Hi Titouan
Post by Titouan Mesot
Thanks for your email. I had the same concern when I started working with
Etherlab. I've also some patch (mostly EoE and SoE) but ... well I don't
want to add a patchset as it's done now. For me the main question remain how
to manage starting a new project on github but also keeping the sourceforge
branch ?
That naturally depends on how Florian decides to work.

Worst-case (i.e. IgH continues to focus on their own work), we can
cherry-pick changes from their repo if/when that benefits our work.

But unless the IgH managed repository starts to accept community
contribution again, or we limit size of our "patchset", and thus limit
the amount of work we allow ourselves to do, it will at some point in
time become less relevant or realistic to cherry-pick from one
repository to the other. It will end up as two forks.

But by deciding against forking, when not being able to get changes
merged, is practically the same as deciding not to be able to improve
the code.
Post by Titouan Mesot
Do main contributors (Florian Pose, Philipp Weyer, Gavin ...) have an
opinion on that ?
I really hope they do, and hope they will participate in the discussion
here.
Post by Titouan Mesot
Thanks to ask this question,
Thanks for voicing your opinion :)

/Esben
Florian Pose
2018-03-05 09:18:27 UTC
Permalink
Hello all,
Post by Esben Haabendal
Post by Titouan Mesot
Do main contributors (Florian Pose, Philipp Weyer, Gavin ...) have an
opinion on that ?
I really hope they do, and hope they will participate in the discussion
here.
sure we have. ;-)

The goal must be to maintain one source that as-many-as-possible users
can live with. I understand that the current situation (with different
versions of patchsets) is not satisfactory.

From the IgH point-of-view we have the stable-1.5 branch that we see as
matured software and that we use heavily in our everyday projects. This
branch nearly contains everything *we* need (except for some native
drivers that are more up-to-date).

The other side is (and this is what was the goal from beginning) that
the master (and moreover all other software within the EtherLab project)
should be useful for others, which is certainly is, but one can see from
the discussions and the patches, that it does not fit everyone's needs.

The reason that I do not just pull the whole patchset in the default
branch (for example) is that I'm not hundred percent convinced of every
single patch (or at least I do not understand why it is necessary),
others I don't like because they break compatibility.

There is an idea in my mind that came up some time ago, and I think it
would make sense right now: What do you guys think about some kind of
EtherCAT conference? We should bring developers (physically) together
taking two or three days of time to discuss patches and opinions, make
plans for the future and work on integrating the patches. I'm thinking
of a group of a handful developers (maybe Gavin, Graeme, Esben, ... )
that are deeply involved.

Naturally I would propose the IgH headquarters in Essen, Germany to be
the location. I don't know how hard it is for you to get here, or it is
even possible. What I could also imagine, is some people here and some
by video conference, but I like the thought of meeting physically.

What do you think about it?
--
Best regards,
Florian

------------------------------------------------------------------------

Dipl.-Ing. (FH) Florian Pose
***@igh.de
Tel.: +49 201 / 36014-13

Ingenieurgemeinschaft IgH
Gesellschaft für Ingenieurleistungen mbH
Heinz-Bäcker-Str. 34
D-45356 Essen

Amtsgericht Essen HRB 11500
USt-Id.-Nr.: DE 174 626 722
Geschäftsführung:
- Dr.-Ing. T. Finke,
- Dr.-Ing. W. Hagemeister
Tel.: +49 201 / 360-14-0
http://www.igh.de

GnuPG key: CCA047CC 2007-12-18 [expires: 2022-01-31]
Fingerprint: 0081 4005 FE9F 73FF 4BDA A409 0011 4E20 CCA0 47CC

------------------------------------------------------------------------
Martin Troxler
2018-03-05 10:21:06 UTC
Permalink
Hello all,

Several years ago, we were working together with Florian Pose in the development of the etherlab and pushed a lot of patches back into the upstream repository.

Then, at some point, some of our own needs required patches that were not accepted by Florian. Since then our own version departed in some points from the upstream repository.
But we are not happy with this situation, because we think that we will benefit from the community and vice versa and we are thinking about ways to publish our version.

Today, we are working on encapsulating the master code so that it can run within userspace, because this will greatly simplify deployment and version handling.

I think it would be a great idea to meet at such a etherlab related ethercat conference.

Regards
Martin Troxler


On 05.03.2018 10:18, Florian Pose wrote:

Hello all,

On Fri, Mar 02, 2018 at 10:58:54AM +0100, Esben Haabendal wrote:


Do main contributors (Florian Pose, Philipp Weyer, Gavin ...) have an
opinion on that ?


I really hope they do, and hope they will participate in the discussion
here.


sure we have. ;-)

The goal must be to maintain one source that as-many-as-possible users
can live with. I understand that the current situation (with different
versions of patchsets) is not satisfactory.

From the IgH point-of-view we have the stable-1.5 branch that we see as
matured software and that we use heavily in our everyday projects. This
branch nearly contains everything *we* need (except for some native
drivers that are more up-to-date).

The other side is (and this is what was the goal from beginning) that
the master (and moreover all other software within the EtherLab project)
should be useful for others, which is certainly is, but one can see from
the discussions and the patches, that it does not fit everyone's needs.

The reason that I do not just pull the whole patchset in the default
branch (for example) is that I'm not hundred percent convinced of every
single patch (or at least I do not understand why it is necessary),
others I don't like because they break compatibility.

There is an idea in my mind that came up some time ago, and I think it
would make sense right now: What do you guys think about some kind of
EtherCAT conference? We should bring developers (physically) together
taking two or three days of time to discuss patches and opinions, make
plans for the future and work on integrating the patches. I'm thinking
of a group of a handful developers (maybe Gavin, Graeme, Esben, ... )
that are deeply involved.

Naturally I would propose the IgH headquarters in Essen, Germany to be
the location. I don't know how hard it is for you to get here, or it is
even possible. What I could also imagine, is some people here and some
by video conference, but I like the thought of meeting physically.

What do you think about it?






_______________________________________________
etherlab-dev mailing list
etherlab-***@etherlab.org<mailto:etherlab-***@etherlab.org>
http://lists.etherlab.org/mailman/listinfo/etherlab-dev


Note:

This e-mail is for the named person's use only. It may contain confidential and/or privileged information. If you have received this e-mail in error, please notify the sender immediately and delete the material from any system. Any unauthorized copying, disclosure, distribution or other use of this information by persons or entities other than the intended recipient is prohibited.

Thank You.
Esben Haabendal
2018-03-05 10:26:25 UTC
Permalink
Hi Florian

Thanks for joining this discussion :)
Post by Florian Pose
Hello all,
Post by Esben Haabendal
Post by Titouan Mesot
Do main contributors (Florian Pose, Philipp Weyer, Gavin ...) have an
opinion on that ?
I really hope they do, and hope they will participate in the discussion
here.
sure we have. ;-)
The goal must be to maintain one source that as-many-as-possible users
can live with. I understand that the current situation (with different
versions of patchsets) is not satisfactory.
From the IgH point-of-view we have the stable-1.5 branch that we see as
matured software and that we use heavily in our everyday projects. This
branch nearly contains everything *we* need (except for some native
drivers that are more up-to-date).
The other side is (and this is what was the goal from beginning) that
the master (and moreover all other software within the EtherLab project)
should be useful for others, which is certainly is, but one can see from
the discussions and the patches, that it does not fit everyone's needs.
True. While I am sure we can and should work on this, it might not
always be possible to fit everyone's needs exactly. Compromises might
be needed, or given enough discussions, we can hopefully find a path
when such problems arise.
Post by Florian Pose
The reason that I do not just pull the whole patchset in the default
branch (for example) is that I'm not hundred percent convinced of every
single patch (or at least I do not understand why it is necessary),
others I don't like because they break compatibility.
Sounds fair. It might not be the best idea to pull in the whole
patchset as it is. But we should strive to merge enough changes, so
that such out-of-tree patchsets are not needed anymore.

Let's start to work on that :)
Post by Florian Pose
There is an idea in my mind that came up some time ago, and I think it
would make sense right now: What do you guys think about some kind of
EtherCAT conference? We should bring developers (physically) together
taking two or three days of time to discuss patches and opinions, make
plans for the future and work on integrating the patches. I'm thinking
of a group of a handful developers (maybe Gavin, Graeme, Esben, ... )
that are deeply involved.
Great idea! We have been thinking about the exact same thing for some
time now here at DEIF. We definitely would like to participate in
something that.
Post by Florian Pose
Naturally I would propose the IgH headquarters in Essen, Germany to be
the location. I don't know how hard it is for you to get here, or it is
even possible.
That should be possible.
Post by Florian Pose
What I could also imagine, is some people here and some by video
conference, but I like the thought of meeting physically.
I would strongly prefer a physical meeting.
Post by Florian Pose
What do you think about it?
Let's do it.

/Esben
Graeme Foot
2018-03-06 05:26:50 UTC
Permalink
Hi,

I would also be interested in an etherlab related ethercat conference, but it's unlikely that I would be able to get to it. I'm based in New Zealand.

My best chance of getting to that part of the world (though very small) is that I could be able to go to Hannover Messe in 2019, though that is probably too far away. There is an even smaller chance I could get to the 2018 Hannover Messe, but that may be too soon (23-27 April).

Regards,
Graeme.


-----Original Message-----
From: etherlab-dev [mailto:etherlab-dev-***@etherlab.org] On Behalf Of Florian Pose
Sent: Monday, 5 March 2018 10:18 PM
To: etherlab-***@etherlab.org
Subject: Re: [etherlab-dev] Community contribution

Hello all,
Post by Esben Haabendal
Post by Titouan Mesot
Do main contributors (Florian Pose, Philipp Weyer, Gavin ...) have
an opinion on that ?
I really hope they do, and hope they will participate in the
discussion here.
sure we have. ;-)

The goal must be to maintain one source that as-many-as-possible users can live with. I understand that the current situation (with different versions of patchsets) is not satisfactory.

From the IgH point-of-view we have the stable-1.5 branch that we see as matured software and that we use heavily in our everyday projects. This branch nearly contains everything *we* need (except for some native drivers that are more up-to-date).

The other side is (and this is what was the goal from beginning) that the master (and moreover all other software within the EtherLab project) should be useful for others, which is certainly is, but one can see from the discussions and the patches, that it does not fit everyone's needs.

The reason that I do not just pull the whole patchset in the default branch (for example) is that I'm not hundred percent convinced of every single patch (or at least I do not understand why it is necessary), others I don't like because they break compatibility.

There is an idea in my mind that came up some time ago, and I think it would make sense right now: What do you guys think about some kind of EtherCAT conference? We should bring developers (physically) together taking two or three days of time to discuss patches and opinions, make plans for the future and work on integrating the patches. I'm thinking of a group of a handful developers (maybe Gavin, Graeme, Esben, ... ) that are deeply involved.

Naturally I would propose the IgH headquarters in Essen, Germany to be the location. I don't know how hard it is for you to get here, or it is even possible. What I could also imagine, is some people here and some by video conference, but I like the thought of meeting physically.

What do you think about it?


--
Best regards,
Florian

------------------------------------------------------------------------

Dipl.-Ing. (FH) Florian Pose
***@igh.de
Tel.: +49 201 / 36014-13

Ingenieurgemeinschaft IgH
Gesellschaft für Ingenieurleistungen mbH Heinz-Bäcker-Str. 34
D-45356 Essen

Amtsgericht Essen HRB 11500
USt-Id.-Nr.: DE 174 626 722
Geschäftsführung:
- Dr.-Ing. T. Finke,
- Dr.-Ing. W. Hagemeister
Tel.: +49 201 / 360-14-0
http://www.igh.de

GnuPG key: CCA047CC 2007-12-18 [expires: 2022-01-31]
Fingerprint: 0081 4005 FE9F 73FF 4BDA A409 0011 4E20 CCA0 47CC

------------------------------------------------------------------------
Gavin Lambert
2018-03-16 01:03:05 UTC
Permalink
My apologies for the delayed response; I've recently switched email providers and this mailing list always seems to annoy our servers for some reason.

I'm also based in New Zealand and don't really travel all that much, so I'm not likely to get to a physical conference.


Having said that, I would love to get more of the patches in the patchset included upstream where possible -- the main reason why it's based on the default branch rather than the stable branch is because some of the patches from past versions of the patchset have already been merged to default. This is also why I've structured it the way I have, with bugfixes separate from new features, and (theoretically at least) ordered by importance and intended merging order. (Though I've perhaps been less aggressive in reordering patches than I should have, to reduce churn.)

I've also strived to introduce configure options or other easily togglable settings for some of the more niche or controversial functionality. This is also the reason why it's a patchset rather than a full fork, so that it should be easier to merge into upstream Mercurial. (And at least one other person has made a full fork available for the people who prefer that.)

I've tried to minimise compatibility breakage and indeed in the current version of the patchset I don't think there is any hard breakage (beyond unavoidable changes to ioctls, which the readme and version detection addresses).

As always, I welcome suggestions for changes to or alternate orderings of the patches that might make them easier to merge upstream, either in whole or in part.


For the record, regarding the patches base/0017 and base/0018 that seem particularly in contention at the moment: they were originally submitted by Knud Baastrup (included in his series of patches to mailbox functionality, which I feel is critically important) -- I'm not sure if he's still around, but perhaps he could further explain the motivation?

I do have some reservations about them as they do contradict the core Etherlab documented policy of requiring application-level locks when running multiple realtime tasks -- and my own applications use just one realtime task and don't use EoE so they do not require any additional locking. But they seemed valuable to retain specifically for the case of a pure userspace application that wants to use EoE, since in this scenario it is not possible to supply callbacks to provide the necessary locking for EoE (unless I've missed something?). This is the main reason that I have retained them, although I did rewrite them a couple of times to make the locking optional for RTDM applications, where it is counterproductive. I welcome alternative suggestions for handling these cases as well.

I have not yet had time to fully review Graeme Foot's latest EoE patches, so I haven't integrated them yet, but they do seem like a step towards treating EoE as a first-class task explicitly managed by the application (as if they were a separate domain), which in turn could perhaps be extended to pure userspace applications. This might perhaps be another path towards integrating EoE in a way that doesn't require these additional lock patches.
Post by Graeme Foot
-----Original Message-----
From: Graeme Foot
Sent: Tuesday, 6 March 2018 18:27
Subject: Re: [etherlab-dev] Community contribution
Hi,
I would also be interested in an etherlab related ethercat conference, but it's
unlikely that I would be able to get to it. I'm based in New Zealand.
My best chance of getting to that part of the world (though very small) is that
I could be able to go to Hannover Messe in 2019, though that is probably too
far away. There is an even smaller chance I could get to the 2018 Hannover
Messe, but that may be too soon (23-27 April).
Regards,
Graeme.
-----Original Message-----
From: Florian Pose
Sent: Monday, 5 March 2018 10:18 PM
Subject: Re: [etherlab-dev] Community contribution
Hello all,
Post by Esben Haabendal
Post by Titouan Mesot
Do main contributors (Florian Pose, Philipp Weyer, Gavin ...) have
an opinion on that ?
I really hope they do, and hope they will participate in the
discussion here.
sure we have. ;-)
The goal must be to maintain one source that as-many-as-possible users can
live with. I understand that the current situation (with different versions of
patchsets) is not satisfactory.
From the IgH point-of-view we have the stable-1.5 branch that we see as
matured software and that we use heavily in our everyday projects. This
branch nearly contains everything *we* need (except for some native
drivers that are more up-to-date).
The other side is (and this is what was the goal from beginning) that the
master (and moreover all other software within the EtherLab project) should
be useful for others, which is certainly is, but one can see from the
discussions and the patches, that it does not fit everyone's needs.
The reason that I do not just pull the whole patchset in the default branch
(for example) is that I'm not hundred percent convinced of every single
patch (or at least I do not understand why it is necessary), others I don't like
because they break compatibility.
There is an idea in my mind that came up some time ago, and I think it would
make sense right now: What do you guys think about some kind of EtherCAT
conference? We should bring developers (physically) together taking two or
three days of time to discuss patches and opinions, make plans for the future
and work on integrating the patches. I'm thinking of a group of a handful
developers (maybe Gavin, Graeme, Esben, ... ) that are deeply involved.
Naturally I would propose the IgH headquarters in Essen, Germany to be the
location. I don't know how hard it is for you to get here, or it is even possible.
What I could also imagine, is some people here and some by video
conference, but I like the thought of meeting physically.
What do you think about it?
--
Best regards,
Florian
------------------------------------------------------------------------
Dipl.-Ing. (FH) Florian Pose
Tel.: +49 201 / 36014-13
Ingenieurgemeinschaft IgH
Gesellschaft für Ingenieurleistungen mbH Heinz-Bäcker-Str. 34
D-45356 Essen
Amtsgericht Essen HRB 11500
USt-Id.-Nr.: DE 174 626 722
- Dr.-Ing. T. Finke,
- Dr.-Ing. W. Hagemeister
Tel.: +49 201 / 360-14-0
http://www.igh.de
GnuPG key: CCA047CC 2007-12-18 [expires: 2022-01-31]
Fingerprint: 0081 4005 FE9F 73FF 4BDA A409 0011 4E20 CCA0 47CC
------------------------------------------------------------------------
_______________________________________________
etherlab-dev mailing list
http://lists.etherlab.org/mailman/listinfo/etherlab-dev
Knud Baastrup
2018-03-19 08:59:41 UTC
Permalink
Hello,

Yes, I am still around - I am actually working together with Esben Haabendal here in Denmark.

The patches base/0017 and base/0018 is not related to the other mailbox patches. I agree in your reservations about these patches and that we need to work towards a better solution that can fit us all.


Best regards
Knud Baastrup


-----Original Message-----
From: Gavin Lambert <***@tomra.com>
Sent: 16. marts 2018 02:03
To: Graeme Foot <***@touchcut.com>; Florian Pose <***@igh.de>; etherlab-***@etherlab.org
Cc: Knud Baastrup <***@deif.com>
Subject: RE: [etherlab-dev] Community contribution

My apologies for the delayed response; I've recently switched email providers and this mailing list always seems to annoy our servers for some reason.

I'm also based in New Zealand and don't really travel all that much, so I'm not likely to get to a physical conference.


Having said that, I would love to get more of the patches in the patchset included upstream where possible -- the main reason why it's based on the default branch rather than the stable branch is because some of the patches from past versions of the patchset have already been merged to default. This is also why I've structured it the way I have, with bugfixes separate from new features, and (theoretically at least) ordered by importance and intended merging order. (Though I've perhaps been less aggressive in reordering patches than I should have, to reduce churn.)

I've also strived to introduce configure options or other easily togglable settings for some of the more niche or controversial functionality. This is also the reason why it's a patchset rather than a full fork, so that it should be easier to merge into upstream Mercurial. (And at least one other person has made a full fork available for the people who prefer that.)

I've tried to minimise compatibility breakage and indeed in the current version of the patchset I don't think there is any hard breakage (beyond unavoidable changes to ioctls, which the readme and version detection addresses).

As always, I welcome suggestions for changes to or alternate orderings of the patches that might make them easier to merge upstream, either in whole or in part.


For the record, regarding the patches base/0017 and base/0018 that seem particularly in contention at the moment: they were originally submitted by Knud Baastrup (included in his series of patches to mailbox functionality, which I feel is critically important) -- I'm not sure if he's still around, but perhaps he could further explain the motivation?

I do have some reservations about them as they do contradict the core Etherlab documented policy of requiring application-level locks when running multiple realtime tasks -- and my own applications use just one realtime task and don't use EoE so they do not require any additional locking. But they seemed valuable to retain specifically for the case of a pure userspace application that wants to use EoE, since in this scenario it is not possible to supply callbacks to provide the necessary locking for EoE (unless I've missed something?). This is the main reason that I have retained them, although I did rewrite them a couple of times to make the locking optional for RTDM applications, where it is counterproductive. I welcome alternative suggestions for handling these cases as well.

I have not yet had time to fully review Graeme Foot's latest EoE patches, so I haven't integrated them yet, but they do seem like a step towards treating EoE as a first-class task explicitly managed by the application (as if they were a separate domain), which in turn could perhaps be extended to pure userspace applications. This might perhaps be another path towards integrating EoE in a way that doesn't require these additional lock patches.
Post by Graeme Foot
-----Original Message-----
From: Graeme Foot
Sent: Tuesday, 6 March 2018 18:27
Subject: Re: [etherlab-dev] Community contribution
Hi,
I would also be interested in an etherlab related ethercat conference,
but it's unlikely that I would be able to get to it. I'm based in New Zealand.
My best chance of getting to that part of the world (though very
small) is that I could be able to go to Hannover Messe in 2019, though
that is probably too far away. There is an even smaller chance I
could get to the 2018 Hannover Messe, but that may be too soon (23-27 April).
Regards,
Graeme.
-----Original Message-----
From: Florian Pose
Sent: Monday, 5 March 2018 10:18 PM
Subject: Re: [etherlab-dev] Community contribution
Hello all,
Post by Esben Haabendal
Post by Titouan Mesot
Do main contributors (Florian Pose, Philipp Weyer, Gavin ...) have
an opinion on that ?
I really hope they do, and hope they will participate in the
discussion here.
sure we have. ;-)
The goal must be to maintain one source that as-many-as-possible users
can live with. I understand that the current situation (with different
versions of
patchsets) is not satisfactory.
From the IgH point-of-view we have the stable-1.5 branch that we see
as matured software and that we use heavily in our everyday projects.
This branch nearly contains everything *we* need (except for some
native drivers that are more up-to-date).
The other side is (and this is what was the goal from beginning) that
the master (and moreover all other software within the EtherLab
project) should be useful for others, which is certainly is, but one
can see from the discussions and the patches, that it does not fit everyone's needs.
The reason that I do not just pull the whole patchset in the default
branch (for example) is that I'm not hundred percent convinced of
every single patch (or at least I do not understand why it is
necessary), others I don't like because they break compatibility.
There is an idea in my mind that came up some time ago, and I think it
would make sense right now: What do you guys think about some kind of
EtherCAT conference? We should bring developers (physically) together
taking two or three days of time to discuss patches and opinions, make
plans for the future and work on integrating the patches. I'm thinking
of a group of a handful developers (maybe Gavin, Graeme, Esben, ... ) that are deeply involved.
Naturally I would propose the IgH headquarters in Essen, Germany to be
the location. I don't know how hard it is for you to get here, or it is even possible.
What I could also imagine, is some people here and some by video
conference, but I like the thought of meeting physically.
What do you think about it?
--
Best regards,
Florian
----------------------------------------------------------------------
--
Dipl.-Ing. (FH) Florian Pose
Tel.: +49 201 / 36014-13
Ingenieurgemeinschaft IgH
Gesellschaft für Ingenieurleistungen mbH Heinz-Bäcker-Str. 34
D-45356 Essen
Amtsgericht Essen HRB 11500
USt-Id.-Nr.: DE 174 626 722
- Dr.-Ing. T. Finke,
- Dr.-Ing. W. Hagemeister
Tel.: +49 201 / 360-14-0
http://www.igh.de
GnuPG key: CCA047CC 2007-12-18 [expires: 2022-01-31]
Fingerprint: 0081 4005 FE9F 73FF 4BDA A409 0011 4E20 CCA0 47CC
----------------------------------------------------------------------
--
_______________________________________________
etherlab-dev mailing list
http://lists.etherlab.org/mailman/listinfo/etherlab-dev
Loading...