-
Notifications
You must be signed in to change notification settings - Fork 26
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
iotaa v1.1.0 update #687
iotaa v1.1.0 update #687
Conversation
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
I like the new log output!
There was a problem hiding this comment.
Choose a reason for hiding this comment
The reason will be displayed to describe this comment to others. Learn more.
LGTM.
@christinaholtNOAA You have to run a task to see its graph, but you can do it in dry-run mode to avoid making any changes, e.g. via the CLI (and similarly for the API)
|
Synopsis
Update
iotaa
version.The
iotaa
v1.0.0
release revamped internals to use an actual graph data structure (graphlib.TopologicalSorter
from the Python standard library), which made it possible to first assemble a graph of task nodes and then inspect it to remove duplicate nodes, which appear when multiple tasks declare "the same task" as a common requirement. This also allowed the elimination of global state iniotaa
, which made it non-thread-safe. Tasks now execute without being interrupted by the execution of requirement that followed fromiotaa
's old greedy-execution algorithm. Log output was simplified and improved. Use of a graph data structure also made concurrency possible.The
iotaa
v1.1.0
release added thread-based concurrency. This PR doesn't add the use of concurrency touwtools
, but it is an option for future work. For example, IO-bound activities like file copies could benefit from thread-based concurrency.This PR is not meant to change
uwtools
behavior, just to interface with the updatediotaa
correctly. I'll mark it as a breaking change, though, because coupled drivers that provide their owniotaa
tasks may need to make minor updates. I'll contact the Coastal App team about this whenuwtools
v2.6.0
is released.A minor bug is fixed here, though: In the previous
iotaa
version, common required tasks (e.g. tasksfile1
andfile2
both require taskdirectory
to create the directory in which their files will be created) would previously have been executed multiple times, asiotaa
was not able to correctly deduplicate them. This was basically harmless given the idempotence of tasks, but would result in multiple checks of those common tasks' readiness, and associated log messages, which might have been confusing. I think this was rare-to-nonexistent inuwtools
, but was lurking as an oddity/annoyance.This will need to be on-hold until conda-forge builds theiotaa
v1.1.0
package, which is queued in their CI system.Type
Impact
Checklist