[jboss-svn-commits] JBL Code SVN: r33367 - in labs/jbossrules/trunk/drools-planner: drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move and 4 other directories.
jboss-svn-commits at lists.jboss.org
jboss-svn-commits at lists.jboss.org
Sun Jun 6 04:13:42 EDT 2010
Author: ge0ffrey
Date: 2010-06-06 04:13:41 -0400 (Sun, 06 Jun 2010)
New Revision: 33367
Added:
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/AssignmentSwitchMove.java
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/AssignmentSwitchMoveFactory.java
Removed:
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/EmployeeAssignmentSwitchMove.java
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/EmployeeAssignmentSwitchMoveFactory.java
Modified:
labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/statistic/BestScoreStatistic.java
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringLongSolverBenchmarkConfig.xml
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringMediumSolverBenchmarkConfig.xml
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringSprintSolverBenchmarkConfig.xml
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringStepLimitSolverBenchmarkConfig.xml
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringSolverConfig.xml
labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/test/java/org/drools/planner/examples/nurserostering/solver/NurseRosteringScoreRulesTest.java
Log:
rename EmployeeAssignmentSwitchMove to AssignmentSwitchMove + tweak best score statistic graph
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/statistic/BestScoreStatistic.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/statistic/BestScoreStatistic.java 2010-06-06 05:31:39 UTC (rev 33366)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-core/src/main/java/org/drools/planner/benchmark/statistic/BestScoreStatistic.java 2010-06-06 08:13:41 UTC (rev 33367)
@@ -167,7 +167,6 @@
seriesCollection.addSeries(configSeries);
}
NumberAxis xAxis = new NumberAxis("Time millis spend");
- xAxis.setAutoRangeIncludesZero(false);
xAxis.setNumberFormatOverride(new MillisecondsSpendNumberFormat());
NumberAxis yAxis = new NumberAxis("Score");
yAxis.setAutoRangeIncludesZero(false);
Copied: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/AssignmentSwitchMove.java (from rev 33335, labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/EmployeeAssignmentSwitchMove.java)
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/AssignmentSwitchMove.java (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/AssignmentSwitchMove.java 2010-06-06 08:13:41 UTC (rev 33367)
@@ -0,0 +1,72 @@
+package org.drools.planner.examples.nurserostering.solver.move;
+
+import java.util.Arrays;
+import java.util.Collection;
+
+import org.apache.commons.lang.ObjectUtils;
+import org.apache.commons.lang.builder.EqualsBuilder;
+import org.apache.commons.lang.builder.HashCodeBuilder;
+import org.drools.WorkingMemory;
+import org.drools.planner.core.localsearch.decider.acceptor.tabu.TabuPropertyEnabled;
+import org.drools.planner.core.move.Move;
+import org.drools.planner.examples.nurserostering.domain.Assignment;
+import org.drools.planner.examples.nurserostering.domain.Employee;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class AssignmentSwitchMove implements Move, TabuPropertyEnabled {
+
+ private Assignment leftAssignment;
+ private Assignment rightAssignment;
+
+ public AssignmentSwitchMove(Assignment leftAssignment, Assignment rightAssignment) {
+ this.leftAssignment = leftAssignment;
+ this.rightAssignment = rightAssignment;
+ }
+
+ public boolean isMoveDoable(WorkingMemory workingMemory) {
+ return !ObjectUtils.equals(leftAssignment.getEmployee(), rightAssignment.getEmployee());
+ }
+
+ public Move createUndoMove(WorkingMemory workingMemory) {
+ return new AssignmentSwitchMove(rightAssignment, leftAssignment);
+ }
+
+ public void doMove(WorkingMemory workingMemory) {
+ Employee oldLeftEmployee = leftAssignment.getEmployee();
+ Employee oldRightEmployee = rightAssignment.getEmployee();
+ NurseRosterMoveHelper.moveEmployee(workingMemory, leftAssignment, oldRightEmployee);
+ NurseRosterMoveHelper.moveEmployee(workingMemory, rightAssignment, oldLeftEmployee);
+ }
+
+ public Collection<? extends Object> getTabuProperties() {
+ return Arrays.<Assignment>asList(leftAssignment, rightAssignment);
+ }
+
+ public boolean equals(Object o) {
+ if (this == o) {
+ return true;
+ } else if (o instanceof AssignmentSwitchMove) {
+ AssignmentSwitchMove other = (AssignmentSwitchMove) o;
+ return new EqualsBuilder()
+ .append(leftAssignment, other.leftAssignment)
+ .append(rightAssignment, other.rightAssignment)
+ .isEquals();
+ } else {
+ return false;
+ }
+ }
+
+ public int hashCode() {
+ return new HashCodeBuilder()
+ .append(leftAssignment)
+ .append(rightAssignment)
+ .toHashCode();
+ }
+
+ public String toString() {
+ return leftAssignment + " <=> " + rightAssignment;
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/EmployeeAssignmentSwitchMove.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/EmployeeAssignmentSwitchMove.java 2010-06-06 05:31:39 UTC (rev 33366)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/EmployeeAssignmentSwitchMove.java 2010-06-06 08:13:41 UTC (rev 33367)
@@ -1,72 +0,0 @@
-package org.drools.planner.examples.nurserostering.solver.move;
-
-import java.util.Arrays;
-import java.util.Collection;
-
-import org.apache.commons.lang.ObjectUtils;
-import org.apache.commons.lang.builder.EqualsBuilder;
-import org.apache.commons.lang.builder.HashCodeBuilder;
-import org.drools.WorkingMemory;
-import org.drools.planner.core.localsearch.decider.acceptor.tabu.TabuPropertyEnabled;
-import org.drools.planner.core.move.Move;
-import org.drools.planner.examples.nurserostering.domain.Assignment;
-import org.drools.planner.examples.nurserostering.domain.Employee;
-
-/**
- * @author Geoffrey De Smet
- */
-public class EmployeeAssignmentSwitchMove implements Move, TabuPropertyEnabled {
-
- private Assignment leftAssignment;
- private Assignment rightAssignment;
-
- public EmployeeAssignmentSwitchMove(Assignment leftAssignment, Assignment rightAssignment) {
- this.leftAssignment = leftAssignment;
- this.rightAssignment = rightAssignment;
- }
-
- public boolean isMoveDoable(WorkingMemory workingMemory) {
- return !ObjectUtils.equals(leftAssignment.getEmployee(), rightAssignment.getEmployee());
- }
-
- public Move createUndoMove(WorkingMemory workingMemory) {
- return new EmployeeAssignmentSwitchMove(rightAssignment, leftAssignment);
- }
-
- public void doMove(WorkingMemory workingMemory) {
- Employee oldLeftEmployee = leftAssignment.getEmployee();
- Employee oldRightEmployee = rightAssignment.getEmployee();
- NurseRosterMoveHelper.moveEmployee(workingMemory, leftAssignment, oldRightEmployee);
- NurseRosterMoveHelper.moveEmployee(workingMemory, rightAssignment, oldLeftEmployee);
- }
-
- public Collection<? extends Object> getTabuProperties() {
- return Arrays.<Assignment>asList(leftAssignment, rightAssignment);
- }
-
- public boolean equals(Object o) {
- if (this == o) {
- return true;
- } else if (o instanceof EmployeeAssignmentSwitchMove) {
- EmployeeAssignmentSwitchMove other = (EmployeeAssignmentSwitchMove) o;
- return new EqualsBuilder()
- .append(leftAssignment, other.leftAssignment)
- .append(rightAssignment, other.rightAssignment)
- .isEquals();
- } else {
- return false;
- }
- }
-
- public int hashCode() {
- return new HashCodeBuilder()
- .append(leftAssignment)
- .append(rightAssignment)
- .toHashCode();
- }
-
- public String toString() {
- return leftAssignment + " <=> " + rightAssignment;
- }
-
-}
Copied: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/AssignmentSwitchMoveFactory.java (from rev 33335, labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/EmployeeAssignmentSwitchMoveFactory.java)
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/AssignmentSwitchMoveFactory.java (rev 0)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/AssignmentSwitchMoveFactory.java 2010-06-06 08:13:41 UTC (rev 33367)
@@ -0,0 +1,33 @@
+package org.drools.planner.examples.nurserostering.solver.move.factory;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.ListIterator;
+
+import org.drools.planner.core.move.Move;
+import org.drools.planner.core.move.factory.CachedMoveFactory;
+import org.drools.planner.core.solution.Solution;
+import org.drools.planner.examples.nurserostering.domain.Assignment;
+import org.drools.planner.examples.nurserostering.domain.NurseRoster;
+import org.drools.planner.examples.nurserostering.solver.move.AssignmentSwitchMove;
+
+/**
+ * @author Geoffrey De Smet
+ */
+public class AssignmentSwitchMoveFactory extends CachedMoveFactory {
+
+ public List<Move> createCachedMoveList(Solution solution) {
+ NurseRoster nurseRoster = (NurseRoster) solution;
+ List<Assignment> assignmentList = nurseRoster.getEmployeeAssignmentList();
+ List<Move> moveList = new ArrayList<Move>();
+ for (ListIterator<Assignment> leftIt = assignmentList.listIterator(); leftIt.hasNext();) {
+ Assignment leftAssignment = leftIt.next();
+ for (ListIterator<Assignment> rightIt = assignmentList.listIterator(leftIt.nextIndex()); rightIt.hasNext();) {
+ Assignment rightAssignment = rightIt.next();
+ moveList.add(new AssignmentSwitchMove(leftAssignment, rightAssignment));
+ }
+ }
+ return moveList;
+ }
+
+}
Deleted: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/EmployeeAssignmentSwitchMoveFactory.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/EmployeeAssignmentSwitchMoveFactory.java 2010-06-06 05:31:39 UTC (rev 33366)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/java/org/drools/planner/examples/nurserostering/solver/move/factory/EmployeeAssignmentSwitchMoveFactory.java 2010-06-06 08:13:41 UTC (rev 33367)
@@ -1,33 +0,0 @@
-package org.drools.planner.examples.nurserostering.solver.move.factory;
-
-import java.util.ArrayList;
-import java.util.List;
-import java.util.ListIterator;
-
-import org.drools.planner.core.move.Move;
-import org.drools.planner.core.move.factory.CachedMoveFactory;
-import org.drools.planner.core.solution.Solution;
-import org.drools.planner.examples.nurserostering.domain.Assignment;
-import org.drools.planner.examples.nurserostering.domain.NurseRoster;
-import org.drools.planner.examples.nurserostering.solver.move.EmployeeAssignmentSwitchMove;
-
-/**
- * @author Geoffrey De Smet
- */
-public class EmployeeAssignmentSwitchMoveFactory extends CachedMoveFactory {
-
- public List<Move> createCachedMoveList(Solution solution) {
- NurseRoster nurseRoster = (NurseRoster) solution;
- List<Assignment> assignmentList = nurseRoster.getEmployeeAssignmentList();
- List<Move> moveList = new ArrayList<Move>();
- for (ListIterator<Assignment> leftIt = assignmentList.listIterator(); leftIt.hasNext();) {
- Assignment leftAssignment = leftIt.next();
- for (ListIterator<Assignment> rightIt = assignmentList.listIterator(leftIt.nextIndex()); rightIt.hasNext();) {
- Assignment rightAssignment = rightIt.next();
- moveList.add(new EmployeeAssignmentSwitchMove(leftAssignment, rightAssignment));
- }
- }
- return moveList;
- }
-
-}
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringLongSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringLongSolverBenchmarkConfig.xml 2010-06-06 05:31:39 UTC (rev 33366)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringLongSolverBenchmarkConfig.xml 2010-06-06 08:13:41 UTC (rev 33367)
@@ -41,7 +41,7 @@
<absoluteSelection>500</absoluteSelection>
</selector>
<selector>
- <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+ <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentSwitchMoveFactory</moveFactoryClass>
<absoluteSelection>500</absoluteSelection>
</selector>
</selector>
@@ -63,7 +63,7 @@
<absoluteSelection>500</absoluteSelection>
</selector>
<selector>
- <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+ <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentSwitchMoveFactory</moveFactoryClass>
<absoluteSelection>500</absoluteSelection>
</selector>
</selector>
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringMediumSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringMediumSolverBenchmarkConfig.xml 2010-06-06 05:31:39 UTC (rev 33366)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringMediumSolverBenchmarkConfig.xml 2010-06-06 08:13:41 UTC (rev 33367)
@@ -42,7 +42,7 @@
<absoluteSelection>400</absoluteSelection>
</selector>
<selector>
- <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+ <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentSwitchMoveFactory</moveFactoryClass>
<absoluteSelection>400</absoluteSelection>
</selector>
</selector>
@@ -64,7 +64,7 @@
<absoluteSelection>400</absoluteSelection>
</selector>
<selector>
- <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+ <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentSwitchMoveFactory</moveFactoryClass>
<absoluteSelection>400</absoluteSelection>
</selector>
</selector>
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringSprintSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringSprintSolverBenchmarkConfig.xml 2010-06-06 05:31:39 UTC (rev 33366)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringSprintSolverBenchmarkConfig.xml 2010-06-06 08:13:41 UTC (rev 33367)
@@ -51,7 +51,7 @@
<absoluteSelection>100</absoluteSelection>
</selector>
<selector>
- <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+ <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentSwitchMoveFactory</moveFactoryClass>
<absoluteSelection>100</absoluteSelection>
</selector>
</selector>
@@ -73,7 +73,7 @@
<absoluteSelection>100</absoluteSelection>
</selector>
<selector>
- <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+ <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentSwitchMoveFactory</moveFactoryClass>
<absoluteSelection>100</absoluteSelection>
</selector>
</selector>
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringStepLimitSolverBenchmarkConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringStepLimitSolverBenchmarkConfig.xml 2010-06-06 05:31:39 UTC (rev 33366)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/benchmark/nurseRosteringStepLimitSolverBenchmarkConfig.xml 2010-06-06 08:13:41 UTC (rev 33367)
@@ -25,7 +25,7 @@
<absoluteSelection>500</absoluteSelection>
</selector>
<selector>
- <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+ <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentSwitchMoveFactory</moveFactoryClass>
<absoluteSelection>500</absoluteSelection>
</selector>
</selector>
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringSolverConfig.xml
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringSolverConfig.xml 2010-06-06 05:31:39 UTC (rev 33366)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/main/resources/org/drools/planner/examples/nurserostering/solver/nurseRosteringSolverConfig.xml 2010-06-06 08:13:41 UTC (rev 33367)
@@ -21,7 +21,7 @@
<absoluteSelection>500</absoluteSelection>
</selector>
<selector>
- <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.EmployeeAssignmentSwitchMoveFactory</moveFactoryClass>
+ <moveFactoryClass>org.drools.planner.examples.nurserostering.solver.move.factory.AssignmentSwitchMoveFactory</moveFactoryClass>
<absoluteSelection>500</absoluteSelection>
</selector>
</selector>
Modified: labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/test/java/org/drools/planner/examples/nurserostering/solver/NurseRosteringScoreRulesTest.java
===================================================================
--- labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/test/java/org/drools/planner/examples/nurserostering/solver/NurseRosteringScoreRulesTest.java 2010-06-06 05:31:39 UTC (rev 33366)
+++ labs/jbossrules/trunk/drools-planner/drools-planner-examples/src/test/java/org/drools/planner/examples/nurserostering/solver/NurseRosteringScoreRulesTest.java 2010-06-06 08:13:41 UTC (rev 33367)
@@ -36,7 +36,7 @@
WorkingMemory workingMemory = localSearchSolverScope.getWorkingMemory();
Score firstScore = localSearchSolverScope.calculateScoreFromWorkingMemory();
- // do EmployeeAssignmentSwitchMove
+ // do AssignmentSwitchMove
Employee leftEmployee = findEmployeeById(nurseRoster, 0L);
Assignment leftAssignment = findEmployeeAssignmentById(nurseRoster, 200204001L);
assertEquals(leftEmployee, leftAssignment.getEmployee());
@@ -46,7 +46,7 @@
NurseRosterMoveHelper.moveEmployee(workingMemory, leftAssignment, rightEmployee);
NurseRosterMoveHelper.moveEmployee(workingMemory, rightAssignment, leftEmployee);
localSearchSolverScope.calculateScoreFromWorkingMemory();
- // undo EmployeeAssignmentSwitchMove;
+ // undo AssignmentSwitchMove;
NurseRosterMoveHelper.moveEmployee(workingMemory, rightAssignment, rightEmployee);
NurseRosterMoveHelper.moveEmployee(workingMemory, leftAssignment, leftEmployee);
Score secondScore = localSearchSolverScope.calculateScoreFromWorkingMemory();
More information about the jboss-svn-commits
mailing list