Discussion:
[m2e-wtp-dev] Breaking changes to the archetype API -> m2e 2.0?
Fred Bricon
2015-03-18 23:45:24 UTC
Permalink
Hi,

I have an initial POC that uses maven-archetype-plugin 2.3, instead of the
2.0.alpha4 version (which was released in the 17th century, give or take).

I checked it fixes the following issues :
- https://bugs.eclipse.org/459453,
- https://bugs.eclipse.org/424010,
- https://bugs.eclipse.org/394918,
- https://bugs.eclipse.org/374660,
- https://bugs.eclipse.org/405945 (on OSX at least),
- https://bugs.eclipse.org/415114,
- https://bugs.eclipse.org/429287

Bugs https://bugs.eclipse.org/446657, https://bugs.eclipse.org/348893 may
or not be fixed (I can't test proxies)

Most of these issues were automatically closed already after 1 year of
inactivity. Doesn't mean the bugs are not there. My level of annoyance just
reached a point where I'd like to take action now.

The only problem with the archetype update is it will break 3rd party
adopters (JBoss Tools at least) depending on the archetype API
(package/class names changed between 2.0.alpha4 and 2.3). I don't plan on
introducing a compatibility layer, not worth the hassle IMHO.
Given that I'm also in charge of the JBoss Tools integration, I'm fine with
the impact :-)

Getting the fix in will require m2e to bump its version to 2.0 (and open a
bunch of CQs in ipzilla)

I'd really like to get that change in for Eclipse Mars, if possible. Is it
too late from a release plan standpoint (i.e. 1.6 -> 2.0)? PMC, fellow m2e
committers wdyt?

Fred
--
"Have you tried turning it off and on again" - The IT Crowd
Greg Amerson
2015-03-19 03:02:25 UTC
Permalink
Hey Fred,

Just want to clarify some of the APIs that may be changing. In our adopter
product we have code that looks like this:

final ArchetypeManager archetypeManager =
MavenPluginActivator.getDefault().getArchetypeManager();
final ArtifactRepository remoteArchetypeRepository =
archetypeManager.getArchetypeRepository( archetype );
...
final List<IProject> newProjects =
projectConfigurationManager.createArchetypeProjects(
location, archetype, groupId, artifactId, version,
javaPackage, properties, configuration, monitor );


I'm assuming you mean some of these APIs will change in incompatible ways
in the proposed m2e 2.0? Well I guess ArchetypeManager was always marked
internal, so its fair game to be changed even if m2e doesn't go to 2.0. But
the IProjectConfigurationManager was "API", so is that one of the
interfaces that will undergo breaking change in 2.0?
Is there any downside at all to upgrading? If you've done the work and
fixed all those issues I'm super happy you've moved us forward.
Honestly I doubt anyone has tied into the guts of Archetype aside from you
and really I think it's a small price to pay if the odd party is. You've
updated the code and I assume made it easier to deal with so I only see
upside.
+1
Post by Fred Bricon
Hi,
I have an initial POC that uses maven-archetype-plugin 2.3, instead of
the 2.0.alpha4 version (which was released in the 17th century, give or
take).
Post by Fred Bricon
- https://bugs.eclipse.org/459453,
- https://bugs.eclipse.org/424010,
- https://bugs.eclipse.org/394918,
- https://bugs.eclipse.org/374660,
- https://bugs.eclipse.org/405945 (on OSX at least),
- https://bugs.eclipse.org/415114,
- https://bugs.eclipse.org/429287
Bugs https://bugs.eclipse.org/446657, https://bugs.eclipse.org/348893
may or not be fixed (I can't test proxies)
Post by Fred Bricon
Most of these issues were automatically closed already after 1 year of
inactivity. Doesn't mean the bugs are not there. My level of annoyance just
reached a point where I'd like to take action now.
Post by Fred Bricon
The only problem with the archetype update is it will break 3rd party
adopters (JBoss Tools at least) depending on the archetype API
(package/class names changed between 2.0.alpha4 and 2.3). I don't plan on
introducing a compatibility layer, not worth the hassle IMHO.
Post by Fred Bricon
Given that I'm also in charge of the JBoss Tools integration, I'm fine
with the impact :-)
Post by Fred Bricon
Getting the fix in will require m2e to bump its version to 2.0 (and open
a bunch of CQs in ipzilla)
Post by Fred Bricon
I'd really like to get that change in for Eclipse Mars, if possible. Is
it too late from a release plan standpoint (i.e. 1.6 -> 2.0)? PMC, fellow
m2e committers wdyt?
Post by Fred Bricon
Fred
--
"Have you tried turning it off and on again" - The IT Crowd
_______________________________________________
m2e-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
Post by Fred Bricon
https://dev.eclipse.org/mailman/listinfo/m2e-dev
Thanks,
Jason
----------------------------------------------------------
Jason van Zyl
Founder, Takari and Apache Maven
http://twitter.com/jvanzyl
http://twitter.com/takari_io
---------------------------------------------------------
First, the taking in of scattered particulars under one Idea,
so that everyone understands what is being talked about ... Second,
the separation of the Idea into parts, by dividing it at the joints,
as nature directs, not breaking any limb in half as a bad carver might.
-- Plato, Phaedrus (Notes on the Synthesis of Form by C. Alexander)
_______________________________________________
m2e-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-dev
--
Greg Amerson
Liferay Developer Tools
Liferay, Inc. www.liferay.com
Fred Bricon
2015-03-19 03:39:21 UTC
Permalink
Greg,

only internal m2e classes have been modified, but the archetype runtime
doesn't expose the same Maven classes anymore
(org.apache.maven.archetype.Archetype -> ArchetypeManager) so... it might
not even apply for a major version bump after all. that's debatable I guess.

Here's the extent of the changes, so far :
https://github.com/eclipse/m2e-core/compare/master...fbricon:archetyper-2.x?expand=1

If we can keep on with 1.6 with these changes, fine by me :-)

The downside of moving to 2.0 is a lot of m2e extensions would probably
need to be rebuilt if they use version ranges like [1.0, 2.0). That's
impacts definitely more adopters than the handful that depends on the
archetype API.
Post by Greg Amerson
Hey Fred,
Just want to clarify some of the APIs that may be changing. In our
final ArchetypeManager archetypeManager =
MavenPluginActivator.getDefault().getArchetypeManager();
final ArtifactRepository remoteArchetypeRepository =
archetypeManager.getArchetypeRepository( archetype );
...
final List<IProject> newProjects =
projectConfigurationManager.createArchetypeProjects(
location, archetype, groupId, artifactId, version,
javaPackage, properties, configuration, monitor );
I'm assuming you mean some of these APIs will change in incompatible ways
in the proposed m2e 2.0? Well I guess ArchetypeManager was always marked
internal, so its fair game to be changed even if m2e doesn't go to 2.0. But
the IProjectConfigurationManager was "API", so is that one of the
interfaces that will undergo breaking change in 2.0?
Is there any downside at all to upgrading? If you've done the work and
fixed all those issues I'm super happy you've moved us forward.
Honestly I doubt anyone has tied into the guts of Archetype aside from
you and really I think it's a small price to pay if the odd party is.
You've updated the code and I assume made it easier to deal with so I only
see upside.
+1
Post by Fred Bricon
Hi,
I have an initial POC that uses maven-archetype-plugin 2.3, instead of
the 2.0.alpha4 version (which was released in the 17th century, give or
take).
Post by Fred Bricon
- https://bugs.eclipse.org/459453,
- https://bugs.eclipse.org/424010,
- https://bugs.eclipse.org/394918,
- https://bugs.eclipse.org/374660,
- https://bugs.eclipse.org/405945 (on OSX at least),
- https://bugs.eclipse.org/415114,
- https://bugs.eclipse.org/429287
Bugs https://bugs.eclipse.org/446657, https://bugs.eclipse.org/348893
may or not be fixed (I can't test proxies)
Post by Fred Bricon
Most of these issues were automatically closed already after 1 year of
inactivity. Doesn't mean the bugs are not there. My level of annoyance just
reached a point where I'd like to take action now.
Post by Fred Bricon
The only problem with the archetype update is it will break 3rd party
adopters (JBoss Tools at least) depending on the archetype API
(package/class names changed between 2.0.alpha4 and 2.3). I don't plan on
introducing a compatibility layer, not worth the hassle IMHO.
Post by Fred Bricon
Given that I'm also in charge of the JBoss Tools integration, I'm fine
with the impact :-)
Post by Fred Bricon
Getting the fix in will require m2e to bump its version to 2.0 (and
open a bunch of CQs in ipzilla)
Post by Fred Bricon
I'd really like to get that change in for Eclipse Mars, if possible. Is
it too late from a release plan standpoint (i.e. 1.6 -> 2.0)? PMC, fellow
m2e committers wdyt?
Post by Fred Bricon
Fred
--
"Have you tried turning it off and on again" - The IT Crowd
_______________________________________________
m2e-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
Post by Fred Bricon
https://dev.eclipse.org/mailman/listinfo/m2e-dev
Thanks,
Jason
----------------------------------------------------------
Jason van Zyl
Founder, Takari and Apache Maven
http://twitter.com/jvanzyl
http://twitter.com/takari_io
---------------------------------------------------------
First, the taking in of scattered particulars under one Idea,
so that everyone understands what is being talked about ... Second,
the separation of the Idea into parts, by dividing it at the joints,
as nature directs, not breaking any limb in half as a bad carver might.
-- Plato, Phaedrus (Notes on the Synthesis of Form by C. Alexander)
_______________________________________________
m2e-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-dev
--
Greg Amerson
Liferay Developer Tools
Liferay, Inc. www.liferay.com
_______________________________________________
m2e-wtp-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-wtp-dev
--
"Have you tried turning it off and on again" - The IT Crowd
Greg Amerson
2015-03-19 05:29:24 UTC
Permalink
Thanks for the details Fred. This change doesn't break our API usage
because we just depend on some m2e-core internal APIs which don't appear to
change with that changeset.

Speaking of which, looking at just this one commit:
https://github.com/fbricon/m2e-core/commit/29e014e49fb2cb442ed2f935590ad1c296a2dfe2

For org.eclipse.m2e.core API I don't see any non-internal API changes, thus
there is no reason here to necessitate a 1.6->2.0 jump. That leaves the
jars that are bundled in the maven runtime will change with the new
archetyper 2.3 version. So I guess that is where the 1.6->2.0 major
version bump is required right?
Post by Fred Bricon
Greg,
only internal m2e classes have been modified, but the archetype runtime
doesn't expose the same Maven classes anymore
(org.apache.maven.archetype.Archetype -> ArchetypeManager) so... it might
not even apply for a major version bump after all. that's debatable I guess.
https://github.com/eclipse/m2e-core/compare/master...fbricon:archetyper-2.x?expand=1
If we can keep on with 1.6 with these changes, fine by me :-)
The downside of moving to 2.0 is a lot of m2e extensions would probably
need to be rebuilt if they use version ranges like [1.0, 2.0). That's
impacts definitely more adopters than the handful that depends on the
archetype API.
On Wed, Mar 18, 2015 at 11:02 PM, Greg Amerson <
Post by Greg Amerson
Hey Fred,
Just want to clarify some of the APIs that may be changing. In our
final ArchetypeManager archetypeManager =
MavenPluginActivator.getDefault().getArchetypeManager();
final ArtifactRepository remoteArchetypeRepository =
archetypeManager.getArchetypeRepository( archetype );
...
final List<IProject> newProjects =
projectConfigurationManager.createArchetypeProjects(
location, archetype, groupId, artifactId, version,
javaPackage, properties, configuration, monitor );
I'm assuming you mean some of these APIs will change in incompatible ways
in the proposed m2e 2.0? Well I guess ArchetypeManager was always marked
internal, so its fair game to be changed even if m2e doesn't go to 2.0. But
the IProjectConfigurationManager was "API", so is that one of the
interfaces that will undergo breaking change in 2.0?
Is there any downside at all to upgrading? If you've done the work and
fixed all those issues I'm super happy you've moved us forward.
Honestly I doubt anyone has tied into the guts of Archetype aside from
you and really I think it's a small price to pay if the odd party is.
You've updated the code and I assume made it easier to deal with so I only
see upside.
+1
Post by Fred Bricon
Hi,
I have an initial POC that uses maven-archetype-plugin 2.3, instead of
the 2.0.alpha4 version (which was released in the 17th century, give or
take).
Post by Fred Bricon
- https://bugs.eclipse.org/459453,
- https://bugs.eclipse.org/424010,
- https://bugs.eclipse.org/394918,
- https://bugs.eclipse.org/374660,
- https://bugs.eclipse.org/405945 (on OSX at least),
- https://bugs.eclipse.org/415114,
- https://bugs.eclipse.org/429287
Bugs https://bugs.eclipse.org/446657, https://bugs.eclipse.org/348893
may or not be fixed (I can't test proxies)
Post by Fred Bricon
Most of these issues were automatically closed already after 1 year of
inactivity. Doesn't mean the bugs are not there. My level of annoyance just
reached a point where I'd like to take action now.
Post by Fred Bricon
The only problem with the archetype update is it will break 3rd party
adopters (JBoss Tools at least) depending on the archetype API
(package/class names changed between 2.0.alpha4 and 2.3). I don't plan on
introducing a compatibility layer, not worth the hassle IMHO.
Post by Fred Bricon
Given that I'm also in charge of the JBoss Tools integration, I'm fine
with the impact :-)
Post by Fred Bricon
Getting the fix in will require m2e to bump its version to 2.0 (and
open a bunch of CQs in ipzilla)
Post by Fred Bricon
I'd really like to get that change in for Eclipse Mars, if possible.
Is it too late from a release plan standpoint (i.e. 1.6 -> 2.0)? PMC,
fellow m2e committers wdyt?
Post by Fred Bricon
Fred
--
"Have you tried turning it off and on again" - The IT Crowd
_______________________________________________
m2e-dev mailing list
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
Post by Fred Bricon
https://dev.eclipse.org/mailman/listinfo/m2e-dev
Thanks,
Jason
----------------------------------------------------------
Jason van Zyl
Founder, Takari and Apache Maven
http://twitter.com/jvanzyl
http://twitter.com/takari_io
---------------------------------------------------------
First, the taking in of scattered particulars under one Idea,
so that everyone understands what is being talked about ... Second,
the separation of the Idea into parts, by dividing it at the joints,
as nature directs, not breaking any limb in half as a bad carver might.
-- Plato, Phaedrus (Notes on the Synthesis of Form by C. Alexander)
_______________________________________________
m2e-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-dev
--
Greg Amerson
Liferay Developer Tools
Liferay, Inc. www.liferay.com
_______________________________________________
m2e-wtp-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-wtp-dev
--
"Have you tried turning it off and on again" - The IT Crowd
_______________________________________________
m2e-wtp-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-wtp-dev
--
Greg Amerson
Liferay Developer Tools
Liferay, Inc. www.liferay.com
Fred Bricon
2015-03-19 05:41:03 UTC
Permalink
Yes, exactly my point. major bump or not, due to archetyper classes
changes, that is the question.
Post by Greg Amerson
Thanks for the details Fred. This change doesn't break our API usage
because we just depend on some m2e-core internal APIs which don't appear to
change with that changeset.
https://github.com/fbricon/m2e-core/commit/29e014e49fb2cb442ed2f935590ad1c296a2dfe2
For org.eclipse.m2e.core API I don't see any non-internal API changes,
thus there is no reason here to necessitate a 1.6->2.0 jump. That leaves
the jars that are bundled in the maven runtime will change with the new
archetyper 2.3 version. So I guess that is where the 1.6->2.0 major
version bump is required right?
Post by Fred Bricon
Greg,
only internal m2e classes have been modified, but the archetype runtime
doesn't expose the same Maven classes anymore
(org.apache.maven.archetype.Archetype -> ArchetypeManager) so... it might
not even apply for a major version bump after all. that's debatable I guess.
https://github.com/eclipse/m2e-core/compare/master...fbricon:archetyper-2.x?expand=1
If we can keep on with 1.6 with these changes, fine by me :-)
The downside of moving to 2.0 is a lot of m2e extensions would probably
need to be rebuilt if they use version ranges like [1.0, 2.0). That's
impacts definitely more adopters than the handful that depends on the
archetype API.
On Wed, Mar 18, 2015 at 11:02 PM, Greg Amerson <
Post by Greg Amerson
Hey Fred,
Just want to clarify some of the APIs that may be changing. In our
final ArchetypeManager archetypeManager =
MavenPluginActivator.getDefault().getArchetypeManager();
final ArtifactRepository remoteArchetypeRepository =
archetypeManager.getArchetypeRepository( archetype );
...
final List<IProject> newProjects =
projectConfigurationManager.createArchetypeProjects(
location, archetype, groupId, artifactId, version,
javaPackage, properties, configuration, monitor );
I'm assuming you mean some of these APIs will change in incompatible
ways in the proposed m2e 2.0? Well I guess ArchetypeManager was always
marked internal, so its fair game to be changed even if m2e doesn't go to
2.0. But the IProjectConfigurationManager was "API", so is that one of the
interfaces that will undergo breaking change in 2.0?
Is there any downside at all to upgrading? If you've done the work and
fixed all those issues I'm super happy you've moved us forward.
Honestly I doubt anyone has tied into the guts of Archetype aside from
you and really I think it's a small price to pay if the odd party is.
You've updated the code and I assume made it easier to deal with so I only
see upside.
+1
Post by Fred Bricon
Hi,
I have an initial POC that uses maven-archetype-plugin 2.3, instead
of the 2.0.alpha4 version (which was released in the 17th century, give or
take).
Post by Fred Bricon
- https://bugs.eclipse.org/459453,
- https://bugs.eclipse.org/424010,
- https://bugs.eclipse.org/394918,
- https://bugs.eclipse.org/374660,
- https://bugs.eclipse.org/405945 (on OSX at least),
- https://bugs.eclipse.org/415114,
- https://bugs.eclipse.org/429287
Bugs https://bugs.eclipse.org/446657, https://bugs.eclipse.org/348893
may or not be fixed (I can't test proxies)
Post by Fred Bricon
Most of these issues were automatically closed already after 1 year
of inactivity. Doesn't mean the bugs are not there. My level of annoyance
just reached a point where I'd like to take action now.
Post by Fred Bricon
The only problem with the archetype update is it will break 3rd party
adopters (JBoss Tools at least) depending on the archetype API
(package/class names changed between 2.0.alpha4 and 2.3). I don't plan on
introducing a compatibility layer, not worth the hassle IMHO.
Post by Fred Bricon
Given that I'm also in charge of the JBoss Tools integration, I'm
fine with the impact :-)
Post by Fred Bricon
Getting the fix in will require m2e to bump its version to 2.0 (and
open a bunch of CQs in ipzilla)
Post by Fred Bricon
I'd really like to get that change in for Eclipse Mars, if possible.
Is it too late from a release plan standpoint (i.e. 1.6 -> 2.0)? PMC,
fellow m2e committers wdyt?
Post by Fred Bricon
Fred
--
"Have you tried turning it off and on again" - The IT Crowd
_______________________________________________
m2e-dev mailing list
To change your delivery options, retrieve your password, or
unsubscribe from this list, visit
Post by Fred Bricon
https://dev.eclipse.org/mailman/listinfo/m2e-dev
Thanks,
Jason
----------------------------------------------------------
Jason van Zyl
Founder, Takari and Apache Maven
http://twitter.com/jvanzyl
http://twitter.com/takari_io
---------------------------------------------------------
First, the taking in of scattered particulars under one Idea,
so that everyone understands what is being talked about ... Second,
the separation of the Idea into parts, by dividing it at the joints,
as nature directs, not breaking any limb in half as a bad carver might.
-- Plato, Phaedrus (Notes on the Synthesis of Form by C. Alexander)
_______________________________________________
m2e-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-dev
--
Greg Amerson
Liferay Developer Tools
Liferay, Inc. www.liferay.com
_______________________________________________
m2e-wtp-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-wtp-dev
--
"Have you tried turning it off and on again" - The IT Crowd
_______________________________________________
m2e-wtp-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-wtp-dev
--
Greg Amerson
Liferay Developer Tools
Liferay, Inc. www.liferay.com
_______________________________________________
m2e-wtp-dev mailing list
To change your delivery options, retrieve your password, or unsubscribe
from this list, visit
https://dev.eclipse.org/mailman/listinfo/m2e-wtp-dev
--
"Have you tried turning it off and on again" - The IT Crowd
Loading...