Syndication Icon
Published July 16, 2011 Updated October 21, 2021
Dotfiles Icon

Dotfiles

Git Badge
Circle CI Status

These are shell scripts for applying default settings to UNIX-based operating systems. These are a collection of useful shortcuts, performance augmentation, and advanced practices that, even if you don’t apply to your own dotfiles, should be educational for improving your own practices.

By default, these are set to my preferences (namely for macOS) but you can change them to your liking by editing any of the .tt template files in the home_files directory. Read on to learn more.

Features

Screencasts

Screencast

Requirements

Setup

To install, run:

git clone https://github.com/bkuhlmann/dotfiles.git
cd dotfiles
git checkout 44.1.0

Upgrade

When upgrading to a new version, run the following:

  1. Run: bin/run l. Links new files. If not using linked files, run bin/run d and bin/run i instead.

  2. Run: bin/run c. Displays file differences, if any. Usually, this will be excluded files.

  3. Run: exec $SHELL. Updates current shell with the above changes.

Usage

Edit any of the .tt (template) and/or .command (command) files in the home_files directory as you see fit. Then open a terminal window and execute the following command to install:

cd dotfiles
bin/run

Executing the bin/run script will present the following options:

s: Show managed dotfiles.
i: Install dotfiles (existing files are skipped).
l: Link dotfiles to this project (interactive per file, excludes: env.sh and .gitconfig).
c: Check for differences between $HOME files and this project's files.
d: Delete dotfiles (interactive per file, excludes: env.sh and .gitconfig).
q: Quit/Exit.

The options prompt can be skipped by passing the desired option directly to the bin/run script. For example, executing bin/run s will show all managed dotfiles by this project.

After install, the following files will require manual updating:

  • .bash/env.sh: Add secret/machine-specific environment settings (if any).

  • .gitconfig: Uncomment the name, email, and token lines within the [user] and [github] sections to replace with your own details.

Aliases

ASCII Doctor

ad = "asciidoctor"

asciinema

cin = "asciinema"
cina = "asciinema rec --append"
cinc = "asciinema cat"
cine = "asciinema_plus -e"
cinp = "asciinema play"
cinu = "asciinema upload"

Bash

bashe = "$EDITOR $HOME/.config/bash/env.sh"
bashs = "exec $SHELL"

Bundler

ba = "bundle add"
bb = "bundle binstubs"
bce = "$EDITOR $HOME/.config/bundler/configuration.yml"
bch = "rm -f Gemfile.lock; bundle check"
bd = "bundle doctor"
be = "bundle exec"
bi = "bundle install"
blo = "bundle list --paths | fzf | xargs $EDITOR"
bo = "bundle outdated --only-explicit"
br = "bundle remove"
bu = "bundle update"

Crystal

cr = "crystal"
crb = "crystal build"
crd = "crystal docs"
crdo = "open docs/index.html"
crr = "crystal run"
crs = "crystal spec"

direnv

denva = "direnv allow"
denvr = "direnv reload"
denvs = "direnv status"

Docker

dr = "docker"
drb = "docker build"
drc = "docker-compose"
drd = "docker system prune --force && docker buildx prune --force"
dri = "docker images"
drp = "docker ps --all"
drt = "docker tag"

duti

dutia = "duti $HOME/.config/duti/configuration.duti"

Elm

elmc = "elm repl"
elmg = "elm init"
elmi = "elm install"
elmp = "elm publish"
elms = "elm reactor"
elmt = "elm-test"

Exa

x1 = "exa --oneline --all --group-directories-first"
x = "exa --all --all --long --header --group --group-directories-first --time-style long-iso --git"
xt = "exa --all --group-directories-first --ignore-glob '*.git' --git-ignore --tree"

Fuzzy Finder

ff = "fzf --preview 'bat --theme DarkNeon --color always {}' | xargs $EDITOR"

Gemsmith

gse = "gemsmith --config --edit"
gsg = "gemsmith --generate"
gsi = "rake install"
gso = "gemsmith --open"
gsp = "rake publish"
gsq = "rake code_quality"
gsr = "gemsmith --read"

General

... = "cd ../.."
.. = "cd .."
c = "clear"
cat = "bat --theme DarkNeon"
cdb = "cd -"
du = "ncdu -e --color dark"
h = "history"
l1 = "ls -A1 | _copy_and_print '\n'"
l = "ls -alhT"
o = "open"
p = 'pwd | tr -d "\r\n" | _copy_and_print'
pss = "pgrep -i -l -f"
rmde = "find . -type d -empty -not -path '*.git*' -delete"

Git

ga = "git add"
gall = "git add --all ."
gamend = "git commit --amend"
gamenda = "git commit --amend --all --no-edit"
gamendh = "git commit --amend --no-edit"
gap = "git add --patch"
gashc = "git stash clear"
gatch = "git commit --patch"
gau = "git add --update"
gb = "git switch"
gbb = "git switch -"
gbe = "git branch --edit-description"
gbi = "git bisect"
gbib = "git bisect bad"
gbig = "git bisect good"
gbih = "git bisect help"
gbil = "git bisect log"
gbir = "git bisect reset"
gbire = "git bisect replay"
gbis = "git bisect start"
gbisk = "git bisect skip"
gbiv = 'git bisect visualize --reverse --pretty=format:"$(_git_log_line_format)"'
gbm = 'git switch $(_git_branch_default)'
gbn = "_git_branch_name | _copy_and_print"
gbt = "git show-branch --topics"
gca = "git commit --all"
gcam = "git commit --all --message"
gcd = "git config --list --show-origin --show-scope"
gce = 'cat .git/COMMIT_EDITMSG | rg --invert-match "^\#.*" | pbcopy'
gcge = "git config --global --edit"
gcl = "git clone"
gcle = "git config --local --edit"
gcm = "git commit --message"
gco = "git commit"
gcp = "git cherry-pick"
gcpa = "git cherry-pick --abort"
gcps = "git cherry-pick --skip"
gcs = "git commit --squash"
gd = "git diff"
gdc = "git diff --cached"
gdm = 'git diff origin/$(_git_branch_default)'
gdo = 'git diff --name-only | uniq | xargs $EDITOR'
gdt = "git difftool"
gdtc = "git difftool --cached"
gdtm = 'git difftool origin/$(_git_branch_default)'
gdw = "git diff --color-words"
gel = "git rm"
gelc = "git rm --cached" # Removes previously tracked file from index after being added to gitignore.
ges = "git reset"
gf = "git fetch"
gg = "git grep"
gget = "git config --get"
gi = "git init && git config --global --add maintenance.repo $PWD"
gl = 'git log --graph --pretty=format:"$(_git_log_line_format)"'
glame = "git blame -M -C -C -C"
glean = "git clean -d --force"
glf = 'git fetch && git log --reverse --no-merges --pretty=format:"$(_git_log_line_format)" ..@{upstream}'
glg = 'git log --pretty=format:"$(_git_log_line_format)" --grep'
glh = "_git_commit_last | _copy_and_print"
gls = 'git log --pretty=format:"$(_git_log_line_format)" -S'
glt = 'git for-each-ref --sort=taggerdate --color --format = "%(color:yellow)%(refname:short)%(color:reset)|%(taggerdate:short)|%(color:blue)%(color:bold)%(*authorname)%(color:reset)|%(subject)" refs/tags | column -s"|" -t'
gna = "git notes add"
gnd = "git notes remove"
gne = "git notes edit"
gnl = "git notes list"
gnp = "git notes prune"
gns = "git notes show"
gpf = "git push --force-with-lease"
gpn = "git push --no-verify"
gpo = "git push --set-upstream origin"
gpu = "git pull"
gpuo = "git pull origin"
gpuom = 'git pull origin $(_git_branch_default)'
gpuum = 'git pull upstream $(_git_branch_default)'
gr = "git restore"
grba = "git rebase --abort"
grbc = "git rebase --continue"
grbd = "git rebase --show-current-patch"
grbo = "git rebase --onto"
grbs = "git rebase --skip"
grbt = "git rebase --edit-todo"
grev = "git revert --no-commit"
grl = "git reflog"
grom = 'git fetch --all && git reset --hard origin/$(_git_branch_default)' # Reset local branch to origin/main branch. UNRECOVERABLE!
grr = "git rerere"
gset = "git config --add"
gst = "git status --short --branch"
gtag = "git tag"
gtags = "git push --tags"
gtagv = "git tag --verify"
guthors = 'git log --color --pretty=format:"%C(bold blue)%an%C(reset)" | sort | uniq -c | sort --reverse'
gwl = "git worktree list"
gwp = "git worktree prune"

Frum

rbi = "frum install"
rbc = "frum local"
rbu = "frum uninstall"
rbv = "frum versions"

Homebrew

hb = "brew"
hbd = "brew doctor"
hbi = "brew install"
hbin = "brew info"
hblc = "brew list --casks --versions | fzf"
hblf = "brew list --formulae --versions | fzf"
hbp = "brew pin"
hbpu = "brew unpin"
hbs = "brew search"
hbsu = "brew update && brew upgrade && brew cleanup"
hbu = "brew uninstall"
hbug = "brew update && brew upgrade"

Marked 2

mo = "open -a Marked\ 2"

Milestoner

ms = "milestoner"
mss = 'milestoner --status | _copy_and_print "\n"'
mse = "milestoner --config --edit"
msp = "milestoner --publish"

Network

dnsf = "sudo dscacheutil -flushcache && sudo killall -HUP mDNSResponder && printf 'DNS cache cleared.\n'"
dnsi = "scutil --dns"
dnss = "sudo dscacheutil -statistics"
ipa = 'curl --silent checkip.dyndns.org | rg --only-matching "[0-9\.]+" | _copy_and_print'
key = "open /Applications/Utilities/Keychain\ Access.app"
ping = "gping"
sshe = "$EDITOR $HOME/.ssh/config"
top = "htop"

Path Finder

pfo = 'open -a "Path Finder.app" "$PWD"'

PostgreSQL

pgi = "initdb $HOMEBREW_PREFIX/var/postgres"
pgsp = "pg_ctl -D $HOMEBREW_PREFIX/var/postgres stop -s -m fast"
pgst = "pg_ctl -D $HOMEBREW_PREFIX/var/postgres -l $HOMEBREW_PREFIX/var/postgres/server.log start &"

Redis

redc = "redis-cli"
reds = "redis-server $HOMEBREW_PREFIX/etc/redis.conf &"

ripgrep

rgf = "rg --files --glob"

RSpec

rsf = "rspec spec --only-failures"
rsn = "rspec spec --next-failure"
rso = "rspec spec --dry-run --format doc > tmp/rspec-overview.txt && e tmp/rspec-overview.txt"
rss = "rspec spec"
rst = "rspec spec --tag"

Rubocop

cop = "rubocop --parallel --display-cop-names --display-style-guide"
copc = "rubocop --auto-gen-config"
copd = 'find . -name ".rubocop-http*" -type f -delete'
copf = "rubocop --auto-correct"
copfo = "rubocop --auto-correct --only"
copo = "rubocop --display-cop-names --only"
cops = "rubocop --show-cops"

Ruby

rbbe = "$EDITOR $HOME/Engineering/Misc/benchmark.rb"
rbbr = "ruby $HOME/Engineering/Misc/benchmark.rb"
rbse = "$EDITOR $HOME/Engineering/Misc/snippet.rb"
rbsr = "ruby $HOME/Engineering/Misc/snippet.rb"

Ruby on Rails

railsb = "rails console --sandbox"
railsdbm = "rake db:migrate && rake db:rollback && rake db:migrate && RAILS_ENV=test rake db:migrate"
railse = "EDITOR = 'sublime --wait' rails credentials:edit"

RubyCritic

rbct = "open tmp/rubycritic/overview.html"

RubyGems

gemc = "gem cleanup"
gemcli = "rg 'spec\.executables' --no-messages --max-depth=2 --files-with-matches gemspec . | xargs basename | cut -d. -f1 | sort | _copy_and_print '\n'"
gemcr = "$EDITOR $HOME/.gem/credentials"
geme = "gem environment"
gemi = "gem install"
geml = "gem list"
gemp = "gem pristine"
gems = "gem server"
gemu = "gem uninstall"
gemuc = "gem update --system && gem update && gem cleanup"

Rubysmith

rbb = "rubysmith --build"

SimpleCov

cov = "open coverage/index.html"

Sublime Text

e = "sublime"

Tar

bzc = "tar --use-compress-program=pigz --create --preserve-permissions --bzip2 --verbose --file"
bzx = "tar --extract --bzip2 --verbose --file"

Terraform

tf = "terraform"
tfa = "noti --title 'Terraform Apply' terraform apply"
tfc = "terraform console"
tff = "terraform fmt"
tfg = "terraform graph | dot -Tsvg > tmp/graph.svg && open -a 'Firefox.app' tmp/graph.svg"
tfi = "terraform init"
tfo = "terraform output"
tfp = "noti --title 'Terraform Plan' terraform plan"
tft = "terraform taint"
tfu = "terraform untaint"
tfv = "terraform validate"

tmux

tsa = "tmux attach-session -t"
tsk = "tmux kill-session -t"
tsl = "tmux list-sessions"
tsr = "tmux rename-session -t"

Watch

wp = "watch --interval 1 --color --beep --exec"

Functions

ASCII Doctor

ado = ASCII Doctor Open - Transforms ASCII Doc into HTML and opens in default browser.

asciinema

cinr = asciinema Record - Create new asciinema recording.

Bundler

bca = Bundler Clean (all) - Clean projects of gem artifacts (i.e. pkg folder).
bcg = Bundler Config Gem - Configure Bundler to use local gem for development purposes.
bj = Bundler Jobs - Answer maximum Bundler job limit for current machine or automatically set it.
bl = Bundle List - List gem dependencies for project and copy them to clipboard.
boa = Bundle Outdated (all) - Answer outdated gems for projects in current directory.
bua = Bundle Update (all) - Update gems for projects in current directory.

Code Quality

cqa = Code Quality (all) - Run code quality tasks for projects in current directory.
cqi = Code Quality Issues - List all source files affected by code quality issues.

curl

curld = Curl Diagnostics - Curl with diagnostic information for request.
curli = Curl Inspect - Inspect remote file with default editor.

Dotfiles

dots = Dotfiles - Learn about dotfile aliases, functions, etc.

Elm

elml = Elm Live - Watch for source code changes and recompile immediately.
elmm = Elm Make - Compile Elm source.

General

cype = Colorized Type - Identical to "type" system command but with Bat support.
eup = Environment Update - Update environment with latest software.
iso = ISO - Builds an ISO image from mounted volume.
kilp = Kill Process - Kill errant/undesired process.
t2s = Tab to Space - Convert file from tab to space indentation.

Git

gafe = Git Safe - Marks repository as safe for auto-loading project's `bin` path.
galla = Git Add (all) - Apply file changes (including new files) for projects in current directory.
gash = Git Stash - Creates stash.
gasha = Git Stash (all) - Answer stash count for projects in current directory.
gashd = Git Stash Drop - Drop stash or prompt for stash to drop.
gashl = Git Stash List - List stashes.
gashp = Git Stash Pop - Pop stash or prompt for stash to pop.
gashs = Git Stash Show - Show stash or prompt for stash to show.
gbc = Git Branch Create - Create and switch to branch.
gbca = Git Branch Create (all) - Create and switch to branch for projects in current directory.
gbd = Git Branch Delete - Interactively delete local and/or remote branch.
gbdl = Git Branch Delete (local) - Delete local branch.
gbdm = Git Branch Delete (merged) - Delete remote and local merged branches.
gbdr = Git Branch Delete (remote) - Delete remote branch.
gbf = Git Branch Facsimile - Duplicate current branch with new name and switch to it.
gbl = Git Branch List - List local and remote branch details.
gbla = Git Branch List (all) - List current branch for projects in current directory.
gblo = Git Branch List (owner) - List branches owned by current author or supplied author.
gbna = Git Branch Number (all) - Answer number of branches for projects in current directory.
gbr = Git Branch Rename - Rename current branch.
gbs = Git Branch Switch - Switch between branches.
gbsa = Git Branch Switch (all) - Switch to given branch for projects in current directory.
gcaa = Git Commit (all) - Commit changes (unstaged and staged) for projects in current directory.
gcap = Git Commit and Push (all) - Commit and push changes for projects in current directory.
gcb = Git Commit Breakpoint - Create a breakpoint (empty) commit to denote related commits in a feature branch.
gcf = Git Commit Fixup - Create fixup commit with optional amend or reword support.
gcff = Git Commit Fix (file) - Create commit fix for file (ignores previous fixups).
gcfi = Git Commit Fix (interactive) - Select which commit to fix within current feature branch.
gdf = Git Diff Files - List all added/changed files on current branch.
gday = Git Day - Answer summarized list of current day activity for projects in current directory.
gesh = Git Reset Hard - Reset to HEAD, destroying all untracked, staged, and unstaged changes. UNRECOVERABLE!
gesha = Git Reset Hard (all) - Destroy all untracked, staged, and unstaged changes for all projects in current directory. UNRECOVERABLE!
gess = Git Reset Soft - Resets previous commit (default), resets back to number of commits, or resets to specific commit.
ggeta = Git Get Config Value (all) - Answer key value for projects in current directory.
ghow = Git Show - Show commit details with optional diff support.
ghurn = Git Churn - Answer commit churn for project files (sorted highest to lowest).
gia = Git Init (all) - Initialize/re-initialize repositories in current directory.
gile = Git File - Show file details for a specific commit (with optional diff support).
gince = Git Since - Answer summarized list of activity since date/time for projects in current directory.
ginfo = Git Info - Print repository overview information.
gistory = Git File History - View file commit history (with optional diff support).
glameh = Git Blame History - View file commit history for a specific file and/or lines (with optional diff support).
gld = Git Log Details - List default or feature branch commit details.
gleana = Git Clean (all) - Clean uncommitted files from all projects in current directory.
glear = Git Clear - Clear repository for packaging/shipping purposes.
gli = Git Log (interactive) - List default or feature branch commits with commit show and/or diff support.
gma = Git Merge (all) - Merges, deletes, and pushes feature branch.
gmonth = Git Month - Answer summarized list of current month activity for projects in current directory.
gmpa = Git Amend Push (all) - Amend all changes and force push with lease for projects in current directory.
gount = Git Commit Count - Answer total number of commits for current project.
gp = Git Push - Pushes changes to remote repository with dynamic branch creation if non-existent.
gpa = Git Push (all) - Push changes for projects in current directory.
gpua = Git Pull (all) - Pull new changes from remote branch for projects in current directory.
gra = Git Remote Add - Add and track a remote repository.
grbi = Git Rebase (interactive) - Rebase commits, interactively.
grbq = Git Rebase (quick) - Rebase commits, quickly. Identical to `grbi` function but skips editor.
groot = Git Root - Change to repository root directory regardless of current depth.
gseta = Git Set Config Value (all) - Set key value for projects in current directory.
gsta = Git Status (all) - Answer status of projects with uncommited/unpushed changes.
gstats = Git Statistics - Answer statistics for current project.
gstatsa = Git Statistics (all) - Answer statistics for all projects in current directory.
gsup = Git Standup - Answer summarized list of activity since yesterday for projects in current directory.
gtagd = Git Tag Delete - Delete local and remote tag (if found).
gtagr = Git Tag Rebuild - Rebuild a previous tag. WARNING: Use with caution, especially if previously published.
gtail = Git Tail - Answer commit history since last tag for current project (copies results to clipboard).
gtaila = Git Tail (all) - Answer commit history count since last tag for projects in current directory.
gucca = Git Upstream Commit Count (all) - Answer upstream commit count since last pull for projects in current directory.
guke = Git Nuke - Permanently destroy and erase a file from history. UNRECOVERABLE!
gunseta = Git Unset (all) - Unset key value for projects in current directory.
gup = Git Update - Fetch commits, prune untracked references, review each commit (optional, with diff), and pull (optional).
guthorc = Git Author Contributions - Answers total lines added/removed by author for repo (with emphasis on deletion).
guthorsa = Git Authors (all) - Answer author commit activity per project (ranked highest to lowest).
gvac = Git Verify and Clean - Verify and clean objects for current project.
gvaca = Git Verify and Clean (all) - Verify and clean objects for projects in current directory.
gwa = Git Worktree Add - Add and switch to new worktree.
gwd = Git Worktree Delete - Deletes current Git worktree.
gweek = Git Week - Answer summarized list of current week activity for projects in current directory.
gync = Git Sync - Syncs up remote changes and deletes pruned/merged branches.

GitHub

gh = GitHub - View GitHub details for current project.
ghpra = GitHub Pull Request (all) - Open pull requests for all projects in current directory (non-default branches only).

less

lessi = Less Interactive - Inspect file, interactively.

License Finder

licensea = License Finder (add) - Adds library to global list.
licensei = License Finder (include) - Include license in global list.

lsof

port = Port - List file activity on given port.

Minisign

sigf = Minisign Sign File - Sign a file.
sigg = Minisign Generate - Generate private and public key pair.
sigv = Minisign Verify File - Verify signed file.

OpenSSL

sslc = SSL Certificate Creation - Create SSL certificate.

Overmind

omc = Overmind Connect - Connect to running process.
omr = Overmind Restart - Restart running process.
oms = Overmind Start - Start processes.

PostgreSQL

pgt = PostgreSQL Template - Edit PostgreSQL template.
pguc = PostgreSQL User Create - Create PostgreSQL user.
pgud = PostgreSQL User Drop - Drop PostgreSQL user.

Rake

rakea = Rake (all) - Run default Rake tasks for projects in current directory.

RSpec

rsall = RSpec (all) - Run RSpec for projects in current directory.
rsb = RSpec Bisect - Debug RSpec failure using bisect to automatically determine where failure is occuring.
rsd = RSpec Debug - Debug intermittent RSpec failure(s) by running spec(s) until failure is detected.
rsp = RSpec Profile - Runs RSpec specs with profiling enabled.

Ruby

rbs = Ruby Server - Serve web content from current directory via WEBrick.
rbw = Ruby Which - Locate path to current Ruby program.
rbua = Ruby Upgrade (all) - Upgrade Ruby projects in current directory with new Ruby version.
rbva = Ruby Version (all) - Show current Ruby version for all projects in current directory.

Ruby Gems

gemdep = Gem Dependency Search - Finds a gem defined within a Gemfile or a gemspec.

Ruby on Rails

railsn = Ruby on Rails New - Create new Rails application from selected option.

Silicon

scc = Silicon Copy - Generates and copies code snippet image to clipboard.

Wormhole

whr = Wormhole Receive - Receive encrypted payload (i.e. text, file, etc.)
whs = Wormhole Send - Send encrypted path (i.e. file or directory).
whst = Wormhole Send Text - Send encrypted text.

Git Hooks

brakeman_check = Brakeman Check - Scan Rails project for security vulnerabilities.
bundler_gemfile_path = Bundler Gemfile Path - Detect gem path statements.
bundler_audit_check = Bundler Audit Check - Scans gem dependencies for security vulnerabilities.
capybara_save_and_open_page = Capybara Save And Open Page - Detect save_and_open_page statements.
comment_totals = Comment Totals - Print project comment totals.
ctags_rebuild = CTags Rebuild - Rebuild project .tags file.
elm_debug = Elm Debug - Detect debug statements.
git_lint_check = Git Lint Check - Enforce consistent Git commits.
git_trailer_cleaner = Git Trailer Cleaner - Remove unused/empty Git commit body trailers.
java_script_debugger = JavaScript Debugger - Detect JavaScript debug statements.
java_script_console = JavaScript Console - Detect JavaScript console statements.
java_script_alert = JavaScript Alert - Detect JavaScript alert statements.
license_finder_check = License Finder Check - Scan project for valid licenses.
pry_binding = Pry Binding - Detect Pry debug statements.
reek_check = Reek Check - Scan Ruby code for poor style choices.
rspec_dotfile = RSpec Dotfile - Detect RSpec dotfile.
rspec_focus = RSpec Focus - Detect RSpec focus.
rspec_order = RSpec Order - Detect RSpec ordered specs.
rubocop_check = Rubocop Check - Scan Ruby code for poor style choices.
irb_binding = IRB Binding - Detect IRB debug statements.

IRB, Pry, and Rails consoles

CK.copy    # Copies data to OS X clipboard.
CK.locate  # Locates source code for given object and method.
CK.paste   # Pastes data from OS X clipboard.
CK.search  # Searches for object method for given pattern.

Pry Aliases

bp = "break"
bpC = "break --delete-all"
bpc = "break --disable-all"
bpD = "break --delete"
bpd = "break --disable"
bpe = "break --enable"
bph = "break --help"
bt = "backtrace"
c = "continue"
dis = "disable-pry"
e = "edit"
f = "finish"
n = "next"
pl = "play --lines"
po = "play -o"
s = "step"
si = "show-input"
ss = "show-source"
w = "whereami"

Development

To contribute, run:

git clone https://github.com/bkuhlmann/dotfiles.git
cd dotfiles

Versioning

Read Semantic Versioning for details. Briefly, it means:

  • Major (X.y.z) - Incremented for any backwards incompatible public API changes.

  • Minor (x.Y.z) - Incremented for new, backwards compatible, public API enhancements/fixes.

  • Patch (x.y.Z) - Incremented for small, backwards compatible, bug fixes.

Code of Conduct

Read Code of Conduct for details.

Contributions

Read Contributions for details.

License

Read License for details.

History

Read Changes for details.

Credits

Engineered by Brooke Kuhlmann.