Folks, thanks for the ideas here. Based on the suggestions provided, I'll
prepare a separate email with a list of ideas and propose some concrete
ideas for improving the way we collaborate on the project.

Kind regards

On Sat, Jun 24, 2023 at 7:06 AM Otavio Rodolfo Piske <angusyo...@gmail.com>
wrote:

> Andrea and Peter, I think you raised an important point about the CI:
> depending on what we decide, they are going to be even more critical to our
> workflow.
>
> I think the last few days have been outliers in terms of CI stability: the
> recent changes do touch on key parts of our build, so I think some level of
> instability it's OK until we sort out all the loose ends. We still have the
> eventual (OOM-related?) hang-up, but it seems to me that it's decreasing in
> frequency.
>
> In the end, I think if we adjust a bit the way we are working, it may even
> help with sorting out those instabilities: if we can bisect the code more
> easily, then it's going to be easier* to inspect those behaviors.
>
> *Obs. (OFF-TOPIC): In the future, we might even discuss with Infra about
> installing auto-bisect plugins on Jenkins or creating an auto-bisect job
> (I'll happily donate my scripts when we get to that point).
>
> Kind regards
>
> On Fri, Jun 23, 2023 at 5:19 PM Andrea Cosentino <anco...@gmail.com>
> wrote:
>
>> As of today, the CI build  (both Jenkins and Github action) is less
>> reliable than building locally.
>>
>> So, we could discuss if we could add some better rules in terms of
>> grouping
>> commits or use mandatory PRs, but I don't think we are at that level of
>> trust with CI.
>>
>> Il giorno ven 23 giu 2023 alle ore 17:13 Peter Palaga <ppal...@redhat.com
>> >
>> ha scritto:
>>
>> > Thanks a lot Otavio, for bringing this up!
>> >
>> > I can only second Nicolas that CI should not be circumvented unless
>> > there is a serious reason.
>> > Second, PRs should ideally contain one compilable commit per logical
>> > change. As long as there is a just a single such commit in a PR, then
>> > the CI can work as a good barrier against broken commits.
>> >
>> > Otherwise it is up to the PR author to make sure that the individual
>> > commits are compilable too. I personally always try honor this rule. If
>> > my PR contains multiple commits, I often take care to re-order and/or
>> > fixup via git rebase --interactive. The readability of the history and
>> > the time of my co-workers matter to me.
>> >
>> > Thanks,
>> >
>> > -- Peter
>> >
>> > On 22/06/2023 10:12, Nicolas Filotto wrote:
>> > > Hi,
>> > >
>> > > For me, the best you can do to avoid this kind of problem is to avoid
>> > committing directly into the target branch by always submitting a PR for
>> > any change. And then, once the build is green, merge the PR with "Squash
>> > and merge" which is the default action on Camel. The action "Rebase and
>> > merge" should be avoided since the build result reflects the final
>> state of
>> > the branch, not the intermediate states. In case you need some changes
>> to
>> > fix the build, make sure to re-synchronize the source branch with the
>> > target branch, especially in case the changes are not done on the same
>> day
>> > because the Camel branches are modified very frequently and each change
>> can
>> > potentially be in conflicts with yours.
>> > >
>> > > it is a quite cumbersome approach but I don't see any safer way.
>> > >
>> > > Regards,
>> > > Nicolas
>> > > ________________________________
>> > > From: Otavio Rodolfo Piske <angusyo...@gmail.com>
>> > > Sent: Thursday, June 22, 2023 08:53
>> > > To: dev@camel.apache.org <dev@camel.apache.org>
>> > > Subject: Re: Some thoughts on bisecting Camel and our git commit
>> > practices
>> > >
>> > > Hi,
>> > >
>> > > Release-tagged commits don't help here. The whole point of bisecting
>> is
>> > > finding out precisely which commit introduced a certain behavior or
>> bug,
>> > so
>> > > that I and other committers can diagnose, document and fix the
>> problem.
>> > > It's not possible to do that effectively with just release-tagged
>> > commits.
>> > >
>> > > Also, I don't think each commit needs to be "release quality": that
>> would
>> > > be too much right now. I do think, however, that each commit should be
>> > > compilable. Consider, for instance, the following commit pattern I
>> notice
>> > > when bisecting the code:
>> > >
>> > > commit1: TASK111: did some stuff  ---> not compilable
>> > > commit2: TASK111: did some stuff  ---> compilable
>> > > commit3: TASK111: did some stuff ---> not compilable
>> > > commit4: TASK111: did some stuff ---> compilable
>> > >
>> > > Git bisect run is smart enough to skip commit2 and commit3 if given a
>> > > proper exit code (that's what we do). However, the problem gets worse
>> > once
>> > > these compilable scripts start to pile up, such as:
>> > >
>> > > commit1: TASK111: did some stuff  ---> not compilable
>> > > commit2: TASK111: did some stuff  ---> compilable
>> > > commit3: TASK111: did some stuff ---> not compilable
>> > > commit4: TASK111: did some stuff ---> compilable
>> > > commit5: TASK222: did some stuff  ---> not compilable
>> > > commit6: TASK222: did some stuff  ---> compilable
>> > > commit7: TASK222: did some stuff ---> not compilable
>> > > commit8: TASK222: did some stuff ---> compilable
>> > >
>> > > At some point, the bisect execution runs out of skippable commits and
>> you
>> > > have to: a) test manually, b) restart the bisect operation with
>> different
>> > > good/bad commits, or c) investigate the list of skipped commits one by
>> > one.
>> > >
>> > > The same can happen when merging community contributions composed of
>> > > multiple commits.
>> > >
>> > > So, I think we can improve here by doing 2 things:
>> > >
>> > > 1. When commiting the work on a task, making sure that every commit is
>> > > compilable. For instance, in the pattern above, by squashing
>> > > commit1+commit2, commit3+4, etc.
>> > > 2. When merging community contributions with multiple PRs, squashing
>> the
>> > > contribution before merging - if suspicious that one or more of the
>> > commits
>> > > introduce uncompilable changes.
>> > >
>> > > If we start doing this now, bisecting will be much easier in the
>> future.
>> > >
>> > > Kind regards
>> > >
>> > > On Thu, Jun 22, 2023 at 8:08 AM Petr Kuzel <petrku...@eurofins.com
>> > .invalid>
>> > > wrote:
>> > >
>> > >> Hi Otavio,
>> > >>
>> > >> the codebase does not have the release quality
>> > >> after each commit. Test-driven development could
>> > >> even invite devs to separately commit failing tests
>> > >> as a proof they are effective.
>> > >>
>> > >> On contrary the release-tagged commits should
>> > >> be safe. Would not help you to focus
>> > >> on the release-tagged commits only, pls?
>> > >
>> > >
>> > >>    Hope it helps
>> > >>    Cc.
>> > >>
>> > >> --
>> > >>    Mr. Petr Kužel, Software Engineer
>> > >>    Eurofins International Support Services s.à r.l.
>> > >>    Val Fleuri 23
>> > >>    L-1526 LUXEMBOURG
>> > >>
>> > >> -----Original Message-----
>> > >> From: Otavio Rodolfo Piske <angusyo...@gmail.com>
>> > >> Sent: Wednesday, June 21, 2023 11:17
>> > >> To: dev <dev@camel.apache.org>
>> > >> Subject: Some thoughts on bisecting Camel and our git commit
>> practices
>> > >>
>> > >>
>> > >> Folks,
>> > >>
>> > >> You may have seen that PRs constantly report failures when testing
>> > changes
>> > >> on core. This is almost always caused by flaky tests.
>> > >>
>> > >> I have been trying to find the root causes of those flaky tests.
>> Quite
>> > >> often this involves going all the way to early versions of Camel 3 to
>> > find
>> > >> stable executions of those tests.
>> > >>
>> > >> The investigation itself is mostly automated by using git bisect run
>> ...
>> > >> This significantly improves the developer ability to find the root
>> > causes
>> > >> of issues.
>> > >>
>> > >> Despite all this automation, however, the task has been ... quite
>> > difficult
>> > >> and lengthy. Even considering the extensive resources I have access
>> to
>> > >> (thanks to my employer), bisecting a single test failure can take
>> > several
>> > >> *days*.
>> > >>
>> > >> In particular, this investigation has been difficult because we have
>> a
>> > huge
>> > >> amount of dirty commits on the tree: partially modified work,
>> > uncompilable
>> > >> changes, broken tests and more.
>> > >>
>> > >> While it's NOT my intention to suggest introducing/discussing a full
>> > blown
>> > >> clean commit policy, I do wonder if we have some room to discuss how
>> we
>> > can
>> > >> improve the way we work to ensure that the tree is compilable and
>> > somewhat
>> > >> testable (and, possibly, enforce that).
>> > >>
>> > >> We cannot fix the git history of the project, but we can ensure that
>> > future
>> > >> investigation can be made much easier in the future.
>> > >>
>> > >> So, folks, does anyone have any suggestions about how we could
>> improve
>> > >> here?
>> > >>
>> > >> Kind regards
>> > >> --
>> > >> Otavio R. Piske
>> > >>
>> >
>> https://urldefense.com/v3/__http://orpiske.net/__;!!CiXD_PY!SZvpton5vuSh5elDATUqZmerIhuL7ZGmoTwQB-66e3u34QRJzR2DoTvCjF3miU2oF4glDqKC5VnT439E0B0$
>> > >>
>> > >
>> > >
>> > > --
>> > > Otavio R. Piske
>> > >
>> >
>> https://urldefense.com/v3/__http://orpiske.net__;!!CiXD_PY!SZvpton5vuSh5elDATUqZmerIhuL7ZGmoTwQB-66e3u34QRJzR2DoTvCjF3miU2oF4glDqKC5VnTh1-lNIM$
>> > >
>> > > As a recipient of an email from the Talend Group, your personal data
>> > will be processed by our systems. Please see our Privacy Notice <
>> > https://www.talend.com/privacy-policy/> for more information about our
>> > collection and use of your personal information, our security practices,
>> > and your data protection rights, including any rights you may have to
>> > object to automated-decision making or profiling we use to analyze
>> support
>> > or marketing related communications. To manage or discontinue
>> promotional
>> > communications, use the communication preferences portal<
>> > https://info.talend.com/emailpreferencesen.html>. To exercise your data
>> > protection rights, use the privacy request form<
>> >
>> https://talend.my.onetrust.com/webform/ef906c5a-de41-4ea0-ba73-96c079cdd15a/b191c71d-f3cb-4a42-9815-0c3ca021704cl
>> >.
>> > Contact us here <https://www.talend.com/contact/> or by mail to either
>> of
>> > our co-headquarters: Talend, Inc.: 400 South El Camino Real, Ste 1400,
>> San
>> > Mateo, CA 94402; Talend SAS: 5/7 rue Salomon De Rothschild, 92150
>> Suresnes,
>> > France
>> > >
>> >
>> >
>>
>
>
> --
> Otavio R. Piske
> http://orpiske.net
>


-- 
Otavio R. Piske
http://orpiske.net

Reply via email to