Some Eclipse Foundation services are deprecated, or will be soon. Please ensure you've read this important communication.

Bug 344140

Summary: Update to use new SAT4J 2.3
Product: [Eclipse Project] Equinox Reporter: DJ Houghton <dj.houghton>
Component: p2Assignee: DJ Houghton <dj.houghton>
Status: RESOLVED FIXED QA Contact:
Severity: normal    
Priority: P3 CC: kim.moir, leberre, niels, pascal, pwebster, tjwatson
Version: 3.7Flags: tjwatson: pmc_approved+
Target Milestone: 3.7 RC1   
Hardware: PC   
OS: Mac OS X - Carbon (unsup.)   
Whiteboard:
Bug Depends on: 344139    
Bug Blocks:    
Attachments:
Description Flags
patch
pascal: review+
patch for javadoc pascal: review+

Description DJ Houghton CLA 2011-04-28 11:00:55 EDT
A new SAT4J is available (v2.3) and we should consume it in p2 when it is available. 

CQ: https://dev.eclipse.org/ipzilla/show_bug.cgi?id=5113

Since we are late in the release cycle we need to decide whether or not to consume this version for Indigo. As discussed in the Equinox meeting, I will run the performance tests on the new JARs and report back with the performance results.
Comment 1 DJ Houghton CLA 2011-04-28 11:01:42 EDT
Marking as 3.7 target milestone so we don't lose track.
Comment 2 DJ Houghton CLA 2011-04-28 12:28:58 EDT
CQ approved. Libraries approved for reuse.
Comment 3 DJ Houghton CLA 2011-04-29 13:56:19 EDT
Here are the average times for running the performance tests on the two different versions of the SAT4J jars. I ran the test suites 4 times for each version of the JAR, and these are the average times for each of the 4 tests within the suites.  The new JAR seems to resolve conflicts quicker in most scenarios except the first one, where it is minimally slower.


v2.2.0

736
401
712
749


v2.3.0

810
324
397
417
Comment 4 Pascal Rapicault CLA 2011-05-02 20:37:31 EDT
*** Bug 323333 has been marked as a duplicate of this bug. ***
Comment 5 DJ Houghton CLA 2011-05-03 15:37:36 EDT
Note the version range in the manifest of the director bundle also needs to be changed in order to handle the new versions.
Comment 6 DJ Houghton CLA 2011-05-03 16:05:19 EDT
Created attachment 194639 [details]
patch

Patch with changes to the director manifest to accept the new SAT4J version as well as getting the SAT4J JARs from the latest Orbit committer i-build. Note this needs to be changed to a more permanent build once one is promoted for RC1.
Comment 7 DJ Houghton CLA 2011-05-03 16:06:18 EDT
Kim, I checked the p2 features and they include version 0.0.0 so we don't have to update anything there. Are there any other build-type files that need to be updated for a new version of SAT4J?
Comment 8 Kim Moir CLA 2011-05-03 16:11:09 EDT
org.eclipse.platform.doc.isv\platformOptions.txt also needs to be updated to include path to the new sat4j jars.
Comment 9 DJ Houghton CLA 2011-05-03 16:15:20 EDT
Ok thanks, I'll attach a patch. And I'll assume that it also has to be updated for the new ECF that if we release that too since I see references to those JARs in there as well.
Comment 10 DJ Houghton CLA 2011-05-03 16:28:38 EDT
Created attachment 194643 [details]
patch for javadoc

Also includes changes from bug 341290.
Comment 11 DJ Houghton CLA 2011-05-04 09:56:12 EDT
Daniel, can you describe the amount of change and types of changes between 2.2. and 2.3? We need to determine the amount of risk for putting in the new JARs this late in the release cycle. 

From my memory I believe there are some performance improvements as well as the new addition of the #isOptimal APIs. 

Would you consider moving to v2.3 low-risk?

Thanks.
Comment 12 Daniel Le Berre CLA 2011-05-04 10:25:16 EDT
There are numerous changes in Sat4j itself but very few are used by eclipse.

The only change that is really hitting Eclipse is the explanation algorithm that has been improved.

So I would say that we have few chances to break anything: the code path used by Eclipse has been quite stable for a while.

While the explanation time improvement is alone a good reason to include Sat4j 2.3, I think that the addition of the #isOptimal() API will provide us the ability to better debug specific scenarios where Sat4j may not be able to answer optimally (with the new API, we will be able to report that to the user. We cannot do it right now).

A version of Sat4j very close to 2.3 was used in the last MISC internal competition in p2cudf:
http://www.mancoosi.org/misc-live/20110225/results/

We got there the best results we ever got with p2cudf.

The bugs found by Sat4j users on that version:

http://jira.ow2.org/secure/IssueNavigator.jspa?reset=true&jqlQuery=project+%3D+SAT+AND+issuetype+%3D+Bug+AND+affectedVersion+%3D+%222.3.0%22

do not affect the code we use in Eclipse.

AFAIK Linux distros already use the latest Sat4j with Eclipse 3.6.2 (Fedora, Ubuntu dev version) and no big problem was discovered.

http://www.spinics.net/lists/fedora-testing/msg99376.html

eclipse-3.6.2-5.fc15
--------------------
* Wed Apr 27 2011 Chris Aniszczyk <zx@xxxxxxxxxx> 1:3.6.2-5
- New e-b snapshot - really fixes dropins issue.
- update sat4j dependency to 2.3.0

I would say: very low risks.
Comment 13 Thomas Watson CLA 2011-05-04 10:47:27 EDT
Not sure this requires PMC +1, but I think it would be good to upgrade and the risk seems low.  I suggest we get it in today and do a test build and have it ready for the next nightly.
Comment 14 DJ Houghton CLA 2011-05-04 10:51:40 EDT
I've released the patches to the director and platformOptions.txt files and updated the map file to point to an Orbit i-build that I declared (moved from the committers area to the public area). I'll run a test build.
Comment 15 DJ Houghton CLA 2011-05-04 14:13:51 EDT
The test build was successful. 
Closing.