LineageOS
===========

Submitting Patches
------------------
Patches are always welcome!  Please submit your patches via LineageOS Gerrit!
You can do this by using these commands:

    (From root android directory)
    . build/envsetup.sh
    (Go to repo you are patching, make your changes and commit)
    cmgerrit <for(new)/changes(patch set)> <branch/change-id>

    repo start cm-14.1 .
    (Make your changes and commit)
    repo upload .
Note: "." meaning current directory
For more help on using this tool, use this command: repo help upload

Make your changes and commit with a detailed message, starting with what you are working with (i.e. vision: Update Kernel)
Commit your patches in a single commit. Squash multiple commit using this command: git rebase -i HEAD~<# of commits>

To view the status of your and others' patches, visit [LineageOS Code Review](http://review.lineageos.org/)


Getting Started
---------------

To get started with Android/LineageOS, you'll need to get
familiar with [Git and Repo](http://source.android.com/source/using-repo.html).

To initialize your local repository using the LineageOS trees, use a command like this:

    repo init -u git://github.com/LineageOS/android.git -b cm-14.1

Then to sync up:

    repo sync

Please see the [LineageOS Wiki](http://wiki.lineageos.org/) for building instructions.

For more information on this Github Organization and how it is structured,
please [read the wiki article](http://wiki.lineageos.org/w/Github_Organization)

Buildbot
--------

All supported devices are built nightly and periodically as changes are committed to ensure the source trees remain buildable.

You can view the current build statuses at [LineageOS Jenkins](http://jenkins.lineageos.org/)
