make_*()
Made dependencies
argument to make_*()
optional (#25).
Added a force
argument to make_*()
(#26). This allows the user to override the default conditional execution logic to ensure that a given segment of the pipeline is run no matter what.
Implemented Segment
class to serve as the basic building block for the Pipeline
(#28). This clarifies the link between the fundamental make_*()
functions and the Pipeline
object. In particular, each make_*()
call constructs a Segment
which is appended to the Pipeline
.
The Segment
class has an execute()
method, which replicates the execution behaviour of the make_*()
functions. Hence Segment$execute()
can be run to rebuild the targets associated with a given segment without adding a new segment to the Pipeline
as would be done if we called make_*()
again.
The Segment
holds all execution metadata (e.g. execution result, execution time, etc.). This is updated via the Segment$update_result()
method whenever Segment$execute()
is called.
Added a build()
method to the Pipeline
class, which sorts the Segment
s topologically and then calls execute()
on each in turn.
Added a clean()
method to the Pipeline
class, which deletes the targets
associated with each Segment
.
Removed the now redundant makepipe_result
S3 class. All of the information that was held by the makepipe_result
is now held by the Segment
.
Fixed a minor bug in Pipeline$print()
which was causing user-supplied annotations to be overwritten (#23).
Fixed a minor bug in make_register()
(#22). Previously, an error would be thrown when using make_register()
outside of a makepipe
segment if the user set quiet=TRUE
. This is no longer the case.
Renamed package from piper
to makepipe
(#11).
Both make_with_recipe()
and make_with_source()
now return an object of class makepipe_result
(#2, #14). Along with metadata relating to the execution, this object contains a result
element which:
make_with_recipe()
, is identical with whatever the recipe
returnsmake_with_source()
, is a list containing any objects registered in the source script using make_register()
The execution environment for make_*()
is now, by default, a fresh environment whose parent is the calling environment. This can be overridden using the envir
argument.
Added arguments to save_pipeline()
and show_pipeline()
, allowing the user to specify e.g. height and width of output widgets.
Added packages
argument to make_*()
functions, allowing the user to easily add packages as dependencies of their targets. If any of the packages
specified have been updated since the targets
were last produced, the targets
will be registered as out-of-date when make_*()
is run.
NEWS.md
file to track changes to the package.