New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

x/mobile: make builders work with mobile sub-repo. #9603

Open
hyangah opened this Issue Jan 15, 2015 · 9 comments

Comments

Projects
None yet
6 participants
@hyangah
Contributor

hyangah commented Jan 15, 2015

build status of mobile subrepo never looks good in build.golang.org
That's mostly because some code in mobile repo has exernal package/library dependency.

  • some builders complain lack of 'hg' tool, for go get code.google.com/p/freetype-go/freetype
    : Should we require the builders to have 'hg' tool?
  • some packages work only on darwin/linux. (app,gl,font, ..)
    : Need proper build tags.
  • darwin builders: missing OpenGL/gl3.h, CoreText/CTFont.h
    : Need for a special darwin builder with necessary libraries installed?

One option is to exclude mobile subrepo entirely by default. But I don't want to avoid it if possible. There are some packages and tools (eg. gobind?) that should work without the platform/library dependencies.

@hyangah hyangah added the repo-mobile label Jan 15, 2015

hyangah added a commit to golang/mobile that referenced this issue Jan 15, 2015

mobile: limit app/font/gl packages to linux/darwin.
They don't make sense for other platforms yet.

See golang/go#9603

Change-Id: I2ed269a00b1e1961aadf0a47fc95bbe3cd230113
Reviewed-on: https://go-review.googlesource.com/2902
Reviewed-by: David Crawshaw <crawshaw@golang.org>
@adg

This comment has been minimized.

Contributor

adg commented Jan 16, 2015

On 16 January 2015 at 06:28, Hyang-Ah Hana Kim notifications@github.com
wrote:

build status of mobile subrepo never looks good in build.golang.org
That's mostly because some code in mobile repo has exernal package/library
dependency.

  • some builders complain lack of 'hg' tool, for go get
    code.google.com/p/freetype-go/freetype : Should we require the
    builders to have 'hg' tool?

That's easy to do, so we should do it. Then again, it's likely freetype
will move soonish. (right @nigeltao?)

  • darwin builders: missing OpenGL/gl3.h, CoreText/CTFont.h : Need for
    a special darwin builder with necessary libraries installed?

That can also be arranged.

One option is to exclude mobile subrepo entirely by default. But I don't
want to avoid it if possible. There are some packages and tools (eg.
gobind?) that should work without the platform/library dependencies.

It should definitely be tested. If we decide we don't want the go builders
to do it, then maybe we could use Travis CI? But I would prefer to just
make it work in the go build infrastructure.

(cc @bradfitz)

@bradfitz bradfitz added the builder label Jan 16, 2015

@bradfitz

This comment has been minimized.

Member

bradfitz commented Jan 16, 2015

I can help with this, but I'm a little buried in builder-related stuff at the moment, so I can't promise any low latency on this.

@nigeltao

This comment has been minimized.

Contributor

nigeltao commented Jan 16, 2015

On Fri, Jan 16, 2015 at 1:05 PM, Andrew Gerrand
notifications@github.com wrote:

That's easy to do, so we should do it. Then again, it's likely freetype
will move soonish. (right @nigeltao?)

I wasn't planning on moving it any time soon, but can do so if required.

Where would live, though? "go.googlesource.com/freetype/" or
"github.com/google/freetype-go"? Does it matter if the freetype-go
license differs from the usual Go license?

@rsc rsc added this to the Unplanned milestone Apr 10, 2015

@rsc rsc changed the title from mobile: make builders work with mobile sub-repo. to x/mobile: make builders work with mobile sub-repo. Apr 14, 2015

@rsc rsc modified the milestones: Unreleased, Unplanned Apr 14, 2015

@rsc rsc removed repo-mobile labels Apr 14, 2015

@hyangah

This comment has been minimized.

Contributor

hyangah commented Jul 28, 2015

update: mobile repo doesn't depend on freetype anymore. thanks to @nigeltao

linux buildlets will need opengl es2, openal, and some font packages. Is it okay to add these to the buildlet image? Or do we want these to be added only to a small set of special builders?

RUN apt-get install -y --no-install-recommends libgles2-mesa-dev libopenal-dev fonts-droid

This will increase the image size by ~80MB.

@adg @bradfitz @crawshaw

@adg

This comment has been minimized.

Contributor

adg commented Jul 29, 2015

I think we need to put them on the linux base image. It doesn't seem
tenable to push that stuff to the buildlets on demand.

On 28 July 2015 at 23:17, Hyang-Ah Hana Kim notifications@github.com
wrote:

update: mobile repo doesn't depend on freetype anymore. thanks to
@nigeltao https://github.com/nigeltao

linux buildlets will need opengl es2, openal, and some font packages. Is
it okay to add these to the buildlet image? Or do we want these to be added
only to a small set of special builders?

RUN apt-get install -y --no-install-recommends libgles2-mesa-dev
libopenal-dev fonts-droid

This will increase the image size by ~80MB.

@adg https://github.com/adg @bradfitz https://github.com/bradfitz
@crawshaw https://github.com/crawshaw


Reply to this email directly or view it on GitHub
#9603 (comment).

@bradfitz

This comment has been minimized.

Member

bradfitz commented Jul 29, 2015

We really need to get the Kubernetes buildlets up, so then this can just be a Docker image running the buildlet, rather than modifying our VM image.

@bradfitz

This comment has been minimized.

Member

bradfitz commented Jul 29, 2015

(but modifying base image in the meantime is fine, even if it's annoying and slower)

Be sure to keep the staging project's copy in sync.

@hyangah

This comment has been minimized.

Contributor

hyangah commented Mar 8, 2016

cc/ @eliasnaur

Resurrecting this issue.
We'd like to focus on making mobile subrepo fully tested at least on darwin/x86 builders that have mobile devices attached.

Currently failed tests:

darwin-amd64-10_10 at e806cd9f95ccf14163623792425db2b066d4198e building mobile at 2e1e39e5a64203ad7ed9716e117333cc0622885a
# golang.org/x/mobile/exp/gl/glutil
/var/folders/bn/49l0ffts381_wqsh02663nr40000gn/T/workdir/gopath/src/golang.org/x/mobile/exp/gl/glutil/glimage_test.go:35: undefined: gl.WorkAvailable
/var/folders/bn/49l0ffts381_wqsh02663nr40000gn/T/workdir/gopath/src/golang.org/x/mobile/exp/gl/glutil/glimage_test.go:36: undefined: gl.DoWork
/var/folders/bn/49l0ffts381_wqsh02663nr40000gn/T/workdir/gopath/src/golang.org/x/mobile/exp/gl/glutil/glimage_test.go:47: undefined: start
/var/folders/bn/49l0ffts381_wqsh02663nr40000gn/T/workdir/gopath/src/golang.org/x/mobile/exp/gl/glutil/glimage_test.go:48: undefined: stop
/var/folders/bn/49l0ffts381_wqsh02663nr40000gn/T/workdir/gopath/src/golang.org/x/mobile/exp/gl/glutil/glimage_test.go:81: undefined: gl.CreateFramebuffer
/var/folders/bn/49l0ffts381_wqsh02663nr40000gn/T/workdir/gopath/src/golang.org/x/mobile/exp/gl/glutil/glimage_test.go:82: undefined: gl.BindFramebuffer
/var/folders/bn/49l0ffts381_wqsh02663nr40000gn/T/workdir/gopath/src/golang.org/x/mobile/exp/gl/glutil/glimage_test.go:83: undefined: gl.CreateRenderbuffer
/var/folders/bn/49l0ffts381_wqsh02663nr40000gn/T/workdir/gopath/src/golang.org/x/mobile/exp/gl/glutil/glimage_test.go:84: undefined: gl.BindRenderbuffer
/var/folders/bn/49l0ffts381_wqsh02663nr40000gn/T/workdir/gopath/src/golang.org/x/mobile/exp/gl/glutil/glimage_test.go:88: undefined: gl.RenderbufferStorage
/var/folders/bn/49l0ffts381_wqsh02663nr40000gn/T/workdir/gopath/src/golang.org/x/mobile/exp/gl/glutil/glimage_test.go:89: undefined: gl.FramebufferRenderbuffer
/var/folders/bn/49l0ffts381_wqsh02663nr40000gn/T/workdir/gopath/src/golang.org/x/mobile/exp/gl/glutil/glimage_test.go:89: too many errors
ok      golang.org/x/mobile/app 0.028s
?       golang.org/x/mobile/app/internal/apptest    [no test files]
?       golang.org/x/mobile/app/internal/testapp    [no test files]
?       golang.org/x/mobile/asset   [no test files]
ok      golang.org/x/mobile/bind    0.490s
?       golang.org/x/mobile/bind/benchmark  [no test files]
ok      golang.org/x/mobile/bind/java   0.030s
--- FAIL: TestObjcSeqTest (6.91s)
    seq_test.go:71: tmpdir = /var/folders/bn/49l0ffts381_wqsh02663nr40000gn/T/bind-objc-seq-test-940819910
    seq_test.go:89: 
    seq_test.go:90: failed to run gomobile bind: exec: "gomobile": executable file not found in $PATH
--- FAIL: TestObjcSeqBench (0.26s)
    seq_test.go:71: tmpdir = /var/folders/bn/49l0ffts381_wqsh02663nr40000gn/T/bind-objc-seq-test-018531949
    seq_test.go:89: 
    seq_test.go:90: failed to run gomobile bind: exec: "gomobile": executable file not found in $PATH
FAIL
FAIL    golang.org/x/mobile/bind/objc   7.182s
ok      golang.org/x/mobile/bind/seq    0.014s
?       golang.org/x/mobile/bind/testpkg    [no test files]
?       golang.org/x/mobile/cmd/gobind  [no test files]
ok      golang.org/x/mobile/cmd/gomobile    0.134s
?       golang.org/x/mobile/event/key   [no test files]
?       golang.org/x/mobile/event/lifecycle [no test files]
?       golang.org/x/mobile/event/mouse [no test files]
?       golang.org/x/mobile/event/paint [no test files]
?       golang.org/x/mobile/event/size  [no test files]
?       golang.org/x/mobile/event/touch [no test files]
?       golang.org/x/mobile/example/audio   [no test files]
?       golang.org/x/mobile/example/basic   [no test files]
?       golang.org/x/mobile/example/bind/hello  [no test files]
?       golang.org/x/mobile/example/flappy  [no test files]
?       golang.org/x/mobile/example/network [no test files]
?       golang.org/x/mobile/exp/app/debug   [no test files]
ok      golang.org/x/mobile/exp/audio   0.018s
?       golang.org/x/mobile/exp/audio/al    [no test files]
ok      golang.org/x/mobile/exp/f32 0.014s
ok      golang.org/x/mobile/exp/font    0.052s
FAIL    golang.org/x/mobile/exp/gl/glutil [build failed]
?       golang.org/x/mobile/exp/sensor  [no test files]
?       golang.org/x/mobile/exp/sprite  [no test files]
ok      golang.org/x/mobile/exp/sprite/clock    0.013s
?       golang.org/x/mobile/exp/sprite/glsprite [no test files]
ok      golang.org/x/mobile/exp/sprite/portable 0.024s
?       golang.org/x/mobile/geom    [no test files]
?       golang.org/x/mobile/gl  [no test files]
ok      golang.org/x/mobile/internal/binres 0.026s
?       golang.org/x/mobile/internal/mobileinit [no test files]
@gopherbot

This comment has been minimized.

gopherbot commented Mar 8, 2016

CL https://golang.org/cl/20411 mentions this issue.

gopherbot pushed a commit to golang/mobile that referenced this issue Mar 10, 2016

bind/java,objc: run gomobile init after installing gomobile
Also, upgrade the android plugin version used for java/seq_test
from 1.2.3 to 1.5.0

For golang/go#9603

Change-Id: I7b465ff0e607319a08150c4405675832d91edc1e
Reviewed-on: https://go-review.googlesource.com/20411
Reviewed-by: Elias Naur <elias.naur@gmail.com>
Reviewed-by: David Crawshaw <crawshaw@golang.org>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment