Hi gophers,
I wonder how the Go project defines a breaking change, specifically for the case where we have an existing API but want to add ... to its parameter list for customizations.
For instance, we have an API:
package foo
func Bar() {}
And the current code uses this function as:
foo.Bar()
Now, we added a ... to the Bar() and having a new function signature:
func Bar(args ...any) {}
Technically, the language allows the existing users to continue to work:
foo.Bar() // still OK.
As long as we don't change how Bar() behaves by default, it seems that the code that previously used foo.Bar() is still considered valid and not breaking. Is introducing this type of API signature change considered a breaking change in the standard library?
What if we propose API changes like this to the existing standard library, will it be considered differently compared to an actual breaking change?
Thanks!
Changkun