Hi, I didn't reply because I need some time to set up the demostration about why keeping ABI consistent is important. Aleksa was right. The code before had some problems matching 1.6.1. I fixed that in my fork. Maybe the original pull request was done when go was 1.5 so this exception was not considered. "go libraries" I mean 3rd party go modules/projects like %{go_archdir}/github.com/shurcooL/sanitized_anchor_name.a I didn't read too many golang books, so if my saying is wrong, correct me please. For C I think static library is also library. We have a common knowledge here that go stuff is statically compiled. But how static? I have little knowledge in programming, I don't know if the compiled stuff can be run without the presence of golang itself. If someone knows, please teach me. But there's still one thing we need to consider, BuildRequires. If A buildrequires B, no matter whether B is compiled statically or not, it'll be involved. But what if we are building A with go 1.6.1, while B is compiled before with a different version (ABI) of go? Here's my result: https://build.opensuse.org/package/live_build_log/home:MargueriteSu:go_test1... "import /usr/lib64/go/contrib/pkg/linux_amd64/github.com/shurcooL/sanitized_anchor_name.a: object is [linux amd64 go1.4.3 X:precisestack] expected [linux amd64 go1.6.1 X:none]" I set up a project with go 1.4.3 and modified golang-packaging/golang-github-shurcool-sanitized_anchor_name to make sure the sanitized_anchor_name is built with go 1.4.3. Then I set up another project with go 1.6.1 and golang-github-russross-blackfriday, while aggregating the compiled sanitized_anchor_name. This happens everywhere on OBS, even in a same project due to racing problems or something I don't know. I can tell with my experience of maintaining go, this must be considered. Not to say, there're lots of home projects that are not updated that quickly as Factory and devel:languages:go. Sometimes the worker for home projects just stopped working. sometimes the user has his own piece of go. That is what I want to show you guys: the things compiled with different versions of go can't be used to build further things with this version of go. So the ABI consistence is a must. What do you think? And Jordi just mentioned why not BuildRequires? Actually BuildRequires of go is there from day one. But it just did not help in the old days. And I would like to know why you guys didn't want "Requires: golang(API) = 1.6" there? Because compiled stuff doesn't need to runtime require golang itself? That is, Can I uninstall go package without breaking my existing go compiled binaries? Marguerite -- To unsubscribe, e-mail: opensuse-go+unsubscribe@opensuse.org To contact the owner, e-mail: opensuse-go+owner@opensuse.org