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

Offen
#46 0 Kommentare 0 Reaktionen 0 zugewiesene Personen Auf GitHub ansehen

Maintainer antworten meist innerhalb von 1 Tag

Dieses Issue hat noch niemand übernommen.

Bewertung

Schwierigkeit
4/5
Geschätzter Aufwand
1-2 Tage
Anfängerfreundlichkeit
15/100
Issue-Typ
Bug
Klarheit
Größtenteils klar
Aktivitätsstatus
Aktiv
Tech-Stack
go, lua
Bereich
cli, devtools

Rechercherichtung

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.

Vom Indexierungsmodell aus dem Issue-Text verfasst.

Beschreibung

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.
Vorherrschende Sprache
Go
Sterne
10
Forks
8
Ø Merge
1 Std. 51 Min.
Gemergte PRs (30 T.)
12

Entwicklungsumgebung

In Codespaces öffnen

Startet den Dev-Container des Projekts im Browser, mit Ihrem eigenen GitHub-Konto.

  • Kein Dockerfile und keine Docker-Compose-Datei
  • Keine Pull-Request-Vorlage
  • Kein Beitragsleitfaden

Erste Schritte

  1. Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
  2. Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
  3. Forken Sie das Repository und arbeiten Sie in einem Branch.
  4. Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.

Mehr aus version-fox/vfox-nodejs

Alle Issues in version-fox/vfox-nodejs

Ähnliche Issues

Weitere Issues zu Go

Neue Issues direkt in Ihr Postfach

Eine kurze Übersicht über anfängerfreundliche GitHub-Issues.