////
  // Copyright (c) 2021, 2026 Contributors to the Eclipse Foundation
  //
  // This program and the accompanying materials are made
  // available under the terms of the Eclipse Public License 2.0
  // which is available at https://www.eclipse.org/legal/epl-2.0/
  //
  // SPDX-License-Identifier: EPL-2.0
////

include::_initCommon.adoc[]

[[release-notes]]
== Release Notes

The release notes of the Eclipse Logistics Specification and Analysis Tool ({lsat}) are listed below, in reverse chronological order.
[[release-notes-v0.5]]
=== pass:normal[{lsat} v0.5 (2026-02-06)]

This release contains bugfixes, improvements and new features.
For a complete overview of issues that are part of this release, please see the https://gitlab.eclipse.org/eclipse/lsat/lsat/-/milestones/5#tab-issues[milestone v0.5 issue list].

The highlights for this release are:

=== Enhancements

* *Motion Plots for Robot Moves*: Added visualization of speed, acceleration, jerk, and setpoint locations in 
  addition to axis locations, providing better insight into robot movements over time. 
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/74[Issue #74])

* *ALAP/Just-in-Time/Deadlines Support*: Extended LSAT with support for modeling and analyzing actions and 
  activities that should execute as-late-as-possible or meet specific deadlines. 
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/81[Issue #81])

* *Stochastic Distributions in Expression Language*: Added support for assigning stochastic distributions to 
  variables in settings files, providing consistency with direct timing value assignments. 
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/94[Issue #94])

* *Additional Statistical Distributions*: Added Gamma, LogNormal, and Poisson distributions to the available 
  options in settings. (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/97[Issue #97])

* *Motion Calculator Post-Processing*: Implemented a system for applying post-processing operations to deterministic 
  motion calculator results, allowing for stochastic behavior in calculated timings through the new `MoveAdjustments` 
  section. (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/121[Issue #121])

* *Fixed Duration Profile*: Added support for fixed duration moves in the P2P Motion Calculator, simplifying the 
  specification of moves with predetermined durations. 
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/124[Issue #124])

* *Math functions*: Extended the expressions in the settings DSL with the modulo operator and math functions like 
  *sin, cos, tan, asin, acos, atan, atan2, abs, exp, log, min, max and sqrt* for more flexible calculations.
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/115[Issue 115] and 
  https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/126[Issue 126])

* *Enhanced Stochastic Impact Analysis*: Added comprehensive statistics to stochastic impact analysis, including mean, 
  standard deviation, skewness, min, and max values for action start times. 
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/132[Issue #132])

* *HTTP/REST Server*: Added a REST API server to retrieve data and execute functions on LSAT, supporting project 
  listing, file management, and timing analysis operations. 
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/133[Issue #133])

* *Parameterized Activities*: Introduced parameter support for activities, similar to arguments in functional 
  programming languages, allowing for more reusable activity definitions and clearer specifications. 
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/139[Issue #139])

* *Chart View CSV Export*: Added functionality to export Chart View data (including distance, velocity, acceleration, 
  and jerk over time) as CSV files for better analysis. 
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/140[Issue #140])

* *Product Modeling System*: Implemented a comprehensive system to track product ownership transfers and property 
  changes via the generated schedule. Products can be owned and transferred between peripherals, with all transfers 
  and modifications recorded in JSON activity files after timing analysis.

* *Socket/REST/IP based SPG*: Added support for socket-based JSON communication for custom Setpoint Generators, making 
  it easier to integrate with other languages like MATLAB and Python without the complexity of shared C-libraries. 
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/110[Issue #110])

* *Machine Diagram Behavior*: Improved user experience by making machine diagrams open only on user request rather 
  than automatically. (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/137[Issue #137])

* *Performance Improvements*: Enhanced performance for large models, particularly in stochastic analysis, event 
  removal, and activity validation. (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/138[Issue #138])

=== Bug Fixes

* *Documentation Fix*: Corrected the description in CONTRIBUTING.asciidoc which incorrectly contained TRACE 
  description instead of LSAT description. (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/72[Issue #72])

* *QVTO Distribution Recognition*: Fixed an issue where QVTO distributions were not being recognized in Eclipse 
  editors and Project explorer, despite working correctly in Eclipse and Maven builds. 
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/103[Issue #103])

* *Chart View Limits Display*: Resolved incorrect plotting of limits in the chart view when displaying concatenated 
  moves with different movement profiles. (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/117[Issue #117])

* *Stochastic Impact Analysis*: Fixed calculation errors in stochastic impact analysis that were causing incorrect 
  critical path identification due to rounding discrepancies. 
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/131[Issue #131])

* *Duplicate Peripheral Types*: Addressed an issue where machine files allowed multiple peripheral types with the 
  same name, causing only the first defined peripheral type's actions to be recognized. 
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/136[Issue #136])

* *Scientific Notation Support*: Fixed parsing of numbers in scientific notation, particularly for values like 1.0e2 
  which were not being recognized correctly in settings and time-constraint limits. 
  (https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/150[Issue #150])

[[release-notes-v0.4]]
=== pass:normal[{lsat} v0.4 (2025-08-08)]

This release contains bugfixes, improvements and new features.
For a complete overview of issues that are part of this release, please see the https://gitlab.eclipse.org/eclipse/lsat/lsat/-/milestones/4#tab-issues[milestone v0.4 issue list].
The highlights for this release are:

- *Embedded Java runtime* +
  "It is no longer necessary to install a Java Runtime Environment (JRE) for LSAT, 
  as https://download.eclipse.org/justj/jres/21/updates/release/latest[JustJ] is now embedded within LSAT

.Software upgrades

- Eclipse 2020-06 -> Eclipse 2024-09
- Eclipse ESCET v0.6 -> https://eclipse.dev/escet/release-notes.html#version-6-0-2024-12-20[Eclipse ESCET v6.0]
- Eclipse TRACE4CPS v0.1 -> https://eclipse.dev/trace4cps/#release-notes[Eclipse TRACE4CPS v0.3]
- Eclipse JustJ -> https://download.eclipse.org/justj/jres/21/updates/release/latest[Eclipse JustJ 21]

[[release-notes-v0.3]]
=== pass:normal[{lsat} v0.3 (2024-02-15)]

This release contains bugfixes, improvements and new features.
For a complete overview of issues that are part of this release, please see the https://gitlab.eclipse.org/eclipse/lsat/lsat/-/milestones/3#tab-issues[milestone v0.3 issue list].
The highlights for this release are:

- *Parameterized events* +
  To avoid duplicate activities, {lsat} already allowed pools of resources and parametrized activities.
  Parameterization is added for events to avoid activity duplication if events are used for synchronization.

.Software upgrades

- Eclipse TRACE4CPS v0.1 -> https://eclipse.dev/trace4cps/#release-notes-v0.2[Eclipse TRACE4CPS v0.2]

[[release-notes-v0.2]]
=== pass:normal[{lsat} v0.2 (2023-02-07)]

This release contains bugfixes, improvements and new features.
For a complete overview of issues that are part of this release, please see the https://gitlab.eclipse.org/eclipse/lsat/lsat/-/milestones/2#tab-issues[milestone v0.2 issue list].
The highlights for this release are:

- Add support for passive claims in LSAT (issue https://gitlab.eclipse.org/eclipse/lsat/lsat/-/issues/38[#38]) +
  A resource can be passively claimed to ensure that no actions are performed by any of its peripherals until the resource is released again.
  If more activities claim a resource passively, they potentially can run in parallel.

[[release-notes-v0.1]]
=== pass:normal[{lsat} v0.1 (2022-11-01)]

This release contains the {lsat} initial contribution.
This version is a port of https://lsat.esi.nl/userguide/index.html#lsat-v2-0-1[ESI LSAT v2.0.1] that is prepared for its release to the Eclipse foundation, including:

.Software upgrades

- Eclipse Neon -> Eclipse 2020-06
- https://esi.nl/research/output/tools/trace[ESI TRACE] v0.63 -> https://projects.eclipse.org/projects/technology.trace4cps[Eclipse TRACE4CPS] v0.1
- https://cstweb.wtb.tue.nl/cif/trunk-r9682/[TU/e CIF3] -> https://projects.eclipse.org/projects/technology.escet[Eclipse ESCET] v0.1

.Modularity/Flexibility

- Modular setting files
- Expression language
- Resource pools; more concise specifications
- User-defined attributes in dispatching file e.g., for product tracking 
- Multiple phases in dispatching file e.g., set-up, steady-flow and tear-down
- Dependencies between activities

.Motion calculator

- Motion profiles: support for rotational movements
- APIs for integration of motion libraries (JSON and/or Java)
