Releases: workflowfm/proter
Version 0.7.4
Version 0.7.3
Fixes a bug with right associativity of Flow.> which I sadly just missed.
Version 0.7.2
Improving Flows
A small variety of shortcuts has been added to improve the Flow API.
- Tried to make the conversion from
TasktoFlowTaska bit easier. There is now an implicit conversion, as well as a version of theFlowoperators that work with aTask(probably redundant with the implicit conversion in place, but implemented nonetheless). - There is some optimisation to remove
NoTaskfrom theFlowstructure when possible. - Added
Flowshortcut methods to build aFlowSimulationand aFlowSimulationGenerator.
Bugs / Fixes / Improvements
- Tasks with no attached resources are now properly aborted when their simulation is being aborted (#48).
Exponentialnow properly treats its parameter as the mean value (instead of its inverse).Coordinatorcan no longer be started multiple times (which would lead to chaotic behaviour).- Resource costs are now properly added to simulation metrics.
Version 0.7.1
Fixes proter-akka and some scaladocs based on latest changes in v0.7.
Version 0.7
Arrival Rates and Repeating Processes
Proter now supports repeating processes (simulations) with a given probability distribution as an arrival rate.
Limits can be enforced either in the number of instances to be produced or on the time (through a TimeLimit).
See also #47
This introduces a further layer of structure, the SimulationGenerator. This produces Simulation (or SimulationRef instances, each with its own fresh name. Some of our examples (such as HealthcareHandover) already implement builder classes like that, so it makes sense. We are looking for ways to reduce this additional complexity if possible.
Schedulers
Added more schedulers in a generalised way. Introduced two types of scheduling:
- Greedy: tries to start as many tasks as possible in a given order. May block early tasks that cannot start yet.
- Strict: starts tasks in a given order trying to never block an early task, even if it has not started yet.
Renamed SortedSetScheduler to PriorityScheduler and now also allowing a custom Ordering.
Introduced First-Come-First-Served schedulers.
Explicit Priorities
Explicit priorities no longer use a custom Priority trait, which did not really add anything, but are simple integers.
Old named priorities (Highest to VeryLow) are kept as aliases for backwards compatibility and to allow a more declarative style if so desired.
v0.6.1
First sonatype release
Features a restructured build file with more metadata as required by sonatype, plus a bump to the sbt version.
Version 0.6
Major update
This updated implementation no longer uses Akka actors at its core, with the aim of improving performance.
An Akka-based implementation is still available as a separate module named proter-akka.
Minor updates and bug fixes
- Improves unit tests using scalamock.
- Fixes
Coordinatorcontinuing to process events afterTimeLimit(see #41). - Fixes issue where
ready()would be called before all current events have been handled (see #42). - Fixes D3 timeline output showing tasks that never started (see #43).
- Fixes
EStartnot accepting a custom starting time. - Merges
SimOutputHandlerintoSimMetricsHandler. - Adds unidoc.
Version 0.6 beta
Major update
This updated implementation no longer uses Akka actors at its core, with the aim of improving performance.
Further testing, benchmarking, bug fixing, and updated scaladocs are expected before full 0.6 release.
Version 0.5
First open source version!
(Pending some agreements/approvals to make the repository public.)
Changed the name of the project to Proter, the first half of the word προτεραιότητα (protereotita) which is Greek for priority.
Proter is being released under the Apache 2.0 license.
Updates
- New feature: Simulations can now be stopped. A time limit can also be set on the
Coordinatorto stop all simulations after a certain period of (virtual) time. - Code improvements: Some cleaning up, fixed unit tests, minor scaladoc improvements.
Version 0.4
Major update: Look-ahead
The Scheduler can now incorporate look-ahead provided by the simulations. See #21
This allows the scheduling of future high priority tasks in favour of current low priority ones.
Minor updates
- Task generators now have predefined
UUIDs for their tasks. See #25 - The task queue has been moved from the
Coordinatorto theScheduler. Concerns further separated.