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 `