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.
In #53383 we said the following:
make.bashorgo tool distis invoked with a new option-force.This issue is about adding that support to cmd/dist:
-forceoption for both cmd/dist and make.bash to build a port that is marked as broken.