A language-agnostic "dependency manager" using Git.
Project description
Getting Started
Requirements
Python 3.3+
Latest version of Git (with stored credentials)
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:
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
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.
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.