Skip to content

Add version control tools to the heroku-16/18 build images#141

Merged
edmorley merged 4 commits intomasterfrom
version-control-tools
Jul 19, 2019
Merged

Add version control tools to the heroku-16/18 build images#141
edmorley merged 4 commits intomasterfrom
version-control-tools

Conversation

@jmorrell
Copy link
Copy Markdown
Contributor

I'm mainly opening this to prompt discussion and learn.

After a recent discussion with @freeformz slack link I found that the go buildpack needs to install mercurial and bazaar version control tools to support go.mod apps.

Relevant PR: heroku/heroku-buildpack-go#345

These seem like tools that should be in the build stack image. Is there a reason they are not there? Has there been previous discussion around this? (search is not bringing things up)

@jmorrell jmorrell requested review from dzuelke, ojacobson and tt July 11, 2019 19:39
@freeformz
Copy link
Copy Markdown

Adding this to the build images would allow me to remove stuff from the go buildpack and generally make things easier for a few customers. So I'm +1000 on this.

@freeformz
Copy link
Copy Markdown

Related to this heroku/heroku-buildpack-go#345

@jmorrell
Copy link
Copy Markdown
Contributor Author

Note: I've not tested this and am mainly interested in learning if there are any blockers / objections. CI is currently failing, but I will do due diligence on the PR if there aren't any.

@freeformz
Copy link
Copy Markdown

I fixed the build errors and at least one more.

@edmorley
Copy link
Copy Markdown
Member

The Postgres key error fix has been split out to #143 - could you rebase on top of master and remove that change? (The key has been replaced rather than a second added; which is why it's not showing any conflicts)

@edmorley
Copy link
Copy Markdown
Member

These seem like tools that should be in the build stack image. Is there a reason they are not there? Has there been previous discussion around this? (search is not bringing things up)

I like the idea of adding these packages. I don't remember seeing any discussion about them on this repo before.

In general I think the possible reasons for not adding a new package are:

  • that it increases the build/runtime image sizes too much - however this PR only results in a 40MB increase for heroku-16-build and 20MB for heroku-18-build (and none for the runtime image), so a non-issue
  • that it allows for anti-patterns (for example including the sqlite headers makes it easier for apps to inadvertently use ephemeral dyno storage for ORM backends) - but I don't think that applies here
  • that it might be incompatible with existing buildpacks/apps

Regarding the last point - I'm presuming the Go buildpack will happily continue to use the vendored binaries in preference to the new ones in the stack image, so therefore not an issue?

@jmorrell jmorrell force-pushed the version-control-tools branch from a0f717a to c44df42 Compare July 17, 2019 18:27
@jmorrell
Copy link
Copy Markdown
Contributor Author

@edmorley rebased 👍

@jmorrell jmorrell force-pushed the version-control-tools branch from c44df42 to 65b4555 Compare July 18, 2019 20:07
Copy link
Copy Markdown
Member

@edmorley edmorley left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Thank you for the changes - looks good to me 👍

@edmorley edmorley changed the title Add version control tools Add version control tools to the heroku-16/18 build images Jul 19, 2019
@edmorley edmorley merged commit 5051c60 into master Jul 19, 2019
@edmorley edmorley removed request for dzuelke, ojacobson and tt July 19, 2019 12:08
@edmorley edmorley deleted the version-control-tools branch July 19, 2019 12:08
@edmorley
Copy link
Copy Markdown
Member

This has been released to staging, if you'd like to test there? :-)

@edmorley
Copy link
Copy Markdown
Member

The changes here are now in production.

@edmorley
Copy link
Copy Markdown
Member

Unfortunately today's stack image update had to be rolled back (due other dependency updates from upstream), so the VCS tools won't be available in production for a bit longer.

edmorley added a commit to heroku/heroku-buildpack-python that referenced this pull request Nov 10, 2020
Mercurial is installed in the stack image for all stacks, so the
pip install of packages from Mercurial VCS URLs works without the
need for the buildpack to install it itself.

See:
heroku/base-images#141
https://github.com/heroku/stack-images/search?q=mercurial

Closes @W-7906950@.
edmorley added a commit to heroku/heroku-buildpack-python that referenced this pull request Nov 10, 2020
Mercurial is installed in the stack image for all stacks, so the
pip install of packages from Mercurial VCS URLs works without the
need for the buildpack to install it itself.

See:
heroku/base-images#141
https://github.com/heroku/stack-images/search?q=mercurial

Closes @W-7906950@.
dryan pushed a commit to dryan/heroku-buildpack-python that referenced this pull request Nov 19, 2020
Mercurial is installed in the stack image for all stacks, so the
pip install of packages from Mercurial VCS URLs works without the
need for the buildpack to install it itself.

See:
heroku/base-images#141
https://github.com/heroku/stack-images/search?q=mercurial

Closes @W-7906950@.
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

3 participants