heroku / buildpacks-ruby

Heroku's Cloud Native Buildpack for Ruby applications.
BSD 3-Clause "New" or "Revised" License
1 stars 1 forks source link

Updated build output #155

Closed schneems closed 1 year ago

schneems commented 1 year ago

This is a proposed output and a spike on some APIs. For the sake of not having to re-edit the PR description, I'll post updates on the output below.

Links

This PR is the result of quite a long process of revising the build output started around April 18th. Unfortunately, the documentation for those pieces is internal, but towards the end, I hope to release some formalized/finalized version.

Primary documents:

Miscellaneous supporting documents:

Work item: GUS-W-13115766

schneems commented 1 year ago

2023-06-28

Screenshot:

Screenshot 2023-06-28 at 6 43 53 PM

Raw output logs with no color:


# Heroku Ruby Buildpack

- Ruby version `3.1.3` from `default`
  - Installing [------] (5.577s)
- Bundler version `2.4.5` from `default`
- Bundle install
  - Running `BUNDLE_BIN="/layers/heroku_ruby/gems/bin" BUNDLE_CLEAN="1" BUNDLE_DEPLOYMENT="1" BUNDLE_GEMFILE="/workspace/Gemfile" BUNDLE_PATH="/layers/heroku_ruby/gems" BUNDLE_WITHOUT="development:test" bundle install`

      Fetching gem metadata from https://rubygems.org/..
      Fetching rake 13.0.6
      Installing rake 13.0.6
      Using bundler 2.4.5
      Fetching rack 2.2.3
      Fetching webrick 1.7.0
      Installing webrick 1.7.0
      Installing rack 2.2.3
      Bundle complete! 3 Gemfile dependencies, 4 gems now installed.
      Gems in the groups 'development' and 'test' were not installed.
      Bundled gems are installed into `/layers/heroku_ruby/gems`

  - Done (6.637s)
- Setting default processes(es)
  - Detecting gems
  - Running `bundle list` [-] (0.243s)
  - Detected rack app (`rack` gem and `config.ru` at root of application)
- Rake assets install
  - Cannot run rake tasks (no Rakefile)
  ! Help: Add `Rakefile` to your project to enable
- Done (finished in 13.572s)
schneems commented 1 year ago

i guess i was looking for a design that mapped more to specific UX language/terminology.

One of the hardest things in computer science. I'm open to suggestions. I wanted to start with a broad suite of tools and get more specific over time. The say_with_details is one example there where I found I kept having to build_output::fmt::details again and again, and it made sense to have a helper API. Some of the argument names are slightly suggestive like build_output::section() takes a topic argument to suggest a noun rather than a verb.

I'm happy to brainstorm/sketch either naming or ideas in person or async. I had considered something like encoding a set of known/approved verbs i.e. installing/creating/downloading etc. to standardize on some of the languages and also give us a very consistent visual output, however, at this stage didn't want to be overly restrictive