{"id":21357689,"url":"https://github.com/rcbops/osa_differ","last_synced_at":"2025-07-13T00:33:10.896Z","repository":{"id":57449644,"uuid":"65919056","full_name":"rcbops/osa_differ","owner":"rcbops","description":"Find changes between OpenStack-Ansible versions","archived":false,"fork":false,"pushed_at":"2019-01-18T15:28:20.000Z","size":87,"stargazers_count":3,"open_issues_count":1,"forks_count":7,"subscribers_count":48,"default_branch":"master","last_synced_at":"2024-09-17T01:41:26.578Z","etag":null,"topics":[],"latest_commit_sha":null,"homepage":null,"language":"Python","has_issues":true,"has_wiki":null,"has_pages":null,"mirror_url":null,"source_name":null,"license":"apache-2.0","status":null,"scm":"git","pull_requests_enabled":true,"icon_url":"https://github.com/rcbops.png","metadata":{"files":{"readme":"README.rst","changelog":null,"contributing":null,"funding":null,"license":"LICENSE","code_of_conduct":null,"threat_model":null,"audit":null,"citation":null,"codeowners":null,"security":null,"support":null}},"created_at":"2016-08-17T15:28:05.000Z","updated_at":"2018-11-22T15:57:23.000Z","dependencies_parsed_at":"2022-09-26T17:31:19.635Z","dependency_job_id":null,"html_url":"https://github.com/rcbops/osa_differ","commit_stats":null,"previous_names":[],"tags_count":19,"template":false,"template_full_name":null,"repository_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbops%2Fosa_differ","tags_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbops%2Fosa_differ/tags","releases_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbops%2Fosa_differ/releases","manifests_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories/rcbops%2Fosa_differ/manifests","owner_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners/rcbops","download_url":"https://codeload.github.com/rcbops/osa_differ/tar.gz/refs/heads/master","host":{"name":"GitHub","url":"https://github.com","kind":"github","repositories_count":225844817,"owners_count":17533161,"icon_url":"https://github.com/github.png","version":null,"created_at":"2022-05-30T11:31:42.601Z","updated_at":"2022-07-04T15:15:14.044Z","host_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub","repositories_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repositories","repository_names_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/repository_names","owners_url":"https://repos.ecosyste.ms/api/v1/hosts/GitHub/owners"}},"keywords":[],"created_at":"2024-11-22T05:10:40.750Z","updated_at":"2024-11-22T05:10:41.292Z","avatar_url":"https://github.com/rcbops.png","language":"Python","funding_links":[],"categories":[],"sub_categories":[],"readme":"osa-differ\n==========\n\n.. image:: https://img.shields.io/pypi/v/osa_differ.svg\n    :target: https://pypi.python.org/pypi/osa_differ\n.. image:: https://img.shields.io/pypi/pyversions/osa_differ.svg\n    :target: https://pypi.python.org/pypi/osa_differ\n.. image:: https://travis-ci.org/rcbops/osa_differ.svg?branch=master\n    :target: https://travis-ci.org/rcbops/osa_differ\n.. image:: https://img.shields.io/codecov/c/github/rcbops/osa_differ/master.svg\n    :target: https://codecov.io/gh/rcbops/osa_differ\n\nFind changes between OpenStack-Ansible releases.\n\nLicensed under Apache 2.0.\n\nBackground\n----------\n\nOpenStack-Ansible pins various OpenStack services and OpenStack-Ansible roles\nto certain versions.  When these versions are updated, this is commonly called\na \"SHA bump\".  These updates involve changes to OpenStack-Ansible's main\nrepository, changes to individual OpenStack services (such as ``nova`` or\n``glance``), and changes to OpenStack-Ansible roles (such as\n``openstack-ansible-os_nova``).\n\nFollowing along with all of these changes can get complicated, and it can be a\nchallenge for deployers who want to know if a particular OpenStack-Ansible\nversion contains an important fix for an OpenStack service.\n\nThe ``osa-differ`` script has a goal of making this process easier.  The script\ntakes two OpenStack-Ansible commits and finds differences between them. Once\nit finds the differences, it outputs RestructuredText (RST).\n\nTake a look at the `example output \u003chttps://gist.github.com/anonymous/50febcd8fac7a1837f69c8fd53509282\u003e`_.\n\nInstallation\n------------\n\nThe easiest method is to install via pip:\n\n.. code-block:: console\n\n   pip install osa_differ\n\nTo get the latest development version, install via the git repository:\n\n.. code-block:: console\n\n   pip install git+https://github.com/rcbops/osa_differ\n\nUsage\n-----\n\nStart by using ``--help`` to review all of the available options:\n\n.. code-block:: console\n\n   $ osa-differ --help\n   usage: osa-differ\n\n   OpenStack-Ansible Release Diff Generator\n   ----------------------------------------\n\n   Finds changes in OpenStack projects and OpenStack-Ansible roles between two\n   commits in OpenStack-Ansible.\n\n   positional arguments:\n     old_commit            Git SHA of the older commit\n     new_commit            Git SHA of the newer commit\n\n   optional arguments:\n     -h, --help            show this help message and exit\n     --debug               Enable debug output\n     -d DIRECTORY, --directory DIRECTORY\n                           Git repo storage directory (default: ~/.osa-differ)\n     -u, --update          Fetch latest changes to repo\n\n   Limit scope:\n     --skip-projects       Skip checking for changes in OpenStack projects\n     --skip-roles          Skip checking for changes in OpenStack-Ansible roles\n\n   Output options:\n     Note: Output is always printed to stdout unless --quiet is provided.\n\n     --quiet               Do not output to stdout\n     --gist                Output into a GitHub Gist\n     --file FILENAME       Output to a file\n\n   Licensed \"Apache 2.0\"\n\nSpecifying commits to compare\n~~~~~~~~~~~~~~~~~~~~~~~~~~~~~\n\nThe only required arguments are the commits you want to compare.  Always\nprovide the older commit first, followed by the newer commit:\n\n.. code-block:: text\n\n   # Compare changes from tags 13.3.0 to 13.3.1\n   osa-differ 13.3.0 13.3.1\n\n   # Compare changes between two specific commits\n   osa-differ 876b25a 94c1ba3\n\nIf you get the commits in the wrong order, don't worry. The script checks for\nthat and will flip the order if it makes more sense.\n\nUpdating repositories\n~~~~~~~~~~~~~~~~~~~~~\n\nOn the first run, the script will clone all of the relevant repositories into\n``~/.osa-differ``. You can configure a different directory using\n``--directory``.\n\nOn subsequent runs, the script will use the repositories that were previously\ncloned and it won't try to fetch/pull them.  If it's been a while since you've\nupdated the repositories, run the script with ``--update`` and it will pull\neach repository as it looks for changes.\n\nLimiting scope\n~~~~~~~~~~~~~~\n\nThe script will search for changes in all OpenStack projects and\nOpenStack-Ansible roles. You can limit the scope very easily:\n\n.. code-block:: text\n\n   # Don't look for changes in projects, only show changes in roles\n   osa-differ 13.3.0 13.3.1 --skip-projects\n\n   # The opposite - show projects, not roles\n   osa-differ 13.3.0 13.3.1 --skip-roles\n\nHandling output\n~~~~~~~~~~~~~~~\n\nBy default, RestructuredText (RST) output is displayed on-screen for easy\ncopy-paste.  However, you can disable stdout output with ``--quiet`` and choose\na different option for output, such as a GitHub Gist or file.\n\nRunning tests\n-------------\n\nSimply run ``tox``:\n\n.. code-block:: text\n\n   # If you're in a hurry and want to test Python 2.7 only\n   tox -e py27\n\n   # Run all available tests\n   tox\n\nFound a bug? Have a pull request?\n---------------------------------\n\nFeel free to open issues here in GitHub or send over a pull request.\n\n*-- Major*\n","project_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcbops%2Fosa_differ","html_url":"https://awesome.ecosyste.ms/projects/github.com%2Frcbops%2Fosa_differ","lists_url":"https://awesome.ecosyste.ms/api/v1/projects/github.com%2Frcbops%2Fosa_differ/lists"}