diff --git a/CHANGELOG.md b/CHANGELOG.md
index 1a6e0123..46e08d35 100644
--- a/CHANGELOG.md
+++ b/CHANGELOG.md
@@ -10,6 +10,8 @@ Change-log
- countless improvements of javadocs
jsprit-core
+- renaming of core.problem.constraint.HardActivityStateLevelConstraint into HardActivityConstraint
+- renaming of core.problem.constraint.HardRouteStateLevelConstraint into HardRouteConstraint
- StateFactory.createId(String name) moved to core.algorithm.state.StateManager.createStateId(String name)
- StateFactory moved from core.problem.solution.route.state.StateFactory to core.algorithm.state.InternalStates
- StateId moved from core.problem.route.state.StateFactory.StateId to core.algorithm.state.StateId
@@ -18,12 +20,15 @@ Change-log
- StateManager.addDefault... methods do not exists anymore. Client must now decide what to do when state does not exist.
- deprecated core.problem.VehicleRoutingProblem.Builder.addVehicle(Vehicle v) and added core.problem.VehicleRoutingProblem.Builder.addVehicle(AbstractVehicle v)
- deprecated core.problem.VehicleRoutingProblem.Builder.addJob(Job j) and added core.problem.VehicleRoutingProblem.Builder.addJob(AbstractJob j)
+- this [example](https://github.com/jsprit/jsprit/blob/master/jsprit-examples/src/main/java/jsprit/examples/MultipleProductsWithLoadConstraintExample.java) might make migrating from v1.3.1 to v1.4 easier (since both versions are implemented - v1.3.1 was commented out)
- bugfix [#107](https://github.com/jsprit/jsprit/issues/107)
- bugfix [#109](https://github.com/jsprit/jsprit/issues/109)
- bugfix [#111](https://github.com/jsprit/jsprit/issues/111)
- bugfix [#112](https://github.com/jsprit/jsprit/issues/112)
- bugfix [#114](https://github.com/jsprit/jsprit/issues/114)
+- bugfix [#126](https://github.com/jsprit/jsprit/issues/126)
+- bugfix [#128](https://github.com/jsprit/jsprit/issues/128)
**v1.3.1** @ 2014-06-14
diff --git a/WHATS_NEW.md b/WHATS_NEW.md
index 2957c18d..714cd5f0 100644
--- a/WHATS_NEW.md
+++ b/WHATS_NEW.md
@@ -5,6 +5,8 @@ WHATS NEW
2014-09-? new release **v1.4.0**
+v1.4 breaks your code! Look at [changelog](https://github.com/jsprit/jsprit/blob/master/CHANGELOG.md) to migrate from v1.3.1 to v1.4.
+
SKILLS
Skills can now be included easily (see for example https://github.com/jsprit/jsprit/blob/master/jsprit-examples/src/main/java/jsprit/examples/SolomonWithSkillsExample.java).
@@ -56,6 +58,30 @@ This, however, easily enables you to define objective functions that maximizes p
Thus, if you already use your own custom objective function, you need to manually adapt it and add penalties for unassigned jobs.
+ LIFO and FIFO CONSTRAINTS
+
+You can now retrieve additional information about related activities from JobInsertionContext (see https://github.com/jsprit/jsprit/issues/127).
+
+If one deals with shipments then two activities will be inserted: pickupShipment and deliverShipment.
+
+If you implement core.problem.constraint.SoftActivityContraint and core.problem.constraint.HardActivityStateLevelConstraint and thus
+
+public double getCosts(JobInsertionContext iFacts, TourActivity prevAct, TourActivity newAct, TourActivity nextAct, double prevActDepTime);
+
+and
+
+public ConstraintsStatus fulfilled(JobInsertionContext iFacts, TourActivity prevAct, TourActivity newAct, TourActivity nextAct, double prevActDepTime);
+
+you can now retrieve additional information from iFacts. If newAct is "deliverShipment" then
+
+iFacts.getRelatedActivityContext();
+
+provides arrivalTime, endTime and potentialInsertionIndex of the related "pickupShipment" (see javadoc of ActivityContext).
+
+This allows you to easily implement LIFO and FIFO constraints (since you now know where the pickup activity will be inserted).
+
+
+
------------------------------
2014-08-20 jsprit has a mailing list (https://groups.google.com/group/jsprit-mailing-list)