Permalink
Commits on Mar 9, 2016
  1. Provide Docker as an example customization

    Docker isn't in common enough use at thoughtbot to
    make this part of the script yet
    but documenting it can encourage its use.
    
    #411 (comment)
    croaky committed Mar 9, 2016
Commits on Mar 8, 2016
Commits on Jan 28, 2016
  1. Improve readability of permissions code

    * Better reveal intent with `HOMEBREW_PREFIX` variable.
    * Do less work by referencing `$USER` instead of `whoami`.
    
    #444
    
    The $USER environment variable is not guaranteed to exist,
    but $LOGNAME is defined by POSIX
    (Environment Variables, section 8.3 Other Environment Variables).
    
    http://pubs.opengroup.org/onlinepubs/9699919799/basedefs/V1_chap08.html#tag_08_03
    http://unix.stackexchange.com/questions/76354/who-sets-user-and-username-environment-variables
    croaky committed Jan 28, 2016
Commits on Jan 26, 2016
  1. Don't link OpenSSL

    From @mikemcquaid:
    
    > On 10.11 the OpenSSL headers are removed but library remains. Given
    > Clang's default paths this means things will use the Homebrew headers
    > but link against the system libraries. At best, it's insecure. At
    > worst, it'll cause random, hard-to-debug runtime failures.
    
    https://github.com/thoughtbot/laptop/pull/403/files#r41858641
    #401 (comment)
    croaky committed Jan 26, 2016
Commits on Jan 11, 2016
  1. Check for dead symlinks, relink valid formulae

    Use the [`--repair`] flag to check for dead symlinks
    and relink all valid formulae across taps.
    
    [`--repair`]: https://github.com/Homebrew/homebrew/blob/master/share/doc/homebrew/brew-tap.md
    croaky committed Jan 10, 2016
  2. Group related lines together by printed headers

    Sections:
    
    * "Installing Homebrew packages ..."
    * "Restarting services ..."
    * "Relinking OpenSSL ..."
    * "Configuring Ruby ..."
    * "Running your customizations from ~/.laptop.local ..."
    * "Cleaning up old Homebrew formulas ..."
    
    Related:
    
    * To make that work in the desired way,
      print less noise in the custom functions.
    * We don't need parity as customization in README.
    * Match documentation to sections, move OpenSSL to Unix section.
    * Move libyaml to after OpenSSL, before Ruby.
    croaky committed Jan 11, 2016
Commits on Jan 10, 2016
  1. Install Parity

    * The Parity Homebrew [package] installs Heroku Toolbelt, Git, Postgres
      but it seems nice for documentation purposes to
      keep the Homebrew packages installed for the other dependencies.
    * Tap the Homebrew formula first, so it updates with `brew update`.
    
    [package]: https://github.com/thoughtbot/homebrew-formulae/blob/master/Formula/parity.rb
    croaky committed Jan 10, 2016
  2. Clean up old Homebrew formulas after run

    This can save significant disk space.
    Upon running this, I regularly see close to 1GB of space freed up.
    croaky committed Jan 10, 2016
  3. Migrate to built-in Homebrew-Cask

    > Homebrew-Cask will now be kept up to date together with Homebrew
    
    > If you haven’t yet,
    > run `brew uninstall --force brew-cask; brew update`
    > to switch to the new system.
    
    caskroom/homebrew-cask@e83c009
    
    > To start using Homebrew-Cask, you just need Homebrew installed.
    
    caskroom/homebrew-cask@0d290b1
    croaky committed Jan 10, 2016
Commits on Jan 9, 2016
  1. Match rbenv init line to thoughtbot/dotfiles

    `append_to_zshrc` checks whether the substring is in
    `~/.zshrc` or `~/.zshrc.local`.
    If it isn't, it appends it.
    
    https://github.com/thoughtbot/dotfiles/blob/master/zsh/configs/post/path.zsh
    croaky committed Jan 7, 2016
Commits on Jan 8, 2016
Commits on May 30, 2015
  1. Install Zsh via Homebrew

    This has the added advantages of:
    
    * Updating Zsh by re-running the Laptop script.
    * Some Zsh tab completions will be automatically added to `$fpath`.
    croaky committed May 22, 2015
Commits on Apr 8, 2015
  1. Add code of conduct

    croaky committed Apr 8, 2015
Commits on Mar 7, 2015
  1. Rework thoughtbot section of README

    * Update logo to use new HTTPS version.
    * Change header from "Credits" to "About thoughtbot".
    * Move "thank you" to contributors section.
    * Make "About thoughtbot" the last thing in the README,
      with the copyrights grouped closer to the LICENSE information.
    * Link to LICENSE.
    * Make the community link more obvious that we have other projects.
    * Finish with a CTA to hire us.
    * Include `utm_source` codes to improve tracking.
    croaky committed Mar 7, 2015
Commits on Feb 15, 2015
  1. Update copyright to 2015

    croaky committed Feb 15, 2015
Commits on Jan 18, 2015
  1. Fix rbenv idempotence

    The `if` statement causes
    rbenv to only be installed,
    never upgraded.
    
    Now that we have `brew_install_or_upgrade`,
    we can eliminate the `if` statement.
    croaky committed Jan 12, 2015
Commits on Jan 16, 2015
Commits on Jan 12, 2015
  1. Remove NVM, simplify to `brew install node`

    From @derekprior:
    
    > I never used NVM. I just kept my homebrew installed version pinned to
    > the version we were using. As a company this is probably totally fine
    > because we don't jump back and forth between node projects like we do
    > with Ruby projects. Also, there is no "system" node to worry about.
    
    #341 (comment)
    croaky committed Jan 12, 2015
  2. Restart Redis

    croaky committed Jan 5, 2015
Commits on Dec 22, 2014
  1. Add gem_install_or_update function

    * Use it for Bundler.
    * Document it for others' use in their ~/laptop.local.
    * Delete out of date part of README.
    croaky committed Dec 19, 2014
  2. Install, upgrade, or skip Bundler

    croaky committed Dec 19, 2014
Commits on Dec 19, 2014
  1. Use rbenv shell instead of rbenv local

    `rbenv local` creates a `.ruby_version` file
    in the current directory.
    croaky committed Dec 19, 2014
  2. Use Homebrew for Git

    We previously relied on the version of Git
    that comes with Xcode.
    The Homebrew version is easier to upgrade
    when new versions of Git are released,
    such as yesterday's security patch:
    
    https://github.com/blog/1938-git-client-vulnerability-announced
    croaky committed Dec 19, 2014
  3. Be more specific in printed output

    * Say whether we are Installing, Upgrading, or Skipping.
    * Changes the behavior of `brew_install_or_upgrade`
      but simplifies and shortens the rest of the script.
    croaky committed Dec 18, 2014
Commits on Dec 9, 2014
  1. Use `tree` as customization example

    Laptop should be responsible for setting up
    the compilers,
    system package manager,
    programming language version managers & installers,
    large system dependencies such as Postgres,
    and any critical config for those tools
    which is often overlooked but can cause bugs and headaches.
    
    Other useful command-line tools such as `watch` and `tree`
    are better installed in individuals' `~/.laptop.local` files.
    
    Add `tree` as a good example for that file.
    
    Try to make `~/.laptop.local` explanation clearer
    and more prominent by placing it in a heading.
    
    Remove Suspenders as an example.
    Right before using Suspenders,
    it's probably best to re-install it to get the latest.
    croaky committed Dec 9, 2014
Commits on Dec 8, 2014
  1. Remove Parity, Watch, Suspenders, and Rails

    * These are great tools, but not critical.
    * Some tools should be re-installed right before their use,
      such as Suspenders.
    * Restrict Laptop to more fundamental setup.
    * Document how to install these in `~/.laptop.local`.
    croaky committed Dec 8, 2014
Commits on Dec 5, 2014
  1. Rehash to get `bundle` command

    croaky committed Dec 5, 2014
Commits on Dec 4, 2014
  1. Install libyaml to avoid failed Ruby compilation

    I saw this problem while installing Ruby 2.1.4.
    Installing libyaml first solved the problem.
    
    https://github.com/sstephenson/ruby-build/wiki#suggested-build-environment
    croaky committed Dec 4, 2014
Commits on Dec 3, 2014
  1. Use ShellCheck to enforce shell style

    * Document in "Contributing" section.
    * Use GitHub code fences to improve syntax highlighting.
    * Don't be so Rails-y in the documentation.
    croaky committed Dec 3, 2014
Commits on Nov 26, 2014
  1. Remove Heroku Config

    I haven't been using `heroku config:pull`, etc. for some time.
    Instead, I've been using more targeted shell lines insides our
    [`bin/setup`] convention, such as:
    
        if ! grep -F "FILEPICKER" .env > /dev/null; then
          heroku config --remote staging | grep "FILEPICKER" >> .env
          sed -i '' 's/\:/=/' .env
          sed -i '' 's/ //g' .env
        fi
    
    [`bin/setup`]: http://robots.thoughtbot.com/bin-setup
    
    This is more targeted and automated than using `heroku config:pull`.
    croaky committed Nov 25, 2014
Commits on Nov 25, 2014
  1. Remove redundant Foreman

    It is installed earlier via https://toolbelt.heroku.com/
    croaky committed Nov 25, 2014
Commits on Oct 29, 2014
  1. Fix typo

    croaky committed Oct 29, 2014