Skip to content

cmd/dist: add support for broken ports #56679

Description

@ianlancetaylor

In #53383 we said the following:

  • We will introduce a new concept: the broken port.
    • If a port stops working, including the case where a builder stops working, we can decide to mark the port as broken.
      • Or in some cases we can roll back the change that broke it; this is a judgement call.
    • In general, a port can be considered broken if its builder has failed multiple times in a development cycle with a failure mode that does not occur for first class ports, and that failure mode is not believed to have been fixed or suppressed by a change in either a Go repository or the builder's configuration, and maintainers are not actively working on a solution.
    • Any approver can declare that a port that meets these criteria is broken.
    • The list of broken ports will be maintained in cmd/dist and will appear in the release notes if broken at release time.
    • Attempting to build a broken port will fail unless make.bash or go tool dist is invoked with a new option -force.
    • If a port is broken in release 1.N, then the core Go team can choose to remove the port from release 1.N+1.
      • This is not obligatory and will depend on whether anybody is willing and able to maintain the port going forward.
    • We currently have a list of incomplete ports in cmd/dist/build.go; these should probably be treated as broken ports.
      • Currently the only entry on that list is linux/sparc64.
    • The goal here is not to get ports out of the tree; if people are actively working on the port they should have as much as latitude as possible to fix it.

This issue is about adding that support to cmd/dist:

  • A list of broken ports.
  • An error by default when trying to build a broken port.
  • A new -force option for both cmd/dist and make.bash to build a port that is marked as broken.

Activity

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

Labels

FrozenDueToAgeNeedsFixThe path to resolution is known, but the work has not been done.

Type

No type

Projects

Milestone

Relationships

None yet

Development

No branches or pull requests

Issue actions