Releases: delphi-blocks/blocks
Release v0.5.2
v0.5.2
Improvements
searchnow wraps long package descriptions at 80 columns instead of printing them on a single overflowing line.- Running
searchwithout a pattern lists every package in the repository.
Fixes
- Clearer message when no packages match the search pattern.
Release v0.5.1
New Features
- Per-package Delphi version targeting — a package can declare which Delphi versions it supports
- Bitbucket support — Bitbucket can now be used as a repository source.
%PACKAGE_VERSION%placeholder — package names in manifests can include%PACKAGE_VERSION%, expanded to the package version at install time.- Build numbers in versions — semantic versions now support an optional fourth field (e.g.
1.2.3.4) for parsing, comparison and constraints.
Improvements
- Skip uninstalled platforms — Blocks now skips any platform whose Delphi compiler isn't installed instead of failing, so multi-platform packages build cleanly.
- More resilient install/uninstall — file operations now retry past transient locks from antivirus or the file indexer, reducing spurious failures.
.fmxform resources are now copied alongside the compiled units, so FireMonkey forms resolve correctly.
Bug Fixes
- Caret constraint fixed for 0.x versions —
^0.1.1now correctly means>=0.1.1 <0.2.0instead of widening to the next major. - System config no longer overwrites workspace config when writing system-level settings.
Release v0.5.0
New Features
- New
buildcommand — recompile an already-installed package without downloading it again. This replaces the old/buildonlyoption oninstallwith a dedicated, clearer command. runtimeOnlyplatform flag — manifests can now mark a platform as runtime-only, so Blocks skips design-time packages during both compilation and registration.
Improvements
- DCU output moved under
.blocks— the compiled units of every package now go to<workspace>\.blocks\lib\<name>\<Platform>[\debug]. A new Delphi environment variable,BLOCKSDIR, points to<workspace>\.blocks, and install/uninstall register the DCU search paths using the$(BLOCKSDIR)macro for cleaner, portable paths. - Automatic repository refresh — when the local repository index is more than a day old, Blocks now refreshes it automatically before running a command, so you always work against an up-to-date package list.
- Better
configoutput — theconfigcommand now formats its output more clearly, and the available configuration keys are fully documented in the new docs/config.md.
Bug Fixes
- Dates are now serialized as ISO 8601 strings instead of raw floating-point values, making the database and configuration files portable and human-readable.
Release v0.4.0
New Features
- Manifest scripts — packages can now run setup steps automatically at key moments during install and uninstall (lifecycle events). See
docs/script.md. - Local package sources — you can install packages from a local folder, not just from GitHub. Configure sources with the new
/source
options oninit. - New product command (replaces listproducts) — list your Delphi installations, or look up a specific one with
product <name>. Use/detailto see all platform paths. - status as the default command — just run
blocksto see the current workspace status.
Improvements
- Cleaner uninstall — removing a package now also deletes the
.bpl/.dcpfiles it produced, leaving no leftovers. - Install history — Blocks now records when each package was installed.
- Better IDE setup — the blocks output folder is added to the IDE PATH during
init, with priority over other entries. - Smarter command options — options now accept aliases, plus numbers and predefined choices, making commands easier to use.
- More documentation — added a full CLI reference (docs/cli.md) along with guides on manifests, scripting, and versioning.
Bug Fixes
- Fixed the "Delphi is running" check so it correctly recognizes which profile is actually open.
Release v0.3.0
New features
searchcommand — query the local repository index by id, name, description or keywords.- Install and uninstall by name — packages can now be referenced by their name, not just by
vendor.id. - Workspace update — re-running
initon an existing workspace refreshes the repository. viewshows install status — when displaying a package,viewnow reports whether (and which version) is installed in the current workspace.
Improvements
- Single, unified path-handling pipeline replaces the old canonical / non-canonical split (the
/canonicalCLI flag has been removed)..dprojMSBuild properties and.dpkdirectives are now parsed by the newTPackageProject.
Upgrade notes
- The
-canonicalinstall flag has been removed — installations now use a single unified path scheme. - Default DCU output path has changed to
<project>\lib\<Platform>[\debug]. Packages that require their own.dprojpaths must opt in viapackageOptions.keepProjectDcuPaths: true.
Release v0.2.0
New commands
version— prints the current executable version; use /silent to output only the version number (useful for scripting).upgrade— checks GitHub Releases for a newer version and downloads the setup if one is available.config— reads and writes workspace configuration values. Supports a/systemflag to read system-wide settings from the registry.
Multiple package repositories
The workspace now supports multiple package sources. You can add your own GitHub-hosted repository alongside the default one:
blocks config /add sources=https://github.com/owner/my-repo
All sources are fetched and merged during blocks init.
Delphi IDE profile support
Workspaces can now be bound to a specific Delphi IDE profile (equivalent to the -r flag when launching bds.exe). Pass /registrykey during init to target a non-default profile:
blocks init /product delphi13 /registrykey MyProfile
Library paths are then registered in the correct profile rather than the default BDS key.
Release v0.1.0
This is the first public version of Blocks, a command-line package manager for Delphi.
Supported features in this release:
-
Workspace initialisation (-Init) — clones the package registry locally
-
Package install / uninstall with automatic dependency resolution
-
Multi-version support: Delphi XE6 through Delphi 13 Florence (BDS 14.0 – 37.0)
-
Pin to a specific commit
-
Local install database per workspace and Delphi version
-
Launcher.exe shim for PATH-friendly invocation
This is an early preview. APIs, manifest format, and CLI flags may change in future versions.