Track version-fox/vfox#745: .nvmrc and .node-version are not applied after a `cd`

Aberta
#46 0 comentários 0 reações 0 responsáveis Ver no GitHub

Mantenedores costumam responder em até 1 dia

Ninguém assumiu esta issue ainda.

Avaliação

Dificuldade
4/5
Tempo estimado
1-2 dias
Facilidade para iniciantes
15/100
Tipo de issue
Bug
Clareza
Razoavelmente clara
Status de atividade
Ativa
Stack de tecnologia
go, lua
Domínio
cli, devtools

Direção de pesquisa

This is a tracking issue whose fix lives upstream in version-fox/vfox#745, so start by reading that issue and watching for a vfox release that contains it. Nothing in this repo should change until then. When the release lands, replay the "Several projects in one shell" scenario in docs/scenarios.md with it. Done means the workaround in lib/util.lua and its call in hooks/parse_legacy_file.lua are removed if vfox now tracks version files, and the English and Chinese docs are updated.

Escrita pelo modelo de indexação a partir do texto da issue.

Descrição

bug help wanted

.nvmrc and .node-version are not applied when you cd into their directory from a running shell, and a shell that started in such a directory does not go back to the global release when you cd out of it. The cause is in vfox, not in this plugin: vfox env serves the output it cached for the previous directory, and the cache does not know about version files. It is reported upstream as version-fox/vfox#745. This issue tracks it until a vfox release fixes it.

Where it stands

release 0.5.3 with the workaround of #44
a shell that starts in the directory applied applied
cd into the directory ignored applied
the file is edited in the directory the shell is in ignored applied at the next prompt
cd out into a directory with no config stays on the file's release stays on the file's release

A .vfox.toml is applied in the first, second and last of these. The workaround of #44 is util.forget_env_state: it removes vfox's env-state.json whenever vfox asks the plugin to read a version file, so vfox calculates again at every prompt in such a directory. It cannot help on the way out, because the plugin is not called in a directory with nothing to read.

When vfox has fixed it

  • A vfox release contains the fix (version-fox/vfox#745 and the pull request that closes it). Release: ________
  • Replay it with that release, with plugin 0.5.3 and with the plugin of main: the shell of "Several projects in one shell" in docs/scenarios.md, then an edit of the file in the directory the shell is in. The reproduction in version-fox/vfox#745 is the short form.
  • If vfox notices version files itself, edits included: remove util.forget_env_state (added by #44, lib/util.lua), its call in hooks/parse_legacy_file.lua, its tests and the hiding of __VFOX_CURTMPPATH in tests/hooks_test.lua, and the remark in tests/e2e/windows/verify.go. If vfox only keys the cache on the directory, keep it for edits in place.
  • Change the documents that describe the limit, in English and Chinese: docs/nvmrc.md ("When the file is read"), docs/scenarios.md ("Several projects in one shell"), docs/development.md ("Legacy files", "Known gaps"), docs/changes.md, docs/troubleshooting.md, README.md and README_CN.md.
  • Say from which vfox version this works, and what older ones do.
Linguagem predominante
Go
Estrelas
10
Forks
8
Merge médio
1h 51min
PRs com merge (30d)
12

Preparar o ambiente

Abrir no Codespaces

Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.

  • Sem Dockerfile nem arquivo Docker Compose
  • Sem modelo de pull request
  • Sem guia de contribuição

Primeiros passos

  1. Leia a issue inteira e depois o guia de contribuição do projeto.
  2. Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
  3. Faça um fork do repositório e trabalhe em uma branch.
  4. Abra um pull request que referencie o número da issue.

Mais de version-fox/vfox-nodejs

Todas as issues de version-fox/vfox-nodejs

Issues semelhantes

Mais issues de Go

Receba novas issues na sua caixa de entrada

Um resumo curto de issues do GitHub para quem está começando.