Windows support (without using WSL)
I maintainer di solito rispondono entro 2 giorni
Valutazione
- Difficoltà
- 5/5
- Tempo stimato
- Più di una settimana
- Idoneità per principianti
- 28/100
- Tipo di issue
- Funzionalità
- Chiarezza
- Abbastanza chiara
- Stato di attività
- Ferma
- Stack tecnologico
- python
- Ambito
- operating-systems, testing-qa
Direzione di ricerca
Inizia dal punto di ingresso _run() e traccia i percorsi attuali di os.fork() e resource.RLIMIT_CPU. Confronta gli approcci di multiprocessing proposti e identifica come vengono trasferiti su Windows lo stato di pytest, gli argomenti, gli errori e i timeout. Il lavoro è completato quando è disponibile il supporto nativo per Windows, preservando al contempo le prestazioni, la gestione degli errori e i timeout dei mutanti su Linux e macOS.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Mutmut 3 currently can be run on Windows through the WSL, but not natively on Windows.
We use fork() as a performance optimization, which only works on Unix systems. However, it should be possible to rewrite mutmut to also work with other multiprocessing options. This would be slower (as we cannot copy the whole memory at fork time, including the initialized pytest setup), but still a nice to have.
If someone wants to add native Windows support, we likely need to:
- rewrite the
_run()method to use a thespawnmethod instead ofos.fork() - pass all necessary arguments to this process (currently we rely on global + local variables to be copied via
forking the whole process memory)
While doing so, we want to ensure that (at least for Linux and MacOS) we have:
- same performance as before (at least for Linux and MacOS)
- same test error handling as before (not sure what/how we currently support this. But e.g. what happens a unit test calls
os._exit()?) - test timeout (currently we use
resource.RLIMIT_CPU, which is Unix-only if I'm not mistaken. This is necessary as mutants can easily create infinite loops)
I would consider following approaches, though there may be better ones:
- create a new process per mutant (as we do now)
- create
max_childrenworker processes and initialize pytest there. The worker processes keep polling mutation tasks from a Queue and perform them - use a
multiprocessing.pool.Poolof sizemax_childrenand initialize pytest in the setup
- Lingua principale
- Python
- Stelle
- 1.5k
- Fork
- 182
- Merge medio
- 2g 7h
- PR unite (30g)
- 1
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Nessun modello di pull request
- Leggi la guida per i contributori
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 boxed/mutmut
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
I maintainer di solito rispondono entro 2 giorni
-
`run` with a `name__mutmut_*` pattern runs the whole test suite in the clean-test checkForse già presa @Ishaan400 l’ha presa 9 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
boxed/mutmut#592 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Invalid unary plus generated in match statementForse già presa @GhostCoder6969 l’ha presa 18 giorni fa. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 2 giorni
-
What do the emoji's mean?Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
boxed/mutmut#560 · 1 commento ·
I maintainer di solito rispondono entro 2 giorni
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
boxed/mutmut#529 · 7 commenti ·
I maintainer di solito rispondono entro 2 giorni
Tutte le issue di boxed/mutmut
Issue simili
-
Examples say cnxApertadocumentation embedded
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 88/100
Alishahryar1/free-claude-code#2111 ·
I maintainer di solito rispondono entro 1 giorno
-
bug
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
I maintainer di solito rispondono entro 1 giorno
-
namespace operations
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
EclipseFdn/open-vsx.org#14373 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
I maintainer di solito rispondono entro 1 giorno