View Source Change Log

All notable changes to this project will be documented in this file. This project adheres to Semantic Versioning.

unreleased

Unreleased

Diff for unreleased

3-4-0-2021-08-10

3.4.0 - 2021-08-10

added

Added

  • telemetry v1.0.0 support (#483)
  • Logger Metadata (#462 & #464)
  • Support setting job state in config (#463)

fixed

Fixed

  • Invalid Timezone fix in ExecutionBroadcaster (#468)

Diff for 3.4.0

3-3-0-2020-09-25

3.3.0 - 2020-09-25

added-1

Added

  • Support manual job triggering (#459)

Diff for 3.3.0

3-2-0-2020-09-14

3.2.0 - 2020-09-14

added-2

Added

  • Telemetry Support (#415)

fixed-1

Fixed

  • Properly override jobs with duplicate name (#392)
  • Simplify TaskRegistry and make tests deterministic

Diff for 3.2.0

3-1-0-2020-08-18

3.1.0 - 2020-08-18

added-3

Added

  • Additional Supervisor Configuration for Clustering (#450)

Diff for 3.1.0

3-0-2-2020-08-18

3.0.2 - 2020-08-18

fixed-2

Fixed

  • Fix Warnings with Clock Skew (#449)

Diff for 3.0.2

3-0-1-2020-06-16

3.0.1 - 2020-06-16

fixed-3

Fixed

  • ClockEvent order corrected

Diff for 3.0.1

3-0-0-2020-06-11

3.0.0 - 2020-06-11

fixed-4

Fixed

  • Fix @reboot Cron Expression (#437)

Diff for 3.0.0

3-0-0-rc-3-2020-02-28

3.0.0-rc.3 - 2020-02-28

fixed-5

Fixed

  • Update Docs

Diff for 3.0.0-rc.3

3-0-0-rc-2-2020-02-28

3.0.0-rc.2 - 2020-02-28

changed

Changed

  • The Quantum.Storage behaviour contains a new mandatory child_spec/1 callback.

Diff for 3.0.0-rc.2

3-0-0-rc-1-2020-02-26

3.0.0-rc.1 - 2020-02-26

changed-1

Changed

  • A lot of function that were not for public use have been undocumented. Those are now considered internal and may break at any point in time.
  • Quantum.Scheduler has been renamed to Quantum
  • Quantum.Storage.Adapter has been renamed to Quantum.Storage
  • The global mode has been removed. It will be reimplemented if a stable replacement is found.

Diff for 3.0.0-rc.1

2-4-0-2020-02-25

2.4.0 - 2020-02-25

added-4

Added

  • Native Date Library (via #405)
  • Adding of inactive Jobs (via #409)

fixed-6

Fixed

  • GenStage 1.0 compatibility (via #424)
  • Doc Fixes (#394, #396, #400, #401)

Diff for 2.4.0

2-3-4-2019-01-06

2.3.4 - 2019-01-06

fixed-7

Fixed

  • Faster Startup duration for non-global (Fixes #376)

Diff for 2.3.4

2-3-3-2018-09-06

2.3.3 - 2018-09-06

fixed-8

Fixed

  • Fix & Test Swarm Handoff & Conflict Resolution
  • Fix Compilation Error
  • Fix Executor Stat Options for GenStage ~> 0.12.0

Diff for 2.3.3

2-3-2-2018-08-21

2.3.2 - 2018-08-21

fixed-9

Fixed

  • Global Clustering Worker Start

Diff for 2.3.2

2-3-1-2018-08-13

2.3.1 - 2018-08-13

fixed-10

Fixed

  • Fixed Regression in Run Strategy Random

Diff for 2.3.1

2-3-0-2018-08-10

2.3.0 - 2018-08-10

added-5

Added

  • Experimental Storage API

fixed-11

Fixed

  • Use Swarm for clustering to prevent broken cluster state
  • Better search for available nodes for run strategies

Diff for 2.3.0

2-2-7-2018-03-22

2.2.7 - 2018-03-22

changed-2

Changed

  • Moved the Repository into Organization & Correct all the URL's

fixed-12

Fixed

  • Fixed Dialyzer Warnings

Diff for 2.2.7

2-2-6-2018-03-21

2.2.6 - 2018-03-21

fixed-13

Fixed

  • Fixed problem with Daylight Saving Time for jobs with timezone other than UTC.

Diff for 2.2.6

2-2-5-2018-02-26

2.2.5 - 2018-02-26

fixed-14

Fixed

  • Omit gen_stage warning on ~> 0.13

Diff for 2.2.5

2-2-4-2018-02-23

2.2.4 - 2018-02-23

fixed-15

Fixed

  • Relax timex dependency

Diff for 2.2.4

2-2-3-2018-02-13

2.2.3 - 2018-02-13

fixed-16

Fixed

  • Fixed compatibility with gen_stage ~> 0.12

Diff for 2.2.3

2-2-2-2018-02-08

2.2.2 - 2018-02-08

added-6

Added

  • Better Debugging Capabilities

fixed-17

Fixed

  • Relaxed version requirements for gen_stage

Diff for 2.2.2

2-2-1-2018-01-03

2.2.1 - 2018-01-03

fixed-18

Fixed

  • sometimes the task supervisor was not running in a cluster

Diff for 2.2.1

2-2-0-2017-11-07

2.2.0 - 2017-11-07

Diff for 2.2.0

added-7

Added

  • Local run strategy

2-1-3-2017-11-07

2.1.3 - 2017-11-07

Diff for 2.1.3

fixed-19

Fixed

  • Runtime Added Jobs are executed right away instead of waiting for the next job execution.
  • Fix Typo in Doc

2-1-2-2017-11-04

2.1.2 - 2017-11-04

Diff for 2.1.2

added-8

Added

  • Distillery is not mentioned in list of package managers

changed-3

Changed

  • Source is not formatted properly

fixed-20

Fixed

  • Removed unused Alias from Quantum.Job
  • Hot upgrade is not possible due to missing supervisor

2-1-1-2017-10-02

2.1.1 - 2017-10-02

Diff for 2.1.1

fixed-21

Fixed

  • Resolved some Dialyzer Warnings

2-1-0-2017-09-10

2.1.0 - 2017-09-10

Diff for 2.1.0

fixed-22

Fixed

  • Resolved some Dialyzer Warnings

2-1-0-beta-1-2017-08-20

2.1.0-beta.1 - 2017-08-20

Diff for 2.1.0-beta.1

The internal handling has been refactored onto gen_stage. There were a few Breaking Changes which should not influence a user of the library.

changed-4

Changed

  • Replaced call with cast
    • Scheduler.add_job
    • Scheduler.deactivate_job
    • Scheduler.activate_job
    • Scheduler.delete_job
    • Scheduler.delete_all_jobs

removed

Removed

  • The overlap handling is removed from the Job struct.
    • removed Job.pids
    • removed Job.executable?

2-0-4-2017-09-01

2.0.4 - 2017-09-01

Diff for 2.0.4

fixed-23

Fixed

  • Fix Race Condition with reboot in Runner state

2-0-3-2017-08-29

2.0.3 - 2017-08-29

Diff for 2.0.3

fixed-24

Fixed

  • @reboot cron expressions

2-0-2-2017-08-23

2.0.2 - 2017-08-23

Diff for 2.0.2

fixed-25

Fixed

  • Updated Docs.

2-0-1-2017-08-23

2.0.1 - 2017-08-23

Diff for 2.0.1

  • Timezone in job configuration is now normalized into a job.

2-0-0-2017-07-20

2.0.0 - 2017-07-20

Diff for 2.0.0

The whole library has been refactored. See the Migration Guide.

2-0-0-beta-2-2017-07-13

2.0.0-beta.2 - 2017-07-13

Diff for 2.0.0-beta.2

The whole library has been refactored. See the Migration Guide.

2-0-0-beta-1-2017-06-07

2.0.0-beta.1 - 2017-06-07

Diff for 2.0.0-beta.1

The whole library has been refactored. See the Migration Guide.

1-9-2-2017-05-19

1.9.2 - 2017-05-19

Diff for 1.9.2

1-9-1-2017-03-17

1.9.1 - 2017-03-17

Diff for 1.9.1

1-9-0-2017-02-07

1.9.0 - 2017-02-07

Diff for 1.9.0

removed-1

Removed

  • Three modules were removed and replaced by crontab.
    • Quantum.Matcher
    • Quantum.Parser
    • Quantum.Translator

fixed-26

Fixed

  • The whole cron expression syntax is now supported.
  • Crons can now be configured for Umbrella applications. See the README for the new syntax.

changed-5

Changed

  • Cron Expressions can now be provided via the %Crontab.CronExpression{} struct or via the ~e[CRON EXPRESSION] sigil.
  • Cron Expressions can now be extended. This way second granularity of the expressions can be provided.

deprecated

Deprecated

  • The configuration property cron is deprecated. Use the app configuration instead.

1-8-1-2016-11-20

1.8.1 - 2016-11-20

Diff for 1.8.1

changed-6

Changed

  • Clarity on the table to not use full name of day (Coburn Berry)
  • Travis testing against erlang 19.1 and elixir 1.3.3 (Julius Beckmann)
  • Don't allow "local" timezone. Replace Timex w. Calendar (Lau Taarnskov)

fixed-27

Fixed

  • Global cannot be used directly (Po Chen)
  • Support for timezones other than utc or local not in readme (Coburn Berry)
  • Timezone as string not working in config (Daniel Roux)

removed-2

Removed

  • Timex references in readme (Coburn Berry)
  • License badge in README

1-8-0-2016-09-19

1.8.0 - 2016-09-19

Diff for 1.8.0

changed-7

Changed

  • Requires Elixir >= 1.3
  • Updated C4 contribution process to RFC42
  • Updated timex dependency to 3.0 (Svilen Gospodinov)

fixed-28

Fixed

removed-3

Removed

1-7-1-2016-03-24

1.7.1 - 2016-03-24

Diff for 1.7.1

added-9

Added

  • Optional per-job timezone support

fixed-29

Fixed

  • Nodes defaulting in %Quantum.Job struct
  • job.nodes defaulting in the normalizer
  • Test suite after changing defaulting of nodes property for the %Quantum.Jobs{} struct

1-7-0-2016-03-09

1.7.0 - 2016-03-09

Diff for 1.7.0

added-10

Added

  • ToC to README
  • Documentation for overlap option
  • Elixir 1.2 to Travis-CI config
  • Prevent duplicate job-names at runtime (Kai Faber)

changed-8

Changed

  • ToC markdown
  • Default values are now configurable
  • Updated all dependencies
  • Required Elixir version is now >= 1.2

fixed-30

Fixed

  • Overlap option was not set to jobs
  • Incorrect example in README
  • Timezone is not configurable at runtime
  • Credo warnings
  • GenServer restarts when one of the jobs crashes (#82)

1-6-1-2015-12-09

1.6.1 - 2015-12-09

Diff for 1.6.1

fixed-31

Fixed

  • @reboot entries are throwing errors
  • Credo warnings and software design suggestions
  • Elixir 1.2 warnings

changed-9

Changed

  • Dependency 'credo' updated
  • Refactored range variables
  • .gitignore updated

1-6-0-2015-11-25

1.6.0 - 2015-11-25

Diff for 1.6.0

added-11

Added

  • PID of last executed task to job struct
  • Credo code linter (only for dev and test)
  • Total downloads badge to README
  • Elixir 1.1.0 and Erlang 18.1 to Travis-CI config

fixed-32

Fixed

  • Max hour is 23, not 24
  • Long-running jobs could overlap
  • Typo in README (Lucas Charles)
  • Incorrect function and response types in readme (Bart van Zon)
  • Unnamed job tuples cannot take args (Lucas Charles)
  • Job names can only be atoms and can't be GC (Luis Hurtado)

1-5-0-2015-09-24

1.5.0 - 2015-09-24

Diff for 1.5.0

added-12

Added

  • Ability to run jobs on exact node (Rodion Vshevtsov)
  • Documentation of named jobs
  • OTP 17.5 and 18.0 to Travis tests

changed-10

Changed

  • ex_doc dependency version

fixed-33

Fixed

  • Typos in README

1-4-0-2015-09-02

1.4.0 - 2015-09-02

Diff for 1.4.0

added-13

Added

  • Named jobs and the ability to (de)activate them (Rodion Vshevtsov)
  • Doc annotations for functions
  • Inch-CI integration

changed-11

Changed

  • Updated ex_doc dependency

1-3-2-2015-08-22

1.3.2 - 2015-08-22

Diff for 1.3.2

added-14

Added

  • Timezone option to README.

fixed-34

Fixed

  • Using @reboot lead to crash.

1-3-1-2015-07-27

1.3.1 - 2015-07-27

Diff for 1.3.1

added-15

Added

  • Added contributors to changelog and project description
  • Option to use local timezone instead of UTC.

changed-12

Changed

  • Tables in README use markdown format

1-3-0-2015-07-15

1.3.0 - 2015-07-15

Diff for 1.3.0

added-16

Added

1-2-4-2015-06-22

1.2.4 - 2015-06-22

Diff for 1.2.4

changed-13

Changed

  • Renamed parse/5 functions to do_parse/5 and made them private
  • Always use {expression, fun} for jobs
  • Moved duplicate code to new private function only_multiplier_of/2
  • Moved code to normalize jobs to separate module
  • Correctly use passed state in Quantum.init/1 function
  • Moved reboot logic to executor.

removed-4

Removed

  • Unnecessary guard clause
  • Unused parse/3 functions
  • Unused call to String.split on patterns starting with "*/"

1-2-3-2015-06-15

1.2.3 - 2015-06-15

Diff for 1.2.3

added-17

Added

  • Support for @reboot

fixed-35

Fixed

  • Does not convert jobs defined in config

1-2-2-2015-06-15

1.2.2 - 2015-06-15

Diff for 1.2.2

added-18

Added

  • Support for @annually and @midnight

changed-14

Changed

  • Function order in Quantum.Matcher
  • Renamed private translate function to do_translate
  • Do not convert and translate cron expressions on every tick

fixed-36

Fixed

  • Adding a job using Quantum.add_job/2 does not convert to lowercase
  • Adding a job using Quantum.add_job/2 does not translate day/month names

1-2-1-2015-06-13

1.2.1 - 2015-06-13

Diff for 1.2.1

added-19

Added

  • Test for handle_info(:tick_state)
  • Dependencies to generate hexdocs
  • Badge for hexdocs
  • Link to docs in hex package info
  • Type specs and doc annotations

changed-15

Changed

  • Quantum.Application does not call Quantum.start_link/1 anymore
  • Moved match logic to separate module Quantum.Matcher
  • Moved parsing logic to separate module Quantum.Parser
  • Moved execution logic to separate module Quantum.Executor
  • Moved translation logic to separate module Quantum.Translator

fixed-37

Fixed

  • Typos in changelog

removed-5

Removed

  • Quantum.start_link/1

1-2-0-2015-06-11

1.2.0 - 2015-06-11

Diff for 1.2.0

changed-16

Changed

  • Date is updated in state only if it changed
  • Wake up every minute instead of every second

fixed-38

Fixed

  • Intervals on ranges are not correctly parsed
  • Hour constraints are not correct (Lenz Gschwendtner)
  • There is no changelog
  • Code coverage is low
  • Explicit variables are not needed
  • Pattern matching can be simplified

1-1-0-2015-05-28

1.1.0 - 2015-05-28

Diff for 1.1.0

added-20

Added

  • Add ability to schedule jobs at runtime and ability to view jobs (Dan Swain)

changed-17

Changed

  • Relax Elixir version

1-0-4-2015-05-26

1.0.4 - 2015-05-26

Diff for 1.0.4

fixed-39

Fixed

  • Written month and weekday names are not parsed

1-0-3-2015-05-01

1.0.3 - 2015-05-01

Diff for 1.0.3

fixed-40

Fixed

  • Do not fire on first tick

1-0-2-2015-04-29

1.0.2 - 2015-04-29

Diff for 1.0.2

fixed-41

Fixed

  • Special expressions are not correctly in all cases

removed-6

Removed

  • Functions to add and reset jobs

1-0-1-2015-04-27

1.0.1 - 2015-04-27

Diff for 1.0.1

added-21

Added

  • Configure cronjobs in config
  • Add application

fixed-42

Fixed

  • Parsing of cron expression fails

1-0-0-2015-04-27

1.0.0 - 2015-04-27

Diff for 1.0.0

added-22

Added

  • Initial commit