Comments (15)
@pwittrock: I've recently come across this fantastic project. If contributions are welcome, feel free to assign it to me and I'll look into it!
from apiserver-builder-alpha.
Consider is assigned. Just invited you as a collaborator, which allow me to actually assign it to you.
from apiserver-builder-alpha.
Cool, thanks for bringing me on board!
from apiserver-builder-alpha.
@pwittrock, let's have a discussion over the scope of this issue after I've done some research.
Creating support for installation via homebrew involves creating a formula. A formula points to a specific source code archive and defines methods for installation and testing. A formula can be part of the official homebrew-core project, which allows convenient installation via, e.g., brew install kubernetes-apiserver-builder
. However, I am not sure this is a good fit for a project that is still in a very early stage and that has frequent updates.
The alternative is to provide our formula in a tap, a third party repo for formulae. Since we own the tap, we can update the formulae at any time (e.g. for version bumps). In this case, an installation via brew install kubernetes-incubator/apiserver-builder/[email protected]
would point to a formula defined in github.com/kubernetes-incubator/homebrew-apiserver-builder/**/[email protected]
. This means that, with this approach, we'd need to create an extra repo in the kubernetes-incubator GitHub organization and I am not sure whether this is accepted.
A consolidated approach would store the tap in this repository, by convention under a directory named HomebrewFormula
or Formula
. Here, the installation would look as follows:
// clones our repo into a local tap store named ´kubernetes-incubator/apiserver-builder´
brew tap kubernetes-incubator/apiserver-builder https://github.com/kubernetes-incubator/apiserver-builder.git
// now, users can install our formulae as if they were part of Homebrew's canonical repo
brew install [email protected]
// users can also apply updates via
brew update
Preferences? Thoughts?
from apiserver-builder-alpha.
I like the third approach.
The project is just in its infancy, so minimizing overhead and optimizing for making it easy to push lots of releases makes sense to me. It is probably not worth creating another repo for the formula with the project at this stage.
from apiserver-builder-alpha.
While debugging the homebrew formula, I came across the following issue:
bash-3.2$ make build
rm -rf *.deb *.rpm *.tar.gz ./release
go run ./cmd/apiserver-builder-release/main.go vendor --version 0.1-alpha.15
cmd/apiserver-builder-release/main.go:30:2: cannot find package "github.com/spf13/cobra" in any of:
/usr/local/Cellar/go/1.9/libexec/src/github.com/spf13/cobra (from $GOROOT)
/private/tmp/apiserver-builder-20170924-4536-bsljtb/apiserver-builder-0.1-alpha.17/src/github.com/spf13/cobra (from $GOPATH)
make: *** [build] Error 1
I am wondering why go does not find the dependency package in the vendor
folder where it resides? After all, isn't that the point of this directory? I am still quite new to go, but anyone in this round able to help out with an explanation? Thanks!
bash-3.2$ go version
go version go1.9 darwin/amd64
Also, the vendor
directory is inside my GOPATH
:
bash-3.2$ echo $GOPATH
/private/tmp/apiserver-builder-20170924-4536-bsljtb/apiserver-builder-0.1-alpha.17
bash-3.2$ pwd
/private/tmp/apiserver-builder-20170924-4536-bsljtb/apiserver-builder-0.1-alpha.17
bash-3.2$ ls -la
total 104
drwxr-xr-x 19 martin staff 646 Sep 24 17:34 .
drwx------ 3 martin staff 102 Sep 24 17:34 ..
drwxr-xr-x 3 martin staff 102 Sep 24 17:34 .brew_home
-rw-r--r-- 1 martin staff 259 Sep 24 00:23 .travis.yml
-rw-r--r-- 1 martin staff 11357 Sep 24 00:23 LICENSE
-rw-r--r-- 1 martin staff 2495 Sep 24 00:23 Makefile
-rw-r--r-- 1 martin staff 219 Sep 24 00:23 OWNERS
-rw-r--r-- 1 martin staff 2949 Sep 24 00:23 README.md
-rw-r--r-- 1 martin staff 13 Sep 24 00:23 VERSION
drwxr-xr-x 6 martin staff 204 Sep 24 00:23 cmd
drwxr-xr-x 18 martin staff 612 Sep 24 00:23 docs
drwxr-xr-x 9 martin staff 306 Sep 24 00:23 example
-rw-r--r-- 1 martin staff 15851 Sep 24 00:23 glide.lock
-rw-r--r-- 1 martin staff 1825 Sep 24 00:23 glide.yaml
drwxr-xr-x 8 martin staff 272 Sep 24 00:23 pkg
drwxr-xr-x 3 martin staff 102 Sep 24 00:23 scripts
drwxr-xr-x 3 martin staff 102 Sep 24 17:34 src
drwxr-xr-x 6 martin staff 204 Sep 24 00:23 test
drwxr-xr-x 9 martin staff 306 Sep 24 00:23 vendor
I've also checked that github.com/spf13/cobra
is in the right place under vendor
:
/private/tmp/apiserver-builder-20170924-4536-bsljtb/apiserver-builder-0.1-alpha.17/vendor/github.com/spf13/cobra
from apiserver-builder-alpha.
I think your directory structure may be off. Go expects the go to be under $GOPATH/src/<go-package-name>
, so the package github.com/kubernetes-incubator/apiserver-boot
should live under $GOPATH/src/github.com/kubernetes-incubator/apiserver-boot
.
If your GOPATH is /private/tmp/apiserver-builder-20170924-4536-bsljtb/apiserver-builder-0.1-alpha.17
then the apiserver-builder repo should be checkout out in /private/tmp/apiserver-builder-20170924-4536-bsljtb/apiserver-builder-0.1-alpha.17/src/github.com/kubernetes-incubator/apiserver-builder
and you should run make from there.
I am not sure why it cannot find the vendor, but it maybe that it is looking for the vendor directory under /private/tmp/apiserver-builder-20170924-4536-bsljtb/apiserver-builder-0.1-alpha.17/src/github.com/kubernetes-incubator/apiserver-builder/vendor
and doesn't find it.
from apiserver-builder-alpha.
Thanks for your feedback @pwittrock, I'll look into your suggestions!
from apiserver-builder-alpha.
@metmajer FYI, I have been starting to do some work to integrate Bazel support for faster builds. I also changed how the glide.tar.gz is done locally instead of through glide. I've tested the changes quite a bit, but there is still a chance I broke something.
from apiserver-builder-alpha.
FYI, i introduced building with bazel which is much faster once you have bazel installed.
go run cmd/apiserver-builder-release/main.go vendor --version 0.1-alpha.19 && \
go run cmd/apiserver-builder-release/main.go build --version 0.1-alpha.19 --bazel
from apiserver-builder-alpha.
Awesome, I'll make sure this is also reflected in the Makefile. I'm quite a bit busy atm, but will follow up very soon.
from apiserver-builder-alpha.
Issues go stale after 90d of inactivity.
Mark the issue as fresh with /remove-lifecycle stale
.
Stale issues rot after an additional 30d of inactivity and eventually close.
If this issue is safe to close now please do so with /close
.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle stale
from apiserver-builder-alpha.
Stale issues rot after 30d of inactivity.
Mark the issue as fresh with /remove-lifecycle rotten
.
Rotten issues close after an additional 30d of inactivity.
If this issue is safe to close now please do so with /close
.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/lifecycle rotten
from apiserver-builder-alpha.
Rotten issues close after 30d of inactivity.
Reopen the issue with /reopen
.
Mark the issue as fresh with /remove-lifecycle rotten
.
Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close
from apiserver-builder-alpha.
@fejta-bot: Closing this issue.
In response to this:
Rotten issues close after 30d of inactivity.
Reopen the issue with/reopen
.
Mark the issue as fresh with/remove-lifecycle rotten
.Send feedback to sig-testing, kubernetes/test-infra and/or fejta.
/close
Instructions for interacting with me using PR comments are available here. If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository.
from apiserver-builder-alpha.
Related Issues (20)
- [build fail] build executables fail due to unknown controller manager HOT 4
- support for dynamic type registration HOT 4
- Any support plan for OS=darwin && ARCH=arm64? HOT 4
- no problem
- apiserver-boot does not call code generator automatically? HOT 1
- Project no longer builds based on install instructions HOT 5
- How to make the addon apiserver authentication and authonrization in local HOT 4
- `apiserver-boot build executables` didn't call "make generate" in v2.0.0-beta.0 release on Mac HOT 4
- connect: connection refused HOT 1
- apiserver-boot must be installed using a release tar.gz downloaded from the git repo. HOT 4
- unknown option -addext HOT 5
- How to generate Java/C client code HOT 4
- v1.23.0 can not build generate client sdk HOT 6
- Why build docs is not functionally available? HOT 4
- How to pass queryParameter for ArbitrarySubResource HOT 4
- failed to install through "go install" HOT 5
- > example/podexec failed HOT 4
- Error when using ConnectorSubResource: (missing method Destroy) HOT 5
- Where is the unversioned API
- apiserver-boot 在windows环境下的gitbash执行报错 GOCACHE is not defined and %LocalAppData% is not defined HOT 4
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from apiserver-builder-alpha.