ForNeVeR / ForNeVeR/TruePath

A canonical path should have all existing components canonicalized

Aperta
#128 1 commento 0 reazioni 0 assegnatari Vedi su GitHub
enhancement help wanted
Lingua principale
C#
Stelle
104
Fork
15
Merge medio
9m
PR unite (30g)
2

Descrizione

Currently, `AbsolutePath::Canonicalize` will mostly do nothing for a non-existing path, it will be returned as-is.

Which is mostly fine, but might cause misinterpretation on the user's side: e.g. while `myPath.Canonicalize()` is okay-ish and follows the spec "canonical if exists", `myPath.Canonicalize().Parent` is not okay — if `myPath` doesn't exist then this will _not_ be canonicalized, even if existing.

We should think about this situation, perhaps let's introduce two more methods?
- `CanonicalIfExists(): AbsolutePath?`
- `CanonicalRecursive(): AbsolutePath` — which will essentially do `CanonicalIfExists() ?? Parent.CanonicalRecursive() / FileName` — e.g. will try to canonicalize existing parent chain whenever possible

Guida per i contributori

Apri la guida per i contributori

Direzione di ricerca

Inizia con AbsolutePath::Canonicalize e gli esempi nell’issue, concentrandoti sul comportamento per i percorsi inesistenti e i parent esistenti. Decidi se CanonicalIfExists e CanonicalRecursive siano l’API appropriata, includendo la semantica del loro valore restituito e della catena dei parent. Il lavoro è completo quando il comportamento di canonicalizzazione e i contratti dei metodi sono chiaramente definiti e coperti dai test pertinenti del progetto.

Scritto dal modello di indicizzazione a partire dal testo della issue.

Valutazione

Stack tecnologico
csharp
Ambito
operating-systems
Tipo di issue
Funzionalità
Difficoltà
4/5
Tempo stimato
3-5 giorni
Stato di attività
Ferma
Chiarezza
Abbastanza chiara
Idoneità per principianti
35/100

Ricevi le nuove issue nella tua casella

Un breve riepilogo di issue GitHub adatte ai principianti.