Metadata-Version: 2.0
Name: GDM
Version: 0.5.dev2
Summary: A language-agnostic "dependency manager" using Git.
Home-page: https://github.com/jacebrowning/gdm
Author: Jace Browning
Author-email: jacebrowning@gmail.com
License: MIT
Platform: UNKNOWN
Classifier: Development Status :: 4 - Beta
Classifier: Environment :: Console
Classifier: Intended Audience :: Developers
Classifier: License :: OSI Approved :: MIT License
Classifier: Natural Language :: English
Classifier: Operating System :: MacOS
Classifier: Operating System :: POSIX
Classifier: Programming Language :: Python
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.3
Classifier: Programming Language :: Python :: 3.4
Classifier: Programming Language :: Python :: 3.5
Classifier: Topic :: Software Development
Classifier: Topic :: Software Development :: Build Tools
Classifier: Topic :: Software Development :: Version Control
Classifier: Topic :: System :: Software Distribution
Requires-Dist: YORM (~=0.5)
Requires-Dist: sh (~=1.11)

| |Build Status|
| |Coverage Status|
| |Scrutinizer Code Quality|
| |PyPI Version|
| |PyPI Downloads|

Getting Started
===============

Requirements
------------

-  Python 3.3+
-  Latest version of Git (with `stored
   credentials <http://stackoverflow.com/questions/7773181>`__)
-  OSX/Linux (with a decent shell for Git)

Installation
------------

GDM can be installed with pip:

::

    $ pip3 install gdm

or directly from the source code:

::

    $ git clone https://github.com/jacebrowning/gdm.git
    $ cd gdm
    $ python3 setup.py install

Setup
-----

Create a GDM configuration file (``gdm.yml`` or ``.gdm.yml``) in the
root of your working tree:

.. code:: yaml

    location: .gdm
    sources:
    - repo: https://github.com/kstenerud/iOS-Universal-Framework
      dir: framework
      rev: Mk5-end-of-life
    - repo: https://github.com/jonreid/XcodeCoverage
      dir: coverage
      rev: master
      link: Tools/XcodeCoverage

Ignore GDM's dependency storage location:

::

    $ echo .gdm >> .gitignore

Basic Usage
===========

See the available commands:

::

    $ gdm --help

Updating Dependencies
---------------------

Get the latest versions of all dependencies:

::

    $ gdm update

which will essentially:

#. create a working tree at *root*/``location``/``dir``
#. fetch from ``repo`` and checkout the specified ``rev``
#. symbolically link each ``location``/``dir`` from *root*/``link``
   (optional)
#. repeat for all nested working trees containing a configuration file
#. record the actual commit SHAs that were checked out

where ``rev`` can be:

-  all or part of a commit SHA: ``123def``
-  a tag: ``v1.0``
-  a branch: ``master``
-  a ``rev-parse`` date: ``'develop@{2015-06-18 10:30:59}'``

Restoring Previous Versions
---------------------------

Display the specific revisions that are currently installed:

::

    $ gdm list

Reinstall these specific versions at a later time:

::

    $ gdm install

Deleting Dependencies
---------------------

Remove all installed dependencies:

::

    $ gdm uninstall

.. |Build Status| image:: https://travis-ci.org/jacebrowning/gdm.svg?branch=develop
   :target: https://travis-ci.org/jacebrowning/gdm
.. |Coverage Status| image:: http://img.shields.io/coveralls/jacebrowning/gdm/master.svg
   :target: https://coveralls.io/r/jacebrowning/gdm
.. |Scrutinizer Code Quality| image:: http://img.shields.io/scrutinizer/g/jacebrowning/gdm.svg
   :target: https://scrutinizer-ci.com/g/jacebrowning/gdm/?branch=master
.. |PyPI Version| image:: http://img.shields.io/pypi/v/GDM.svg
   :target: https://pypi.python.org/pypi/GDM
.. |PyPI Downloads| image:: http://img.shields.io/pypi/dm/GDM.svg
   :target: https://pypi.python.org/pypi/GDM

Revision History
================

0.5 (unreleased)
----------------

- Added Git plugin support via: `git deps`
- Removed '--no-clean' option (now the default) on 'install' and 'update'.
- Added '--clean' option to delete ignored files on 'install' and 'update'.

0.4.1 (2015/09/24)
------------------

- Switched to cloning for initial working tree creation.

0.4 (2015/09/18)
----------------

- Replaced 'install' command with 'update'.
- Updated 'install' command to use locked dependency versions.
- Now sorting sources after a successful 'update'.
- Now requiring '--force' to 'uninstall' with uncommitted changes.
- Updated 'list' command to show full shell commands.

0.3.1 (2015/09/09)
------------------

- Ensures files are not needlessly reloaded with newer versions of YORM.

0.3 (2015/06/26)
----------------

- Added '--no-clean' option to disable removing untracked files.
- Added support for `rev-parse` dates as the dependency `rev`.

0.2.5 (2015/06/15)
------------------

- Added '--quiet' option to hide warnings.

0.2.4 (2015/05/19)
------------------

- Now hiding YORM logging bellow warnings.

0.2.3 (2015/05/17)
------------------

- Upgraded to YORM v0.4.

0.2.2 (2015/05/04)
------------------

- Specified YORM < v0.4.

0.2.1 (2015/03/12)
------------------

- Added automatic remote branch tracking in dependencies.
- Now requiring '--force' when there are untracked files.

0.2 (2015/03/10)
----------------

- Added 'list' command to display current URLs/SHAs.

0.1.4 (2014/02/27)
------------------

- Fixed an outdated index when checking for changes.

0.1.3 (2014/02/27)
------------------

- Fixed extra whitespace when logging shell output.

0.1.2 (2014/02/27)
------------------

- Added '--force' argument to:
    - overwrite uncommitted changes
    - create symbolic links in place of directories
- Added live shell command output with '-vv' argument.

0.1 (2014/02/24)
----------------

- Initial release.


