Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/masterodin/gitvier
A Git dependency manager where you want to manage both the core container repository and dependency repositories.
https://github.com/masterodin/gitvier
Last synced: 27 days ago
JSON representation
A Git dependency manager where you want to manage both the core container repository and dependency repositories.
- Host: GitHub
- URL: https://github.com/masterodin/gitvier
- Owner: MasterOdin
- License: mit
- Created: 2017-05-05T19:49:14.000Z (over 7 years ago)
- Default Branch: master
- Last Pushed: 2017-06-08T18:38:45.000Z (over 7 years ago)
- Last Synced: 2024-09-17T19:53:56.229Z (about 2 months ago)
- Language: Python
- Size: 14.6 KB
- Stars: 2
- Watchers: 3
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.rst
- License: LICENSE.rst
Awesome Lists containing this project
README
gitvier
=======.. image:: https://travis-ci.org/MasterOdin/gitvier.svg?branch=master
:target: https://travis-ci.org/MasterOdin/gitvier
:alt: Build Status
.. image:: https://img.shields.io/pypi/v/gitvier.svg
:target: https://pypi.python.org/pypi/gitvier/
:alt: PyPI Version
.. image:: https://img.shields.io/pypi/status/gitvier.svg
:target: https://pypi.python.org/pypi/gitvier
:alt: Gitvier Development Status
.. image:: https://img.shields.io/pypi/pyversions/gitvier.svg
:target: https://pypi.python.org/pypi/gitvier/
:alt: Supported Python Versions
.. image:: https://img.shields.io/github/license/MasterOdin/gitvier.svg
:target: https://github.com/MasterOdin/gitvier/blob/master/LICENSE
:alt: LicenseGitvier is a CLI "component management" tool for when you've got a container repository and then that repository relies
on a bunch of components to operate, which you're then actively working on those components. As such, it aims to allow
the user to try and manage these components, allowing for installing, updating, etc. as well as running commands over
some/all components. However, it differs from something like GitMan in that it will not explicitly revert dependencies
to specified revisions unless explicitly forced as most likely if you install a component on "master" and the
component is currently on branch "develop", if you run "gitvier update", you don't expect that component to be put back
onto master, but rather that maybe just do a git pull on this component (and all others). I primarily built this
to support the usecase of `Submitty`_ and for my research projects.This borrows concepts heavily from `GitMan`_ which is a great dependency
manager with Git, but less useful as a "component manager" (hence the existance of this tool).Roadmap
-------- [x] Init .gitvier.yml file
- [x] Install
- [x] List components and status
- [ ] Pull
- [ ] Branch
- [ ] Add
- [ ] Commit
- [ ] Push
- [ ] Improve outputsDependencies
------------* Python 3.5+
* Git
* colorama (maybe?)
* GitPython
* PyYAMLInstallation
------------
From Pip::pip3 install gitvier
From Source::
git clone https://github.com/MasterOdin/gitvier
python3 setup.py installUsage
-----
::$ gitvier --help
usage: gitvier [-h] [-V] [-v | -q] ...A component manager for when your components live in Git.
positional arguments:
init create a new gitvier configuration file
install install all components specified in config
update update all installed components if in original branch and not
dirty
list list all components, if they're installed, branch they're on
and if currently dirtyoptional arguments:
-h, --help show this help message and exit
-V, --version show program's version number and exit
-v, --verbose how verbose of output should occur, default is just WARN+,
one v for info+, two v for debug+
-q, --quiet only output errors and inputsGitvier Config File
-------------------Gitvier operates over a `.gitvier.yml` config file which contains the various components of our system. At the root
level you can specify a `location` (defaults to current directory if omitted) where all components would live and
`components` which is a list of components which contain the following elements::name:
repo:
rev:
commands: (optional)An example of a `.gitvier.yml` file (taken from `Submitty`_)::
location: .
components:
- name: RainbowGrades
repo: https://github.com/Submitty/RainbowGrades
rev: master
- name: grading
repo: https://github.com/Submitty/AutoGrading
rev: masterLicense
-------Gitvier is licensed under the MIT License, which can be viewed
`here `_... _Submitty: https://github.com/Submitty/Submitty
.. _Gitman: https://github.com/jacebrowning/gitman