Skip to main content

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index] [List Home]
Re: [cbi-dev] [jdt-core-dev] Fwd: compare artifacts to baseline version

I'd be happy to help with some details from JDT/Core.
Unfortunately I can't claim I fully understand the CBI background.


From: *Igor Fedorenko* <igor@xxxxxxxxxxxxxx <mailto:igor@xxxxxxxxxxxxxx>>
Date: Mon, Jul 2, 2012 at 12:00 AM
Subject: [cbi-dev] compare artifacts to baseline version
To: Common-build Developers discussion <cbi-dev@xxxxxxxxxxx
<mailto:cbi-dev@xxxxxxxxxxx>>


As part of "do not generate new version qualifier" implementation, Tycho
compares reactor project artifacts to baseline version to make sure the
build does not try to publish new contents under old/existing version.
This works reasonably well for majority of projects (well, at least
Tycho is able to find baseline artifacts), but there are few artifacts
that are not available from any p2 repository I can find and I am not
sure what to do about them.

Specifically, I could not find p2 repository that provides jdt batch
compiler and ant adaptors, many/all test bundle sources and few other
source bundles.

Does this come as a surprise? I don't see reasons why batch compiler
and ant adaptor should ever appear in any p2 repository. They are not
supposed to be consumed in any OSGi nor Maven contexts.

Well, this is not fully true for the batch compiler. While regular use
is standalone, this might be exactly the bundle that tools like
tycho-compiler-plugin may want to consume? It seems to be an OSGI bundle
already. Maybe it should be published in a p2 repository after all.
Would that make a difference for your question?

Still for the ant adapter I don's see use in having it in a p2 repo.
Also tests are not typically consumed other than from source.

Note that all these bundles are "attached artifacts" and at least one
other artifact is produced from the same project source tree.

These may be obvious, but let me mention anyway:
org.eclipse.jdt.core_version.jar "contains" both of the other artifacts:

- jdtCompilerAdapter.jar is a nested jar inside o.e.jdt.core_v.jar

- batch compiler is a subset of o.e.jdt.core_v.jar, the latter can
  actually be used in place of the former.

Using jdt core as example, what is supposed to happen to batch compiler
and ant adaptor if Tycho finds "equal" baseline version of jdt core bundle?

If baseline version of jdt core bundle is equal to current workspace
version, then batch compiler and ant adapter can not have changed
either, if that's the question.

Should Tycho replace jdt core bundle with baseline version and keep
reactor version of the batch compiler and ant adaptor, i.e. running the
risk of inconsistency between jdt core and other two artifacts?

Should Tycho keep reactor version of all three artifacts and risk of
inconsistency between reactor and baseline versions of jdt core bundle?

Should Tycho just fail the build?

None of these approaches looks good, tbh, but I can't think of any
better/workable alternative.

--
Regards,
Igor

does this already help?
Stephan



Back to the top