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

Continue the work on Mojohaus vs. Aspectj.dev #1

Closed
bmarwell opened this issue May 26, 2021 · 34 comments
Closed

Continue the work on Mojohaus vs. Aspectj.dev #1

bmarwell opened this issue May 26, 2021 · 34 comments
Assignees
Labels
discussion general discussion about the project
Milestone

Comments

@bmarwell
Copy link
Contributor

Hi Alex,

it is not hard to get commit access to mojohaus.
If you are interested, just ping here in again: https://groups.google.com/g/mojohaus-dev/c/1_CTFryUqys/m/goEZILj7BQAJ

WDYT?

Best regards,
Ben

@kriegaex
Copy link
Contributor

kriegaex commented May 27, 2021

Thanks for reaching out, Ben. The timing could not be worse, though. It is kind of surprising to get a reaction the very day I released the plugin with group ID dev.aspectj for the first time on Maven Central and announced it on the AspectJ mailing list.

Actually, the first time someone asked for Java 9 support under mojohaus/aspectj-maven-plugin#24 for the plugin, was in March 2017. Since November 2017, when there were RC releases of AspectJ 1.9.0, people asked the maintainer to support it. Nothing happend, up to this day in May 2021 the plugin only supports Java 8.

In November 2018, Nick Wong opened his PR mojohaus/aspectj-maven-plugin#45 for supporting Java 11. By then, the original maintainer did not even respond anymore. Neither he nor Mojohaus tried to resolve the situation that he was simply too busy to continue maintaining the plugin. No blame to David, life happens and priorities change. Anyway, Mojohaus as an organisation failed. People - myself included - have been asking, appealing, pleading.

In December 2018, Nick published his fork on Maven Central and later talked to JetBrains in order to make them recognise the plugin in IntelliJ IDEA.

In January 2020, plugin version 12.6 supported Java 13. By that time, I was involved a bit, too, trying to contact David Karlsen, the original maintainer. After a few tries, he responded once per e-mail, saying he was busy, but would be willing to accept PRs, which never happened. He also said he would like to welcome Nick and me on the team, which also never happened. I also tried to suggest to him to reach out to Mojohaus in order to hand over to Nick. At the time, I was not interested in becoming a maintainer, because I have zero knowledge about Maven plugins, which has not changed substantially since then.

Earlier this year, Nick told me at mojohaus/aspectj-maven-plugin#45 (comment), that he is no longer available as a maintainer and recommended me to fork again, which I did. For now I am still using a Mojohaus parent POM and have not changed much in the plugin, but I did upgrade it to Java 16 - remember, the original is still at Java 8! - and published it yesterday. I also made sure that IntelliJ IDEA is going to recognise the new group ID by talking to JetBrains, like Nick did before for his fork.

This was a long and painful journey. I even pay for the aspectj.dev domain and had to work through a process to get the corresponding group ID dev.aspectj approved by Sonatype, so I am able to publish on Maven Central. Nick must have gone through the same process before for com.nickwongdev. In the meantime, even AspectJ maintainer Andy Clement tried to reach out to someone at Mojohaus, but also without result, I guess.

it is not hard to get commit access to mojohaus.

Well, it certainly does not seem so. It definitely did not work for more than three years to even get a simple PR (which is outdated now) accepted into a Mojohaus project. Actually, I would have welcomed the invitation until not so long ago, even though I am afraid of yet another OSS organisation with tedious processes, micro-managing code reviews, IP trail legal reviews obstructing release processes etc. I might have accepted all that for the benefit of the AspectJ community, because I love AspectJ, even though I never wanted the responsibility for this plugin and certainly not the ceremony of working inside an OSS organisation. (Maybe Mojohaus is very agile compared to Apache and Eclipse and my fears are unfounded, I cannot say.)

Today, having seen myself forced into forking the plugin, at least after having invested time and a little amount of money (for the domain name), I have the freedom to commit whatever I want and to release on my own terms whenever I want. I am independent of people running legal departments, CI servers, code review systems or Jira instances. You might understand, that I am not feeling so inclined to kick all my efforts into the trash just so as to get that shiny org.codehaus.mojo group ID attached to the plugin. At this point, Mojohaus would have to actively reach out to me, explain the benefits of "coming home" with the plugin and convince me that I would rather be supported than impeded by OSS organisational ceremony when working under their umbrella. For now, I would rather appreciate them to officially retire the plugin and point to my GitHub repository, endorsing it as the official successor. They definitely did not care about the plugin in the last few years.

@bmarwell
Copy link
Contributor Author

Hi Alex,

sorry for reaching out just right now. I was trying to pull in your dependency yesterday, probably just before you uploaded it. I opened this issue because I thought a maven central release would be more likely this way.

Well, I got invited to mojohaus multiple times now, but I am also an Apache committer and PMC, and this are mostly the same people working there. I am sorry to hear that you made these experiences. I saw some dead threads on google groups.

While Mojohaus does have some advantages, e.g. domain, workflows, access, etc. I can really see your point. I will talk to some people to see if we can make one of your proposals happen (dev-aspectj becoming the new upstream OR an invitation) – whatever makes more sense. I do fully understand your point, and I (personally) have no objections making this repo the upstream repo. I will see what I can do. Any way, the primary goal should be to not confuse users (like me, I came here as a user), so both ways would work for me.

Thanks for the insights,
Ben.

@kriegaex
Copy link
Contributor

Thanks for your friendly and considerate reply, Ben.

Any way, the primary goal should be to not confuse users

Which is why this morning (local time) I generated new plugin documentation on GitHub Pages directly for this project, instead of pointing to the outdated Mojohaus docs from the main read-me file. The acknowledgements for Codehaus, Mojohaus and Nick Wong both in

are there, though, which is not just a matter of IP (intellectual property) trail but IMO also one of professional courtesy.

@bmarwell
Copy link
Contributor Author

Great. Btw: Same timezone, same country. ;-)

So, why not try moving forward here.
I created a thread at https://groups.google.com/g/mojohaus-dev/c/TbCpyd6OgTE. I also pinged some ASF committers in the Slack, so let's see what happens.

I will see if this plugin works for Shiro: https://github.com/apache/shiro/tree/main/support/aspectj. I will merge the PR soon.
Sadly, the previous one did try to find a file jrt-fs.jar. I do not know if this plugin will do the same. Thus I created #2. We test Shiro on different JVMs, because OpenJ9 does not always contain all the aliases that Hotspot ships with. Hotspot often contains more stuff than needed for Java certification. I will not open an issue, because I do not know if this has been resolved with your plugin. I want to wait for you to merge my PR first.

Here is the stack trace FYI:

org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.nickwongdev:aspectj-maven-plugin:1.12.6:compile (aspectj-compile) on project shiro-aspectj: AJC compiler errors:
abort ABORT -- (IllegalStateException) Unexpectedly unable to initialize a JRT filesystem
Unexpectedly unable to initialize a JRT filesystem
java.lang.IllegalStateException: Unexpectedly unable to initialize a JRT filesystem
	at org.aspectj.weaver.bcel.ClassPathManager$JImageEntry.<init>(ClassPathManager.java:370)
	at org.aspectj.weaver.bcel.ClassPathManager.addPath(ClassPathManager.java:113)
	at org.aspectj.weaver.bcel.ClassPathManager.<init>(ClassPathManager.java:87)
	at org.aspectj.weaver.bcel.BcelWorld.<init>(BcelWorld.java:285)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.initBcelWorld(AjBuildManager.java:841)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.performBuild(AjBuildManager.java:253)
	at org.aspectj.ajdt.internal.core.builder.AjBuildManager.batchBuild(AjBuildManager.java:189)
	at org.aspectj.ajdt.ajc.AjdtCommand.doCommand(AjdtCommand.java:114)
	at org.aspectj.ajdt.ajc.AjdtCommand.runCommand(AjdtCommand.java:60)
	at org.aspectj.tools.ajc.Main.run(Main.java:371)
	at org.aspectj.tools.ajc.Main.runMain(Main.java:248)
	at org.codehaus.mojo.aspectj.AbstractAjcCompiler.execute(AbstractAjcCompiler.java:550)
	at org.apache.maven.plugin.DefaultBuildPluginManager.executeMojo(DefaultBuildPluginManager.java:137)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:210)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:156)
	at org.apache.maven.lifecycle.internal.MojoExecutor.execute(MojoExecutor.java:148)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:117)
	at org.apache.maven.lifecycle.internal.LifecycleModuleBuilder.buildProject(LifecycleModuleBuilder.java:81)
	at org.apache.maven.lifecycle.internal.builder.singlethreaded.SingleThreadedBuilder.build(SingleThreadedBuilder.java:56)
	at org.apache.maven.lifecycle.internal.LifecycleStarter.execute(LifecycleStarter.java:128)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:305)
	at org.apache.maven.DefaultMaven.doExecute(DefaultMaven.java:192)
	at org.apache.maven.DefaultMaven.execute(DefaultMaven.java:105)
	at org.apache.maven.cli.MavenCli.execute(MavenCli.java:957)
	at org.apache.maven.cli.MavenCli.doMain(MavenCli.java:289)
	at org.apache.maven.cli.MavenCli.main(MavenCli.java:193)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
	at java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
	at java.base/jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
	at java.base/java.lang.reflect.Method.invoke(Method.java:566)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launchEnhanced(Launcher.java:282)
	at org.codehaus.plexus.classworlds.launcher.Launcher.launch(Launcher.java:225)
	at org.codehaus.plexus.classworlds.launcher.Launcher.mainWithExitCode(Launcher.java:406)
	at org.codehaus.plexus.classworlds.launcher.Launcher.main(Launcher.java:347)
Caused by: java.io.IOException: /opt/hostedtoolcache/java_adopt-openj9_jdk/11.0.11-9/x64/lib/jrt-fs.jar not exist
	at java.base/jdk.internal.jrtfs.JrtFileSystemProvider.newFileSystem(JrtFileSystemProvider.java:118)
	at java.base/jdk.internal.jrtfs.JrtFileSystemProvider.newFileSystem(JrtFileSystemProvider.java:106)
	at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:337)
	at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:286)
	at org.aspectj.weaver.bcel.ClassPathManager$JImageEntry.<init>(ClassPathManager.java:360)
	... 33 more

@kriegaex
Copy link
Contributor

Great. Btw: Same timezone, same country. ;-)

Are you sure? I am in Southeast Asia ATM. ;-)

I created a thread at https://groups.google.com/g/mojohaus-dev/c/TbCpyd6OgTE. I also pinged some ASF committers in the Slack, so let's see what happens.

Cool, thanks.

> org.apache.maven.lifecycle.LifecycleExecutionException: Failed to execute goal com.nickwongdev:aspectj-maven-plugin:1.12.6:compile (aspectj-compile) on project shiro-aspectj: AJC compiler errors:
> abort ABORT -- (IllegalStateException) Unexpectedly unable to initialize a JRT filesystem
> Unexpectedly unable to initialize a JRT filesystem
> java.lang.IllegalStateException: Unexpectedly unable to initialize a JRT filesystem
> 	at org.aspectj.weaver.bcel.ClassPathManager$JImageEntry.<init>(ClassPathManager.java:370)
> 	at org.aspectj.weaver.bcel.ClassPathManager.addPath(ClassPathManager.java:113)
> 	at org.aspectj.weaver.bcel.ClassPathManager.<init>(ClassPathManager.java:87)
> 	at org.aspectj.weaver.bcel.BcelWorld.<init>(BcelWorld.java:285)
> (...)
> Caused by: java.io.IOException: /opt/hostedtoolcache/java_adopt-openj9_jdk/11.0.11-9/x64/lib/jrt-fs.jar not exist
> 	at java.base/jdk.internal.jrtfs.JrtFileSystemProvider.newFileSystem(JrtFileSystemProvider.java:118)
> 	at java.base/jdk.internal.jrtfs.JrtFileSystemProvider.newFileSystem(JrtFileSystemProvider.java:106)
> 	at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:337)
> 	at java.base/java.nio.file.FileSystems.newFileSystem(FileSystems.java:286)
> 	at org.aspectj.weaver.bcel.ClassPathManager$JImageEntry.<init>(ClassPathManager.java:360)
> 	... 33 more

I am unaware of any changes there while I was working on AspectJ 1.9.7. I just tried to make it compatible with Java 15/16, but did not change any functionality, because I do not have the necessary knowledge in AspectJ internals, just lately having started to contribute. Honestly, I never tried running AspectJ on anything other than Oracle JDK or OpenJDK. @aclement would know much more about this. But I still do see class ClassPathManager.JImageEntry in the code base, and there were no changes. See here. So that would be a core AspectJ issue rather than an AspectJ Maven one. You might want to create an MCVE and open an issue there.

@bmarwell
Copy link
Contributor Author

I am unaware of any changes there while I was working on AspectJ 1.9.7. I just tried to make it compatible with Java 15/16, but did not change any functionality, because I do not have the necessary knowledge in AspectJ internals, just lately having started to contribute. Honestly, I never tried running AspectJ on anything other than Oracle JDK or OpenJDK. @aclement would know much more about this. But I still do see class ClassPathManager.JImageEntry in the code base, and there were no changes. See here. So that would be a core AspectJ issue rather than an AspectJ Maven one. You might want to create an MCVE and open an issue there.

It is not an aspectj issue, I believe. Should be fixed by #6.

@olamy
Copy link

olamy commented May 27, 2021

@kriegaex why not simply asking on the mailing list? perso I received too many gh notifications to they go to a folder which I read later....
anyway you should have received a gh invite to collaborate.

@kriegaex
Copy link
Contributor

@olamy, because I did not know that such a mailing list exists or that it would be the place to ask. Before I join, please explain why I should become a Mojohaus committer after all the frustrations and efforts of the past. With all due respect: Sell it to me, please. We tried to get a simple PR merged for 2.5 years, and now one day after my first Maven Central release, after setting up a documentation site, while being in the process of setting up CI on GitHub etc., someone kindly invites me to throw it all away.

Please also provide a link where I can read about rules, procedures, restrictions etc., because of all those I want as few as possible. I just want to be able to compile my AspectJ projects with Maven and as a side effect provide other users with the same benefit.

Thank you. I know, this situation was nobody's bad intention and sh** happens, but it occurred due to a mess-up (as in negligence) of one or several persons, processes, tools or whatever. IMO, that it developed thus far, is inexcusable. I apologise if you find my response cheeky, but I really need more than a belated invitation. I need good reasons for dumping my investment and giving up freedom I now possess, because I did some work and thus IMO earned it.

@bmarwell
Copy link
Contributor Author

Well, I can try.
For one, there are a lot of folks which might not want to migrate to another groupId for various reasons. Probably silly reasons, but they exist.

The other reason why you should join mojohaus is: Some things you did claim are not true:

after setting up a documentation site, while being in the process of setting up CI on GitHub etc., someone kindly invites me to throw it all away.
Yes it is true, the PR is open for 2.5 years now, but nothing needs to be thrown away. We can pull in your changes easily.

Another benefit is: It is much easier to attract developers.

But the best reason is what you wrote yourself:

I know, this situation was nobody's bad intention and sh** happens

So let's make the best out of it, shall we?

@olamy
Copy link

olamy commented May 27, 2021

@kriegaex there is nothing to sell here. I'm not a company trying to hire someone...
We are supposed to be a group of person who spend their spare time on opensource projects.
And sometimes they don't have time or their interest changed....
The spirit is we do that to help people (not to get rewarded).
If you want to participate at mojohaus that's fine if not it's fine as well.
The project have an ASF license so not a problem at all you can fork etc...
But remember it's an opensource project under ASF license so if you do something in a fork it will stay under the same license and everybody is able to merge/cherrypick it somewhere else including in the original source code.

@philsttr
Copy link

For what it's worth, I (as a user) would like to see it merged back to the original repo / group id. I feel more comfortable pulling in dependencies from mojohaus, because at least they have a process (however ineffective it may be) for continuation whenever maintainers quit for whatever reason. With persistence and interest from community members, I believe becoming a maintainer can be achieved. I say this, even though I have my own experience of being denied when I offered to help.

Having said that, thank you @kriegaex for doing everything you have done so far. I'll respect your decision, whatever you decide.

@kriegaex
Copy link
Contributor

kriegaex commented May 28, 2021

@bmarwell:

Some things you did claim are not true

I did not claim anything, I said I was afraid it might be similar to other OSS projects I lately tried to contribute to, where everything is slow and bureaucratic. I just listed some of the things I want to avoid. If Mojohaus is super agile, great. Reality since 2017 for this plugin was different, though. I explained the details already, and they are facts.

https://www.mojohaus.org/development/performing-a-release.html

That is quite a lot. Also, that page links to development guidelines, then code styles. The guidelines could be much worse, but there is lots of baggage I do not need for this small project.

Yes it is true, the PR is open for 2.5 years now, but nothing needs to be thrown away. We can pull in your changes easily.

That offer should have come at least a year ago, better two.

Another benefit is: It is much easier to attract developers.

Well, I am one, so is Nick. We were not attracted but disheartened and scared off.


@olamy:

there is nothing to sell here. I'm not a company trying to hire someone...

Fine, then don't sell it. IMO, you always have to sell your idea to someone in life, if you want to convince him. If that is asking too much, it means the idea is not so important to the person unwilling to sell it, which is also good to know.

We are supposed to be a group of person who spend their spare time on opensource projects.

Just like me.

And sometimes they don't have time or their interest changed....

If that happens, you have a responsibility and should actively pursue a hand-over and try to attract new maintainers, either within the existing group or outside of it. That is part of the "O" in "OSS". If the one maintainer of a project is hit by a truck and cannot hand over by herself, the rest of the group should take care of it. A group is not worth much, if it is not a team, i.e. more than the sum of its constituent parts.

If you want to participate at mojohaus that's fine if not it's fine as well.

At this point, I do not feel like I wish to. I am quite comfortable in the current situation - a situation which I was forced into, please remember.

But remember it's an opensource project under ASF license so if you do something in a fork it will stay under the same license and everybody is able to merge/cherrypick it somewhere else including in the original source code.

Are you threatening me to appoint another maintainer and cannibalise my work back into a project that for years was factually dead? Remember, Nick and I wanted to contribute back and were ignored. Now I do not want that anymore. I am reapating what I said to Ben before you entered the discussion:

I would rather appreciate them to officially retire the plugin and point to my GitHub repository, endorsing it as the official successor. They definitely did not care about the plugin in the last few years.

So my friendly request to you, Olivier, is to help take care of retiring the already dead Mojohaus project, naming this one as the successor. I think, we should all try to avoid a schism and tell the user community where to find the plugin.

If Mojohaus refuses to retire the plugin, I would rather become a member there than risk having two plugins which both publish releases, even merging stuff from one another. That would be chaotic. In that case, the greater good would be served better by me becoming a Mojohaus committer, but I would do so reluctantly and not be happy about it at all. Is that what you want, getting new committers by coercion? I don't think so.

@hboutemy
Copy link
Contributor

hboutemy commented May 28, 2021

Hi @kriegaex , I know we've failed for some time to add people who want to involve seriously: please help us by joining your forces with the whole team. It's a long run, being together will be easier over years: "If you want to go fast, go alone. If you want to go far, go together"

@olamy
Copy link

olamy commented May 28, 2021

@kriegaex Fair enough it's your decision. But we will be happy to have you here
@philsttr do you want to join and help?

@bmarwell
Copy link
Contributor Author

It is not an issue with this project, so I am closing this. Feel free to continue adding comments as needed. :-)

@kriegaex
Copy link
Contributor

kriegaex commented May 28, 2021

anyway you should have received a gh invite to collaborate.

@olamy, I just accepted it, just so as not to make it expire in 7 days. This is not to be mistaken for me agreeing to commit anything there, it was a "just in case" action.

@olamy
Copy link

olamy commented May 28, 2021

@kriegaex in this case do not accept if you do not want to participate as this doesn't make sense.
If you do not want to participate (as you said below) I will just remove you.
I don't really understand you there....
Do you want to help or not?
I just don't want to waste my time in endless discussion. I have definitely better fish to fry in my life

@kriegaex
Copy link
Contributor

kriegaex commented May 28, 2021

Because I have not received a clear answer to this yet:

If Mojohaus refuses to retire the plugin, I would rather become a member there than risk having two plugins which both publish releases, even merging stuff from one another. That would be chaotic. In that case, the greater good would be served better by me becoming a Mojohaus committer, but I would do so reluctantly and not be happy about it at all. Is that what you want, getting new committers by coercion? I don't think so.

As soon as I know if you guys agree to retire the plugin and avoid a schism of plugins, I know if I see myself forced to commit at Mojohaus or can continue here. And it is not that I do not want to "participate" in anything. I am creating value, maintaining this plugin. I would like to do so on my own terms, because Mojohaus as an organisation has failed. Only if that is not an option, I shall join you. I don't know how much clearer I can be. I am not the person lengthening the debate here. I am just explaining myself, feeling challenged by you guys to explain and justify my decisions in the past and for the future. I want to resolve this issue cleanly and cooperatively and then move on.

@philsttr
Copy link

philsttr commented May 28, 2021

@kriegaex , I'm saying this as a fellow "person who has been disheartened by mojohaus when trying to help"...

I think reviving the plugin at mojohaus would be the best option for the users of the plugin. Bumping a version number is always less painful than changing group ids.

I know the past couple years have been discouraging for you, Nick, me, and others who have offered to help. (BTW, Nick and I were coworkers when this all started.) I'm personally willing to forgive and look forward. I'd be happy to join mojohaus with you, to maintain this plugin over there.

@kriegaex
Copy link
Contributor

kriegaex commented May 29, 2021

@philsttr, I am quite irritated by the Mojohaus people's reactions. Without answering my repeated question if they would accept to retire the upstream repository in favour of this one and without us making a final agreement how to proceed for the benefit of all users, avoiding two active repositories, they started committing again, some changes intersecting with the work I have already done and released here. I think, this is not a particularly cooperative or nice thing to do and certainly not a good start for me as a Mojohaus committer, if I would change my mind after their refusal to retire the plugin.

It feels like coercion or someone doing something just to spite me, only because I said that I do not feel like simply giving up everything I did before, handing over everything back to Mojohaus, now that someone deigned to take notice of the work other people have done while nobody at Mojohaus cared, and just complying with their rules. When I asked them why they suddenly revived a dead project instead of retiring it, the answer was: "The project was never dead, just inactive." Seriously? Why now? Nobody started a burst of activity after Nick forked for the first time, simply trying to keep the plugin alive. Now that I have forked it again upon his request, done some serious work and want to give the plugin a permanent home, suddenly there is activity again, without any information or cooperation in my direction. I just noticed by chance.

Now they are starting to fix issues which I already fixed here. Now they are setting up GitHub CI, after I already fixed all issues in the workflow contributed by Ben, e.g. an integration test profile activation bug and an up-stream AspectJ problem, including a special bugfix release for both AspectJ itself and this plugin on Maven Central yesterday. While I have green builds for a matrix of 27 variants (3 OSs, 3 JDK versions, 3 JVM types), they only have 12 (3x2x2), having deactivated Eclipse J9 JVM and JDK 16. Of course they are going to fix the same issues I fixed already, because they are smart and experienced developers, knowing much more about Maven plugin development than I do. But why the double work? We both have started activating Dependabot, fixed some Javadoc issues (but in different ways), improved the GitHub build workflow (also in different ways). Why are they starting to work against me instead of with me? I never refused collaboration, already having merged some of Ben's PRs and commented on others. I just said, I wanted to avoid working under the Mojohaus umbrella under the current conditions, because I have a working setup already.

Sorry for ranting and complaining. It is just that I do not understand this kind of behaviour. It is like: "We are Mojohaus, we have a name, and you are just a single guy, daring to fork our dead (or inactive, whatever) repository and unwilling to jump the instant we finally react, telling you to jump. Oh, you don't want to jump? Fine, we are wielding the longer lever here, we are just going to starve your little fork out."

I'm personally willing to forgive and look forward.

Actually, for me there was nothing to forgive to begin with. Other than a sense of disappointment long past, I had no hard feelings. It is OSS business as usual that projects die, get forked and maintained by someone else. Now after the second fork (still respecting the same licence and acknowledging prior work of others), they start saying "it is ours, commit here or be an outcast". I was not angry before, I just did my voluntary work and wanted a clean cut in order to be able to say, "aspectj.dev is where the AJ Maven plugin has its new home". The reaction I received, is what makes me angry now. Now I have something to forgive. When Ben opened this issue, there was nothing. Someone extended a hand to me and asked me to join Mojohaus, telling me they would gracefully accept a refusal. I refused, and this is the "graceful" reaction. Yes, I am pissed now. I was not until yesterday. Why can we not work together? Is it beneath anyone to open a PR here instead of at Mojohaus?

This reminds me of how a kid, bored of his own cast away toy, suddenly gets jealous when another kid is picking it up and starting to play with it, tearing it out of her hand, saying "it's mine!".

@philsttr
Copy link

@kriegaex I see it as you were successful in getting the project revived, whereas everyone else (including me) in the past couple years has failed. I'm super-happy about that, and you totally rock because of it. It took excessive effort to do so, and there were bumps along the way, but I think the end result of having it revived at mojohaus is a good thing, and in the best interest of its users. That's my main motivation.

Because of that, I (as a user) will continue to use the mojohaus version as long as it works in my environments, and continues to be maintained. And I (as a contributor/maintainer) will help over there if need be.

It's unfortunate that the revival process was not smooth, but regardless of how things turn out, I'm very thankful for your effort, and the fact that the project is revived and getting attention.

@kriegaex
Copy link
Contributor

kriegaex commented May 30, 2021

I this thread I said multiple times that if Mojohaus refuses to retire the plugin, I would rather join than continue here, even though I do not see why that would be more in the interest of all users than continuing together here. Changing a group ID is no more difficult than changing a version number, and it was the reality for all AspectJ users who wanted to work with anything more recent than JDK 8 for years.

The final brick in the wall against my participation was the uncooperative way of not answering my question whether Mojohaus agrees to retire and hand over the plugin or not, but just starting to commit. The respectful and gentleman-like way of doing it would have been to

  1. inform me of the decision and then
  2. discussing with me how to best get my work merged back into the upstream repository.

Instead, my work was ignored, and they simply started re-doing it, which displays a lack of respect and which I consider offensive. I started this as a continuation of Nick's, Mojohaus' and Codehaus' work. They just ignored me after I was reluctant to join, and factually forked what I have done. Why this sense of entitlement? Why this rudeness? Why this disrespect? I would always and would still collaborate with all of you, but after my experience with Mojohaus, both in the more distant and recent past, I am afraid to be ignored, disrespected, coerced or even bullied. Nobody does that to me in a project I do in my sparetime and for everyone's benefit. If the opener in what is to become a team effort starts with kicking the balls of the very person who has kept this thing alive and who tried everything to talk to maintainer David Karlsen years ago (I still have the messages in my e-mail archive), in order to continue on Mojohaus and then later on Nick's fork, how do you think that makes me feel? Talk is cheap, repeating "you are welcome" and "we respect your work" in the end is just talk. They never should have started committing, reproducing part of my work over there.

No, that's it for me. I am repeating my invitation to all of you, @philsttr, @olamy, @bmarwell and everyone else who wants to collaborate, to continue maintaining the project here under the umbrella of AspectJ.dev instead of Mojohaus. I am no longer asking but now demanding the Mojohaus project to be retired. It would not be the first retired project according to the plugin graveyard, even though those plugins were superseded by the next Apache or Mojohaus project or plugin parameter. Our collaboration here can be just as fruitful as on Mojohaus, and I promise that this repository is not going to be abandoned or ignored. If I ever should be too busy to continue working on it or at least to accept PRs and build releases, I would take care of someone else getting all necessary access rights in order to continue the work.

So please, stop forking my continuation of previous work over there and join the effort here. The door is open and there will be no hard feelings. Together we will be better, I am think that as an experienced AspectJ user for many years (see my track record of community work on StackOverflow) and as an AspectJ committer as of late, I could help make sure to keep the plugin in lock-step with AspectJ development.

After what just happened, I would rather continue working alone here than join Mojohaus, though. I don't want to abandon my work here and work on a fork instead. (Yes, I am calling it a fork, because Nick's and my work has continued for years and Mojohaus is ignoring it, creating an alternative main branch by merging other PRs instead of continuing based on my main branch.)

@kriegaex
Copy link
Contributor

@philsttr, @olamy, @bmarwell, I am watching the activity over there a bit, as you guys are busy solving all the problems with regard to Java 16, Javadoc, PlantUML (you simply removed it, while I solved it, it still works on JDK 8-16 here), recreating prior art. If you want to cannibalise my project here, why don't you at least have the decency to talk to me and merge in my commits, instead of doing the same over there under your own names, as if you came up with those solutions for the first time? Why do people treat each other with such disrespect?

@kriegaex kriegaex changed the title Get commit access to mojohaus and merge it back Continue the work on Mojohaus vs. Aspectj.dev May 30, 2021
@kriegaex kriegaex reopened this May 30, 2021
@kriegaex kriegaex added the discussion general discussion about the project label May 30, 2021
@kriegaex kriegaex self-assigned this May 30, 2021
@kriegaex kriegaex pinned this issue May 30, 2021
@olamy
Copy link

olamy commented May 30, 2021

well this single generated uml diagram has not even been generated here https://www.mojohaus.org/aspectj-maven-plugin/multimodule/multimodule_strategy.html
so I guess no one cares of it :)
it just adding maintenance and some extra env configuration (as it is something local software dependant) so there is no added value of this single generated image as it's not even here for many years.
I guess there is not intention of retiring the project.
Frankly no need to be so aggressive, it's opensource so if you want to fork it just do it.

@philsttr
Copy link

philsttr commented May 30, 2021

If you want to cannibalise my project here, why don't you at least have the decency to talk to me and merge in my commits, instead of doing the same over there under your own names, as if you came up with those solutions for the first time? Why do people treat each other with such disrespect?

For the record, I haven't made any changes or been involved with anything at mojohaus (yet). If it were up to me, your work would be included directly, because I appreciate all the work you have done, and you should get credit. (I can't speak for the others, because I haven't discussed any of this with them yet) I believe all my comments here and behavior have been extremely respectful (I just re-read them to make sure). If I contribute anything at mojohaus, I'll ensure credit is given where credit is due.

Changing a group ID is no more difficult than changing a version number

I disagree with this, for a few reasons.

  1. If the groupid stays the same, then projects still using mojohaus' groupid and using dependabot, or something similar, will be automatically updated, without much effort from users.
  2. If the groupid stays the same (and the project is not using dependabot), then projects upgrading from Java 8 don't have to discover a new group id. Their first move after upgrading from Java 8 and encountering an error in the aspectj-maven-plugin will be just to look for the latest version, and bump it without too much thought. Just like they would do with other plugins/libraries with newer versions that support newer Java versions. If a groupid changes, then there is extra effort to discover and vet the new groupid.
  3. If the groupId stays the same, then in some cases, changing the version number can be done at the pluginManagement level in a root pom, without having to change the child projects. People that maintain a common pluginManagement section with the mojohaus aspectj-maven-plugin can bump the version and have it affect all the child projects, without requiring each child project to change the groupid. This is not really a big deal at smaller shops, but when there are hundreds/thousands of repos, it can get tedious.

These issues mainly just affect projects that haven't upgraded from Java 8 yet. But, honestly, there's still a bunch of those out there. So there is an opportunity to save some effort for people here, and improve the upgrade experience.

Anyway, I'm still commenting as a user mostly. I realize that my opinion of wanting to keep the revived work at mojohaus doesn't match yours. But I totally understand your position, and I respect it.

@kriegaex
Copy link
Contributor

kriegaex commented May 30, 2021

well this single generated uml diagram has not even been generated here https://www.mojohaus.org/aspectj-maven-plugin/multimodule/multimodule_strategy.html

Yes, because PlantUML needs Graphviz in order to do its job. I fixed that and also fixed the situation that the old, retired plugin didn't work on Java 16 and the new one I found does not work on Java 8. My build configuration installs GraphViz on all OSs and switches between the two plugins. You can see the result here.

so I guess no one cares of it :)

Well, I do, because I respect previous commiters' work and wanted to retain it, which I succeeded in doing.

Edit: The PNG file generated from the PlantUML diagram should have been part of the Maven site since 2013 when Lennart Jörelid created it.

Edit: Maybe it fell victim to the Codehaus to Mojohaus migration and nobody really cared or even knew about it. The recently deleted Travis build config did install GraphViz, though. But maybe the site was created from another location.

@kriegaex
Copy link
Contributor

kriegaex commented May 30, 2021

For the record, I haven't made any changes or been involved with anything at mojohaus (yet). If it were up to me, your work would be included directly, because I appreciate all the work you have done, and you should get credit. (I can't speak for the others, because I haven't discussed any of this with them yet) I believe all my comments here and behavior have been extremely respectful (I just re-read them to make sure). If I contribute anything at mojohaus, I'll ensure credit is given where credit is due.

I know that. I just wanted to speak to all three of you, so as not having to write multiple messages. I also said "they" and "Mojohaus" at the beginning of my message, so that does not include you. Only the part where you see yourself as a new Mojohaus member - I see you have been invited to review code there, and you said you prefer to contribute there - is addressed to you, too.

Changing a group ID is no more difficult than changing a version number

I disagree with this, for a few reasons. (...)

No biggie there. As for discovering the new plugin: This will be a no-brainer, if the plugin is retired and points to this repository. Besides, I also announce new plugin versions - even milestones - on the AspectJ users mailing list and would also put the reference to AspectJ Maven into the main AspectJ GitHub read-me file for Maven users. That should cover it. I have not done so yet, because I wanted to reach an agreement with you guys first. But it seems, we only agree about disagreeing.

Anyway, I'm still commenting as a user mostly. I realize that my opinion of wanting to keep the revived work at mojohaus doesn't match yours. But I totally understand your position, and I respect it.

Like I explained in (too?) much detail, there was a chance to invite me to Mojohaus. First Olivier said, he didn't wish to sell anything to me when I asked him to. Then he started committing without waiting for an agreement or even informing me. This is not what current or future team mates do, it is just offensive and unprofessional. I expect basic courtesy. Hence my reaction. Cause and effect.

@kriegaex
Copy link
Contributor

@olamy, you might be surprised that I wish to consult you about another AspectJ + Maven related matter professionally and personally. It is not about AspectJ Maven, though, so I don't want to spawn another thread here. Is there a private channel where we can talk? You can e.g. reach me under user ID kriegaex in both Gitter and Telegram. I wish to discuss a collaboration in another matter, despite our disagreement concerning this project.

@olamy
Copy link

olamy commented May 30, 2021 via email

@bmarwell
Copy link
Contributor Author

Alex, your changes are partly MIT licensed. We cannot pick them directly without your approval, and this is another reason why I would prefer to not contribute here.

About plant uml: yeah, I think no one really needs that. The gh install task takes ages, too.

@kriegaex
Copy link
Contributor

What do you mean, MIT-licenced? I am unaware of any licencing changes. I just committed to the same forked repository without consciously changing or adding any licence. Would you mind pointing me to the commits you think are incompatible with regard to licencing? Thanks for your effort. And if this is a reason for you not to contribute here anymore, why did you not say so before? Maybe this can be fixed. To me this sounds a bit as if you are looking for reasons not to contribute.

@kriegaex
Copy link
Contributor

kriegaex commented May 30, 2021

About plant uml: yeah, I think no one really needs that. The gh install task takes ages, too.

Anyway, I got it working, and I like the UML diagram and the fact that it can be changed. Maybe not each build job should generate a site, like it is configured in this repo, because I have not started streamlining yet, like you did at Mojohaus, with a pipeline of dependent build steps (very cool idea, I am still a GH actions noob). On Linux it takes around 15-30 seconds to set up Graphviz. On Windows it takes 1.5-2 minutes, on MacOS 2-3 minutes. You are right, that is slow. But actually, I am OK with it, if it is not done too many times, just like a normal developer would not create a site during every build, but only after she changed something she wants to test or builds a release, wishing to refresh the Maven Site online.

@kriegaex
Copy link
Contributor

kriegaex commented May 30, 2021

Alex, your changes are partly MIT licensed.

What do you mean, MIT-licenced? I am unaware of any licencing changes.

I just checked: The files containing MIT licences have been there forever, since Codehaus times. Actually, your own first PR here which I accepted - the GitHub build workflow - carries an MIT licence header, which I simply accepted together with your PR. So how is this my fault now?

Besides: The original repository contains the exact same MIT-licenced files:
https://github.com/mojohaus/aspectj-maven-plugin/search?q=%22mit+license%22

Only the build workflow over there suddenly has an Apache licence:
https://github.com/mojohaus/aspectj-maven-plugin/blob/master/.github/workflows/maven.yml

But the whole project is still MIT:
https://github.com/mojohaus/aspectj-maven-plugin/blob/master/LICENSE.txt

So how does that fit together?


Update: Look at this:

# Let's find out, how many MIT licence headers there are in the whole repository
$ for file in $(git ls-files); do git blame $file | grep -E 'MIT +[lL]icen'; done > mit-lic.txt

# Count them
$ wc -l mit-lic.txt
125 mit-lic.txt

# Was any of them committed by Alexander Kriegisch?
$ grep Kriegisch mit-lic.txt
2ce8d744 (Alexander Kriegisch 2021-04-24 17:53:31 +0700  1) MIT License

In commit 2ce8d74, I did not change the licence at all, I merely reformatted the file and added a copyright reference to aspectj.dev. The blamed line simple changed "The MIT license" to "MIT License" as is usual today. BTW, later I added historical information which did not even exist before to the licence file, giving credit to all my predecessors:

MIT License
Copyright 2005-2015 Mojo@Codehaus | Maven group ID: org.codehaus.mojo
Copyright 2015-2018 Mojohaus | Maven group ID: org.codehaus.mojo
Copyright 2018-2020 Nicholas Wong | Maven group ID: com.nickwongdev
Copyright 2021-today Alexander Kriegisch | Maven group ID: dev.aspectj

@bmarwell
Copy link
Contributor Author

Sorry, my mistake.

@kriegaex kriegaex added this to the Release 1.13 milestone Jul 30, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
discussion general discussion about the project
Projects
None yet
Development

No branches or pull requests

5 participants