mozart icon indicating copy to clipboard operation
mozart copied to clipboard

Namespacing the MaxMind GeoIP2 library causes the creation of duplicate files

Open daigo75 opened this issue 1 year ago • 1 comments

I'm using a simple test configuration for mozart, as follows:

"mozart": {
	"dep_namespace": "\Dependencies\\",
	"dep_directory": "/dependencies/packages/",
	"classmap_directory": "/dependencies/classes/",
	"classmap_prefix": "Deps_",
	"packages": [
		"geoip2/geoip2"
	],
	"delete_vendor_directories": true
}

Composer downloads the GeoIP2 files, which also have dependencies on packages maxmind-db/reader and maxmind/web-service-common. So far, so good. When mozart does its job, the dependencies directory contains a duplicate of the MaxMind WebService package. This raises a series of warnings, like the following: Warning: Ambiguous class resolution, "MaxMind\Exception\AuthenticationException" was found in both "/src/dependencies/packages/MaxMind/WebService/AuthenticationException.php" and "/src/dependencies/packages/MaxMind/WebService/vendor/maxmind/web-service-common/src/Exception/AuthenticationException.php", the first will be used.

The issue is the presence of folder /src/dependencies/packages/MaxMind/WebService/vendor/. For some reason, it seems that the namespacing process is causing the WebService library to "include itself", introducing duplicates of its files.

I haven't been able to find the root cause of the issue yet, so I thought of sharing this finding in case someone comes across it and has an ide of how to address it.

daigo75 avatar Feb 16 '24 09:02 daigo75

Hi there, Just checking if there is any update about this. Thanks.

daigo75 avatar Jun 17 '24 12:06 daigo75