Publish workflows¶
Share a workflow by pushing it to a public GitHub repository. Others get it with
agl get.
What it needs¶
- The workflow's directory, as
agl newmakes it: an__init__.pyand apyproject.toml. - In
pyproject.toml: aname, aversionand theagl.workflowsentry. [tool.agl] requires, so people on an older AGL get a clear refusal instead of an error.dependenciesunder[project], if it has any. People are asked before they're installed.
agl get places the directory under its own name, so the agl.workflows entry imports from the
package of that name, as implement = "implement:implement" does in implement/. It refuses an
entry that imports from anywhere else.
agl get refuses a workflow with optional dependencies, [dependency-groups], [tool.uv] or
dynamic metadata. It also refuses one that holds a link or more than 64 MiB of files, or whose
name or entry another workflow in the workspace already has.
List the settings it reads in config, and tell people what to set.
Give people the line to run:
Tag releases so people can pin one with @tag. agl update
brings everyone else your latest.
One repository can hold many workflows, one directory each, and people can get several at once. A workflow's directory sits inside the repository, never at its root.