>> Also I still strictly against adding checkstyle to project build as minor >> issues in checkstyle should not be blocker for test run.
Me too. Looks like everything works fine. Thanks! The only problem is long time of build ~10 minutes, because of dependencies resolving. Maxim, please double check it. On Tue, Apr 23, 2019 at 12:26 PM Petr Ivanov <mr.wei...@gmail.com> wrote: > > Vyacheslav, can you check this build please [1] if everything was ran as > expected? > > Also I still strictly against adding checkstyle to project build as minor > issues in checkstyle should not be blocker for test run. > > > [1] > https://ci.ignite.apache.org/viewLog.html?buildId=3678000&buildTypeId=IgniteTests24Java8_CheckCodeStyle&tab=artifacts&branch_IgniteTests24Java8=%3Cdefault%3E# > > > > On 23 Apr 2019, at 11:59, Petr Ivanov <mr.wei...@gmail.com> wrote: > > > > I'll check it. > > > > > > Also, please pass TC build for review next time and do not add to Run All > > without it. > > > > Thanks! > > > > > >> On 23 Apr 2019, at 11:53, Vyacheslav Daradur <daradu...@gmail.com> wrote: > >> > >> This is quite strange error, in case of "install" phase it'd be better > >> just add "checkstyle" profile to "Build" [1] configuration. > >> > >> [1] > >> https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_BuildApacheIgnite > >> > >> On Tue, Apr 23, 2019 at 11:43 AM Petr Ivanov <mr.wei...@gmail.com> wrote: > >>> > >>> The suite is malformed. > >>> If no ~/.m2/repository/org/apache/ignite artifact are installed in > >>> system, the build will fail [1] > >>> > >>> It seems that we should use install instead of validate. > >>> > >>> > >>> [1] > >>> https://ci.ignite.apache.org/viewLog.html?tab=buildLog&logTab=tree&filter=debug&expand=all&buildId=3677858&_focus=288 > >>> > >>> > >>> On 23 Apr 2019, at 00:25, Vyacheslav Daradur <daradu...@gmail.com> wrote: > >>> > >>> Maxim, I merged your changes to master. > >>> > >>> Also, I've created a new build plan "Check Code Style" on TC [1] and > >>> included in RunAll build. > >>> The report of check-style attaches in artifacts once build is finished. > >>> > >>> Please check that it works as expected once again and announce new > >>> requirements in a separate thread to avoid confusion of community. > >>> > >>> cc Petr, Pavel (JFYI) > >>> > >>> [1] > >>> https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_CheckCodeStyle&tab=buildTypeBranches > >>> > >>> On Sun, Apr 21, 2019 at 10:18 PM Vyacheslav Daradur <daradu...@gmail.com> > >>> wrote: > >>> > >>> > >>> Maxim, > >>> > >>> I left some comments in Jira, let's resolve them and I'll assist you > >>> with merge and TC configuring. > >>> > >>> On Fri, Apr 19, 2019 at 5:50 PM Maxim Muzafarov <maxmu...@gmail.com> > >>> wrote: > >>> > >>> > >>> Vyacheslav, > >>> > >>> Thank you for your interest in making Ignite coding style better. > >>> > >>> The short answer is - there are no different checkstyle > >>> configurations. One for the JetBrains Inspections, and one the > >>> Checkstyle plugin. This is a completely different approach for > >>> checking the Ignites source code. > >>> > >>> Currently, we have two different configurations for the JetBrains IDEA > >>> Inspection check: > >>> - ignite\.idea\inspectionProfiles\Project_Default.xml - this is > >>> default on the IDE level and used silently by every developer whos > >>> checkout Ignite project (it remains) > >>> - ignite\idea\ignite_inspections_teamcity.xml - this is the > >>> configuration of the inspection for the TC suite (it will be deleted) > >>> It's unobvious to maintain both of them. Previously we've planned to > >>> fix all the inspection rules one by one and add them one by one to the > >>> TC inspection configuration file (something like storing the > >>> intermediate result), but it didn't happen cause the inspection TC > >>> suite got broken after migration to 2018 version. > >>> > >>> Now it seems to me, that it is better to use the best open source > >>> practices like checkstyle plugin (380K usages on github repositories) > >>> rather than proprietary software. So, we will: > >>> - keep IDE level inspection configuration (the Project_Default.xml > >>> config); > >>> - add a new checkstyle plugin configuration file (checkstyle.xml > >>> config) which will be used simultaneously for checking code style on > >>> build procedure and for the IDE-checkstyle plugin; > >>> > >>> On Wed, 17 Apr 2019 at 21:23, Vyacheslav Daradur <daradu...@gmail.com> > >>> wrote: > >>> > >>> > >>> Maxim, > >>> > >>> I looked through the PR and it looks good to me in general. > >>> > >>> The only question how it's planned to maintain check styles in 2 > >>> different configurations, for IDEA and check style plugin? > >>> > >>> On Mon, Mar 25, 2019 at 12:30 PM Maxim Muzafarov <maxmu...@gmail.com> > >>> wrote: > >>> > >>> > >>> Igniters, > >>> > >>> The issue [1] with enabled maven-checkstyle-plugin is ready for the > >>> review. > >>> All changes are prepared according to e-mail [2] the second option > >>> point (include the plugin in the maven build procedure by default). > >>> > >>> JIRA: IGNITE-11277 [1] > >>> PR: [3] > >>> Upsource: [4] > >>> > >>> How can take a look? > >>> > >>> [1] https://issues.apache.org/jira/browse/IGNITE-11277 > >>> [2] > >>> http://apache-ignite-developers.2346864.n4.nabble.com/Code-inspection-tp27709p41297.html > >>> [3] https://github.com/apache/ignite/pull/6119 > >>> [4] https://reviews.ignite.apache.org/ignite/review/IGNT-CR-1018 > >>> > >>> On Fri, 15 Mar 2019 at 19:19, Dmitriy Pavlov <dpav...@apache.org> wrote: > >>> > >>> > >>> Hi Igniters, > >>> > >>> I see that a new TeamCity is released: Version: 2018.2.3. > >>> > >>> Probably it could solve recently introduced problem related to: > >>> Unexpected error during build messages processing in TeamCity; > >>> > >>> Peter I., could you please check? > >>> > >>> Sincerely, > >>> Dmitriy Pavlov > >>> > >>> пт, 15 мар. 2019 г. в 12:04, Павлухин Иван <vololo...@gmail.com>: > >>> > >>> I agree to gather some votes according to Maxim's proposal. > >>> > >>> Personally, I will not put my vote here. Both options will work for me > >>> today. > >>> > >>> But I would like to say a bit about agility. As I said both options > >>> sounds fine for me today. And I believe that we can switch from one to > >>> another easily in future. Let's do our best to be flexible. > >>> > >>> пт, 15 мар. 2019 г. в 12:04, Павлухин Иван <vololo...@gmail.com>: > >>> > >>> > >>> Maxim, > >>> > >>> As far as I understand your case, you want to fix all code styles > >>> > >>> issues right before getting the final TC results. Right? ... > >>> > >>> Actually, I mostly worry about accidental failures. For simple tasks > >>> my workflow looks like: > >>> 1. Create a branch. > >>> 2. Write some code lines and tests. > >>> 3. Run the most closely related tests from IDEA. > >>> 4. Push changes to the branch. > >>> 5. Launch TC. > >>> 6. Take a cup of coffee ;-) > >>> 7. Check TC results after a couple of hours. > >>> > >>> And in such workflow I can accidentally leave styling error (IDEA does > >>> not fail compilation). And I will receive not very valuable report > >>> from TC. And will have to wait for another couple of hours. > >>> > >>> Yes, usually I do not execute "mvn clean install" locally before > >>> triggering TC. And I think that generally we should not do it because > >>> TC does it. > >>> > >>> If not everybody uses a bot visas it sounds bad for me. For patches > >>> touching the code it should be mandatory. Also, as you might know > >>> there are different kind of visas and for some trivial patches we can > >>> request Checkstyle visa. Committers should check formalities. > >>> > >>> пт, 15 мар. 2019 г. в 10:29, Nikolay Izhikov <nizhi...@apache.org>: > >>> > >>> > >>> +1 to enable code style checks in compile time. > >>> > >>> We can add option to disable maven codestyle profile with some > >>> > >>> environment variable. > >>> > >>> > >>> Anyone who want violate common project rules in their local branch can > >>> > >>> set this variable and write some nasty code before push :) > >>> > >>> > >>> пт, 15 марта 2019 г., 9:40 Maxim Muzafarov <maxmu...@gmail.com>: > >>> > >>> > >>> Ivan, > >>> > >>> 1. I can write code and execute tests successfully even if there are > >>> > >>> some style problems. I can imagine that a style error can arise > >>> occasionally. And instead of getting test results after several hours > >>> I will get a build failure without any tests run. I will simply lose > >>> my time. But if the tests are allowed to proceed I will get a red flag > >>> from code style check, fix those issues and rerun style check. > >>> > >>> As far as I understand your case, you want to fix all code styles > >>> issues right before getting the final TC results. Right? It's doable > >>> you can disable checkstyle in your local branch and revet it back when > >>> you've done with all your changes to get the final visa. But the > >>> common case here is building the project locally and checking all > >>> requirements for PR right before pushing it to the GitHub repo. I > >>> always do so. The "Checklist before push" [1] have such > >>> recommendations. Build the project before push will eliminate your use > >>> case. > >>> > >>> --- > >>> > >>> Igniters, > >>> > >>> To summarize the options we have with code checking behaviour: > >>> > >>> 1) (code style will be broken more often) Run checkstyle in the > >>> separate TC suite and include it to the Bot visa. > >>> - not all of us run TC for their branches especially for simple fixes > >>> (it's the most common case when a new check style errors occur) > >>> - not all of us use TC.Bot visa to verify their branches > >>> - if this checkstyle suite starts to fail it will be ignored for some > >>> time (not blocks the development process) > >>> - a lot of suites for code checking (license, checkstyle, something > >>> else in future) > >>> > >>> + a bit comfortable way of TC tests execution for local\prototyped PRs > >>> (it's a matter of taste) > >>> + build the project and execute test suites a bit earlier (checkstyle > >>> on the separate suite does not affect other suites) > >>> > >>> 2) (code style will be broken less often) Run checkstyle on project > >>> > >>> build stage. > >>> > >>> - increases a bit the build time procedure > >>> - require additional operations to switch it off for prototyping > >>> > >>> branches > >>> > >>> > >>> + do not require TC.Bot visa if someone of the community doesn't use > >>> > >>> it > >>> > >>> + code style errors will be fixed immediately if the master branch > >>> starts to fail > >>> + the single place for code checks on maven code validation stage > >>> (license check suite can be removed) > >>> > >>> > >>> Please, add another advantages\disadvantages that I've missed. > >>> Let's vote and pick the most suitable option for the Apache Ignite > >>> > >>> needs. > >>> > >>> > >>> --- > >>> > >>> Personally, I'd like to choose the 2) option. > >>> > >>> The JIRA [2] and PR [3] with the checkstyle enabled plugin is ready > >>> for the review. > >>> > >>> [1] > >>> > >>> https://cwiki.apache.org/confluence/display/IGNITE/How+to+Contribute#HowtoContribute-Checklistbeforepush > >>> > >>> [2] https://issues.apache.org/jira/browse/IGNITE-11277 > >>> [3] https://github.com/apache/ignite/pull/6119 > >>> > >>> On Thu, 7 Mar 2019 at 11:19, Павлухин Иван <vololo...@gmail.com> > >>> > >>> wrote: > >>> > >>> > >>> Maxim, > >>> > >>> From use cases described by you I use only 1 and 2. And actually I > >>> think that we can concentrate on 1 and forget about others for now. > >>> But please address my worries from previous letter: > >>> ====Quoted text==== > >>> 1. I can write code and execute tests successfully even if there are > >>> some style problems. I can imagine that a style error can arise > >>> occasionally. And instead of getting test results after several > >>> > >>> hours > >>> > >>> I will get a build failure without any tests run. I will simply lose > >>> my time. But if the tests are allowed to proceed I will get a red > >>> > >>> flag > >>> > >>> from code style check, fix those issues and rerun style check. > >>> 2. Style check takes some time. With simple checks it is almost > >>> negligible. But it can grow if more checks are involved. > >>> ====End of quoted text==== > >>> > >>> Some clarifications. 1 is about running from IDEA first. 2 is > >>> > >>> related > >>> > >>> to opinions that we should involve much more checks, e.g. using > >>> abbreviations. > >>> > >>> чт, 7 мар. 2019 г. в 10:36, Maxim Muzafarov <maxmu...@gmail.com>: > >>> > >>> > >>> Ivan, > >>> > >>> Let's take a look at all the options we have (ordered by the > >>> > >>> frequency of use): > >>> > >>> > >>> 1. Check ready for merge branches (main case) > >>> 2. Run tests on TC without checkstyle (prototyping branches) > >>> 3. Local project build > >>> 4. Quick build without any additional actions on TC > >>> > >>> In the other projects (kafka, netty etc.) which I've checked the > >>> > >>> checkstyle plugin is used in the <build> section, so the user has no > >>> chance > >>> in common cases to disable it via command line (correct me if I'm wrong). > >>> In the PR [1] I've moved checkstyle configuration to the separate profile. > >>> I've set activation checkstyle profile if -DskipTests specified, so it > >>> will > >>> run with the basic build configuration. It can also be disabled locally if > >>> we really need it. > >>> > >>> > >>> Back to our use cases: > >>> > >>> 1. For checking the ready to merge branches we will fail the > >>> > >>> ~Build Apache Ignite~ suite, so no configured checkstyle rules will be > >>> violated. If we will use the TC.Bot approach someone will merge the branch > >>> without running TC.Bot on it, but no one will merge the branch with > >>> compile > >>> errors. > >>> > >>> > >>> 2. For the prototyping branches, you can turn off checkstyle in > >>> > >>> your local PR by removing activation configuration. It's ok as these type > >>> of branches will never be merged to the master. > >>> > >>> > >>> 3. From my point, local builds should be always run with the > >>> > >>> checkstyle enabled profile. The common build action as `mvn clean install > >>> -DskipTests` will activate the profile. > >>> > >>> > >>> 4. The checkstyle profile can be disabled explicitly on TC by > >>> > >>> specifying -P !checkstyle option. A don't see any use cases of it, but > >>> it's > >>> completely doable. > >>> > >>> > >>> Please, correct me if I've missed something. > >>> > >>> I propose to merge PR [1] as it is, with the configured set of > >>> > >>> rules. > >>> > >>> > >>> [1] https://github.com/apache/ignite/pull/6119 > >>> > >>> On Tue, 5 Mar 2019 at 19:02 Павлухин Иван <vololo...@gmail.com> > >>> > >>> wrote: > >>> > >>> > >>> Maxim, > >>> > >>> I like an idea of being IDE agnostic. I am ok with currently > >>> > >>> enabled > >>> > >>> checks, they are a must-have in my opinion (even for prototypes). > >>> > >>> But I am still do not like an idea of preventing tests execution > >>> > >>> if > >>> > >>> style check finds a problem. I checked out PR, installed a > >>> > >>> plugin and > >>> > >>> tried it out. Here are my concerns: > >>> 1. I can write code and execute tests successfully even if there > >>> > >>> are > >>> > >>> some style problems. I can imagine that a style error can arise > >>> occasionally. And instead of getting test results after several > >>> > >>> hours > >>> > >>> I will get a build failure without any tests run. I will simply > >>> > >>> lose > >>> > >>> my time. But if the tests are allowed to proceed I will get a > >>> > >>> red flag > >>> > >>> from code style check, fix those issues and rerun style check. > >>> 2. Style check takes some time. With simple checks it is almost > >>> negligible. But it can grow if more checks are involved. > >>> > >>> On the bright side I found nice integration of Checkstyle plugin > >>> > >>> with > >>> > >>> IDEA commit dialog. There is a checkbox "Scan with Checkstyle" > >>> > >>> which I > >>> > >>> think is quite useful. > >>> > >>> пн, 4 мар. 2019 г. в 15:00, Maxim Muzafarov <maxmu...@gmail.com > >>> > >>> : > >>> > >>> > >>> Ivan, > >>> > >>> I like that Jetbrains inspections are integrated with IDE and > >>> > >>> TC out > >>> > >>> of the box, but currently, they are working not well enough on > >>> > >>> TC. > >>> > >>> Actually, they are not checking our source code at all. > >>> > >>> Let's try a bit another approach and try to be IDE-agnostic > >>> > >>> with code > >>> > >>> style checking. I've checked popular java projects: hadoop, > >>> > >>> kafka, > >>> > >>> spark, hive, netty. All of them are using > >>> > >>> maven-checkstyle-plugin in > >>> > >>> their <build> section by default, so why don't we? It sounds > >>> reasonable for me at least to try so. > >>> > >>> Can you take a look at my changes below? > >>> > >>> > >>> Igniters, > >>> > >>> PR [2] has been prepared. All the details I've mentioned in my > >>> > >>> comment > >>> > >>> in JIRA [4]. > >>> Can anyone take a look at my changes? > >>> > >>> JIRA: [1] > >>> PR: [2] > >>> Upsource: [3] > >>> > >>> Questions to discuss: > >>> 1) There is no analogue for inspections RedundantSuppression > >>> > >>> and > >>> > >>> SizeReplaceableByIsEmpty (all code style checks [5]). Propose > >>> > >>> to merge > >>> > >>> without them. > >>> 2) Checkstyle plugin has it's own maven profile and enabled by > >>> default. It can be turned off for prototype branches. > >>> 3) I've removed the inspections configuration for the TC suite > >>> > >>> and > >>> > >>> propose to disable it as not working. > >>> > >>> > >>> [1] https://issues.apache.org/jira/browse/IGNITE-11277 > >>> [2] https://github.com/apache/ignite/pull/6119 > >>> [3] > >>> > >>> https://reviews.ignite.apache.org/ignite/review/IGNT-CR-1018 > >>> > >>> [4] > >>> > >>> https://issues.apache.org/jira/browse/IGNITE-11277?focusedCommentId=16771200&page=com.atlassian.jira.plugin.system.issuetabpanels%3Acomment-tabpanel#comment-16771200 > >>> > >>> [5] http://checkstyle.sourceforge.net/checks.html > >>> > >>> On Thu, 14 Feb 2019 at 16:21, Павлухин Иван < > >>> > >>> vololo...@gmail.com> wrote: > >>> > >>> > >>> Nikolay, > >>> > >>> All community members are forced to follow code style. > >>> > >>> It's harder to achieve it with dedicated suite. > >>> > >>> Why it is easier to follow code style with use of maven > >>> > >>> checkstyle > >>> > >>> plugin? Is it integrated into IDEA out of box? As I got it > >>> > >>> additional > >>> > >>> IDEA plugin is needed as well. Who will enforce everybody to > >>> > >>> install > >>> > >>> it? > >>> > >>> Also, as I see a common good practice today is using TC Bot > >>> > >>> visa. Visa > >>> > >>> includes result from running inspections job. > >>> > >>> чт, 14 февр. 2019 г. в 16:08, Nikolay Izhikov < > >>> > >>> nizhi...@apache.org>: > >>> > >>> > >>> Ivan, > >>> > >>> Could you please outline the benefits you see of failing > >>> > >>> compilation and > >>> > >>> skipping tests execution if inspections detect a problem? > >>> > >>> All community members are forced to follow code style. > >>> It's harder to achieve it with dedicated suite. > >>> > >>> > >>> чт, 14 февр. 2019 г. в 15:21, Павлухин Иван < > >>> > >>> vololo...@gmail.com>: > >>> > >>> > >>> Nikolay, > >>> > >>> Should the community spend TC resources for prototype? > >>> > >>> Why not? I think it is not bad idea to run all tests > >>> > >>> against some > >>> > >>> changes into core classes. If I have a clever idea which > >>> > >>> is easy to > >>> > >>> test drive I can do couple of prototype-test iterations. > >>> > >>> If tests > >>> > >>> shows me that everything is bad then the idea was not so > >>> > >>> clever and > >>> > >>> easy. But if I was lucky then I should discuss the idea > >>> > >>> with other > >>> > >>> Igniters. I think it is the cheapest way to check the > >>> > >>> idea because the > >>> > >>> check is fully automated. Requiring a human feedback is > >>> > >>> much more > >>> > >>> expensive in my opinion. > >>> > >>> But, If our code style is not convinient for every day > >>> > >>> coding for many > >>> > >>> contributors, should you initiate discussion to change > >>> > >>> it? > >>> > >>> Generally I am fine with our codestyle requirements. > >>> > >>> Also, I would like to keep a focus on the subject. Could > >>> > >>> you please > >>> > >>> outline the benefits you see of failing compilation and > >>> > >>> skipping tests > >>> > >>> execution if inspections detect a problem? > >>> > >>> чт, 14 февр. 2019 г. в 14:14, Nikolay Izhikov < > >>> > >>> nizhi...@apache.org>: > >>> > >>> > >>> Hello, Ivan. > >>> > >>> Requirements for a prototype code are not the same > >>> > >>> as for a patch ready > >>> > >>> to merge > >>> > >>> True. > >>> > >>> I do not see much need in writing good javadocs for > >>> > >>> prototype. > >>> > >>> > >>> We, as a community, can't force you to do it. > >>> > >>> Why should I stub it to be able run any build on TC? > >>> > >>> > >>> Should the community spend TC resources for prototype? > >>> You always can check tests for your prototype locally. > >>> > >>> And when it's ready, at least from code style point of > >>> > >>> view run it on TC. > >>> > >>> > >>> I, personally, always try to follow project code > >>> > >>> style, even for > >>> > >>> prototypes. > >>> > >>> But, If our code style is not convinient for every day > >>> > >>> coding for many > >>> > >>> contributors, should you initiate discussion to change > >>> > >>> it? > >>> > >>> > >>> > >>> ср, 13 февр. 2019 г. в 16:45, Павлухин Иван < > >>> > >>> vololo...@gmail.com>: > >>> > >>> > >>> Maxim, > >>> > >>> Oh, my poor tabs.. Joke. > >>> > >>> I am totally ok with currently enabled checks. But I > >>> > >>> am mostly > >>> > >>> concerned about a general approach. I would like to > >>> > >>> outline one thing. > >>> > >>> Requirements for a prototype code are not the same > >>> > >>> as for a patch > >>> > >>> ready to merge (see a little bit more in the end of > >>> > >>> that message). > >>> > >>> > >>> We have a document defining code style which every > >>> > >>> contributor should > >>> > >>> follow [1]. And many points can be checked > >>> > >>> automatically. Personally, > >>> > >>> I do not see much need in writing good javadocs for > >>> > >>> prototype. Why > >>> > >>> should I stub it to be able run any build on TC? > >>> > >>> Also, we a have a review process which should be > >>> > >>> applied to every > >>> > >>> patch. Partially it is described in [2]. And due to > >>> > >>> this process every > >>> > >>> patch should not introduce new failures on TC. So, > >>> > >>> the patch should > >>> > >>> not be merged if inspections failed. > >>> > >>> P.S. Something more about prototypes and production > >>> > >>> code. There is a > >>> > >>> common bad practice in software engineering. It is > >>> > >>> turning prototypes > >>> > >>> into production code. Often it is much faster to > >>> > >>> create a prototype by > >>> > >>> price of violating some rules of writing "clean > >>> > >>> code". And often > >>> > >>> prototype after successful piloting is turned into > >>> > >>> production code. > >>> > >>> And it is very easy in practice to keep some pieces > >>> > >>> of initially > >>> > >>> "dirty" prototype code. I believe human factor plays > >>> > >>> a great role > >>> > >>> here. How should it be done right then? In my > >>> > >>> opinion good production > >>> > >>> code should be designed as "good production code" > >>> > >>> from the beginning. > >>> > >>> So, only ideas are taken from the prototype and a > >>> > >>> code is fully > >>> > >>> rewritten. > >>> > >>> [1] > >>> > >>> > >>> https://cwiki.apache.org/confluence/display/IGNITE/Coding+Guidelines > >>> > >>> [2] > >>> > >>> > >>> https://cwiki.apache.org/confluence/display/IGNITE/Review+Checklist > >>> > >>> > >>> ср, 13 февр. 2019 г. в 15:05, Maxim Muzafarov < > >>> > >>> maxmu...@gmail.com>: > >>> > >>> > >>> Ivan, > >>> > >>> As the first implementation of this addition, I'd > >>> > >>> prefer to make it > >>> > >>> working like _Licenses Headers_ suite check. It > >>> > >>> will fail when some > >>> > >>> of > >>> > >>> the code style checks violated. Moreover, these > >>> > >>> licenses header > >>> > >>> checks > >>> > >>> can be included in the checkstyle plugin > >>> > >>> configuration. > >>> > >>> > >>> In general, I'd prefer to have a compilation fail > >>> > >>> error with code > >>> > >>> style checks and after we will get a stable > >>> > >>> checkstyle suite I > >>> > >>> propose > >>> > >>> to change it in a "compilation error" way. If we > >>> > >>> are talking about > >>> > >>> the > >>> > >>> coding style convenient for most of the community > >>> > >>> members I see no > >>> > >>> difference with coding sketches or > >>> > >>> production-ready branches equally. > >>> > >>> Indeed, no one will be against unused imports [or > >>> > >>> spaces instead of > >>> > >>> tabs :-) ] in their PRs or prototypes, right? (for > >>> > >>> instance, it can > >>> > >>> be > >>> > >>> automatically removed by IDE at commit phase). > >>> > >>> Please, note currently enabled checks are: > >>> - list.isEmpty() instead of list.size() == 0 > >>> - unused imports > >>> - missing @Override > >>> - sotred modifiers checks (e.g. pulic static > >>> > >>> final ..) > >>> > >>> - redundunt suppersion checks > >>> - spaces insted of tabs. > >>> > >>> Are you really what to violate these checks in > >>> > >>> your sketches? Hope > >>> > >>> not > >>> > >>> :-) > >>> > >>> > >>> On Wed, 13 Feb 2019 at 10:25, Nikolay Izhikov < > >>> > >>> nizhi...@apache.org> > >>> > >>> wrote: > >>> > >>> > >>> Actually, I dont see anything wrong with failing > >>> > >>> *compilation* > >>> > >>> task. > >>> > >>> > >>> I think one should use project code style for > >>> > >>> everyday coding, not > >>> > >>> only for > >>> > >>> ready-to-merge PRs. > >>> > >>> If we cant use code style for everyday coding, > >>> > >>> we should change the > >>> > >>> codestyle. > >>> > >>> What do you think? > >>> > >>> ср, 13 февр. 2019 г., 10:11 Petr Ivanov > >>> > >>> mr.wei...@gmail.com: > >>> > >>> > >>> I guess that was about failing build > >>> > >>> configuration with > >>> > >>> Checkstype, > >>> > >>> not > >>> > >>> compilation build itself. > >>> > >>> On 12 Feb 2019, at 18:03, Павлухин Иван < > >>> > >>> vololo...@gmail.com> > >>> > >>> wrote: > >>> > >>> > >>> Folks, > >>> > >>> Are you going to fail job compiling Ignite > >>> > >>> sources [1] if some > >>> > >>> inspection found a problem? Can we avoid it? > >>> > >>> It is quite common > >>> > >>> pattern to start some feature implementation > >>> > >>> with making a > >>> > >>> sketch > >>> > >>> and > >>> > >>> running tests against it. I found it > >>> > >>> convenient to skip some > >>> > >>> style > >>> > >>> requirements for such sketches (e.g. well > >>> > >>> formed javadocs). > >>> > >>> > >>> [1] > >>> > >>> > >>> > >>> > >>> https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_BuildApacheIgnite > >>> > >>> > >>> пн, 11 февр. 2019 г. в 11:38, Nikolay > >>> > >>> Izhikov < > >>> > >>> nizhi...@apache.org > >>> > >>> : > >>> > >>> > >>> Petr, we should have 1 configuration for > >>> > >>> project, may be 1 > >>> > >>> configuration > >>> > >>> per programming language. > >>> > >>> пн, 11 февр. 2019 г., 11:33 Petr Ivanov > >>> > >>> mr.wei...@gmail.com: > >>> > >>> > >>> I was asking about how many build > >>> > >>> configuration is intended? > >>> > >>> One > >>> > >>> for > >>> > >>> all > >>> > >>> and multiple per module? > >>> > >>> With IDEA inspections it was going to be > >>> > >>> build configuration > >>> > >>> per > >>> > >>> module. > >>> > >>> > >>> > >>> > >>> > >>> On 11 Feb 2019, at 11:24, Nikolay Izhikov > >>> > >>> < > >>> > >>> nizhi...@apache.org> > >>> > >>> wrote: > >>> > >>> > >>> Hello, Petr. > >>> > >>> Are you saying that we have not single > >>> > >>> build task? And each > >>> > >>> module > >>> > >>> builds > >>> > >>> when it required? If yes, then I propose > >>> > >>> to create a task > >>> > >>> like > >>> > >>> "Licence > >>> > >>> check" which will be run for every patch. > >>> > >>> My point is that violation of codestyle > >>> > >>> should be treated as > >>> > >>> hard as > >>> > >>> compile error. > >>> > >>> пн, 11 февр. 2019 г., 11:16 Petr Ivanov > >>> > >>> mr.wei...@gmail.com > >>> > >>> : > >>> > >>> > >>> Is build configuration Inspections > >>> > >>> [Core] meant to > >>> > >>> transform > >>> > >>> into > >>> > >>> single > >>> > >>> all-modules check build configuration > >>> > >>> (without module > >>> > >>> subdivision)? > >>> > >>> > >>> > >>> On 11 Feb 2019, at 11:02, Nikolay > >>> > >>> Izhikov < > >>> > >>> nizhi...@apache.org> > >>> > >>> wrote: > >>> > >>> > >>> Hello, Maxim. > >>> > >>> +1 from me for migrating to checkstyle. > >>> > >>> Oleg, there is plugin for IDEA with > >>> > >>> 2mln downloads - > >>> > >>> > >>> https://plugins.jetbrains.com/plugin/1065-checkstyle-idea > >>> > >>> > >>> I propose do the following: > >>> > >>> 1. Migrate current checks to checkstyle. > >>> 2. Apply checks to all Ignite modules. > >>> > >>> Currently, only > >>> > >>> core > >>> > >>> module > >>> > >>> are > >>> > >>> checked. > >>> I will review and commit this patch, or > >>> > >>> do it by my own. > >>> > >>> > >>> 3. Include code style checks to "Build > >>> > >>> Apache Ignite" > >>> > >>> suite. > >>> > >>> Ignite > >>> > >>> has > >>> > >>> to > >>> > >>> fail to build if patch violates > >>> > >>> codestyle. > >>> > >>> > >>> вс, 10 февр. 2019 г. в 07:54, Павлухин > >>> > >>> Иван < > >>> > >>> vololo...@gmail.com>: > >>> > >>> > >>> Hi, > >>> > >>> I also think that some warning from > >>> > >>> IDEA that some code > >>> > >>> style rule > >>> > >>> is > >>> > >>> violated is a must-have. > >>> > >>> вс, 10 февр. 2019 г. в 01:58, > >>> > >>> oignatenko < > >>> > >>> oignate...@gridgain.com > >>> > >>> : > >>> > >>> > >>> Hi Maxim, > >>> > >>> I believe that whatever style checks > >>> > >>> we establish at > >>> > >>> Teamcity, we > >>> > >>> better > >>> > >>> take care of making it easy for > >>> > >>> developers to find and > >>> > >>> fix > >>> > >>> violations > >>> > >>> in > >>> > >>> their typical dev environment (for > >>> > >>> Ignite this means, in > >>> > >>> IDEA). I > >>> > >>> think > >>> > >>> it > >>> > >>> is important that developers can > >>> > >>> maintain required style > >>> > >>> with > >>> > >>> minimal > >>> > >>> effort > >>> > >>> on their side. > >>> > >>> If above is doable then I am 200% for > >>> > >>> migrating our > >>> > >>> Teamcity > >>> > >>> inspections > >>> > >>> to > >>> > >>> checkstyle / maven. > >>> > >>> This is because I am very > >>> > >>> disappointed observing how it > >>> > >>> stays > >>> > >>> broken > >>> > >>> for > >>> > >>> so > >>> > >>> long. And worst of all, even when > >>> > >>> (if) it is fixed, I > >>> > >>> feel > >>> > >>> we will > >>> > >>> always be > >>> > >>> at risk that it breaks again and that > >>> > >>> we will have to > >>> > >>> again > >>> > >>> wait > >>> > >>> for > >>> > >>> months > >>> > >>> for it to be fixed. > >>> > >>> This is such a stark contrast with my > >>> > >>> experience > >>> > >>> regarding > >>> > >>> checkstyle > >>> > >>> based > >>> > >>> inspections. These just work and you > >>> > >>> just never fear > >>> > >>> that > >>> > >>> it is > >>> > >>> going > >>> > >>> to > >>> > >>> break for some obscure reason, this > >>> > >>> is so much better > >>> > >>> than > >>> > >>> what I > >>> > >>> observe > >>> > >>> now. > >>> > >>> One suggestion in case if we pick > >>> > >>> checkstyle - I > >>> > >>> recommend > >>> > >>> keeping > >>> > >>> its > >>> > >>> config file somewhere in the project > >>> > >>> under version > >>> > >>> control. > >>> > >>> I > >>> > >>> used to > >>> > >>> maintain such a shared style config > >>> > >>> at one of past jobs > >>> > >>> and > >>> > >>> after > >>> > >>> some > >>> > >>> experimenting it turned out most > >>> > >>> convenient to have it > >>> > >>> this > >>> > >>> way - > >>> > >>> so > >>> > >>> that > >>> > >>> developers could easily assess and > >>> > >>> discuss style > >>> > >>> settings > >>> > >>> and keep > >>> > >>> track > >>> > >>> of > >>> > >>> changes in these. (note how Kafka > >>> > >>> folks from your link > >>> > >>> [5] > >>> > >>> appear > >>> > >>> to > >>> > >>> be > >>> > >>> doing it this way) > >>> > >>> regards, Oleg > >>> > >>> > >>> Mmuzaf wrote > >>> > >>> Igniters, > >>> > >>> I've found that some of the > >>> > >>> community members have > >>> > >>> faced > >>> > >>> with > >>> > >>> `[Inspections] Core suite [1]` is > >>> > >>> not working well > >>> > >>> enough > >>> > >>> on TC. > >>> > >>> The > >>> > >>> suite has a `FAILED` status for more > >>> > >>> than 2 months due > >>> > >>> to > >>> > >>> some > >>> > >>> issues > >>> > >>> in TeamCity application [2]. Current > >>> > >>> suite behaviour > >>> > >>> confuses not > >>> > >>> only > >>> > >>> new contributors but also other > >>> > >>> community members. > >>> > >>> Moreover, this > >>> > >>> suite is no longer checks rules we > >>> > >>> previously > >>> > >>> configured. > >>> > >>> For > >>> > >>> instance, in the master branch, I've > >>> > >>> found 11 `Unused > >>> > >>> imports` > >>> > >>> which > >>> > >>> should have been caught earlier > >>> > >>> (e.g. for > >>> > >>> {{IgniteCachePutAllRestartTest} [3]). > >>> > >>> I think we should make the next step > >>> > >>> to enable an > >>> > >>> automatic code > >>> > >>> style > >>> > >>> checks. As an example, we can > >>> > >>> consider the Apache Kafka > >>> > >>> code > >>> > >>> style > >>> > >>> [5] > >>> > >>> way and configure for the Ignite > >>> > >>> project a > >>> > >>> maven-checkstyle-plugin > >>> > >>> with its own maven profile and run > >>> > >>> it simultaneously > >>> > >>> with > >>> > >>> other > >>> > >>> TC. > >>> > >>> We > >>> > >>> can also enable the previously > >>> > >>> configured inspection > >>> > >>> rules, so no > >>> > >>> coding style violations will be > >>> > >>> missed. > >>> > >>> > >>> I see some advantages of using a > >>> > >>> maven plugin: > >>> > >>> - an IDE agnostic way for code checks > >>> - can be used with different CI and > >>> > >>> build tools > >>> > >>> (Jenkins, > >>> > >>> TC) > >>> > >>> - executable from the command line > >>> - the entry single point to > >>> > >>> configure new rules > >>> > >>> > >>> I've created the ticket [4] and will > >>> > >>> prepare PR for it. > >>> > >>> > >>> WDYT? > >>> > >>> [1] > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> https://ci.ignite.apache.org/viewType.html?buildTypeId=IgniteTests24Java8_InspectionsCore&branch_IgniteTests24Java8=%3Cdefault%3E&tab=buildTypeStatusDiv > >>> > >>> [2] > >>> > >>> https://youtrack.jetbrains.com/issue/TW-58504 > >>> > >>> [3] > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> https://github.com/apache/ignite/blob/master/modules/core/src/test/java/org/apache/ignite/internal/processors/cache/IgniteCachePutAllRestartTest.java#L29 > >>> > >>> [4] > >>> > >>> https://issues.apache.org/jira/browse/IGNITE-11277 > >>> > >>> [5] > >>> > >>> https://github.com/apache/kafka/tree/trunk/checkstyle > >>> > >>> > >>> On Fri, 21 Dec 2018 at 16:03, Petr > >>> > >>> Ivanov < > >>> > >>> > >>> mr.weider@ > >>> > >>> > >>> > wrote: > >>> > >>> > >>> It seems there is bug in latest > >>> > >>> 2018.2 TeamCity > >>> > >>> Bug is filed [1] > >>> > >>> > >>> [1] > >>> > >>> https://youtrack.jetbrains.com/issue/TW-58504 > >>> > >>> > >>> On 19 Dec 2018, at 11:31, Petr > >>> > >>> Ivanov < > >>> > >>> > >>> mr.weider@ > >>> > >>> > >>> > wrote: > >>> > >>> > >>> Investigating problem, stand by. > >>> > >>> > >>> On 18 Dec 2018, at 19:41, Dmitriy > >>> > >>> Pavlov < > >>> > >>> > >>> dpavlov@ > >>> > >>> > >>> > wrote: > >>> > >>> > >>> Both patches were applied. Maxim, > >>> > >>> thank you! > >>> > >>> > >>> What about 1. An `Unexpected > >>> > >>> error during build > >>> > >>> messages > >>> > >>> processing in > >>> > >>> TeamCity`, what can we do as the > >>> > >>> next step to fix > >>> > >>> it? > >>> > >>> > >>> Sincerely, > >>> Dmitriy Pavlov > >>> [cut] > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> -- > >>> Sent from: > >>> > >>> > >>> http://apache-ignite-developers.2346864.n4.nabble.com/ > >>> > >>> > >>> > >>> > >>> -- > >>> Best regards, > >>> Ivan Pavlukhin > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> > >>> -- > >>> Best regards, > >>> Ivan Pavlukhin > >>> > >>> > >>> > >>> > >>> > >>> > >>> -- > >>> Best regards, > >>> Ivan Pavlukhin > >>> > >>> > >>> > >>> > >>> -- > >>> Best regards, > >>> Ivan Pavlukhin > >>> > >>> > >>> > >>> > >>> -- > >>> Best regards, > >>> Ivan Pavlukhin > >>> > >>> > >>> > >>> > >>> -- > >>> Best regards, > >>> Ivan Pavlukhin > >>> > >>> > >>> -- > >>> -- > >>> Maxim Muzafarov > >>> > >>> > >>> > >>> > >>> -- > >>> Best regards, > >>> Ivan Pavlukhin > >>> > >>> > >>> > >>> > >>> -- > >>> Best regards, > >>> Ivan Pavlukhin > >>> > >>> > >>> > >>> > >>> -- > >>> Best regards, > >>> Ivan Pavlukhin > >>> > >>> > >>> > >>> > >>> > >>> -- > >>> Best Regards, Vyacheslav D. > >>> > >>> > >>> > >>> > >>> -- > >>> Best Regards, Vyacheslav D. > >>> > >>> > >>> > >>> > >>> -- > >>> Best Regards, Vyacheslav D. > >>> > >>> > >> > >> > >> -- > >> Best Regards, Vyacheslav D. > > > -- Best Regards, Vyacheslav D.