Package selection guidance compiled from public package information, community data, and project usage.
acyclic_steps is a Dart package that provides an explicit, acyclic step dependency framework designed for managing complex workflows with clear dependencies. It enables concurrent evaluation of independent steps while ensuring no circular dependencies exist, promoting predictable execution order. The framework supports dependency injection, making it ideal for testing and modular application design. Built by Google, it integrates seamlessly into Flutter projects across all major platforms.
Use cases
Testing complex workflows
Managing task dependencies in CI/CD
Building modular application pipelines
Simulating state transitions
Implementing configurable build processes
Key features
Acyclic dependency graph enforcement
Concurrent step execution
Built-in dependency injection
Explicit step definitions
Support for platform-agnostic workflows
Suitable for
Test automation frameworks
CI/CD pipeline builders
Modular app architectures
Complex state machine implementations
Developers needing deterministic execution order
Considerations
Requires careful step definition to avoid cycles
Best suited for structured, sequential workflows
May add overhead for simple tasks
Limited documentation beyond basic examples
Depends on proper dependency management practices
Original README
Original README snapshot from the linked source repository. Visit the repository for the latest content.
Dart Neats
A collection of a small neat packages for dart.
Disclaimer: This is not an officially supported Google product.
This repository is meant as a playground where small neat packages are
cultivated. If package grows too large and complex and needs a dedicated issue
tracker it should be moved to a dedicated repository.
Each folder in this repository contains a neatpub package. This project
aims to use a separate package whenever it makes sense to have an independent
major version. This often means splitting functionality into separate packages,
which can be reused independently.
Utility for vendoring packages into a project and rewriting import/export statements.
Repository Management
Packages in this repository uses pub workspaces
a single dart pub get will resolve dependencies for all of them.
Configuration of Github Actions, issue templates, issue labels, etc is automated
with scripts in tool/.
Contributing
We love patches and contributions, please refer to CONTRIBUTING.md for
technicalities on CLA and community guidelines. As this project aims to
build neat packages using other neat packages we might also accept proposals
for new neat packages, though it's often easier to publish independently.
License
Unless stated otherwise contents in this repository is licensed under
Apache License 2.0, see LICENSE.