Skip to content

Releases: forgezero-cli/ForgeZero

fz 2.1.0 – improved catalog reliability, fallback URLs, env override

20 May 00:23

Choose a tag to compare

🔧 Fixes & improvements:

  • Add multi‑URL catalog fetching with fallback (official GitHub → custom mirror)
  • Add FZ_CATALOG_URL environment variable to override catalog location
  • Fix TLS/unexpected EOF errors when accessing raw.githubusercontent.com
  • Add timeout (10s) and proper error handling for catalog requests
  • Show warnings on failed attempts but continue to next URL

📦 Install: go install github.com/forgezero-cli/ForgeZero/cmd/fz@latest

fz 2.0.0 NEXUS – Performance, Package Management, and Cross‑Compilation

19 May 22:21

Choose a tag to compare

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
✨ Major New Features
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

• BLAKE3 file hashing – 7x faster cache (10 MB: 58ms → 8.7ms)
• Package manager (fz pm) – add, remove, list, update, catalog, search, install
• Central package catalog – community-driven JSON registry
• Shared library support – -shared, -cc-flag, -ld-flag
• Cross‑compilation – -target for ARM, RISC‑V, x86_64, i386
• Static libraries – -type static / -lib (build .a archives)
• LSP support – -compile-commands generates compile_commands.json
• Interactive shell – fz -shell with full build commands
• Linker scripts and text address – -T, -Ttext

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🔧 Improvements & Fixes
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

• Parallel builds (-j N) for multi‑core acceleration
• Unique object file names (no more collisions)
• All golangci-lint warnings fixed (errcheck, govet, ineffassign)
• High test coverage: utils 84%, linker 60%, assembler 60%, builder 56%
• Context and timeouts for all network/git operations
• Improved pm remove – cleans empty parent directories and .fz.yaml
• Hash verification for catalog packages (BLAKE3)

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
📦 Install
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

go install github.com/forgezero-cli/ForgeZero/cmd/fz@latest

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
🌐 Resources
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Repository: https://github.com/forgezero-cli/ForgeZero
Package catalog: https://github.com/forgezero-cli/catalog
Documentation: https://github.com/forgezero-cli/ForgeZero#readme

━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━

Thank you for using fz! 🚀

fz v1.9.2 – version bump and final lint fixes

19 May 16:49

Choose a tag to compare

🔧 Changes since v1.9.0:

  • Fixed all errcheck, govet, ineffassign warnings
  • Added error handling for storeCache, json.Encode, w.Add, os.Rename, os.Chmod
  • Fixed test errors (os.Chdir, os.MkdirAll, os.Create, buf.ReadFrom)
  • Updated dependencies
  • Bumped version to 1.9.2 (v1.9.1 was missing version update)

🧪 All tests pass, golangci-lint clean.

📦 Install: go install github.com/forgezero-cli/ForgeZero/cmd/fz@latest

fz v1.9.1 – code quality, lint fixes, improved error handling

19 May 16:42

Choose a tag to compare

  • Fixed all errcheck warnings (json.Encode, w.Add, os.Rename, etc.)
  • Fixed ineffectual assignment and printf format issues in tests
  • Improved test coverage (linker 60%, builder 58%, etc.)
  • All tests pass, go vet, staticcheck, golangci-lint clean
  • Shell now supports single-file builds
  • Cross-compilation, static libraries, LSP support stable

Install: go install github.com/forgezero-cli/ForgeZero/cmd/fz@latest

fz v1.9.0 – cross‑compilation, static libraries, LSP, full test coverage

18 May 22:57

Choose a tag to compare

Features:
• Cross‑compilation (-target ): ARM, RISC‑V, x86_64, i386
• Static libraries (-type static / -lib): build .a archives
• LSP support (-compile-commands): generate compile_commands.json for clangd
• Shell improvements: single‑file builds, all commands work

🔧 Improvements:
• linker test coverage: 60.2% (up from 17%)
• replaceable utils.CheckToolFunc for test mocks
• unique object file names, better error messages

📊 Test coverage:

  • assembler 60%,
  • builder 58%,
  • compilecommands 76%,
  • config 68%,
  • ignore 91%,
  • init 67%,
  • linker 60%,
  • man 100%,
  • shell 45%,
  • updater 43%,
  • utils 93%,
  • watcher 78%

📦 Install: go install github.com/forgezero-cli/ForgeZero/cmd/fz@latest

🎉 fz v1.8.0 – Static libraries & rock‑solid builds

18 May 20:08

Choose a tag to compare

✨ Major new feature

• Static library support – -type static (or -lib)
Build project as an archive (.a) instead of an executable.
Perfect for reusable components and large codebases.

🔧 Improvements & fixes

• Object file naming – no more '..' prefixes (hello_asm.o, sub_hello_asm.o)
• Builder tests – fully fixed, no skipped tests, 100% pass in CI
• Parallel builds – stable with jobs=N (0 = auto)
• Static archive creation – uses ar rcs under the hood

📊 Test coverage (go test -cover)

assembler 61.2%
builder 66.8%
config 67.9%
ignore 91.3%
init 66.7%
linker 43.3%
man 100.0%
shell 40.6%
updater 38.6%
utils 92.6%
watcher 77.8%

📦 Install

go install github.com/forgezero-cli/ForgeZero/cmd/fz@latest

📖 Documentation

https://github.com/forgezero-cli/ForgeZero

Thank you for using fz!

fz v1.7.2 – stable release with improved test coverage

18 May 18:52

Choose a tag to compare

  • linker coverage: 43.3%
  • updater coverage: 38.6%
  • shell coverage: 40.6% (unit tests)
  • All tests passing (no hangs)
  • Fixed fallback test expectations
  • Removed unstable shell integration test

Install: go install github.com/forgezero-cli/ForgeZero/cmd/fz@latest
Docs: https://github.com/forgezero-cli/ForgeZero

fz v1.7.1 – stability and test improvements

18 May 04:17

Choose a tag to compare

Features:

  • Parallel builds (-j N)
  • Linker script support (-T, -Ttext)
  • Interactive shell (-shell)
  • C++ compilation (.cpp, .cc, .cxx)
  • Flat binary output (-format bin)
  • Project init (-init)
  • Self-update (-update)

Improvements:

  • Test coverage increased for assembler, builder, shell, man, updater
  • Fixed updater testability
  • Removed flaky tests for stable release
  • Added GitHub Actions CI workflow

Install: go install github.com/forgezero-cli/ForgeZero/cmd/fz@latest
Docs: https://github.com/forgezero-cli/ForgeZero

fz v1.7.0 – Parallel builds, linker scripts, interactive shell, and cross-platform native linking

18 May 01:37

Choose a tag to compare

✨ What's new

  • Parallel builds (-j N) – compile multiple files concurrently. Use -j 0 to auto‑detect CPU cores.
  • Linker script support (-T <file> and -Ttext <addr>) – full control over memory layout, ideal for OS kernels and embedded systems.
  • Interactive shell (fz -shell) – REPL with build, set, show, clean, watch commands. Prototype – stable UI coming in 1.9/2.0.
  • Native Windows linking – uses clang + lld (no MinGW required). Works out of the box with LLVM.
  • C++ support.cpp, .cc, .cxx files compiled with g++ and strict warnings (-Wall -Wextra -Werror -Wpedantic -Wshadow -Wconversion).
  • Project initialisation (fz -init) – creates .fz.yaml, .fzignore, and README.md with templates.
  • Flat binary output (-format bin) – build bootloaders and raw firmware images.
  • Self-update (fz -update) – automatically upgrades to the latest version via go install (fallback to download when binary assets are attached).

🔧 Improvements

  • Incremental cache (SHA256) – rebuild only changed files.
  • Duplicate symbol pre‑check – saves time before linking.
  • Unique object names – no conflicts between hello.asm and hello.s.
  • Empty object file protection.
  • Configurable output formats: elf32, elf64, bin.
  • Custom flags for assembler, C compiler, and linker (in .fz.yaml).
  • Libraries support (libs in config).
  • Ignore patterns (.fzignore).

📦 Installation

Pre‑built binaries (attached)

Download the binary for your platform, make it executable, and run.

Using go install

go install github.com/alexvoste/ForgeZero/cmd/fz@latest

From source

git clone https://github.com/alexvoste/ForgeZero
cd ForgeZero
go build -o fz ./cmd/fz
sudo mv fz /usr/local/bin/

📖 Documentation

Full documentation: github.com/alexvoste/ForgeZero
🙏 Thank you

Special thanks to everyone who tried, tested, and contributed. Your feedback drives fz forward.

Note: The interactive shell is a prototype. A polished version will arrive in 1.9/2.0.