GaleWind View on npm

changelog

Versions

Every release of galewind-npm, pulled from the package's own changelog. Current version, fetched live from the npm registry:

loading…

# install the latest version
npm install -g galewind-npm

# or update if you already have it
gwin i -g galewind-npm

1.4.2

Latest
Fixed
  • gwin -w <name> i with no package name now installs each project folder's dependencies into the workspace's shared node_modules instead of each project's own — so projects in the same workspace reuse a package that's already been fetched instead of each downloading their own copy.

1.4.1

Added
  • gwin --daemon-enable runs a background gwin process so most commands skip Node startup and module loading on future runs; gwin --daemon-disable turns it off and stops it. Can also be enabled per-project with "daemonEnabled": true in galewind.config.json. gwin login and gwin publish always run outside the daemon, since they need an interactive prompt.
  • gwin config set <key> <value> writes straight to ~/.galewind/config.json, so tweaks like gwin config set concurrency 8 no longer require hand-editing JSON.
  • gwin publish -w <name> (or from a bound workspace) now publishes every project folder inside a workspace independently, reporting a per-project pass/fail summary. gwin -w <name> i with no package name installs each project's own dependencies the same way.
Changed
  • An unknown command now prints a short "command not found" message pointing at gwin --help instead of dumping the full help text.
  • gwin --help is much shorter — a compact command list instead of a full reference. Everything else lives in the README.
  • Lifecycle scripts (preinstall/install/postinstall) now run asynchronously instead of blocking the whole process while each one executes.
  • Package downloads and extraction now respect the concurrency setting instead of running every package in a dependency-tree level at once.
  • gwin's own registry calls (login, publish) use Node's built-in fetch instead of the node-fetch dependency, which is now dropped entirely.
Fixed
  • gwin cache clean no longer crashes on Windows with an EPERM error — it was trying to unlink the metadata cache directory as if it were a file.

1.4.0

Changed
  • Installs are noticeably faster, especially the second time around. gwin now remembers a package's listing for a few minutes after looking it up, so a repeated package in your dependency tree — or a second gwin i shortly after the first — reuses that answer instead of asking the registry again.
  • When your project already has a lockfile and the exact versions it pins are already in your local cache, gwin skips asking the registry entirely and installs straight from the cache — the biggest win for a clean gwin ci, or a repeat gwin i on an unchanged project.
  • gwin login and gwin publish are no longer marked beta — the browser login and 2FA flow have been through enough real-world testing to be trusted for everyday use.
Fixed
  • gwin publish now actually completes for accounts using a security key or passkey as 2FA — the publish request now tells the registry gwin can finish 2FA in the browser, and the browser step-up result is handled as the one-time code it actually is instead of a replacement login token.

1.3.0

Added
  • gwin login / gwin logout / gwin whoami — gwin's own login for the npm registry, kept in ~/.galewind/auth.json, fully separate from npm login. Uses the browser-based "web login" flow by default (security key, passkey, or authenticator app), falling back to a username/password prompt on registries that don't support it (or gwin login --legacy). Running gwin publish while logged out launches gwin login automatically.
  • Global installs now add ~/.galewind/global/bin to your PATH automatically the first time you install, update, or promote a package globally. On Windows, gwin writes setup instructions to ~/.galewind/PATH_SETUP.txt instead.
  • The shared download cache now keeps usage stats in a .pkg_cache file (hit counts and last-used timestamps) instead of relying on filesystem timestamps, so eviction removes whichever cached packages have genuinely been used the least.

1.2.0

Changed
  • Repo folders are now called workspaces. Everything works the same, just under a new name and flag: -w instead of -p, and gwin workspaces instead of gwin repos.
  • If a project needs a package that isn't in its own workspace, gwin now also checks every other registered workspace for a copy before downloading.
Deprecated
  • The old -p flag still works exactly like -w, but is now off by default. Enable it with gwin --projects-enable if you're not ready to switch scripts over.

1.1.0

Fixed
  • gwin -v and the quiet post-install version check were looking up a package named gwin instead of galewind-npm — its actual published name — so they always failed with a 404.
  • Installing into a repo folder could offer that same folder as its own link source, corrupting the install with a broken junction. Repo folders no longer offer themselves as a link source for their own installs, and linking a package to itself is now refused outright as a hard safety check.
  • gwin publish no longer wrongly insists you're logged out because a separate npm whoami pre-check failed — it now runs npm publish directly and only prompts for login on an actual auth error, then retries once.
Changed
  • Reworked dependency-tree installs to resolve one depth level at a time, with existence checks, downloads, and unpacking all running concurrently within a level — and unpacking one level no longer blocks discovering the next.
  • gwin publish marked beta, with a reminder printed each run.
Added
  • gwin i with no package name now reads package.json directly — no lockfile required just to install from a manifest.
  • The shared download cache now evicts least-recently-used entries once it passes a size cap (default 3GB, override with GWIN_CACHE_MAX_BYTES), instead of growing forever.

1.0.0

First release, published as galewind-npm on npm.

Added
  • gwin i / gwin i -g — install a package locally or globally, pulling in dependencies automatically.
  • gwin rm / gwin update — remove or update packages, locally or globally.
  • gwin ls and gwin outdated — see what's installed and what has updates.
  • gwin search, gwin init, gwin run — search npm, scaffold a package.json, run scripts.
  • gwin ci / gwin clean — exact lockfile reinstall, or remove node_modules.
  • gwin cache size / gwin cache clean — inspect or empty the shared download cache.
  • Repo folders — register a folder so every project inside shares one set of installed packages, with its own install/update/remove/ci/clean commands plus gwin bind / gwin unbind.
  • gwix — run a package's CLI from a repo folder's installed packages.
  • gwin link — reuse a package already installed in another repo folder instead of downloading it again.
  • gwin promote — copy a package already installed in a project or repo folder into your global install.
  • gwin -v / gwin --version — shows your version, checks npm for the latest, and gives the update command if you're behind.
  • A safety default: gwin never runs a package's setup scripts automatically — use --scripts to opt in.
  • A cache for downloaded packages, plus a custom color theme, animated progress indicator, and running stopwatch shown while gwin works.