Conversation
- Created a new `Dag` class in `dag.cpp` to manage a directed acyclic graph (DAG) structure. - Implemented methods for adding nodes and edges, as well as retrieving the size and topological order of the DAG. - Added unit tests for the `Dag` class in `test_dag.R` to verify node addition and size functionality.
…min/max id inspection
…e shifting functionality
…ns for consistency
… and dependency extraction
…reation and step addition
…y; enhance tests for grouped output handling
…in pip_replace and pip_set_params
Update README.Rmd vignette titles and descriptions for clarity. Refactor _pkgdown.yml to reorganize the reference section into more logical categories (Getting started, Modify steps, Pipeline composition, Inspection and views, Locking and tagging, and S3 methods) and update function names to reflect the new `pip_` prefix convention.
… and conditionally publish test results
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
This PR replaces the original R-based dependency resolution with a high-performance and for pipelines optimized C++ implementation of a DAG and introduces a modern
pip_*functional API.Core Changes
src/dag.cpp, 882 lines): All graph operations (node/edge add/remove, topological ordering, reachability queries) now run at C++ speed via Rcpp external pointers and.Callinterface. This eliminates the R object overhead for dependency resolution.pip_*API: Functional API replacing the R6Pipelineclass —pip_new(),pip_add(),pip_run(),pip_replace(),pip_clone(),pip_bind(), etc.auto/split/reduce/plain): Native support for map-reduce style workflows where steps can split output into named partitions and downstream steps auto-map over them.pipe_*functions andPipelineR6 class preserved as deprecated aliases (R/aliases.R,R/pipelineR6.R).New Features
pip_view()— create filtered pipeline views (by dependencies, tags)pip_tag()/pip_untag()[[extract operator for pipelinesOther