[heft-sass-plugin] Incremental cache file name depends on the machine (absolute build folder, core count)
Les mainteneurs répondent en général sous 1 jour
Personne n'a encore pris cette issue.
Évaluation
- Difficulté
- 2/5
- Temps estimé
- 1-3 heures
- Accessibilité débutants
- 68/100
- Type d'issue
- Bug
- Clarté
- Plutôt claire
- Activité
- Active
- Stack technique
- sass, typescript
- Domaine
- build-system
Piste de recherche
Le nom du fichier de cache est calculé dans SassProcessor.loadCacheAsync à partir de JSON.stringify(this.#options), et les options sont assemblées dans SassPlugin. Vérifie quels champs sont des chemins absolus ou concurrency, puis soit tu les rends relatifs à buildFolder avant le hachage, soit tu passes à un nom de fichier fixe avec le hachage stocké à l'intérieur. C'est terminé lorsque deux builds dans des dossiers de checkout différents ou avec un nombre de cœurs différent produisent la même liste de temp/build/sass et que le cache est toujours invalidé lors de véritables changements d'options.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
🤖 Filed by GitHub Copilot acting for @namankanakiya (light review only).
Package: @rushstack/heft-sass-plugin 1.5.1 (with @rushstack/heft 1.3.3), Linux.
Summary: the plugin's incremental cache file name depends on the machine (the absolute build folder and the core count), so identical builds on different machines or in different checkout folders produce different output folder listings.
Source: SassProcessor.loadCacheAsync computes
configHash = getContentsHash('sass.json', JSON.stringify(this.#options)).slice(0, 8)
and writes temp/build/sass/sass_<configHash>.json. The options come from SassPlugin and include:
buildFolder(absolute),srcFolder,dtsOutputFolders,cssOutputFolders,loadPaths(resolved to absolute paths),concurrency = heftConfiguration.numberOfCores(os.availableParallelism()).
Repro: build the same project twice, once normally and once with taskset -c 0-7 (or from a different checkout folder). temp/build/sass contains sass_9nUQkQ8d.json in one build and sass_DDgrCciE.json in the other.
Observed: identical inputs give different output listings. Build-cache entries produced on different machines (for example CI vs a developer box) differ, and tools that compare or hash output folder listings see a change where there is none, which can trigger needless downstream rebuilds.
Expected: the file name depends only on options that affect the output.
Suggested fix (either):
- Hash the options with folders made relative to
buildFolderand withoutconcurrency(and any other non-semantic fields), or - Use a fixed file name (for example
temp/build/sass/sass.json) and store the options hash inside the file, invalidating the cache when it does not match.
Happy to test a candidate fix.
- Langage dominant
- TypeScript
- Étoiles
- 6.5k
- Forks
- 710
- Merge moyen
- 1 j 14 h
- PR mergées (30 j)
- 43
Préparer son environnement
Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Aucun guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de microsoft/rushstack
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
[rush] Upgrade the pnpm-sync-lib dependency to 0.3.5.Peut-être pris @martinnaj l’a pris il y a 13 jours. Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
microsoft/rushstack#5971 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 65/100
microsoft/rushstack#5902 · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 68/100
microsoft/rushstack#5839 · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de microsoft/rushstack
Issues similaires
-
ai-driven-qa bug claude Minor
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
linagora/twake-contacts-frontend#241 ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 75/100
Les mainteneurs répondent en général sous 1 jour
-
ui(ListToolbar): search takes the full row on a phone instead of sharing it with the result countOuverte
Difficulté 2/5 1-3 heures Accessibilité débutants 64/100
Les mainteneurs répondent en général sous 1 jour
-
priority:high
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 2/5 1-3 heures Accessibilité débutants 70/100
ahmedkhaleel2004/gitdiagram#228 ·