Doc: Extending Context/Runners/etc.
Nobody has claimed this yet.
Assessment
- Difficulty
- 4/5
- Estimated time
- 3-5 days
- Newbie friendliness
- 30/100
- Issue type
- Documentation
- Clarity
- Needs clarification
- Activity status
- Stale
- Tech stack
- python
- Domain
- documentation
Research direction
Start with the existing fabric example and the Context, Config, and Runner extension points mentioned in the issue. Document the minimum implementation for each, including the Local wrapper and .invoke.yaml configuration example, then clarify task gathering, deferred execution, dynamic asynchronous commands, and completion checks for a slurm-style runner.
Written by the indexing model from the issue text.
Description
I am trying to extend invoke to be able to run slurm jobs, and I am slowly figuring out what I need to extend from the example of fabric. It would be nice to have this documented somewhere for other developers. So my understanding is that a common setup is to extend:
Context: The main entity to initialize the work environment and provide a user interfaceConfig: To add your own configurations to be parsed from.invoke.yamlRunner: To define how to run a command
The issue currently is that it is not clear what is the minimum that we need to implement in each class. An example that could help illustrate is maybe a wrapper over Local that takes a "Hello world" message from Config, prints this message before each task/command, and prints a similar message at the start of the context setup.
Is there a matrix/IRC/Discord room to get some quick pointers for these?
Similarly, but more specific to the goal of the slurm wrapper:
- How can I gather the tasks before a
runcommand? Is that done automatically? - Is it possible to prepare run steps or postpone the execution of
runin a context? - In an asynchronous runner, can I dynamically add tasks/run command (dependent or independent on a previous step)
- For an asynchronous runner, where do I specify how to query if a
runis finished or not?
- Dominant language
- Python
- Stars
- 4.8k
- Forks
- 412
- PR merge metrics
- No merged PRs in 30d
Getting set up
We have not checked this project's setup files yet. Start from its README, and see our first-contribution guide for the general steps.
First steps
- Read the whole issue, then the project's contributing guide.
- Comment on the issue to say you are picking it up — it saves two people doing the same work.
- Fork the repository and make your change on a branch.
- Open a pull request that references the issue number.
More from pyinvoke/invoke
-
[Security] Shell injection via Context.cd() path argument — metacharacters not escaped (CWE-78)Open
Difficulty 2/5 1-3 hours Newbie friendliness 72/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 76/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 70/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 64/100
Similar issues
-
good first issue
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
vllm-project/vllm-metal#822 ·
Maintainers usually reply within 1 day
-
vector-store
Difficulty 1/5 1-3 hours Newbie friendliness 90/100
mem0ai/mem0#7461 · 1 comment ·
Maintainers usually reply within 1 day
-
[Bug]: chunk_span_bounds and _validated_chunk_spans reject Pydantic models ChunkSpan and AudioFileOpen
Difficulty 2/5 1-3 hours Newbie friendliness 78/100
BasedHardware/omi#19047 ·
Maintainers usually reply within 1 day
-
Difficulty 2/5 1-3 hours Newbie friendliness 88/100
Maintainers usually reply within 1 day