sorry, hit send early. ant test is an interesting one as it seems impractical to run all tests sequentially, but somebody may want to I suppose.
On Thu, Jul 6, 2023 at 11:53 AM Jon Meredith <jonmered...@apache.org> wrote: > I think the -Dno-blah settings have usability issues. As they look at > the property name, not the value, you cannot override them or default > them with ANT_ARGS or by importing to another ant build file. The way > rat.skip does it seems much better using configured value. > > Ideally, I would like an easy/fast configuration to set a default for > checks that slow up the compilation/test cycle locally to be able to > iterate quickly compile and deal with javadoc/checkstyle comments when > they're ready to commit, or opt into them on the commandline when > needed. > > e.g. > export ANT_ARGS="-Dcheckstyle.default=skip -Djavadoc.default=skip" > ant # should just compile, no checkstyle/javadoc etc > ant checkstyle # explicitly requested, run checkstyle > > Similarly I'd like to have the option to configure any CI system I run so > all > non-execution essential checks run in their own pipeline and fail the > build if there's a problem, but still run the other test targets despite > violations. Each builder wasted the time running the checks that only > need to happen once and you didn't get feedback about your tests that > could have run. Of course not everybody may want that and the main > Apache Cassandra CI may only want to run tests for checked commits > for resource reasons. > > Also,as a minor nuisance, if you forget the =true as in the examples, > ant consumes the next argument as the value, so "ant publish > -Dno-tests -Dno-checks" would set no-tests=-Dno-checks and run the > checks you tried to skip anyway. > > Back to the proposal, I like the idea of an explicit check target that > runs all checks, > I would not personally have the default target run them but think that's > fine as long > as you can disable them. > > ant test is an interesting one > > On Thu, Jul 6, 2023 at 7:30 AM Maxim Muzafarov <mmu...@apache.org> wrote: > >> In my humble opinion, it is better to have only one plain and >> straightforward build pipeline for the whole project, with custom >> flags used to skip a particular step, than to have multiple pipelines >> under the ant tool with multiple endpoints accordingly. I mean, all >> the steps need to be lined up, with each step in the pipeline >> executing everything that stands before it unless skip flags are >> specified. Meanwhile, I like your idea of grouping all the checks >> under the dedicated step (and changing the no-checkstyle flag to >> no-checks accordingly as Ekaterina mentioned). >> >> >> Let me share a simple example of what I'm talking about with one >> single endpoint. >> Let's assume the following step order: >> >> init -> _build_java (compile) -> checks -> build -> jar -> test -> >> artifacts -> publish; >> >> So, the use would be: >> >> ant jar -Dno-checks >> ant test -Dno-build >> ant publish -Dno-tests -Dno-checks >> >> >> I'm not saying what you've proposed is bad, in fact, we're not >> currently doing the pipeline I'm talking about, but adding an >> additional endpoint is something we should consider very carefully as >> it may create some difficulties for Maven/Gradle migration if it ever >> happens. >> >> So, if I'm not mistaken the following you're trying to add a new >> endpoint to the way how we might build the project: >> >> - "ant [check]" = build + all checks (first endpoint) >> - "ant jar" = build + make jars + no checks (second endpoint) >> >> And I would suggest running `ant jar -Dno-checks` instead to achieve >> the same result assuming the `jar` is still transitively dependent on >> `checks`. >> >> On Thu, 6 Jul 2023 at 14:02, Jacek Lewandowski >> <lewandowski.ja...@gmail.com> wrote: >> > >> > Great discussion, but I feel we still have no conclusion. >> > >> > >> > I fully support automatically setting up IDE(A) to run the necessary >> stuff automatically in a developer-friendly environment, but let it be >> continued in a separate thread. >> > >> > >> > I wouldn't say I like flags, especially if they have to be used on a >> daily basis. The build script help message does not list them when "ant -p" >> is run. >> > >> > >> > I'm going to make these changes unless it is vetoed: >> > >> > "ant [check]" = build + all checks, build everything, and run all the >> checks; also, this would become the default target if no target is specified >> > "ant jar" = build + make jars: build all the jars and tests, no checks >> > All "test" commands = build + make jars + run the tests: build all the >> jars and tests, run the tests, no checks >> > >> > >> > Therefore, a user who wants to validate their branch before running CI >> would need to run just "ant" without any args. This way, a newcomer who >> does not know our build targets will likely run the checks. >> > >> > >> > We still need some flags for skipping specific tasks to optimize for >> CI, but in general, they would not be required for local development. >> > >> > >> > Flags will also be needed to customize some tasks, but they should be >> optional for newcomers. In addition, a "help" target could display a list >> of selected tasks and properties with descriptions. >> > >> > >> > I'd be more than happy if we could conclude the discussion somehow and >> move forward :) >> > >> > >> > thanks, >> > >> > Jacek >> > >> > >> > >> > czw., 29 cze 2023 o 23:34 Ekaterina Dimitrova <e.dimitr...@gmail.com> >> napisał(a): >> >> >> >> There is a separate thread started and respective ticket for >> generate-idea-files. >> >> https://lists.apache.org/thread/o2fdkyv2skvf9ngy9jhpnhvo92qvr17m >> >> CASSANDRA-18467 >> >> >> >> >> >> On Thu, 29 Jun 2023 at 16:54, Jeremiah Jordan < >> jeremiah.jor...@gmail.com> wrote: >> >>> >> >>> +100 I support making generate-idea-files auto setup everything in >> IntelliJ for you. If you post a diff, I will test it. >> >>> >> >>> On this proposal, I don’t really have an opinion one way or the other >> about what the default is for local "ant jar”, if its slow I will figure >> out how to turn it off, if its fast I will leave it on. >> >>> I do care that CI runs checks, and complains loudly if something is >> wrong such that it is very easy to tell during review. >> >>> >> >>> -Jeremiah >> >>> >> >>> On Jun 29, 2023 at 1:44:09 PM, Josh McKenzie <jmcken...@apache.org> >> wrote: >> >>>> >> >>>> In accord I added an opt-out for each hook, and will require such >> here as well >> >>>> >> >>>> On for main branches, off for feature branches seems like it might >> blanket satisfy this concern? Doesn't fix the "--atomic across 5 branches >> means style checks and build on hook across those branches" which isn't >> ideal. I don't think style check failures after push upstream are frequent >> enough to make the cost/benefit there make sense overall are they? >> >>>> >> >>>> Related to this - I have sonarlint, spotbugs, and checkstyle all >> running inside idea; since pulling those in and tuning the configs a bit I >> haven't run into a single issue w/our checkstyle build target (go figure). >> Having the required style checks reflected realtime inside your work >> environment goes a long way towards making it a more intuitive part of your >> workflow rather than being an annoying last minute block of your ability to >> progress that requires circling back into the code. >> >>>> >> >>>> From a technical perspective, it looks like adding a reference >> "externalDependencies.xml" to our ide/idea directory which we copied over >> during "generate-idea-files" would be sufficient to get idea to pop up >> prompts to install those extensions if you don't have them when opening the >> project (theory; haven't tested). >> >>>> >> >>>> We'd need to make sure the configuration for each of those was >> calibrated to our project out of the box of course, but making style >> considerations a first-class citizen in that way seems a more intuitive and >> human-centered approach to all this rather than debating nuance of our >> command-line targets, hooks, and how we present things to people. To >> Berenguer's point - better to have these be completely invisible to people >> with their workflows and Just Work (except for when your IDE scolds you for >> bad behavior w/build errors immediately). >> >>>> >> >>>> I still think Flags Are Bad. :) >> >>>> >> >>>> On Thu, Jun 29, 2023, at 1:38 PM, Ekaterina Dimitrova wrote: >> >>>> >> >>>> Should we just keep a consolidated for all kind of checks no-check >> flag and get rid of the no-checkstyle one? >> >>>> >> >>>> Trading one for one with Josh :-) >> >>>> >> >>>> Best regards, >> >>>> Ekaterina >> >>>> >> >>>> On Thu, 29 Jun 2023 at 10:52, Josh McKenzie <jmcken...@apache.org> >> wrote: >> >>>> >> >>>> >> >>>> I really prefer separate tasks than flags. Flags are not listed in >> the help message like "ant -p" and are not auto-completed in the terminal. >> That makes them almost undiscoverable for newcomers. >> >>>> >> >>>> Please, no more flags. We are more than flaggy enough right now. >> >>>> >> >>>> Having to dig through build.xml to determine how to change things or >> do things is painful; the more we can avoid this (for oldtimers and >> newcomers alike!) the better. >> >>>> >> >>>> On Thu, Jun 29, 2023, at 8:34 AM, Mick Semb Wever wrote: >> >>>> >> >>>> >> >>>> >> >>>> On Thu, 29 Jun 2023 at 13:30, Jacek Lewandowski < >> lewandowski.ja...@gmail.com> wrote: >> >>>> >> >>>> There is another target called "build", which retrieves >> dependencies, and then calls "build-project". >> >>>> >> >>>> >> >>>> >> >>>> Is it intended to be called by a user ? >> >>>> >> >>>> If not, please follow the ant style prefixing the target name with >> an underscore (so that it does not appear in the `ant -projecthelp` list). >> >>>> >> >>>> If possible, I agree with Brandon, `build` is the better name to >> expose to the user. >> >>>> >> >>>> >> >>>> >> >