mirror of
				https://github.com/go-gitea/gitea.git
				synced 2025-10-31 19:06:18 +01:00 
			
		
		
		
	Add bin to Composer Metadata (#32099)
This PR addresses the missing `bin` field in Composer metadata, which currently causes vendor-provided binaries to not be symlinked to `vendor/bin` during installation. In the current implementation, running `composer install` does not publish the binaries, leading to issues where expected binaries are not available. By properly declaring the `bin` field, this PR ensures that binaries are correctly symlinked upon installation, as described in the [Composer documentation](https://getcomposer.org/doc/articles/vendor-binaries.md).
This commit is contained in:
		| @@ -48,6 +48,7 @@ type Metadata struct { | |||||||
| 	Homepage    string            `json:"homepage,omitempty"` | 	Homepage    string            `json:"homepage,omitempty"` | ||||||
| 	License     Licenses          `json:"license,omitempty"` | 	License     Licenses          `json:"license,omitempty"` | ||||||
| 	Authors     []Author          `json:"authors,omitempty"` | 	Authors     []Author          `json:"authors,omitempty"` | ||||||
|  | 	Bin         []string          `json:"bin,omitempty"` | ||||||
| 	Autoload    map[string]any    `json:"autoload,omitempty"` | 	Autoload    map[string]any    `json:"autoload,omitempty"` | ||||||
| 	AutoloadDev map[string]any    `json:"autoload-dev,omitempty"` | 	AutoloadDev map[string]any    `json:"autoload-dev,omitempty"` | ||||||
| 	Extra       map[string]any    `json:"extra,omitempty"` | 	Extra       map[string]any    `json:"extra,omitempty"` | ||||||
|   | |||||||
| @@ -36,6 +36,7 @@ func TestPackageComposer(t *testing.T) { | |||||||
| 	packageType := "composer-plugin" | 	packageType := "composer-plugin" | ||||||
| 	packageAuthor := "Gitea Authors" | 	packageAuthor := "Gitea Authors" | ||||||
| 	packageLicense := "MIT" | 	packageLicense := "MIT" | ||||||
|  | 	packageBin := "./bin/script" | ||||||
|  |  | ||||||
| 	var buf bytes.Buffer | 	var buf bytes.Buffer | ||||||
| 	archive := zip.NewWriter(&buf) | 	archive := zip.NewWriter(&buf) | ||||||
| @@ -49,6 +50,9 @@ func TestPackageComposer(t *testing.T) { | |||||||
| 			{ | 			{ | ||||||
| 				"name": "` + packageAuthor + `" | 				"name": "` + packageAuthor + `" | ||||||
| 			} | 			} | ||||||
|  | 		], | ||||||
|  | 		"bin": [ | ||||||
|  | 			"` + packageBin + `" | ||||||
| 		] | 		] | ||||||
| 	}`)) | 	}`)) | ||||||
| 	archive.Close() | 	archive.Close() | ||||||
| @@ -210,6 +214,8 @@ func TestPackageComposer(t *testing.T) { | |||||||
| 		assert.Len(t, pkgs[0].Authors, 1) | 		assert.Len(t, pkgs[0].Authors, 1) | ||||||
| 		assert.Equal(t, packageAuthor, pkgs[0].Authors[0].Name) | 		assert.Equal(t, packageAuthor, pkgs[0].Authors[0].Name) | ||||||
| 		assert.Equal(t, "zip", pkgs[0].Dist.Type) | 		assert.Equal(t, "zip", pkgs[0].Dist.Type) | ||||||
| 		assert.Equal(t, "7b40bfd6da811b2b78deec1e944f156dbb2c747b", pkgs[0].Dist.Checksum) | 		assert.Equal(t, "4f5fa464c3cb808a1df191dbf6cb75363f8b7072", pkgs[0].Dist.Checksum) | ||||||
|  | 		assert.Len(t, pkgs[0].Bin, 1) | ||||||
|  | 		assert.Equal(t, packageBin, pkgs[0].Bin[0]) | ||||||
| 	}) | 	}) | ||||||
| } | } | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user