Skip to content
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

Versioning of build tools #7802

Closed
andrewkroh opened this issue Jul 30, 2018 · 6 comments
Closed

Versioning of build tools #7802

andrewkroh opened this issue Jul 30, 2018 · 6 comments
Labels

Comments

@andrewkroh
Copy link
Member

andrewkroh commented Jul 30, 2018

Our builds use a number of external tools that are fetched remotely. Things like go get and python virtualenv both do fetching. Some of these tools are unversioned (meaning that we don't specify a version to fetch). This can causes stability issues when the external tool changes.

And in an effort to further improve stability we might want to vendor the Go based tools directly in our repo or in S3 so that we are in full control over everything that goes into our build.

The first step here is to audit all of the places where we pull in remote code or tools so we can gauge the scope of the issue.

@andrewkroh
Copy link
Member Author

Here are some quick notes about remote fetches. I didn't not look at any Dockerfiles in the project and we have lots of them that are used for testing.

  • Packaging
    • Uses versioned Docker images from the Elastic registry. Source is at https://github.com/elastic/golang-crossbuild.
    • These images include
      • FPM 1.10.0
      • Go 1.10.3
      • Debian 8 and 9 base layers with several build tool packages pulled from official debian repos.
  • Packetbeat
  • All Beats
    • go get golang.org/x/tools/cmd/goimports
    • go get github.com/golang/lint/golint
    • go get github.com/haya14busa/reviewdog/cmd/reviewdog
    • go get github.com/elastic/go-licenser
    • go get github.com/mitchellh/gox
    • go get github.com/docker/libcompose

Python

$ find . -name requirements.txt | xargs cat | sort | uniq | grep -v '=='
elasticsearch
pylibmc
requests

@jsoriano
Copy link
Member

Regarding go tools, mage is vendorized, and installed with go install from libbeat/scripts/Makefile. We could do the same with other go tools (if we do other thing then we should probably do the same with mage)

@jsoriano
Copy link
Member

I think most of this is being solved by @kvch with the migration to go modules (see #16127, #15998 and so on).

@botelastic
Copy link

botelastic bot commented Jan 17, 2021

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@botelastic botelastic bot added Stalled needs_team Indicates that the issue/PR needs a Team:* label labels Jan 17, 2021
@jsoriano jsoriano added the Team:Integrations Label for the Integrations team label Jan 17, 2021
@elasticmachine
Copy link
Collaborator

Pinging @elastic/integrations (Team:Integrations)

@botelastic botelastic bot removed Stalled needs_team Indicates that the issue/PR needs a Team:* label labels Jan 17, 2021
@botelastic
Copy link

botelastic bot commented Jan 27, 2022

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.

@botelastic botelastic bot added the Stalled label Jan 27, 2022
@botelastic botelastic bot closed this as completed Jul 26, 2022
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

3 participants