sevntu-checkstyle / sevntu.checkstyle

Additional Checkstyle checks, that could be added as extension to EclipseCS plugin and maven-checkstyle-plugin, Sonar checkstyle plugin, extension for CheckStyle IDEA plugin.
http://sevntu-checkstyle.github.io/sevntu.checkstyle/
190 stars 147 forks source link

update release proccess to skip version bumps at eclipsecs-sevntu-plugin #705

Open romani opened 6 years ago

romani commented 6 years ago

eclipsecs-sevntu-plugin and eclipsecs-sevntu-plugin-feature are depend on eclipse-cs version and checkstyle version in eclipse-cs.

if checkstyle project introduce compile breaking changes in his internals, sevntu-checks need to be recompiled. It will work for all all except for eclipsecs-sevntu-plugin as it need for eclipse-cs to be upgraded first to new checkstyle version. Eclipse-cs is not very quick project in updates, so it block all other sevntu extension to stay on old version (sonar, maven,...). No updates for sonar and maven cause more problems for users as they can not use latest sonar plugin with latest sevntu any more, so users must stay on old versions of checkstyle in Sonar and maven if they use sevntu.

Even more it create long delay in activation of disablements like https://github.com/checkstyle/checkstyle/commit/d8b8832caecc2f30e02d4a4014e9dce1ea9cfdba in main repo, so make unwanted problems to plugins be not noticed (example).

We need to have ability update checkstyle version in all except for eclipsecs-sevntu-plugin, eclipsecs-sevntu-plugin should continue to use old version of sevnu-checks and be consistent with eclispe-cs project.

All we need is to update https://github.com/sevntu-checkstyle/sevntu.checkstyle/blob/master/eclipsecs-sevntu-plugin/pom.xml#L36 to have not ${project.version} but exact version as in eclipse-cs (is better to make it as property) and make a note at https://github.com/sevntu-checkstyle/sevntu.checkstyle/wiki/How-to-release-sevntu.checkstyle at point 2.1 to update version sevntu-checks that compatible with eclipse'cs checksyle version.

romani commented 6 years ago

@rnveach , please approve if you agree.

romani commented 6 years ago

it goes it worse: [ERROR] Failed to execute goal org.apache.maven.plugins:maven-checkstyle-plugin:2.17:check (sevntu-checkstyle-check) on project checkstyle-sonar-plugin: Failed during checkstyle configuration: cannot initialize module TreeWalker - Cannot set property 'blockTypes' to 'LITERAL_IF,LITERAL_ELSE,LITERAL_WHILE,LITERAL_DO, LITERAL_FOR,LITERAL_SWITCH,LITERAL_TRY,LITERAL_CATCH' in module ChildBlockLength: InvocationTargetException: com/puppycrawl/tools/checkstyle/utils/TokenUtils: com.puppycrawl.tools.checkstyle.utils.TokenUtils -> [Help 1]

now I have problem to build checkstyle-sonar-plugin.

rnveach commented 6 years ago

I have problem to build checkstyle-sonar-plugin.

Sonar issue was just because sevntu plugin run was using the wrong checkstyle dependency version. This is always a possibility to happen even if sevntu wasn't held back multiple versions from latest checkstyle release.

rnveach commented 6 years ago

All we need is to update

It is not that easy. Yes, this is one of the things we must do in this issue, but this will affect the release.sh and the release notes. When we release binaries, all release notes applies to every plugin in project. If we are to hold eclipsecs plugin back, we need to make it clear what version it is on. Otherwise, people we see we have fixed problem XYZ and they are still experiencing it because they can't upgrade plugin. Will we release version A.B.0 without eclipsecs and then in certain time release eclipsecs as A.B.1? So we will force sevntu-checks to A.B.1 even though nothing has changed for it since A.B.0?

I think we need to redefine releases slightly. Either we need to

I am leaning more to option 2. When eclipsecs is finally upgraded, or any plugin, it should be an issue so it will appear on the release notes and be clear to the users. We may have to do away with pom-version-bump.sh and upgrade versions manually. For now, we could split it between eclipsecs and non-eclipsecs, but the script file will have to be a manual upgrade and removed from release.sh.

I think we should give eclipsecs some time as there probably won't be much activity in sevntu for a bit, and any issues users are having can be worked around for now.

romani commented 6 years ago

it is better to keep eclipse-cs and non eclipse-cs versions.

We will come back to this on next update in checkstyle that affect class names or similar problems. All non eclipse-cs projects we can update/release right after release of main library. So it is beneficial to keep eclispe-cs extension separate from others.

rnveach commented 5 years ago

Whole release process will have to be revisted. We have a wiki: https://github.com/sevntu-checkstyle/sevntu.checkstyle/wiki/How-to-release-sevntu.checkstyle We have a script that was built but not really used since it is not in wiki: https://github.com/sevntu-checkstyle/sevntu.checkstyle/blob/master/release.sh

When I was testing release script, I was using a test repository: https://github.com/rnveach/sevntu.checkstyle.release.test