TINA Is Not Arif: A tool for tagging chef cookbooks and their dependencies.
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.
`bash $ gem install berkshelf `
To install GitPython:
`bash $ sudo easy_install gitpython `
TINA is only works with Python 2.6 and 2.7. To install TINA:
`bash $ 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.
To run the tests:
`bash $ sudo easy_install nosetests $ sudo easy_install coverage $ nosetests --with-coverage `