Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

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

Open
romani opened this issue Jul 1, 2018 · 6 comments
Open
Labels

Comments

@romani
Copy link
Member

romani commented Jul 1, 2018

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 checkstyle/checkstyle@d8b8832 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
Copy link
Member Author

romani commented Jul 1, 2018

@rnveach , please approve if you agree.

@romani
Copy link
Member Author

romani commented Jul 1, 2018

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
Copy link
Contributor

rnveach commented Jul 2, 2018

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
Copy link
Contributor

rnveach commented Jul 2, 2018

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

  • define each plugin as it's own release and no long have a full repo version, or
  • we need to define the version as the entire repo and then have each plugin use their own version in that release.

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
Copy link
Member Author

romani commented Jul 2, 2018

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
Copy link
Contributor

rnveach commented Jul 28, 2019

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

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

2 participants