Community
Participate
Working Groups
Platform projects specify some .settings file to enforce quality rules. Those rules are ignored at build-time by Tycho, whereas Tycho has a way to enable them. Platform Tycho Build should honor this .settings.
This patch seems very low risk. It would be nice to merge it early in M4 cycle, and maybe even to backport it to branch.
Gerrit change https://git.eclipse.org/r/83780 was merged to [master]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/commit/?id=feafe5ccfb91fa741281fa695bff24abb11de933
New Gerrit change created: https://git.eclipse.org/r/84198
Gerrit change https://git.eclipse.org/r/84198 was merged to [master]. Commit: http://git.eclipse.org/c/platform/eclipse.platform.releng.aggregator.git/commit/?id=a993f7339f022966b32b2051da69e6a05563f025
Reverted, because this broke N20161029-1500: [ERROR] Failed to execute goal org.eclipse.tycho:tycho-compiler-plugin:0.25.0:compile (default-compile) on project org.eclipse.osgi: Compilation failure: Compilation failure: [ERROR] /opt/public/eclipse/builds/4N/gitCache/eclipse.platform.releng.aggregator/rt.equinox.framework/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/util/CopyOnWriteSet.java:[22] [ERROR] import java.util.AbstractSet; [ERROR] ^^^^^^^^^^^^^^^^^^^^^ [ERROR] The import java.util.AbstractSet is never used [ERROR] /opt/public/eclipse/builds/4N/gitCache/eclipse.platform.releng.aggregator/rt.equinox.framework/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/Logger.java:[23] [ERROR] import org.osgi.service.resolver.ResolutionException; [ERROR] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [ERROR] The import org.osgi.service.resolver.ResolutionException is never used [ERROR] /opt/public/eclipse/builds/4N/gitCache/eclipse.platform.releng.aggregator/rt.equinox.framework/bundles/org.eclipse.osgi/felix/src/org/apache/felix/resolver/WrappedResource.java:[24] [ERROR] import org.osgi.framework.namespace.IdentityNamespace; [ERROR] ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ [ERROR] The import org.osgi.framework.namespace.IdentityNamespace is never used One reason why we don't use the .settings file in the official build is to make it harder for beginners to commit bad changes to build settings that would then go undetected in the build. I don't think there's anything left to do here.
(In reply to Markus Keller from comment #5) > Reverted, because this broke N20161029-1500: > > [ERROR] Failed to execute goal > org.eclipse.tycho:tycho-compiler-plugin:0.25.0:compile (default-compile) on > project org.eclipse.osgi: Compilation failure: Compilation failure: > [ERROR] > /opt/public/eclipse/builds/4N/gitCache/eclipse.platform.releng.aggregator/rt. > equinox.framework/bundles/org.eclipse.osgi/felix/src/org/apache/felix/ > resolver/util/CopyOnWriteSet.java:[22] > [ERROR] import java.util.AbstractSet; > [ERROR] ^^^^^^^^^^^^^^^^^^^^^ > [ERROR] The import java.util.AbstractSet is never used > [ERROR] Looks like a bug in JDT is hiding this unnecessary import in the IDE, as JDT does not detect the unnecessary import. Opened Bug 506770 for that. Some issue for CopyOnWriteSet, Logger and IdentityNamespace
Opened Bug 506772 for Equinox to remove the unnecessary imports.
> One reason why we don't use the .settings file in the official build is to > make it harder for beginners to commit bad changes to build settings that > would then go undetected in the build. I don't think there's anything left > to do here. This change by requested by some committers that wanted to make sure that platform rules are enforced and verified at build-time, and also to make sure that beginners will conform to these rules thanks to automated build. I don't understand why not using this settings makes harder to create bad changes on them. Can you please elaborate?
Note that although I think the initial request of using .settings/ at build-time as well is a good one and is profitable for both contributors and project and doesn't add any risk, I won't "fight" for it and I'm going to stay away of this conversation to focus on other topics. The commit is there, feel free to cherry-pick it whenever needed.
We don't want to use the project settings as we want to apply the defaults to all projects no matter what they chose to disable or enable. Due to bug 506439 we now have to explicitly disable this.
*** Bug 506766 has been marked as a duplicate of this bug. ***