<feed xmlns='http://www.w3.org/2005/Atom'>
<title>delta/ruby-gems/chef.git/habitat, branch https</title>
<subtitle>github.com: opscode/chef.git
</subtitle>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/chef.git/'/>
<entry>
<title>Speed up our bundle installs by always running 3 jobs</title>
<updated>2020-08-05T02:20:30+00:00</updated>
<author>
<name>Tim Smith</name>
<email>tsmith84@gmail.com</email>
</author>
<published>2020-08-05T02:20:30+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/chef.git/commit/?id=aff5591ee445bccef79b89557840545ba4379d2c'/>
<id>aff5591ee445bccef79b89557840545ba4379d2c</id>
<content type='text'>
multi-job bundle install is the default in the next release, but for now
we should make sure we set it everywhere.

Signed-off-by: Tim Smith &lt;tsmith@chef.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
multi-job bundle install is the default in the next release, but for now
we should make sure we set it everywhere.

Signed-off-by: Tim Smith &lt;tsmith@chef.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Modify habitat tests to call rspec the same as omnibus</title>
<updated>2020-07-13T20:07:10+00:00</updated>
<author>
<name>Christopher A. Snapp</name>
<email>csnapp@chef.io</email>
</author>
<published>2020-07-10T19:11:31+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/chef.git/commit/?id=2b8f056cacccfd885357f89bf2033cd1ca52cd21'/>
<id>2b8f056cacccfd885357f89bf2033cd1ca52cd21</id>
<content type='text'>
Signed-off-by: Christopher A. Snapp &lt;csnapp@chef.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: Christopher A. Snapp &lt;csnapp@chef.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Add windows + linux hab tests to verify pipeline</title>
<updated>2020-07-13T19:33:47+00:00</updated>
<author>
<name>Christopher A. Snapp</name>
<email>csnapp@chef.io</email>
</author>
<published>2020-06-30T16:37:19+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/chef.git/commit/?id=1638ab05fe4170d248fd99d3c91ac2a7bbda8e37'/>
<id>1638ab05fe4170d248fd99d3c91ac2a7bbda8e37</id>
<content type='text'>
This removes the verify/habitat pipeline by bringing windows and linux
verification tests into the default verify pipeline.

Signed-off-by: Christopher A. Snapp &lt;csnapp@chef.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
This removes the verify/habitat pipeline by bringing windows and linux
verification tests into the default verify pipeline.

Signed-off-by: Christopher A. Snapp &lt;csnapp@chef.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>refactor Linux hab plan based on lessons from Windows plan</title>
<updated>2020-07-13T16:19:45+00:00</updated>
<author>
<name>Robb Kidd</name>
<email>robb@thekidds.org</email>
</author>
<published>2019-10-01T21:21:09+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/chef.git/commit/?id=a555ea251f8f94df7093e87402187d3644aabdbe'/>
<id>a555ea251f8f94df7093e87402187d3644aabdbe</id>
<content type='text'>
Lots of things changing in here. Let's take them in a possibly weird
order.

* do_prepare()

Move all the settng of build environment ..uh.. settings into the
prepare function. Notable things:

- GEM_HOME is set to a vendor directory under pkg_prefix so that all gem
  installs (regardless of bundle install or gem install) will be
  installed _there_. Expect to see all gems shipped with chef-client
  under this directory.
- Multiple bundle config --local commands. These are executed in a
  subshell after changing directory to the CACHE_PATH so that the
  bundler configuration will be written out to a `.bundle/config` file
  there. bundle commands will be run from this location later, so these
  settings become effective for the duration of the build and obviate
  the need for a _bundle helper function.

* pkg_bin_dirs=()

Add the `vendor/bin` directory (remember, vendor/ is where gems get
installed, so the binstubs created by the installation will appear here
in vendor/bin/) to the PATH of this package's runtime environment
because there are commands in there people sometimes want to run. They
won't be fast and they might end up with conflicts with gems installed
by the user or by downstream pacakges  because they haven't been
appbundled.

* do_setup_environment()

These are environment variables we'll want set to these defaults at
runtime.

- GEM_PATH gets this package's gem installation directory pushed onto it
  making the gems available at runtime regardless of whether bundle exec
  is used.
- APPBUNDLER_ALLOW_RVM is a flag looked for by the binstubs generated by
  appbundler. Setting this to "true" has nothing to do with RVM and
  everything to do with asking the appbundled binstub to not wipe out
  the carefully constructed `GEM_PATH` from this package and any
  possible others that "publish" to the runtime environment that gems
  are available within.
- SSL_CERT_FILE - trust the CA cert package from core, by default, but
  downstream packages can override this if they like with something
  custom.

* do_build()

Life is simpler in the build function now. Build environment is all
setup, so here we:

- bundle install to retrieve dependencies based on the Gemfile+.lock
- run the rake install for the project which builds and installs the
  gems whose source are in this repo (chef, chef-bin, chef-config)
- for any gem installed via a git reference, we change to the source
  directory and rake install it, too, to install it like any other gem

This results in a clean collection of all the required gems installed
like normal gems under "vendor/gems." With that directory on the
GEM_PATH, we don't need to care about whether the gems were installed by
path reference or via git.

* do_install()

OK. I fibbed about not needing to tell bundler anything else. For
install, we're going to generate the appbundled binstubs that lockdown
the versions of gems required by particular commands. appbundler uses
the project's Gemfile+lock to determine those version, so for the
install actions, we tell bundler via an environment variable that the
Gemfile to work with is over in CACHE_PATH. Then we iterate over the
names of gems we want appbundled binstubs for in this package. Those
will land in pkg_prefix/bin/.

Note: there's nothing to copy here during install because all the gem
install actions were targeting pkg_prefix/vendor so what we would copy
is here already.

* do_after()

Stuff to make the package smaller.

- We don't need the cached .gem artifacts.
- We don't need the cache of git repos retrieved by bundler (those gems
  are installed at this point like any other gem.)
- We don't need to ship the gem API documentation. (I imagine we could
  change our minds about this later.)
- We don't need the spec tests for all the gems ... except for our own
  chef gem which, for Reasons, we keep the spec suite around for
  post-build functional testing.

* pkg_deps()

Ruby comes with a version of bundler that works at the moment. We don't
have to risk conflicts between the version of Ruby this package depends
on and the version of Ruby core/bundler was built against.

Signed-off-by: Robb Kidd &lt;robb@thekidds.org&gt;
Signed-off-by: Christopher A. Snapp &lt;csnapp@chef.io&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Lots of things changing in here. Let's take them in a possibly weird
order.

* do_prepare()

Move all the settng of build environment ..uh.. settings into the
prepare function. Notable things:

- GEM_HOME is set to a vendor directory under pkg_prefix so that all gem
  installs (regardless of bundle install or gem install) will be
  installed _there_. Expect to see all gems shipped with chef-client
  under this directory.
- Multiple bundle config --local commands. These are executed in a
  subshell after changing directory to the CACHE_PATH so that the
  bundler configuration will be written out to a `.bundle/config` file
  there. bundle commands will be run from this location later, so these
  settings become effective for the duration of the build and obviate
  the need for a _bundle helper function.

* pkg_bin_dirs=()

Add the `vendor/bin` directory (remember, vendor/ is where gems get
installed, so the binstubs created by the installation will appear here
in vendor/bin/) to the PATH of this package's runtime environment
because there are commands in there people sometimes want to run. They
won't be fast and they might end up with conflicts with gems installed
by the user or by downstream pacakges  because they haven't been
appbundled.

* do_setup_environment()

These are environment variables we'll want set to these defaults at
runtime.

- GEM_PATH gets this package's gem installation directory pushed onto it
  making the gems available at runtime regardless of whether bundle exec
  is used.
- APPBUNDLER_ALLOW_RVM is a flag looked for by the binstubs generated by
  appbundler. Setting this to "true" has nothing to do with RVM and
  everything to do with asking the appbundled binstub to not wipe out
  the carefully constructed `GEM_PATH` from this package and any
  possible others that "publish" to the runtime environment that gems
  are available within.
- SSL_CERT_FILE - trust the CA cert package from core, by default, but
  downstream packages can override this if they like with something
  custom.

* do_build()

Life is simpler in the build function now. Build environment is all
setup, so here we:

- bundle install to retrieve dependencies based on the Gemfile+.lock
- run the rake install for the project which builds and installs the
  gems whose source are in this repo (chef, chef-bin, chef-config)
- for any gem installed via a git reference, we change to the source
  directory and rake install it, too, to install it like any other gem

This results in a clean collection of all the required gems installed
like normal gems under "vendor/gems." With that directory on the
GEM_PATH, we don't need to care about whether the gems were installed by
path reference or via git.

* do_install()

OK. I fibbed about not needing to tell bundler anything else. For
install, we're going to generate the appbundled binstubs that lockdown
the versions of gems required by particular commands. appbundler uses
the project's Gemfile+lock to determine those version, so for the
install actions, we tell bundler via an environment variable that the
Gemfile to work with is over in CACHE_PATH. Then we iterate over the
names of gems we want appbundled binstubs for in this package. Those
will land in pkg_prefix/bin/.

Note: there's nothing to copy here during install because all the gem
install actions were targeting pkg_prefix/vendor so what we would copy
is here already.

* do_after()

Stuff to make the package smaller.

- We don't need the cached .gem artifacts.
- We don't need the cache of git repos retrieved by bundler (those gems
  are installed at this point like any other gem.)
- We don't need to ship the gem API documentation. (I imagine we could
  change our minds about this later.)
- We don't need the spec tests for all the gems ... except for our own
  chef gem which, for Reasons, we keep the spec suite around for
  post-build functional testing.

* pkg_deps()

Ruby comes with a version of bundler that works at the moment. We don't
have to risk conflicts between the version of Ruby this package depends
on and the version of Ruby core/bundler was built against.

Signed-off-by: Robb Kidd &lt;robb@thekidds.org&gt;
Signed-off-by: Christopher A. Snapp &lt;csnapp@chef.io&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>fix habitat based windows service tests</title>
<updated>2020-06-26T00:58:44+00:00</updated>
<author>
<name>mwrock</name>
<email>matt@mattwrock.com</email>
</author>
<published>2020-06-26T00:58:44+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/chef.git/commit/?id=47fbfd3799b7dc5d3a0dad7076b5b1b14d5b406f'/>
<id>47fbfd3799b7dc5d3a0dad7076b5b1b14d5b406f</id>
<content type='text'>
Signed-off-by: mwrock &lt;matt@mattwrock.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: mwrock &lt;matt@mattwrock.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>consume powershell shim DLLs from hab package</title>
<updated>2020-06-19T00:46:13+00:00</updated>
<author>
<name>mwrock</name>
<email>matt@mattwrock.com</email>
</author>
<published>2020-06-19T00:46:13+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/chef.git/commit/?id=a14ea9014dbfbe3aa91b448aab027f5453bd9398'/>
<id>a14ea9014dbfbe3aa91b448aab027f5453bd9398</id>
<content type='text'>
Signed-off-by: mwrock &lt;matt@mattwrock.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: mwrock &lt;matt@mattwrock.com&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>include Chef DLLs in the Habitat Windows package</title>
<updated>2020-04-28T15:50:00+00:00</updated>
<author>
<name>Robb Kidd</name>
<email>rkidd@chef.io</email>
</author>
<published>2020-04-27T22:10:14+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/chef.git/commit/?id=b07a6d088c01d4ff6a186ab89632bf57e758b6b5'/>
<id>b07a6d088c01d4ff6a186ab89632bf57e758b6b5</id>
<content type='text'>
Chef needs some DLLs on Windows. Normally, the libraries get copied to
the directory where the current Ruby executable is located when
bundle install is run.

We don't want that in Habitat land. The Ruby executable lives in another
package and package namespace. We want the libraries included in *this*
package. So, here we copy the DLLs during plan build to a lib directory
within this package and set an environment variable to disable the copy
occuring during bundle install. We push the library path onto
RUBY_DLL_PATH to inform whichever Ruby interpreter that will be running
Chef where to find our DLLs.

Signed-off-by: Robb Kidd &lt;robb@thekidds.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Chef needs some DLLs on Windows. Normally, the libraries get copied to
the directory where the current Ruby executable is located when
bundle install is run.

We don't want that in Habitat land. The Ruby executable lives in another
package and package namespace. We want the libraries included in *this*
package. So, here we copy the DLLs during plan build to a lib directory
within this package and set an environment variable to disable the copy
occuring during bundle install. We push the library path onto
RUBY_DLL_PATH to inform whichever Ruby interpreter that will be running
Chef where to find our DLLs.

Signed-off-by: Robb Kidd &lt;robb@thekidds.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>reorder gem installs and add a retry</title>
<updated>2020-04-28T15:50:00+00:00</updated>
<author>
<name>Robb Kidd</name>
<email>robb@thekidds.org</email>
</author>
<published>2020-04-25T19:00:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/chef.git/commit/?id=42560ab8650f5534c603967cd7ad554b00e680b0'/>
<id>42560ab8650f5534c603967cd7ad554b00e680b0</id>
<content type='text'>
Needed to install the gems-from-git-repos first. Those are the least
likely to have missing dependencies. Then we move on to installing the
gems that live in subdirectories of this repo. Sometimes that fails for
non-obvious reasons, but a retry seems to succeed.

Signed-off-by: Robb Kidd &lt;robb@thekidds.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Needed to install the gems-from-git-repos first. Those are the least
likely to have missing dependencies. Then we move on to installing the
gems that live in subdirectories of this repo. Sometimes that fails for
non-obvious reasons, but a retry seems to succeed.

Signed-off-by: Robb Kidd &lt;robb@thekidds.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>add status code checks after bare commands</title>
<updated>2020-04-28T15:50:00+00:00</updated>
<author>
<name>Robb Kidd</name>
<email>robb@thekidds.org</email>
</author>
<published>2020-04-25T18:56:49+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/chef.git/commit/?id=62b93bc099ee4ed5bf059620b9aad8b3341756b3'/>
<id>62b93bc099ee4ed5bf059620b9aad8b3341756b3</id>
<content type='text'>
Need these so the PowerShell script will exit when bare commands fail.
Otherwise the build just keeps truckin' and the errors just pile up.

Signed-off-by: Robb Kidd &lt;robb@thekidds.org&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Need these so the PowerShell script will exit when bare commands fail.
Otherwise the build just keeps truckin' and the errors just pile up.

Signed-off-by: Robb Kidd &lt;robb@thekidds.org&gt;
</pre>
</div>
</content>
</entry>
<entry>
<title>Fix linux plan to use ruby 2.7</title>
<updated>2020-04-24T17:57:18+00:00</updated>
<author>
<name>John Snow</name>
<email>thelunaticscripter@outlook.com</email>
</author>
<published>2020-04-24T17:57:18+00:00</published>
<link rel='alternate' type='text/html' href='http://git.baserock.org/cgit/delta/ruby-gems/chef.git/commit/?id=1ebfe0eef4d3d0d43ea58c6fad43168aa368e2b0'/>
<id>1ebfe0eef4d3d0d43ea58c6fad43168aa368e2b0</id>
<content type='text'>
Signed-off-by: John Snow &lt;thelunaticscripter@outlook.com&gt;
</content>
<content type='xhtml'>
<div xmlns='http://www.w3.org/1999/xhtml'>
<pre>
Signed-off-by: John Snow &lt;thelunaticscripter@outlook.com&gt;
</pre>
</div>
</content>
</entry>
</feed>
