Coder Social home page Coder Social logo

tina's Introduction

Overview

TINA (TINA Is Not Arif) is a tool for automatically tagging Chef cookbooks and their dependencies. It features proper dependency resolution, checks for clashing version constraints, and offers configurability when tagging.

Dependencies

TINA relies on Berkshelf and the GitPython library. To install Berkshelf:

$ gem install berkshelf

To install GitPython:

$ sudo easy_install gitpython

Using TINA

TINA is only works with Python 2.6 and 2.7. To install TINA:

$ sudo easy_install tina

To use TINA to tag a cookbook, navigate to the cookbook's directory and run tina.

$ tina
Running Berkshelf...
Discovering dependent cookbooks...
Checking for version conflicts...
Resolving dependencies...
REPOSITORY SUMMARY:
1. foo: v2.0.3 => v2.0.4
2. bar: unchanged
3. community_cookbook_1 will be pinned at 1.2.3
4. community_cookbook_2 will be pinned at 3.2.1
To commit these changes, re-run with --commit

TINA gives an overview of how the cookbook, and its dependendent cookbooks, will be tagged. A temporary .tina directory is created in which each repository is cloned. The .tina directory also contains a Tinafile which keeps track of repository metadata between a dry-run and a commit. If the above overview generated by TINA is acceptable, simply run tina --commit to commit the changes. Each repository will be tagged and pushed without making modifications to the master branch.

To have more options during a dry-run (e.g., bumping the major build for a repo, or changing how a community cookbook is pinned), run tina -i and follow the instructions. To see all options, run tina -h.

Tests

To run the tests:

$ sudo easy_install nosetests
$ sudo easy_install coverage
$ nosetests --with-coverage

Troubleshooting

If you get the following when running tina:

ValueError: No JSON object could be decoded

Try downgrading your version of solve:

gem install solve --version 0.8.2
gem uninstall solve (remove version 1.2.0 or anything > 0.8.2)

tina's People

Contributors

knmorgan avatar benbenben1010 avatar adregner avatar mjeg avatar drewlander avatar

Watchers

Jason Lancaster avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.