Repeated post tasks aren't correctly ordered
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 3/5
- Tempo stimato
- 1-2 giorni
- Idoneità per principianti
- 48/100
Direzione di ricerca
Start by reproducing the issue with the Python task definitions in the report and inspect Invoke's task execution and pre/post-task ordering logic. Done means the shared post task runs only once, after the last task that declares it, producing the expected output.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Description
When I set a post task on multiple tasks Invoke correctly only executes it once. But it is executed after the first task that has it as a post task, instead of waiting until the last task is done which has the task as post task.
Code
import invoke
@invoke.task
def post_task(_: invoke.Context) -> None:
print('The last task')
@invoke.task(post=[post_task])
def pre_task_1(_: invoke.Context) -> None:
print('The first pre task')
@invoke.task(post=[post_task])
def pre_task_2(_: invoke.Context) -> None:
print('The second pre task')
@invoke.task(default=True, pre=[pre_task_1, pre_task_2], post=[post_task])
def main(ctx: invoke.Context) -> None:
print('The main task')
Expected output
The first pre task
The second pre task
The main task
The last task
Output result
The first pre task
The last task
The second pre task
The main task
Additional information
- Invoke 2.2.0
- Python 3.11.6
- Lingua principale
- Python
- Stelle
- 4.8k
- Fork
- 414
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di pyinvoke/invoke
-
[Security] Shell injection via Context.cd() path argument — metacharacters not escaped (CWE-78)Forse già presa @HarshRajSinghania l’ha presa 16 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Runner.respond uses join leading to slownessForse già presa @aryansk l’ha presa 52 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Long tasks name make `invoke --list | grep a` crash with "invalid width"Forse già presa @cyphercodes l’ha presa 127 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 70/100
-
Type hints of config do not accept other values than strForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 64/100
Tutte le issue di pyinvoke/invoke
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 83/100
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
fabriziosalmi/certmate#1207 ·
I maintainer di solito rispondono entro 1 giorno
-
[work-item] adam-adae-onset-emergence: document the minute-precision datetime coercion (ASTTMF not derivable)Forse già presa @muse-yamaa-bot l’ha presa oggi. Apertawork-item
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
CommunityToolkit/Aspire#2231 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 66/100
volcengine/OpenViking#5711 ·
I maintainer di solito rispondono entro 1 giorno