🧪 GetPackageDevVersions
Fetches a package's development branch version info (raw JSON bytes), such as dev-master, dev-main.
When to use
🧪 When you need to test branch versions or track unreleased features; 🛠️ when building a self-hosted mirror that must provide dev version metadata equivalent to Composer's ~dev.
Signature
go
func (c *ComposerClient) GetPackageDevVersions(packageName string) ([]byte, error)Parameters
| Parameter | Type | Description |
|---|---|---|
packageName | string | Package name, e.g. symfony/console |
Return value
| Value | Type | Description |
|---|---|---|
| Data | []byte | Raw JSON bytes of the dev version metadata |
| Error | error | Returned on HTTP failure or non-200 status |
Corresponding endpoint: GET https://repo.packagist.org/p2/{name}~dev.json (uses repoURL).
Example
go
package main
import (
"fmt"
"log"
"time"
"github.com/scagogogo/composer-skills/pkg/client"
)
func main() {
c := client.NewComposerClient(30 * time.Second)
data, err := c.GetPackageDevVersions("symfony/console")
if err != nil {
log.Fatal(err)
}
// Includes branch versions such as dev-master / dev-main
fmt.Println(string(data))
}Advanced
URL convention
Packagist appends ~dev to the package name to request development branch versions; the SDK automatically builds {repoURL}/p2/{name}~dev.json.
- 🧩 For the equivalent stable version metadata, use
GetPackageWithV2Metadata. - 📦 For structured package info (including released versions), use
GetPackage. - 📊 For a list of available versions with statistics, use
GetPackageStats.