Skip to content

✅ SetPreferStable

Sets the project's prefer-stable option so that Composer prefers stable versions of packages when resolving dependencies. Equivalent to running composer config prefer-stable <0|1>.

When to use

Use this when you have relaxed minimum-stability (e.g. allowing beta) but still want Composer to prefer stable versions when available. Once set, Composer will pick stable versions as much as possible while satisfying constraints.

Signature

go
func (c *Composer) SetPreferStable(preferStable bool) error

Parameters

ParameterTypeDescription
preferStablebooltrue means prefer stable versions, false means no strong preference

Return value

error: returns the corresponding error message when an error occurs while setting prefer-stable; nil on success.

Example

go
package main

import (
	"fmt"
	"log"

	"github.com/scagogogo/composer-skills/pkg/composer"
)

func main() {
	comp, err := composer.New(composer.DefaultOptions())
	if err != nil {
		log.Fatalf("init failed: %v", err)
	}

	// Prefer stable versions
	if err := comp.SetPreferStable(true); err != nil {
		log.Fatalf("set prefer-stable failed: %v", err)
	}

	fmt.Println("prefer-stable set to true")
}

Advanced

  • To read the current prefer-stable config, use GetPreferStable() (returns the string "0" or "1").
  • Commonly paired with SetMinimumStability: relax the stability level while keeping a preference for stable versions.
  • Under the hood, the bool is converted to "0"/"1" and composer config prefer-stable is executed.

Released under the MIT License