Skip to content

Opinionated workstation configuration tool -- From zero to productive

License

Notifications You must be signed in to change notification settings

carbonfive/seed-crystal

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

A Dark Crystal

Seed::Crystal

An opinionated, tested, workstation configuration tool -- From zero to productive

CircleCI

Installation

/bin/sh -c "$(curl -fsSL https://raw.githubusercontent.com/carbonfive/seed-crystal/master/bootstrap.sh)"

Opt-ins

The base install is just enough to get you productive without too much ceremony, but what if you want to do mobile work? Or design work? Run one or more these setup scripts. The baseline set up is bin/workstation-setup.sh

cd ~/Documents/seed-crystal
sh bin/design-setup.sh
sh bin/eng-setup.sh
sh bin/java-setup.sh
sh bin/mobile-setup.sh
sh bin/web-setup.sh

Software Updates

Seed::Crystal remembers which set up packages you've already installed, and if you re-run the bootstrap.sh script, then it will re-run all of the scripts that you've used before.

$ cd ~/Documents/seed-crystal
$ git pull
$ sh bootstrap.sh
Notice: This workstation has already been seeded. Re-running setup scripts.
Notice:
     1  bin/workstation-setup.sh
     2  bin/web-setup.sh
     3  bin/design-setup.sh
...

Core Values

  1. Standard toolsets make it easier for contributors to roll onto a project. What you do on your personal projects is your business, but we are in the business of delivering value to our clients. There shall be no vim/emacs wars.

  2. Default configurations unless there is a really good reason not to follow it.

  3. Up and running fast.

  4. If something is important enough to include, but you can't find unanimous agreement, pick something, anything and commit. Nobody dies because of a linter configuration choice. We can always come back and make it better.

  5. Document rationale if at all possible. Document in code if at all possible.

  6. Idempotent. At least non-destructive.

Realities

  • This script is probably run once per project at best. Worst case, it is done on your first day at work, and not again until your hardware is repurposed for someone else.

  • It's hard to test perfectly: Wipe the laptop. Reinstall the OS. Run the script.

  • Our world is broken up into somewhat orthogonal core competencies: RoR, React, Mobile, Elixir, Go. No one person will be an expert on all of these toolchains. Provide low-ceremony, low friction tools to help the experts decide what's important.

Tooling

Core

Design

Engineering

  • Font Anonymous Pro - Mark Simonson
  • Font Cascadia - This is a fun, new monospaced font that includes programming ligatures and is designed to enhance the modern look and feel of the Windows Terminal.
  • Font Inconsolata - Ralph Levien
  • CircleCI - Enables you to reproduce the CircleCI environment locally
  • Docker - Docker Community Edition (.app)
  • Heroku CLI - our default deployment platform
  • Hub - Add GitHub support to git on the command-line
  • JetBrains Toolbox - One stop shopping for the best IDEs
  • mas - Mac App Store command line interface
  • postgresql - Object-relational database system
  • rbenv - Ruby version manager
  • redis - Persistent key-value database, with built-in net interface
  • yarn - JavaScript package manager
  • Zoom US - We default to Zoom for video conferencing

Java

  • Gradle - Build automation
  • IntelliJ CE - IntelliJ IDEA Community Edition
  • Java - Latest Java SDK from OpenJDK
  • Maven - Java-based project management

Mobile

Web


Seed::Crystal Development

After checking out the repo, run bin/setup to install dependencies.

Many cask formulae can be found here: https://formulae.brew.sh/cask/

Testing

  • bin/setup
  • rake test

Contributing

Bug reports and pull requests are welcome on GitHub at https://github.com/carbonfive/seed-crystal. This project is intended to be a safe, welcoming space for collaboration, and contributors are expected to adhere to the Contributor Covenant code of conduct.

License

The gem is available as open source under the terms of the MIT License.

Code of Conduct

Everyone interacting in the Seed::Crystal project’s codebases, issue trackers, chat rooms and mailing lists is expected to follow the code of conduct.

Inspirations

About

Opinionated workstation configuration tool -- From zero to productive

Topics

Resources

License

Code of conduct

Security policy

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published