Skip to content

Releases: workflowfm/proter

Version 0.7.4

26 Nov 10:34

Choose a tag to compare

Minor improvements

  • Adds handlers for collections of Flows: Flow.seq and Flow.par (#51).
  • Adds priorities in the exported task metrics (#52).

Version 0.7.3

12 Apr 15:43

Choose a tag to compare

Fixes a bug with right associativity of Flow.> which I sadly just missed.

Version 0.7.2

12 Apr 14:48

Choose a tag to compare

Improving Flows

A small variety of shortcuts has been added to improve the Flow API.

  • Tried to make the conversion from Task to FlowTask a bit easier. There is now an implicit conversion, as well as a version of the Flow operators that work with a Task (probably redundant with the implicit conversion in place, but implemented nonetheless).
  • There is some optimisation to remove NoTask from the Flow structure when possible.
  • Added Flow shortcut methods to build a FlowSimulation and a FlowSimulationGenerator.

Bugs / Fixes / Improvements

  • Tasks with no attached resources are now properly aborted when their simulation is being aborted (#48).
  • Exponential now properly treats its parameter as the mean value (instead of its inverse).
  • Coordinator can 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

07 Apr 12:53

Choose a tag to compare

Fixes proter-akka and some scaladocs based on latest changes in v0.7.

Version 0.7

07 Apr 12:32

Choose a tag to compare

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

25 Mar 16:05

Choose a tag to compare

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

19 Mar 01:48

Choose a tag to compare

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 Coordinator continuing to process events after TimeLimit (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 EStart not accepting a custom starting time.
  • Merges SimOutputHandler into SimMetricsHandler.
  • Adds unidoc.

Version 0.6 beta

25 Jan 22:54
73730c2

Choose a tag to compare

Version 0.6 beta Pre-release
Pre-release

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

11 Jan 10:18
75a8715

Choose a tag to compare

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 Coordinator to stop all simulations after a certain period of (virtual) time.
  • Code improvements: Some cleaning up, fixed unit tests, minor scaladoc improvements.

Version 0.4

08 Oct 16:57

Choose a tag to compare

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 Coordinator to the Scheduler. Concerns further separated.