Homebrew/brew
The missing package manager for OS X
So far, most of 2016 has been consumed with learning about what makes Homebrew tick and making some contributions in the process. Below (in reverse chronological order) is a list of the pull requests I’ve made that have (for the most part) been merged into the core codebase. My Outreachy summer internship has dealt with the task of increasing and improving Homebrew’s test coverage, so these commits all involve code in the Library/Homebrew/test
directory. I’ve written a series of blog posts on my Outreachy/Homebrew experience; you can find them highlighted in yellow on the main page.
- tests: allow
brew tests
to accept multiple--only
args- not merged!
- tests: add
cmd/audit
unit tests - tests:
cmd/audit
unit tests (2 commits):- refactor
FormulaTextTests
intest_cmd_audit
- add assertion to
test_simple_valid_formula
- refactor
- tests:
cmd/install
integration test (2 commits):- refactor installation and renaming of
CoreTap
formula - extend
cmd/install
integration test
- refactor installation and renaming of
- tests: update
cmd/analytics
integration test - tests: add
cmd/migrate
integration test - tests: extend
cmd_fail
to all non-zero exit codes - tests: fix code style issues
- tests: add
cmd/switch
integration test - tests: add
cmd/analytics
integration test - tests: nest
HOMEBREW_TEMP
insideTEST_TMPDIR
- tests: add
cmd/pull
integration test - tests: add
cmd/irb
integration test - tests: add
cmd/test
integration test - tests: add
cmd/link
,cmd/unlink
integration test - tests: add
cmd/style
integration test- not merged!
- tests: refactor formula file creation
- tests: add
cmd/search
integration test - tests: extend
cmd/log
integration test- a few errors were overlooked in the initial PR, so Martin followed-up with this one.
- tests: extend
cmd/desc
integration test - tests: add integration test for
cmd/home
Homebrew/homebrew-core
Core formulae for the Homebrew package manager
This is a list of pull requests I’ve made for Homebrew’s core formula tap. Getting to know Homebrew in the first place has meant running brew audit
or brew audit --strict
and fixing some of the warnings that arise for various core formula files. Sifting through formula files and even adding a test for one formula have been good ways to get acquainted with Homebrew’s core functions.
brew audit
: removeinreplace do
block- 3 formulae: pev, genstats, and flac
brew audit
: remove golang requirement- 6 formulae: path-extractor, noti, fabio, emp, docker-machine-driver-xhyve, and assh
- aften: add
test do
block- this fix added a test for a formula that didn’t have one yet.
- udis86: use
assert_match
instead ofassert...include?
- txt2man: fix audit warnings:
- use
assert_match
instead ofassert...include?
- use
%q
only for strings that contain both single quotes and double quotes
- use
- masscan: use
assert_match
instead ofassert...include?
- pyenv-ccache: use
assert_match
instead ofassert...include?
- tasksh: fix audit warnings:
- use
assert_match
instead ofassert...include?
- move
checksum
beforehead
- use
- sleepwatcher: use the
mv
Ruby method instead ofsystem "mv"
- scrub: use
assert_match
instead ofassert...include?
- srmio: use the
chmod
Ruby method instead ofsystem "chmod"
- gf-complete: remove redundant version statement
LA Region Library Map
A collaboration with fellow Maptimers, Nina Kin and Kenny Lee.
My first library mapping project will map all public library locations in L.A. County, placing calls to the Google Maps API and government open data APIs (if available). This includes the City of L.A. and County of L.A. library systems, as well as all other city library systems within L.A. County (e.g., libraries in Pasadena and Santa Monica). The map will display an info window for each branch location, allowing the user to see branch names, addresses, hours, and URLs. Eventually, I’d like to implement the mapping with Leaflet or Mapbox (both of which are open-source) instead of Google Maps.
Tic Tac Toe!
A command-line tic-tac-toe game dispenser
It’s written entirely in Ruby, so yes, it was fun not only to write and refactor the code, but also to debug it. I still need to implement testing. Play against another human or play against an arrogant computer adversary; play on a conventional 3 x 3 board or play on a 4 x 4 board.
Open Todo API
An API for a to-do list client-side application.
This was the last of the four Bloc applications I made with Matt. It returns JSON representations of users, lists, and items. It relies on Rails serializers to convert Rails objects into JSON.
Blocmetrics
A analytics service API.
This project acquainted me with how web analytics work, among other things. With the client-side JS snippet, a user tracks events on their website. The server-side API captures and save those events to a database, and the captured event data is displayed back to the user in the form of pretty pie and line charts.
Bloccitoff
A self-destructing to-do list application.
This classic to-do list project has an added twist - it automatically destroys items that aren’t yet done after 7 days.
Bloccit
A replica of Reddit.
This was my first Rails project with my Bloc mentor, Matthieu Tanguay-Carel.