Pom.xml cleanup / which profiles/tools are we really using?

15 views
Skip to first unread message

Maria Arias de Reyna Dominguez

unread,
Jun 22, 2020, 9:08:21 AM6/22/20
to Syndesis
Hi!

So I'm working towards JDK 11 [1]. A good moment to cleanup old/unused
stuff, right?

First bump in the road, Google error prone is not compatible with JDK
11 as it is configured right now.[2] So looking for where it is and
which other tools for static code analysis we have, I discovered we
have kind of weird profiles, like a non-m2e profile[3]. That smells
like something too specific to eclipse, is it not? Unless you tell me
this is something generic, I would remove it completely.

So, first question: What profiles are we really using? Can we clean up
some of them?

And then, what static analysis tools are we using? Do we have a list
of all of them (the pom files are not ordered by kind of
dependency/plugin)? Are they duplicating the work?

And finally, do we want them running on all builds? Maybe this is
something we can delegate to a second CI job so it "fails quickly" on
big errors, but makes sure it passes the quality controls before
merging?

[1] https://github.com/syndesisio/syndesis/issues/8422
[2] https://github.com/syndesisio/syndesis/blob/master/app/pom.xml#L2673
[3] https://github.com/syndesisio/syndesis/blob/master/app/pom.xml#L571

Cheers!
María Arias de Reyna Domínguez
Senior Software Engineer
She / Her / Hers
ariasd...@redhat.com

Zoran Regvart

unread,
Jun 22, 2020, 2:10:34 PM6/22/20
to Maria Arias de Reyna Dominguez, Syndesis
I wonder if anyone noticed the work I did on the basepom update in:


That finishes the update to run Maven on JDK 11.

And as to the Maven profiles, I’m not aware of any profile that’s not there for a good reason.

zoran
-- 
Sent from mobile

On 22. Jun 2020, at 15:08, Maria Arias de Reyna Dominguez <mari...@redhat.com> wrote:

Hi!
--
You received this message because you are subscribed to the Google Groups "Syndesis" group.
To unsubscribe from this group and stop receiving emails from it, send an email to syndesis+u...@googlegroups.com.
To view this discussion on the web, visit https://groups.google.com/d/msgid/syndesis/CAH4CYDUp9wKCojQ%3Da-OyC8FZ%3DBVJe_mAXrLvX9v%3DvcE1_AY47w%40mail.gmail.com.

Maria Arias de Reyna Dominguez

unread,
Jun 23, 2020, 3:36:19 AM6/23/20
to Zoran Regvart, Syndesis
On Mon, Jun 22, 2020 at 8:10 PM Zoran Regvart <zo...@regvart.com> wrote:
>
> I wonder if anyone noticed the work I did on the basepom update in:
>
> https://github.com/syndesisio/syndesis/pull/8269

In my mind we already had merged this. Going to check about it before
I push my changes.

>
> That finishes the update to run Maven on JDK 11.
>
> And as to the Maven profiles, I’m not aware of any profile that’s not there for a good reason.

I can believe there are profiles that are no longer used. Do we know
what we use each profile for?

Profiles I think make sense:
* image: building the images, sure we need it!
* release: makes sense, signs the builds and all
* flash: yeah, makes sense to build quick

Profiles I am not sure we need:
* skip-checks: do we really need a specific profile for this?
Shouldn't something like "mvn -Dbasepom.check.skip-all " be enough?
* checks: same as previous one. Especially as the previous one exists.
One of them has to be the default one!
* docker: I guess this is used by the Syndesis cli, but looks again
too simple to use a full profile for this. Same as above.
* s2i: same as previous profiles
* non-staging: is this really used? I don't see when the activation
condition gets really activated.
* m2e/non-m2e: what are these for? When are they used? As far as I
know, m2e is a specific eclipse thing.

Zoran Regvart

unread,
Jun 23, 2020, 4:01:06 AM6/23/20
to Maria Arias de Reyna Dominguez, Syndesis
Hi,
see inline

--
Sent from mobile

> On 23. Jun 2020, at 09:36, Maria Arias de Reyna Dominguez <mari...@redhat.com> wrote:
>
> On Mon, Jun 22, 2020 at 8:10 PM Zoran Regvart <zo...@regvart.com> wrote:
>>
>> I wonder if anyone noticed the work I did on the basepom update in:
>>
>> https://github.com/syndesisio/syndesis/pull/8269
>
> In my mind we already had merged this. Going to check about it before
> I push my changes.
>
>>
>> That finishes the update to run Maven on JDK 11.
>>
>> And as to the Maven profiles, I’m not aware of any profile that’s not there for a good reason.
>
> I can believe there are profiles that are no longer used. Do we know
> what we use each profile for?
>
> Profiles I think make sense:
> * image: building the images, sure we need it!
> * release: makes sense, signs the builds and all
> * flash: yeah, makes sense to build quick
>
> Profiles I am not sure we need:
> * skip-checks: do we really need a specific profile for this?
> Shouldn't something like "mvn -Dbasepom.check.skip-all " be enough?

I don’t think so, there are more checks configured than what basepom provides, I think it’s also tied to flash, but I haven’t checked

> * checks: same as previous one. Especially as the previous one exists.

IIRC both exist to enable & configure vs eliminate Maven plugins, removing those influences flash and overall build performance

> One of them has to be the default one!
> * docker: I guess this is used by the Syndesis cli, but looks again
> too simple to use a full profile for this. Same as above.

Used to build docker images on CI, without it we can’t push to Docker hub

> * s2i: same as previous profiles

Used in development to push to OpenShift

> * non-staging: is this really used? I don't see when the activation

I don’t remember this one, look in the git blame

> condition gets really activated.
> * m2e/non-m2e: what are these for? When are they used? As far as I
> know, m2e is a specific eclipse thing.

Yes they are, and there’re needed to avoid issues when using eclipse
Reply all
Reply to author
Forward
0 new messages