Skip to content

v0.1.26

Choose a tag to compare

@sanayasfp sanayasfp released this 31 Jul 17:58
· 13 commits to main since this release

Bundles what would otherwise have been 11 separate patch releases (v0.1.16 through v0.1.26) into one — each item below is still its own well-documented commit in history.

Added

  • stack init — scaffolds a manifest for an existing project, pre-filled from composer.json/package.json/pyproject.toml instead of typing every language/version from memory.
  • stack restart [name] [--all] [--yes] — stop + start a project again, from anywhere, by name.
  • stack describe [name] — prints a project's resolved environment: binary paths (php.ini/php-cgi.exe alongside php.exe), service paths, log location, routed domain/port. Works whether the project is up or down.
  • stack doctor --project — validates the current directory's stack.toml against live reality (ports, service paths, placeholder resolution) before stack up ever runs, instead of failing one error at a time partway through.
  • stack clean — removes cached composer.phar downloads.
  • stack up/stack init and [[clone]] gated behind --clone now support name-addressable targets: stack up <name> works from anywhere, not just from inside a project or via an explicit path.
  • Trust-on-first-use: the first stack up on a project (or the first run after [run]/[service.*] commands change) prints them and asks for confirmation before executing anything. --yes bypasses this for CI/scripted use.
  • Automatic local HTTPS — https://project.localhost now works with no browser warning, via Caddy's own internal CA (stack doctor --fix runs caddy trust). Plain http:// keeps working unchanged, no forced redirect.
  • .env auto-loading — stack up and stack doctor --project load a project's .env automatically; no more forgetting the separate stack load-env step.
  • Fresh PHP installs are now configured automatically: a curated set of commonly-needed extensions (pdo_mysql, pdo_pgsql, sockets, etc.), OPcache, and dev-friendly ini defaults (date.timezone, memory_limit, upload limits) — instead of shipping vanilla, mostly-disabled defaults.
  • docs/why.html — a plain-language "why stack instead of Docker/XAMPP" page, now the primary docs entry point.
  • docs/custom-domains.html — sourced, verified setup steps for .test-style domains (Acrylic on Windows, dnsmasq on macOS/Linux).

Fixed

  • [[clone]] silently no-op'd on every stack up due to a default path that always pointed at a directory that trivially already existed (the project root itself). Now gated behind an explicit --clone flag, defaults to git's own folder-naming convention, and handles cloning directly into the project root as a real, designed case.
  • stack new/stack init's language/service selection used a yes/no loop where an accidental "yes" meant restarting the whole wizard. Replaced with checkboxes — nothing commits until you confirm.
  • CLI output had no color coding and no visual separation between phases of a stack up run — success/warning/error read identically. stack up/stack doctor output is now color-coded, with blank-line phase breaks.
  • Landing page and docs site were not usable on mobile: a nav bar with no breakpoint at all, a terminal block that overflowed the page (a minmax(0, ...) grid safety dropped at the mobile breakpoint), and a docs sidebar that dumped a full link list above the content with no way to collapse it.
  • Manifest and CLI reference docs had drifted out of sync with the actual shipped behavior (stale [[clone]] description, several commands and flags missing entirely) — rewritten against the current source, with a full worked example verified against the real manifest parser.

Install

irm https://github.com/sanayasfp/stack/releases/latest/download/stackenv-installer.ps1 | iex

or

cargo install stackenv