maestro 0.7.0
CRAN release: 2025-10-31
New features
- Conditional pipelines: A new
maestroRunIftag that takes an R expression returning a boolean and conditionally runs a pipeline. These can use inputs from upstream DAG pipelines, values from the orchestrator viarun_schedule(..., resources = list()), or any arbitrary TRUE/FALSE expression.
Minor changes
maestro::invoke()gains argumentlog_to_consoleallowing it to print messages, warnings, and errors to the console.last_run_errors()and friends now return named lists where the name corresponds to the pipe name.
maestro 0.6.2
CRAN release: 2025-08-20
Minor changes
- Console output of
run_schedule()simplified. Counts of skipped pipelines removed to avoid confusion with@maestroSkiptag. ‘Total’ now refers to the total number of pipelines invoked in a run - not all pipelines in the project.
Bug fixes
-
maestro::invoke()only runs the selected pipeline or DAG rather than accidentally running all pipelines in the schedule (#161)
maestro 0.6.1
CRAN release: 2025-07-18
Minor changes
-
maestro::invoke()on a DAG pipeline successfully executes the full DAG (#156).
Bug fixes
maestro::invoke()now properly passes resources (arguments) to pipelines (#157).Number of errors reported in
get_status()is now accurately reported.
maestro 0.6.0
CRAN release: 2025-05-13
New features
New
maestroFlagstag that allows passing arbitrary pipeline tags, which is useful for documentation and labeling. Tags are now accessible viaget_flags().New function
get_slot_usageto help identify the number of pipelines running on a scheduled time slot.New
maestroPrioritytag that determines the order in which pipelines on the same schedule instance execute. Uses integer values from 1-N where 1 is the highest priority.maestroStartTimenow accepts a timestamp formatted like HH:MM:SS. This is useful for pipelines running on a daily or hourly frequency because the date is often arbitrary in those cases (#143).
Removed features
- Arguments
loggingandlog_fileinrun_schedule(), which were deprecated in maestro 0.5.0 are now fully removed.
maestro 0.5.3
CRAN release: 2025-04-01
Bug fixes
- Fallback within
build_schedule()to address CRAN check.
maestro 0.5.2
CRAN release: 2025-03-14
Minor changes
Pipeline schedule sequences are now stored internally inside of
<MaestroPipeline>objects instead of generated duringrun_schedule(). This has implications when caching a schedule as the sequence only goes out 3 years in advance.Performance improvements to
run_schedule().
Bug fixes
Specifying
maestroHours,maestroDays,maestroMonthsnow correctly adopts the time zone specified inmaestroTz(#141).When using non UTC time zones, the presence of Daylight Savings Time in the
maestroStartTimeis used to adjust the sequence so that invocations occur on the same time interval.Other time zone fixes to deal with differing
maestroTzand system time checks.maestroHours, was only valid whenmaestroFrequencywas specified as ‘hourly’, but now ‘1 hour’ is also acceptable (same applies for other specifier tags).
maestro 0.5.0
CRAN release: 2025-01-07
New features
Pipeline errors, warnings, and messages can now be printed to the console using
run_schedule(log_to_console = TRUE). These logs will be interwoven between messages created bymaestro(#130).run_schedule()gainslog_to_fileargument to specify whether to log to a file (replacesloggingandlog_filearguments).
Deprecated functionality
-
run_schedule()argumentsloggingandlog_fileare deprecated. Uselog_to_file = TRUEto log to a generic maestro.log file orlog_to_file = '[path-to-your-log-file]'to log to a specific text file.
Minor changes
run_schedule()now warns if the unit oforch_frequencyis lower frequency than the highest frequency pipeline in the project.run_schedule()enforces a minimumorch_frequencyof 1 year (e.g., ‘2 years’ or more no longer valid).
Bug fixes
Message and warning counts are now properly displayed in the status and output of
run_schedule(), as well as inlast_run_messages()andlast_run_warnings(), even if they are below themaestroLogLevel.Fixed display of
run_schedule()to have more accurate next run times for pipelines. This issue was evident when running orchestrator on a frequency of daily or lower.
maestro 0.4.0
CRAN release: 2024-11-21
New features
Directed acyclic graph (DAG) pipelines - where the output of one pipeline can feed into another - are now available using the
maestroOutputsandmaestroInputstags. Pipelines that input into a downstream pipeline should use themaestroOutputstag. Pipelines that receive input from an upstream pipeline should use themaestroInputstag (#98).New function
show_networkfor visualizing the connections between pipelines that are connected in a DAG.MaestroSchedulegains new methodsget_network()(returns a data.frame) andshow_network()(returns a visualization using {DiagrammeR}).Added catch-all
maestrotag to identify a function as a pipeline without specifying other configurations.
maestro 0.3.0
CRAN release: 2024-09-23
This version refactors much of the code base to rely on R6 classes for pipelines and schedules. Pay careful attention to the breaking changes to see how existing code may be impacted.
Breaking changes
Schedules are now represented as an R6 object of class
<MaestroSchedule>.build_schedule()returns a MaestroSchedule object that can be passed torun_schedule()as normal. To access the schedule table runget_schedule().run_schedule()no longer returns a list of$statusand$artifactsbut now returns/modifies the MaestroSchedule object. Status can be accessed usingget_status(schedule)and artifacts viaget_artifacts(schedule)suggest_orch_frequency()now takes a<MaestroSchedule>object.Data
example_scheduleremoved from the package.Skipped pipelines are no longer shown in the CLI output of
run_schedule().It is now required that all pipeline names are unique. The names of each maestro pipeline function must be unique across the project to support the implementation of DAGs.
build_schedule()will abort if any non-unique names are detected.
New features
Added functions
get_schedule(),get_status(), andget_artifacts()for interacting with<MaestroSchedule>objects.Added function
invoke()to instantly run a pipeline in a schedule.
Bug Fixes
- Error messaging is clearer when running functions that wrap around purrr iterators (#115).
maestro 0.2.0
CRAN release: 2024-08-27
New features
New tags
maestroHours,maestroDays, andmaestroMonthsallows running of pipelines on specific hours of day, days of week, days of month, or months of year (#100).maestroFrequencytag now accepts the values hourly, daily, weekly, biweekly, monthly, quarterly, and yearly. Argumentorch_frequencytorun_schedule()also accepts these values.
Minor changes
Changed from
example_scheduledata the pipeline with a schedule of 1 minute to 30 minutes in keeping with best practices for minimum pipeline frequency.suggest_orch_frequencynow uses the smallest interval between any two pipelines (#99).
Bug Fixes
Error messages on unintentional overwrites from
create_*()functions correctly reference name of path or directory that was to be overwritten.Fixed cli output of
run_schedule()to not show skipped pipelines in the next run portion.
maestro 0.1.2
CRAN release: 2024-08-01
Bug Fixes
Fixed cli output to correctly handle counting of successful runs when pipelines are skipped.
Performance improvements to
build_schedule()(#101).
maestro 0.1.1
Breaking changes
Creater functions
create_pipeline()andcreate_maestrono longer have default arguments for the path to where the scripts are created. Users must explicitly define these paths.Argument
log_fileinrun_schedule()no longer defaults to./maestro.logbut instead defaults toNULL.
maestro 0.0.4
Bug fixes
- Fixed the output of the next run for pipelines (#90)
maestro 0.0.3
Breaking changes
-
run_schedule()now returns a list with status and artifacts instead of just a data.frame of the status. Artifacts are any values returned from pipelines. Pipelines that return nothing will have no artifacts.
Major changes
- New helper function
suggest_orch_frequency()to provide a suggestion of what frequency to use for the orchestrator.
Minor changes
- Start and end times are now reported from functions that result in an error in single core only (#82).
Bug fixes
- CLI output from
run_schedule()now correctly outputs the total number of pipelines (#81) and correctly outputs number of errors.
maestro 0.0.2
Breaking changes
maestroFrequency tag now adheres to a more human-readable format like “1 day”, “2 hours”, “4 weeks”, etc.
orch_frequencyargument inrun_schedule()also takes more human-readable format identical to maestroFrequency tag.maestroInterval tag removed
orch_intervalargument torun_schedule()removed.create_maestro()andcreate_orchestrator()now use the argumenttypeinstead ofextensionfor defining what script type to use for the orchestrator.Changed
last_parsing_errors()tolast_build_errors(); changed functions of the formlast_runtime_*()tolast_run_*().
Major changes
Additional columns added to the output of
run_schedule():pipeline_startedandpipeline_endedto indicate the start and end times of a pipeline execution;next_runto indicate when the next run should be based on the frequency of the pipeline and orchestrator.Pipelines now show as skipped if they are not scheduled.
Added hex logo
Minor changes
Backend improvements to schedule checking
Timestamps are formatted to specified time zone.
run_schedule()cli output suggests to uselast_run_errors()orlast_run_warnings()if any errors or warnings were found.
