Skip to content

Releases: delphi-blocks/blocks

Release v0.5.2

07 Jun 10:28

Choose a tag to compare

v0.5.2

Improvements

  • search now wraps long package descriptions at 80 columns instead of printing them on a single overflowing line.
  • Running search without a pattern lists every package in the repository.

Fixes

  • Clearer message when no packages match the search pattern.

Release v0.5.1

06 Jun 09:02

Choose a tag to compare

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.
  • .fmx form resources are now copied alongside the compiled units, so FireMonkey forms resolve correctly.

Bug Fixes

  • Caret constraint fixed for 0.x versions — ^0.1.1 now correctly means >=0.1.1 <0.2.0 instead of widening to the next major.
  • System config no longer overwrites workspace config when writing system-level settings.

Release v0.5.0

03 Jun 13:00

Choose a tag to compare

New Features

  • New build command — recompile an already-installed package without downloading it again. This replaces the old /buildonly option on install with a dedicated, clearer command.
  • runtimeOnly platform 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 config output — the config command 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

31 May 09:46

Choose a tag to compare

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 on init.
  • New product command (replaces listproducts) — list your Delphi installations, or look up a specific one with product <name>. Use /detail to see all platform paths.
  • status as the default command — just run blocks to see the current workspace status.

Improvements

  • Cleaner uninstall — removing a package now also deletes the .bpl / .dcp files 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

27 Apr 07:29

Choose a tag to compare

New features

  • search command — 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 init on an existing workspace refreshes the repository.
  • view shows install status — when displaying a package, view now 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 /canonical CLI flag has been removed). .dproj MSBuild properties and .dpk directives are now parsed by the new TPackageProject.

Upgrade notes

  • The -canonical install 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 .dproj paths must opt in via packageOptions.keepProjectDcuPaths: true.

Release v0.2.0

16 Apr 12:48

Choose a tag to compare

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 /system flag 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

06 Apr 14:43

Choose a tag to compare

Release v0.1.0 Pre-release
Pre-release

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.