Skip to content

Latest commit

 

History

History
67 lines (45 loc) · 3 KB

CONTRIBUTING.md

File metadata and controls

67 lines (45 loc) · 3 KB

Contributing

Welcome! If you're looking to help, this document is a great place to start!

Finding things that need help

Here's a few places to get started and find out what's outstanding.

  • Read through the MDM Protocol Reference on the Apple website. Having a deeper understanding of MDM can help with designing features and uncovering bugs.
  • Follow the Quickstart guide and make edits if something doesn't look or work right.
  • If you run into a problem that you're not sure how to fix, file a bug in the issue tracker
  • Browse through the open issues in the issue tracker. We try to tag issues as beginner friendly where appropriate.
  • See something that others might benefit from? Considering updating or writing a wiki page.

Building the project

To build MicroMDM from source, you will need Go 1.11 or later installed.

git clone git@github.com:micromdm/micromdm && cd micromdm
make deps
make

# run
./build/darwin/micromdm -h
./build/darwin/mdmctl -h

Git workflow

username=groob
# add your remote/upstream
git remote add $username git@github.com:groob/micromdm.git

# update from origin/main
git pull --rebase

# create a branch
git checkout -b my_feature

# push changes from my_feature to your fork.
#    -u, --set-upstream    set upstream for git pull/status
git push -u $username

Go Resources

A few helpful resources for getting started with Go:

Important libraries and frameworks

MicroMDM is built using a few popular Go packages outside the standard libraries. It might be worth checking them out.

  • Go Kit is a set of Go libraries used by MicroMDM to provide logging, and abstractions for building HTTP services. Its examples page is a good place to start.
  • BoltDB is a key/value database used to provide persistant storage for many components of MicroMDM.
  • gorilla/mux is used to provide routing for http handlers.

Other resources

Also see Contributing wiki page which has some additional notes on running, troubleshooting, and developing with MicroMDM.