Skip to content

Latest commit

 

History

History
161 lines (112 loc) · 7.06 KB

README.md

File metadata and controls

161 lines (112 loc) · 7.06 KB

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