[heft-sass-plugin] Incremental cache file name depends on the machine (absolute build folder, core count)
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 68/100
- Tipo de issue
- Bug
- Clareza
- Razoavelmente clara
- Status de atividade
- Ativa
- Stack de tecnologia
- sass, typescript
- Domínio
- build-system
Direção de pesquisa
O nome do arquivo de cache é calculado em SassProcessor.loadCacheAsync a partir de JSON.stringify(this.#options), e as opções são montadas em SassPlugin. Verifique quais campos são caminhos absolutos ou concurrency e, em seguida, torne-os relativos a buildFolder antes de gerar o hash, ou mude para um nome de arquivo fixo com o hash armazenado dentro dele. Está concluído quando dois builds em pastas de checkout diferentes ou com números de núcleos diferentes produzem a mesma listagem de temp/build/sass e o cache continua sendo invalidado em mudanças reais de opções.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
🤖 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.
- Linguagem predominante
- TypeScript
- Estrelas
- 6.5k
- Forks
- 710
- Merge médio
- 1d 23h
- PRs com merge (30d)
- 36
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Tem um modelo de pull request
- Sem guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de microsoft/rushstack
-
[api-extractor] Source map segment without a source crashes SourceMapper with "Target is a folder, not a file"Talvez já em andamento @joshuaellis assumiu hoje. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 75/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
[rush] Upgrade the pnpm-sync-lib dependency to 0.3.5.Talvez já em andamento @martinnaj assumiu há 20 dias. Aberta
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 72/100
microsoft/rushstack#5971 · 2 comentários ·
Mantenedores costumam responder em até 1 dia
Todas as issues de microsoft/rushstack
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
diegosouzapw/OmniRoute#17386 ·
Mantenedores costumam responder em até 1 dia
-
ready-for-agent
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 77/100
Mantenedores costumam responder em até 1 dia
-
area/dashboard kind/bug kind/bug-qa QA/dev-automation
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 74/100
Mantenedores costumam responder em até 2 dias
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
vybestack/llxprt-code#3917 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
api-parity
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 76/100
IBM/carbon-components-ember#1157 ·
Mantenedores costumam responder em até 1 dia