Commit Graph

1261 Commits

Author SHA1 Message Date
AJ ONeal
09311da214 test: add live-vs-local installer script diff test
Direct behavioral equivalence: fetches live installer from webinstall.dev
with same UA, compares WEBI_* variables against local serveInstaller().
Tests alias resolution (golang→go, ripgrep→rg). Marks jq as known
(.git regression in Go cache).
2026-03-11 16:24:33 -06:00
AJ ONeal
f1c5d483fd test: add comprehensive live-vs-local comparison test
Three test layers against live webinstall.dev APIs:
1. Unfiltered release API — OS/ext vocabulary, version format
2. Filtered release API — correct package for specific OS/arch
3. Installer script rendering — WEBI_* vars, download URLs

47 pass, 2 known format-preference diffs (node .pkg/.7z vs .tar.gz/.zip),
5 known Go-cache improvements (excluding .deb/.pem non-installable formats).
2026-03-11 16:24:33 -06:00
AJ ONeal
1fff212d0b docs: document libc taxonomy (none/musl/gnu/libc semantics)
none = static (no runtime dep, works everywhere)
musl = requires musl runtime (e.g. node-musl)
gnu  = requires glibc (crashes on Alpine)
libc = host UA value meaning "I have glibc"
2026-03-11 16:24:33 -06:00
AJ ONeal
dcb092fa63 ref(test): remove releases.js from expected package files
releases.js files have been deleted — packages now use Go cache files
instead of per-package upstream fetchers.
2026-03-11 16:24:33 -06:00
AJ ONeal
31600d659d fix(test): use correct default formats and document .git regression
The webinstall.dev server passes formats=['tar','exe','zip','xz','dmg']
by default — not empty. Fixed Windows UA to use 'Windows' (not
'Windows_NT'). Identified .git source URLs in Go cache as a regression
vs production (not just a priority issue). Updated PROD_NOTES.md with
webinstall.dev serve-releases.js libc bug finding.
2026-03-11 16:24:33 -06:00
AJ ONeal
94bc9b0c07 test: add installer resolution test for serve-installer.js path
Exercises the helper() function that `curl webi.sh/bat` actually hits.
9 passing, 6 known issues documented:
- WATERFALL libc->gnu gap (build-classifier submodule)
- ANYOS/ANYARCH .git source URLs matched before platform binaries
2026-03-11 16:24:33 -06:00
AJ ONeal
77a965bcba test: add API compatibility test against live webinstall.dev
Compares local cache-only output against golden data fetched from
the live API. Tests OS/arch/ext vocabulary, version format, and
filtered query results for bat, go, node, rg, jq, caddy.
2026-03-11 16:24:33 -06:00
AJ ONeal
fc7cf7b055 docs: update PROD_NOTES.md after dead code removal 2026-03-11 16:24:33 -06:00
AJ ONeal
13ea83f963 ref: remove all releases.js files and _common/ fetchers
These files are no longer loaded at runtime. All release data now comes
from _cache/YYYY-MM/{pkg}.json files generated by the Go webicached daemon.

Deleted:
- 94 {pkg}/releases.js files (per-package upstream fetchers)
- 8 _common/*.js files (github.js, gitea.js, git-tag.js, fetcher.js, etc.)

Updated:
- _webi/classify-one.js: reads from cache instead of require(releases.js)
- Fixed hardcoded triplet key to use dynamic lookup
2026-03-11 16:24:28 -06:00
AJ ONeal
073d7458e2 docs: update PROD_NOTES.md with completed migration status 2026-03-11 16:23:45 -06:00
AJ ONeal
c572bbe4ca ref(transform-releases): read from cache files instead of upstream APIs
The legacy release API endpoint now reads from _cache/YYYY-MM/{pkg}.json
instead of require()ing {pkg}/releases.js and fetching upstream.

Cache data is re-normalized through normalize.js (with pre-classified
fields cleared first) to preserve the legacy API format where darwin
is reported as 'macos', versions lack 'v' prefix, etc.

Removed: Releases.get(), stale/expired age timers, background renewal,
promise chaining, sleep/timeout workarounds.
2026-03-11 16:23:45 -06:00
AJ ONeal
0f78339725 ref(builds): replace releases.js type check with cache file check
Project type detection no longer require()s {pkg}/releases.js to
determine if a package is valid. Instead it checks for a cache file
at _cache/YYYY-MM/{pkg}.json. This means:

- Packages with Go-generated cache but no releases.js (vim plugins,
  pg-essentials, etc.) are now correctly detected as 'valid'
- The 'not_found' type (broken npm deps) is removed — no longer relevant
- releases.js files are no longer loaded at runtime for type detection
2026-03-11 16:23:45 -06:00
AJ ONeal
81c3d67a4f ref(builds): remove upstream fetching, make Node server cache-only
The Go webicached daemon now handles all upstream API fetching and cache
generation. The Node server reads only from _cache/YYYY-MM/{pkg}.json
files and never fetches from upstream APIs itself.

Removed:
- getLatestBuilds() and getLatestBuildsInner() — upstream fetch functions
- freshenRandomPackage() — background refresh timer
- Stale cache re-fetch in getPackages() process.nextTick block
- _staleAge config (no longer relevant)

When a package has no cache file, getPackages() returns empty metadata
instead of falling through to fetch.
2026-03-11 16:23:45 -06:00
AJ ONeal
910ea23cf1 docs: add HANDOFF.md for Node.js cache-only migration
Detailed instructions for the next step: making the Node.js server
read only from Go-generated _cache/ files, removing all upstream
API fetching from the Node.js code path.
2026-03-11 16:23:45 -06:00
AJ ONeal
b11bc93486 docs: update GO_WEBI.md to reflect current state
- releases.conf format updated (source inferred from key)
- Phase 1 checklist complete except resolver
- All release fetchers listed (18 source packages)
- Per-package releases packages documented
- Legacy export filtering description corrected (Variants not Extra)
- Resolved questions updated (rate limiting, config format, normalization)
- Stale open question removed (rate limiting solved via round-robin)
2026-03-11 16:23:42 -06:00
AJ ONeal
d739ca89ba fix(bun): drop .txt/.asc assets and strip .zip from release names 2026-03-09 13:23:57 -06:00
AJ ONeal
012661c935 fix(bun): only select baseline builds rather than relying on sort order 2026-03-09 13:23:57 -06:00
Tori0419
303417d513 fix(bun): prefer baseline linux releases (fix #879) 2026-03-08 22:59:30 -06:00
AJ ONeal
3e2e7f2f65 feat(monorel): add installer for monorepo release tool
Adds releases.js, install.sh, install.ps1, and README.md for monorel,
a Go monorepo release tool from therootcompany/golib. Filters monorepo
releases by tools/monorel/ prefix and auto-installs prerequisites
(git, gh, goreleaser).
2026-03-08 22:50:34 -06:00
AJ ONeal
ca81127b93 fix(docs): fix typos in goreleaser, ssh-authorize, and node READMEs
- goreleaser: "you should the git tag" → "you should see the git tag"
- ssh-authorize: "will to do" → "will be able to do"
- node: "jhint" → "jshint"
2026-03-08 19:53:26 -06:00
AJ ONeal
3c8b66be55 docs: add AGENTS.md with conventions and design principles 2026-03-08 19:53:26 -06:00
AJ ONeal
8f9b9da4a3 chore: npm run fmt 2026-03-08 19:38:49 -06:00
bry-val
81ffcf3182 doc(deno): update Hello World example to use deno.com URL
Signed-off-by: bry-val <94031627+bry-val@users.noreply.github.com>
2025-03-06 20:48:54 +00:00
AJ ONeal
3d1a75102f ref(koji): keep backwards-compat 2025-02-20 10:56:41 +00:00
Finley Thomalla
e6b3aec8c0 docs(koji): fix mistakes, improve 2025-02-20 10:48:52 +00:00
Finley Thomalla
ed8058deb8 fix(koji): update binary path
The release process of koji has been updated a while ago, resulting in the binary not being nested in the archive anymore.

Fixes cococonscious/koji#137
2025-02-20 10:48:51 +00:00
AJ ONeal
480169beac fix(terramate): link both terramate and terramate-ls 2025-02-03 21:18:43 +00:00
AJ ONeal
625168156f fix(terramate): don't exclude package files 2025-02-03 21:18:43 +00:00
Michael Dubner
75e39c54a2 fix: add '386' and 'i386' to tab regexp (fixes GH-941) 2025-01-29 22:59:56 +00:00
AJ ONeal
cac2e62da8 feat(mariadb): add mysql and mariadb-server aliases 2025-01-26 00:35:51 +00:00
AJ ONeal
b6ab62c13f feat: add MariaDB 2025-01-26 00:35:50 +00:00
AJ ONeal
d666a860d1 chore(serviceman): remove junk debug log 2025-01-25 00:18:04 +00:00
AJ ONeal
7ff40e175f ref(ssh-pubkey): switch to ed25519 as the primary algorithm 2025-01-23 22:00:30 +00:00
AJ ONeal
45e7dc314b fix(sass): manually match arches { arm: armv7, ia32: x86, x64: amd64 } 2025-01-23 06:51:45 +00:00
AJ ONeal
976602236b chore: npm run fmt 2024-12-18 22:08:20 +00:00
AJ ONeal
83a214a032 ref(terramate): mostly style updates 2024-12-18 22:08:19 +00:00
OG
cc66f930b0 feat: add terramate 2024-12-18 21:19:09 +00:00
AJ ONeal
afe35f9198 feat(node): ask to install libstdc++ on Alpine 2024-12-18 18:08:52 +00:00
AJ ONeal
910fa48278 doc(node): list node dependencies 2024-12-18 18:08:51 +00:00
AJ ONeal
5544ff9f1b feat(shellcheck): include ~/.shellcheckrc with example ignores and enables 2024-12-17 20:34:55 +00:00
AJ ONeal
d3f3ad1688 doc(shellcheck): include ignore/enable code list, update usage and doc links 2024-12-17 20:34:54 +00:00
AJ ONeal
4eff5b6cbe doc(syncthing): 'env PATH=' is no longer needed for serviceman 2024-12-16 19:12:36 +00:00
AJ ONeal
7b8f882d80 fix(serviceman): do not use 'sudo' or 'env PATH="$PATH"' 2024-12-16 19:12:35 +00:00
AJ ONeal
117ee6117d doc(node): add types to package 2024-12-16 01:21:48 +00:00
AJ ONeal
ce18bd5e61 doc(gh-source): make baseurl optional 2024-12-16 01:21:47 +00:00
AJ ONeal
6aeb60008b fix(bun): mark musl builds as hard-musl (not gnu-compatible) 2024-12-16 01:21:46 +00:00
AJ ONeal
83a6d02d50 fix(api): project 'alias'es (symlinks) should be resolved before checking for 'selfhosted' 2024-12-16 01:02:37 +00:00
AJ ONeal
40316a866c doc(serviceman): update docs across installers 2024-12-16 00:59:46 +00:00
AJ ONeal
e2ad197067 doc(serviceman): --agent instead of --user 2024-12-16 00:59:46 +00:00
AJ ONeal
3995b7e568 feat(serviceman): update for v0.9 2024-12-16 00:59:45 +00:00