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

Bye Bye bpm! #556

Merged
merged 12 commits into from
May 24, 2016
Merged

Bye Bye bpm! #556

merged 12 commits into from
May 24, 2016

Conversation

fnichol
Copy link
Collaborator

@fnichol fnichol commented May 24, 2016

This change set remove the core/hab-bpm from all critical paths relating to Habitat.

For anyone interested in the (short) history of bpm here it is:

Before we had Rust in our base toolchain, and therefore before our build environment was partially self-hosting, we needed an implementation of a "package installer" that did not use any Rust code. bpm, originally short for "Bldr Package Manager" (also, beats-per-minute, 'cause that's how you track killer tunes in a recording studio), was created for package installation and then later augmented with several other subcommands used by core/hab-studio as an interface to the on-disk representations of Habitat packages. When we renamed the project from Bldr to Habitat, we renamed bpm to hab-bpm and moved on. Once we started using hab for artifact signing, this put our Rust code in the critical build/tooling path and made the retirement of bpm a viable goal. Speaking personally, I'm really happy with the direction the team took to pragmatically bootstrap our build environment and then circle back to simplify our stack.

Thanks bpm!

gif-keyboard-11041118426408189232


Now for the particulars:

[plan-build] Is now hab-default for dependency installation.

This is a behavior change for hab-plan-build.sh, but should hopefully
better serve users in the long term and is very unlikely to affect
anyone unless they are building stage1 sets.

The updated "pkg_installer" detection logic is:

  • If $NO_INSTALL_DEPS is set, then installer will be used
  • If $HAB_BIN is set, the program provided will be used. This affords
    a developer the ability to test with older/newer version of hab or
    alternative installers
  • Otherwise, the hab found on $PATH when the program starts will be
    used and set internally as the $HAB_BIN value

[studio] Update Studio's install.sh to use hab only.

This change introduces a new habitat-sh S3 bucket with a copy of a
recent core/hab-static artifact. The installer has also been updated
to immediately upgrade to the current release of core/hab-static in an
effort to keep things current for as long as possible.

[hab] Add install.sh script as placeholder.

This is a direct copy of components/studio/install.sh except for the
last line, which is the entire "install Studio" behavior :)

It does seem silly to have 2 install scripts doing 99% the same thing,
but chances are that the Studio install.sh will eventually be removed
as hab will perform an install-on-demand when it is called for.

Use hab install.sh when preparing the devshell's Dockerfile.

Now that hab is around we can remove the downloading of our public
core key. Smaller environment with less setup--we're moving in the right
direction.

[devshell] Give the shell start a little pop of color.

This change will report if the following environment variables are
set and non-empty:

  • HAB_ORIGIN
  • HAB_DEPOT_URL
  • http_proxy
  • https_proxy

Thanks to @reset for the idea!

[hab] pkg binlink honors FS_ROOT when looking up packages.

This fixes the initial implementation of the pkg binlink subcommand;
the desired behavior is to look for pacakges rooted under / by default
or under $FS_ROOT if it is set.

[studio] Remove hab-bpm from Studio.

This change has a few consequences, the primary one being there is no
longer any hab-bpm command available in any Studio instances.

Additionally, the prompt color display wrapping issue was finally nailed
down and so was brought back.

[depot,sup] Update calls referencing hab-sup to use hab.

Yep!

Remove hab-bpm from base package build set.

This package is no longer in the critical path, yeah!

[terraform] Update project to use hab-only install.sh.

Shorter and sweeter. Nice sign!

[docs] Update README and www sources to remove hab-bpm references.

This is a first pass, but should be accurate.

fnichol added 11 commits May 24, 2016 09:33
This is a behavior change for `hab-plan-build.sh`, but should hopefully
better serve users in the long term and is very unlikely to affect
anyone unless they are building stage1 sets.

The updated "pkg_installer" detection logic is:

* If `$NO_INSTALL_DEPS` is set, then installer will be used
* If `$HAB_BIN` is set, the program provided will be used. This affords
  a developer the ability to test with older/newer version of `hab` or
  alternative installers
* Otherwise, the `hab` found on `$PATH` when the program starts will be
  used and set internally as the `$HAB_BIN` value

Signed-off-by: Fletcher Nichol <[email protected]>
This change introduces a new `habitat-sh` S3 bucket with a copy of a
recent `core/hab-static` artifact. The installer has also been updated
to immediately upgrade to the current release of `core/hab-static` in an
effort to keep things current for as long as possible.

Signed-off-by: Fletcher Nichol <[email protected]>
This is a direct copy of `components/studio/install.sh` except for the
last line, which is the entire "install Studio" behavior :)

It does seem silly to have 2 install scripts doing 99% the same thing,
but chances are that the Studio `install.sh` will eventually be removed
as `hab` will perform an install-on-demand when it is called for.

Signed-off-by: Fletcher Nichol <[email protected]>
Now that `hab` is around we can remove the downloading of our public
core key. Smaller environment with less setup--we're moving in the right
direction.

Signed-off-by: Fletcher Nichol <[email protected]>
This change will report if the following environment variables are
set and non-empty:

* `HAB_ORIGIN`
* `HAB_DEPOT_URL`
* `http_proxy`
* `https_proxy`

Thanks to @reset for the idea!

Signed-off-by: Fletcher Nichol <[email protected]>
This fixes the initial implementation of the `pkg binlink` subcommand;
the desired behavior is to look for pacakges rooted under `/` by default
or under `$FS_ROOT` if it is set.

Signed-off-by: Fletcher Nichol <[email protected]>
This change has a few consequences, the primary one being there is no
longer any `hab-bpm` command available in *any* Studio instances.

Additionally, the prompt color display wrapping issue was finally nailed
down and so was brought back.

Signed-off-by: Fletcher Nichol <[email protected]>
This package is no longer in the critical path, yeah!

Signed-off-by: Fletcher Nichol <[email protected]>
@fnichol
Copy link
Collaborator Author

fnichol commented May 24, 2016

Once we've merged this, I'll cut new releases of the related tools. That will allow everyone to refresh their devshells and environments.

@reset
Copy link
Collaborator

reset commented May 24, 2016

@fnichol I'd recommend removing bpm and the plan from the source tree. There's often a feeling of "What if I need that?" that encourages us to keep dead code paths alive, but that's why it's stored in Git for us! It's up to you, though. It won't hurt me any keeping it in the tree ;)

@@ -7,7 +7,6 @@ The commands and sub-commands for the Habitat CLI tools are listed below:

Copy link
Collaborator

Choose a reason for hiding this comment

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

So awesome having the docs in the source tree so we can get them updated in the same PR. Good on you for remembering!

@fnichol
Copy link
Collaborator Author

fnichol commented May 24, 2016

@reset eh, why not? pushed a new commit to remove components/bpm, all done!

@reset
Copy link
Collaborator

reset commented May 24, 2016

gif-keyboard-5575186608322087177

Kevin Arnold approves

@thesentinels r+

@thesentinels
Copy link
Contributor

📌 Commit bb4ffc9 has been approved by reset

@thesentinels
Copy link
Contributor

⌛ Testing commit bb4ffc9 with merge d98ca48...

thesentinels pushed a commit that referenced this pull request May 24, 2016
This is a behavior change for `hab-plan-build.sh`, but should hopefully
better serve users in the long term and is very unlikely to affect
anyone unless they are building stage1 sets.

The updated "pkg_installer" detection logic is:

* If `$NO_INSTALL_DEPS` is set, then installer will be used
* If `$HAB_BIN` is set, the program provided will be used. This affords
  a developer the ability to test with older/newer version of `hab` or
  alternative installers
* Otherwise, the `hab` found on `$PATH` when the program starts will be
  used and set internally as the `$HAB_BIN` value

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
thesentinels pushed a commit that referenced this pull request May 24, 2016
This change introduces a new `habitat-sh` S3 bucket with a copy of a
recent `core/hab-static` artifact. The installer has also been updated
to immediately upgrade to the current release of `core/hab-static` in an
effort to keep things current for as long as possible.

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
thesentinels pushed a commit that referenced this pull request May 24, 2016
This is a direct copy of `components/studio/install.sh` except for the
last line, which is the entire "install Studio" behavior :)

It does seem silly to have 2 install scripts doing 99% the same thing,
but chances are that the Studio `install.sh` will eventually be removed
as `hab` will perform an install-on-demand when it is called for.

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
thesentinels pushed a commit that referenced this pull request May 24, 2016
Now that `hab` is around we can remove the downloading of our public
core key. Smaller environment with less setup--we're moving in the right
direction.

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
thesentinels pushed a commit that referenced this pull request May 24, 2016
This change will report if the following environment variables are
set and non-empty:

* `HAB_ORIGIN`
* `HAB_DEPOT_URL`
* `http_proxy`
* `https_proxy`

Thanks to @reset for the idea!

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
thesentinels pushed a commit that referenced this pull request May 24, 2016
This fixes the initial implementation of the `pkg binlink` subcommand;
the desired behavior is to look for pacakges rooted under `/` by default
or under `$FS_ROOT` if it is set.

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
thesentinels pushed a commit that referenced this pull request May 24, 2016
This change has a few consequences, the primary one being there is no
longer any `hab-bpm` command available in *any* Studio instances.

Additionally, the prompt color display wrapping issue was finally nailed
down and so was brought back.

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
thesentinels pushed a commit that referenced this pull request May 24, 2016
Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
thesentinels pushed a commit that referenced this pull request May 24, 2016
This package is no longer in the critical path, yeah!

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
thesentinels pushed a commit that referenced this pull request May 24, 2016
Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
thesentinels pushed a commit that referenced this pull request May 24, 2016
Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
thesentinels pushed a commit that referenced this pull request May 24, 2016
Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
@thesentinels
Copy link
Contributor

☀️ Test successful - travis

@thesentinels thesentinels merged commit bb4ffc9 into master May 24, 2016
@fnichol fnichol deleted the fnichol/bye-bye-bpm branch May 24, 2016 18:37
jtimberman pushed a commit that referenced this pull request Jun 12, 2016
This is a behavior change for `hab-plan-build.sh`, but should hopefully
better serve users in the long term and is very unlikely to affect
anyone unless they are building stage1 sets.

The updated "pkg_installer" detection logic is:

* If `$NO_INSTALL_DEPS` is set, then installer will be used
* If `$HAB_BIN` is set, the program provided will be used. This affords
  a developer the ability to test with older/newer version of `hab` or
  alternative installers
* Otherwise, the `hab` found on `$PATH` when the program starts will be
  used and set internally as the `$HAB_BIN` value

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
jtimberman pushed a commit that referenced this pull request Jun 12, 2016
This change introduces a new `habitat-sh` S3 bucket with a copy of a
recent `core/hab-static` artifact. The installer has also been updated
to immediately upgrade to the current release of `core/hab-static` in an
effort to keep things current for as long as possible.

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
jtimberman pushed a commit that referenced this pull request Jun 12, 2016
This is a direct copy of `components/studio/install.sh` except for the
last line, which is the entire "install Studio" behavior :)

It does seem silly to have 2 install scripts doing 99% the same thing,
but chances are that the Studio `install.sh` will eventually be removed
as `hab` will perform an install-on-demand when it is called for.

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
jtimberman pushed a commit that referenced this pull request Jun 12, 2016
Now that `hab` is around we can remove the downloading of our public
core key. Smaller environment with less setup--we're moving in the right
direction.

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
jtimberman pushed a commit that referenced this pull request Jun 12, 2016
This change will report if the following environment variables are
set and non-empty:

* `HAB_ORIGIN`
* `HAB_DEPOT_URL`
* `http_proxy`
* `https_proxy`

Thanks to @reset for the idea!

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
jtimberman pushed a commit that referenced this pull request Jun 12, 2016
This fixes the initial implementation of the `pkg binlink` subcommand;
the desired behavior is to look for pacakges rooted under `/` by default
or under `$FS_ROOT` if it is set.

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
jtimberman pushed a commit that referenced this pull request Jun 12, 2016
This change has a few consequences, the primary one being there is no
longer any `hab-bpm` command available in *any* Studio instances.

Additionally, the prompt color display wrapping issue was finally nailed
down and so was brought back.

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
jtimberman pushed a commit that referenced this pull request Jun 12, 2016
Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
jtimberman pushed a commit that referenced this pull request Jun 12, 2016
This package is no longer in the critical path, yeah!

Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
jtimberman pushed a commit that referenced this pull request Jun 12, 2016
Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
jtimberman pushed a commit that referenced this pull request Jun 12, 2016
Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
jtimberman pushed a commit that referenced this pull request Jun 12, 2016
Signed-off-by: Fletcher Nichol <[email protected]>

Pull request: #556
Approved by: reset
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