Skip to content

Releases: coenjacobs/mozart

Release 1.2.3

01 May 10:50
5e20f29

Choose a tag to compare

What's Changed

Full Changelog: 1.2.2...1.2.3

Docker Images

This release includes Docker images for multiple architectures (linux/amd64, linux/arm64, linux/arm/v7).

Pull from Docker Hub

docker pull coenjacobs/mozart:1.2.3

Pull from GitHub Container Registry

docker pull ghcr.io/coenjacobs/mozart:1.2.3

Available Tags

  • 1.2.3 - This release

  • latest - Latest stable version (if this is the highest version)

Links

Release 1.2.2

28 Mar 10:17
8274bb7

Choose a tag to compare

What's Changed

Full Changelog: 1.2.1...1.2.2

Docker Images

This release includes Docker images for multiple architectures (linux/amd64, linux/arm64, linux/arm/v7).

Pull from Docker Hub

docker pull coenjacobs/mozart:1.2.2

Pull from GitHub Container Registry

docker pull ghcr.io/coenjacobs/mozart:1.2.2

Available Tags

  • 1.2.2 - This release

  • latest - Latest stable version (if this is the highest version)

Links

Release 1.1.6

28 Mar 10:14
0949d91

Choose a tag to compare

What's Changed

Full Changelog: 1.1.5...1.1.6

Docker Images

This release includes Docker images for multiple architectures (linux/amd64, linux/arm64, linux/arm/v7).

Pull from Docker Hub

docker pull coenjacobs/mozart:1.1.6

Pull from GitHub Container Registry

docker pull ghcr.io/coenjacobs/mozart:1.1.6

Available Tags

  • 1.1.6 - This release

  • latest - Latest stable version (if this is the highest version)

Links

Release 1.2.1

19 Mar 14:51
da0c859

Choose a tag to compare

What's Changed

  • BACKPORT: Fix symlinks in vendor packages causing UnableToListContents failure by @coenjacobs in #373

Full Changelog: 1.2.0...1.2.1

Docker Images

This release includes Docker images for multiple architectures (linux/amd64, linux/arm64, linux/arm/v7).

Pull from Docker Hub

docker pull coenjacobs/mozart:1.2.1

Pull from GitHub Container Registry

docker pull ghcr.io/coenjacobs/mozart:1.2.1

Available Tags

  • 1.2.1 - This release

  • latest - Latest stable version (if this is the highest version)

Links

Release 1.1.5

19 Mar 14:50
33cc767

Choose a tag to compare

What's Changed

  • BACKPORT: Fix symlinks in vendor packages causing UnableToListContents failure by @coenjacobs in #374

Full Changelog: 1.1.4...1.1.5

Docker Images

This release includes Docker images for multiple architectures (linux/amd64, linux/arm64, linux/arm/v7).

Pull from Docker Hub

docker pull coenjacobs/mozart:1.1.5

Pull from GitHub Container Registry

docker pull ghcr.io/coenjacobs/mozart:1.1.5

Available Tags

  • 1.1.5 - This release

  • latest - Latest stable version (if this is the highest version)

Links

Release 1.2.0

12 Mar 13:00
5c37bd4

Choose a tag to compare

Mozart 1.2.0 is a major feature release. 🎉 The headline: Mozart now works with zero configuration — just run mozart compose and it handles the rest. This release also adds global-scope constant and function prefixing and automatic autoloader generation.

New features

  • Zero configuration — Running mozart compose is now the only opt-in required. All six settings have sensible defaults, inferred from your project's composer.json. Existing extra.mozart blocks continue to work unchanged. A new mozart config command lets you inspect the resolved configuration and where each value came from. #316
  • Autoloader generation — Mozart now generates a Composer-compatible autoloader file covering PSR-4, classmap, and files entries for all processed dependencies. This is enabled by default (generate_autoloader: true) and replaces the need to manually configure your project's composer.json autoload section. See usage docs. #315
  • Global-scope constant prefixing — Constants declared with const or define() at global scope are now prefixed with constant_prefix (defaults to an uppercased version of classmap_prefix). References via constant(), defined(), and bare constant fetches are updated throughout the codebase. #308
  • Global-scope function prefixing — Functions declared at global scope are now prefixed with functions_prefix (defaults to a lowercased version of classmap_prefix). References via function_exists() and direct function calls are updated accordingly. #308
  • PHP built-in symbol protection — Mozart ships a database of PHP built-in symbols (PHP 7.4–8.5) and skips them during renaming. Polyfill packages like symfony/polyfill-php80 are no longer broken by having their declarations prefixed. #306

Improvements

  • Namespaced define() calls routed correctlydefine() inside a namespace block is now handled by the namespace replacer instead of being incorrectly prefixed with constant_prefix. #353
  • Files autoloader basename collision — Global-scope files with the same basename but in different directories are no longer flattened to the same target path. #351
  • NameVisitor routes by symbol type — Class, constant, and function references are now matched against their respective maps, preventing cross-type collisions. #363
  • Case-insensitive symbol lookups — Class and function name matching is now case-insensitive (as PHP itself is), while constant matching remains case-sensitive. #314
  • Parent replacer propagation for files autoloaders — Namespaced files autoloader entries in parent packages now receive constant and function renames from child packages. #365, #367
  • Generated autoloader hardening — Fixed file identifier collisions, Windows path separators in $baseDir, and absolute classmap paths. #362
  • Boolean config values detected correctlydelete_vendor_directories: false and generate_autoloader: false are now properly distinguished from "not set" when reporting config sources. #323
  • Parent replacer early return — Fixed replaceParentPackage() exiting after the first autoloader combination instead of processing all of them. #288
  • Enum declaration support — Enums are now handled in both the declaration visitor and classmap mode. #290, #313
  • Diamond dependency reprocessing — Added a visited-set to replacePackages() to prevent processing the same package twice. #292
  • Typed exceptions — All bare exceptions replaced with MozartException subtypes; error output uses writeln() instead of write(). #294
  • FilesHandler exception wrapping — All Flysystem exceptions are now wrapped in FileOperationException. #296
  • Windows directory separator — Fixed PSR-4 path flattening breaking on Windows backslashes. #310

Forward ported bug fixes

These bug fixes have been released earlier today in versions 1.1.4 and 1.0.10 as well:

  • PHPDoc FQCN prefixing hardened — Fully-qualified class names in PHPDoc annotations (@param, @return, @var, @throws, etc.) logic reworked and are now properly rewritten to use the prefixed namespace. #360
  • Shared vendor dependencies preserved during cleanup — Vendor directories required by non-processed installed packages are no longer deleted. #357

Infrastructure

  • PHP minimum raised to 8.2 (from 8.1) #368
  • Upgraded to PHPUnit 11, PHPStan 2.x, Symfony 7.x, php-parser 5.x (only) #368
  • Docker images updated to Composer 2.9.5 and Xdebug 3.5.1 #368
  • GitHub Actions bumped to latest major versions #368

Upgrade notes

  • PHP 8.2 required — Mozart 1.2.0 requires PHP 8.2 or higher. The resulting bundled files can still target any PHP version.
  • Autoloader generation is on by default — If you already manually configure autoloading in your project's composer.json for Mozart-processed dependencies, have your code include the newly created autoload.php to benefit from this new feature. Or alternatively, set generate_autoloader to false in your extra.mozart block to keep your existing setup. See the configuration docs.
  • New prefixes are applied automaticallyconstant_prefix and functions_prefix are derived from classmap_prefix by default. If your dependencies declare global-scope constants or functions, these will now be prefixed. Set either to an empty string in extra.mozart to disable.

Documentation

Full documentation for all features is available in docs/:

Full Changelog: 1.1.4...1.2.0

Docker Images

This release includes Docker images for multiple architectures (linux/amd64, linux/arm64, linux/arm/v7).

Pull from Docker Hub

docker pull coenjacobs/mozart:1.2.0

Pull from GitHub Container Registry

docker pull ghcr.io/coenjacobs/mozart:1.2.0

Available Tags

  • 1.2.0 - This release

  • latest - Latest stable version (if this is the highest version)

Links

Release 1.1.4

12 Mar 09:39
a2d9e3e

Choose a tag to compare

Maintenance release, containing:

  • Preserve shared vendor dependencies during cleanup #356
  • Fix PHPDoc namespace prefixing #361

Full Changelog: 1.1.3...1.1.4

Docker Images

This release includes Docker images for multiple architectures (linux/amd64, linux/arm64, linux/arm/v7).

Pull from Docker Hub

docker pull coenjacobs/mozart:1.1.4

Pull from GitHub Container Registry

docker pull ghcr.io/coenjacobs/mozart:1.1.4

Available Tags

  • 1.1.4 - This release

  • latest - Latest stable version (if this is the highest version)

Links

Release 1.0.10

12 Mar 09:15
031fba0

Choose a tag to compare

Maintenance release, containing:

  • Backported: Preserve shared vendor dependencies during cleanup #356
  • Backported: Fix PHPDoc namespace prefixing #361

Full Changelog: 1.0.9...1.0.10

Docker Images

This release includes Docker images for multiple architectures (linux/amd64, linux/arm64, linux/arm/v7).

Pull from Docker Hub

docker pull coenjacobs/mozart:1.0.10

Pull from GitHub Container Registry

docker pull ghcr.io/coenjacobs/mozart:1.0.10

Available Tags

  • 1.0.10 - This release

  • latest - Latest stable version (if this is the highest version)

Links

Release 1.1.3

04 Mar 09:13
0c69d12

Choose a tag to compare

  • [FORWARD PORT] Fix delete_vendor_directories setter name mismatch #321

Full Changelog: 1.1.2...1.1.3

Docker Images

This release includes Docker images for multiple architectures (linux/amd64, linux/arm64, linux/arm/v7).

Pull from Docker Hub

docker pull coenjacobs/mozart:1.1.3

Pull from GitHub Container Registry

docker pull ghcr.io/coenjacobs/mozart:1.1.3

Available Tags

  • 1.1.3 - This release

  • latest - Latest stable version (if this is the highest version)

Links

Release 1.0.9

04 Mar 09:01
9aceb73

Choose a tag to compare

Maintenance release, containing:

  • Fix delete_vendor_directories setter name mismatch #320

Full Changelog: 1.0.8...1.0.9

Docker Images

This release includes Docker images for multiple architectures (linux/amd64, linux/arm64, linux/arm/v7).

Pull from Docker Hub

docker pull coenjacobs/mozart:1.0.9

Pull from GitHub Container Registry

docker pull ghcr.io/coenjacobs/mozart:1.0.9

Available Tags

  • 1.0.9 - This release

  • latest - Latest stable version (if this is the highest version)

Links