Thank you for responding, If there's an option that Benedict has suggested (to allow folks who push mostly-final patches, and the folks who push rather-early patches and then update them continuously, to coexist and be able to quickly switch between configs) I'd be more in favour of this rather than just enabling a build/compile step for everyone.
On Wed, Oct 20, 2021 at 8:25 PM Andrés de la Peña <adelap...@apache.org> wrote: > Hi all, > > As Ekaterina has mentioned I’ll be OOO until Monday, and I won’t be able to > make any changes until then. > > Alex, I missed to answer your suggestion about building on every commit, > apologies for that. The discussion was open on multiple fronts and I > somehow missed that one. I can easily change it back to automatic builds on > Monday if we prefer to do so. > > The pre-commit workflows have a single button to start the build and all > the tests that were previously run automatically. If we had automatic > builds we would still have a button to start the tests. Thus, I think that > automatic builds in the pre-commit workflow would’t make a difference in > terms of usability, and we would be wasting resources in intermediate > commits. > > As for the workflows with separate approval steps, the automatic build > would save us a click at the cost of wasting resources in some cases. Since > the cost of building is not that high it might make more sense to have > automatic builds in these workflows. Alternatively, a detail that could > improve things a bit in the separate-tests workflows is making the approval > steps for running the tests depend on the approval for the build. That > wouldn’t save us any clicks but it would make impossible to miss the build > approval, since we would need to click it in order to enable the buttons > starting the tests. > > It would be really great if the build started when one approves a certain > test job, but as it has been mentioned that doesn’t seem possible with the > current CircleCI features. > > Having a config that entirely satisfies the needs of everyone doesn’t seem > possible, and I also think that we’ll eventually need better tooling to > generate the config file, although we still need to agree on a default > config. CASSANDRA-16989 has recently added flags to the config generation > script allowing to swap resources and specify the environment vars. We > should probably continue adding similar options to be able to manipulate > the approval steps, parallelism, etc. > > Regards, > > El El mié, 20 oct 2021 a las 18:03, bened...@apache.org < > bened...@apache.org> > escribió: > > > Perhaps instead of a one-size-fits-all policy we should look to improve > > scripting here anyway. We already have to overwrite the config file, it > > would seem easy enough to instead invoke a script that enables the > relevant > > workflows? > > > > If we choose to just stick with a single workflow, I don’t have a super > > strong preference for one approach or the other. > > > > From: Stefan Miklosovic <stefan.mikloso...@instaclustr.com> > > Date: Wednesday, 20 October 2021 at 16:58 > > To: dev@cassandra.apache.org <dev@cassandra.apache.org> > > Subject: Re: Save CircleCI resources with optional test jobs > > Hi Ekaterina, all, > > > > If you eventually decide to switch it to automatic build on push (I > > like how it is now though), I would appreciate it if there was some > > option in generation scripts (generate.sh) so I could just have some > > shortcut / alias which would disable this very easily. > > > > It would be very nice if there was also an option to specify > > parallelism for highres nodes. My workflow so far was to 1) copy > > highres to config.yml, open editor and replace "100" with "70" for > > parallelism value. I am not sure what plan you guys are on but we can > > at most spin sometime like 80 nodes or so at once. > > > > Thanks > > > > Stefan > > > > On Wed, 20 Oct 2021 at 16:14, Ekaterina Dimitrova <e.dimitr...@gmail.com > > > > wrote: > > > > > > Hi everyone, > > > > > > First of all, I know Andres is off these days so he might not be > > following > > > the thread today. I will try to clear the situation as the committer > who > > > approved the change. > > > > > > Alex, I would like to apologize to you! You are right, I personally > > didn’t > > > have your email (sometimes gmail plays games with the mailing list > > emails, > > > not sure why) and I assumed the lazy consensus. Andres sent email that > > this > > > was implemented a month after the discussion was open and no one > > responded > > > here during that time. In his latest email he pointed to the Slack > > > discussion that happened and where agreement was reached. > > > I see your email was sent two days after he said it is implemented. I > > guess > > > we had to be more explicit that this email announces lazy consensus. > > > > > > Anyway, I am really sorry your email was missed and please, believe me > > when > > > I say I would have considered it as the ticket was not committed yet at > > > that point! I am almost sure something similar happened to Andres > knowing > > > how extremely punctual and fair he is. > > > > > > The main goal was not to push on every commit as many times it would be > > > unnecessary waste of resources and spending credits. At the same time > new > > > workflows with one precommit button were added to ensure people can run > > all > > > tests we as a community require with one click before a commit. Links > > with > > > the different versions/suggestions of the workflow are published on the > > > ticket. > > > > > > Yes, now we need to click on the build. It was agreed that many times > > > people push even just to preserve intermediate work and continue later > > > without caring of build or anything. If for some reason it is important > > to > > > you or anyone else from the community to build on every commit, we can > > open > > > a ticket to change that. It will save a click or two in the case of the > > > in-jvm upgrade tests. I would like to point out that Andres was also > > > experimenting to ensure that the graph will be still as much readable > as > > > possible. > > > > > > Benedict, on your comment of feature request - we can do that. I am > also > > > sceptic as you if that will happen but this doesn’t mean we can’t give > > it a > > > try. Who knows, maybe others are also raising the topic and they might > > > consider it. > > > > > > Honestly, I personally support the current workflow and approval > required > > > but if it is not acceptable to others and skipping the build approval > > click > > > is what others would prefer, I will open a ticket to restore that part. > > > Please let me know and one more time, apologize for missing your email, > > > Alex. > > > > > > Best regards, > > > Ekaterina > > > > > > > > > > > > On Wed, 20 Oct 2021 at 9:01, bened...@apache.org <bened...@apache.org> > > > wrote: > > > > > > > I think this would be fine if there were a way for approval of later > > steps > > > > to trigger the build automatically. As it is we have to traverse the > > > > dependency graph manually, which is a bit weird. > > > > > > > > I can’t figure out a way to do this with the CircleCI API however. It > > > > might be a feature request, and perhaps we can at least trigger the > > build > > > > until we get that (which may never happen). > > > > > > > > From: Oleksandr Petrov <oleksandr.pet...@gmail.com> > > > > Date: Wednesday, 20 October 2021 at 13:35 > > > > To: dev <dev@cassandra.apache.org> > > > > Subject: Re: Save CircleCI resources with optional test jobs > > > > I thought this discussion was still ongoing, but it looks like > > > > CASSANDRA-16882 is now committed. > > > > > > > > Could you give some context on why at least compilation is not done > on > > > > every commit now? > > > > > > > > > > > > On Fri, Oct 8, 2021 at 4:12 PM Oleksandr Petrov < > > > > oleksandr.pet...@gmail.com> > > > > wrote: > > > > > > > > > I personally rarely push tickets/post a patch in an raw state, but > > since > > > > I > > > > > almost always have to approve jobs when it gets close to commit, I > > don't > > > > > mind also confirming utest runs. I'd say it'd be good to run at > very > > > > least > > > > > a compilation step on every commit. I think it's fine if > > > > dtests/utests/jvm > > > > > tests require approval. > > > > > > > > > > On Wed, Oct 6, 2021 at 4:22 PM Andrés de la Peña < > > adelap...@apache.org> > > > > > wrote: > > > > > > > > > >> Hello all, > > > > >> > > > > >> The changes in CircleCI proposed in the previous messages are > > > > implemented > > > > >> in CASSANDRA-16882. They try to include the feedback from both the > > > > >> reviewers and the Slack discussion at > > > > >> https://the-asf.slack.com/archives/CK23JSY2K/p1631627458109000. > > > > >> > > > > >> The patch modifies the CircleCI config to have two pairs of j8/j11 > > > > >> workflows: > > > > >> > > > > >> * The javaX_pre-commit_tests workflows are meant to be used when a > > patch > > > > >> is > > > > >> definitively ready for final review and/or commit. They have a > > single > > > > >> approval step that starts all the basic tests, including unit > tests, > > > > >> dtests, etc. Additionally, it has approval steps for those tests > > that > > > > are > > > > >> not generally required in every ticket, such as upgrade tests and > > the > > > > >> multiplexer. This pair of workflows is quite similar to what we > > > > currently > > > > >> have, and the main difference is that there is an approval step to > > start > > > > >> the build. > > > > >> > > > > >> * The javaX_separate_tests workflows are meant to be used in > > > > intermediate > > > > >> steps and special cases such as fixing flaky tests. All the jobs > in > > > > these > > > > >> workflows have an individual approval step, so one can run any > test > > job > > > > >> without wasting resources in the others. For example, it makes > > possible > > > > to > > > > >> repeatedly run a unit test without firing the entire JVM dtests. > > > > >> > > > > >> Here is an example of how the workflows would look like: > > > > >> > > > > >> > > > > > > > https://app.circleci.com/pipelines/github/adelapena/cassandra?branch=16882-option-7-trunk-v04 > > > > >> > > > > >> Hopefully this approach would help us to save resources in > > intermediate > > > > >> development steps and special cases, while keeping the current > > concept > > > > of > > > > >> mandatory tests. > > > > >> > > > > >> If no one disagrees with this approach I'll commit the changes in > a > > few > > > > >> days. > > > > >> > > > > >> On Fri, 27 Aug 2021 at 11:54, Andrés de la Peña < > > adelap...@apache.org> > > > > >> wrote: > > > > >> > > > > >> > Hi, > > > > >> > > > > > >> > CASSANDRA-16882 has patches for any of the mentioned > > configurations > > > > >> aimed > > > > >> > to save CircleCI resources. > > > > >> > > > > > >> > There are CircleCI runs showing how each approach would look > like, > > > > plus > > > > >> an > > > > >> > additional fourth option: > > > > >> > > > > > >> > 1. Make the entire workflow optional: > > > > >> > > > > > >> > > > > > > > https://app.circleci.com/pipelines/github/adelapena/cassandra/800/workflows/9cb8ca7b-ab57-431e-a22b-643d61c92c29 > > > > >> > 2. Make all the test jobs optional: > > > > >> > > > > > >> > > > > > > > https://app.circleci.com/pipelines/github/adelapena/cassandra/798/workflows/a859cfbc-fdf8-4468-beb9-b2ee17dc1ae3 > > > > >> > 3. Make all the mandatory test jobs depend on a single optional > > job: > > > > >> > > > > > >> > > > > > > > https://app.circleci.com/pipelines/github/adelapena/cassandra/802/workflows/0372f5d6-d1f0-4f0e-91a3-aa75a2712bae > > > > >> > 4. Combine 2 and 3 to have approval jobs for both individual > > tests and > > > > >> the > > > > >> > grouped mandatory tests: > > > > >> > > > > > >> > > > > > > > https://app.circleci.com/pipelines/github/adelapena/cassandra/803/workflows/08ae07d5-6a1e-4e5b-bc0c-32bdc9b9f190 > > > > >> > > > > > >> > I think that the fourth option gives us more flexibility, > because > > it > > > > >> > allows us to start any combination of tests we want while it > > keeps the > > > > >> > concept of required tests. > > > > >> > > > > > >> > On Thu, 12 Aug 2021 at 17:47, Andrés de la Peña < > > > > >> a.penya.gar...@gmail.com> > > > > >> > wrote: > > > > >> > > > > > >> >> Hello all, > > > > >> >> > > > > >> >> The current CircleCI configuration automatically runs the unit > > tests, > > > > >> JVM > > > > >> >> dtests and cqhshlib tests. This is done by default for every > > commit > > > > or, > > > > >> >> with some configuration, for every push. > > > > >> >> > > > > >> >> Along the lifecycle of a ticket it is quite frequent to have > > multiple > > > > >> >> commits and pushes, all running these test jobs. I'd say that > > > > >> frequently it > > > > >> >> is not necessary to run the tests for some of those > intermediate > > > > >> commits > > > > >> >> and pushes. For example, one can show proofs of concept, or > have > > > > >> multiple > > > > >> >> rounds of review before actually running the tests. Running the > > tests > > > > >> for > > > > >> >> every change can produce an unnecessary expense of CircleCI > > > > resources. > > > > >> >> > > > > >> >> I think we could make running those tests optional, as well as > > > > clearly > > > > >> >> specifying in the documentation what are the tests runs that > are > > > > >> mandatory > > > > >> >> before actually committing. We could do this in different ways: > > > > >> >> > > > > >> >> 1. Make the entire CircleCI workflow optional, so the build job > > > > >> requires > > > > >> >> manual approval. Once the build is approved the mandatory test > > jobs > > > > >> would > > > > >> >> be run without any further approval, exactly as it's currently > > done. > > > > >> >> > > > > >> >> 2. Make all the test jobs optional, so every test job requires > > manual > > > > >> >> approval, and the documentation specifies which tests are > > mandatory > > > > in > > > > >> the > > > > >> >> final steps of a ticket. > > > > >> >> > > > > >> >> 3. Make all the mandatory test jobs depend on a single optional > > job, > > > > so > > > > >> >> we have a single button to optionally run all the mandatory > > tests. > > > > >> >> > > > > >> >> I think any of these changes, or a combination of them, would > > > > >> >> significantly reduce the usage of resources without making > things > > > > less > > > > >> >> tested. The only downside I can think of is that we would need > > some > > > > >> >> additional clicks on the CircleCI GUI. What do you think? > > > > >> >> > > > > >> > > > > > >> > > > > > > > > > > > > > > > -- > > > > > alex p > > > > > > > > > > > > > > > > > -- > > > > alex p > > > > > > > > --------------------------------------------------------------------- > > To unsubscribe, e-mail: dev-unsubscr...@cassandra.apache.org > > For additional commands, e-mail: dev-h...@cassandra.apache.org > > > -- alex p