Zuul gates broke for Spyglass due to an update made to either Zuul or
Openstack's Zuul jobs (I wasn't able to pin it down). The update caused
Zuul to attempt to install Spyglass's requirements.txt file instead of
referring to the method given in the tox configuration that utilizes
Pipenv. To bypass this issue, the requirements.txt will be removed and
Spyglass will be fully moved over to using Pipenv.
Removes requirements.txt
Updates Pipfile and Pipfile.lock for new package releases
Updates Dockerfile to install requirements from Pipfile.lock
Change-Id: I347ef6db18a44e1b88c811aa071ba8c60bccbd53
From recently merged document updates in [0] there is a desire to
standardize the Airship project python codebase. This is the effort
to do so for the Spyglass project.
[0] https://review.opendev.org/#/c/671291/
Co-Authored-By: Ian Pittwood <pittwoodian@gmail.com>
Change-Id: I2b0f2491d83675d7742b168ecb9e1dfb9a11e719
Pipenv is a tool that brings better package dependency management to
python. It can automatically create and manage virtualenv as well as
managing package dependencies using Pipfile and Pipfile.lock. Adding
this dependency manager into Airship projects will decrease package
version conflicts between projects and help increase security through
hash validation of packages and vulnerability scans.
Changes:
- Imports requirements.txt type files into Pipfile
- Pipenv dependency management in tox
- Switches Safety package for "pipenv check", an implementation of
Safety
- Unpins or loosens pins on all development packages
- Soft pins package dependencies to encourage adoption of bug fixes and
prevent small version mismatches
Pipenv Docs: https://docs.pipenv.org/en/latest/
Helpful Pipenv Guide: https://realpython.com/pipenv-guide/
Change-Id: I2c9cec8acf6b6c6157f807b010def873c349d3ae
Pins all Spyglass dependencies explicitly for consistency.
Removes unused packages.
Related to https://review.opendev.org/#/c/662069/
Change-Id: I5ca302e7315a8606510c6e83092188291f661760
This change removes plugins from Spyglass and places them in separate
repositories. Formation, a proprietary plugin, will be removed by this
change and Tugboat will become its own OpenDev maintained repo,
spyglass-plugin-xls. By creating more streamlined plugin management,
end users should be able to more easily create their own plugins for
different data sources.
Related change https://review.opendev.org/#/c/659116/
Depends-On: Ib2f75878b1a29e835cb8e2323aebe9d431c479e7
Change-Id: Ie0eb2e5aefe6bb764e1aa608e53371adaabb9a17
The latest version of PyYAML fixes some security issues found in
previous versions. It also supports python 3.7. No changes between
these versions should break Spyglass functionality. Six is also removed
in this patch as it is no longer used in Spyglass.
https://pyyaml.org/wiki/PyYAML
Change-Id: I76fe7396b3bad3b863fd4e05330bf8f58f21d57a
Spyglass will soon have its plugins separated from its main repo. Many
other OpenStack repositories that utilize plugins have implemented
Python Build Reasonableness to manage their entry points for plugins.
As Spyglass will be managing plugins, it makes sense to stay uniform
with other projects and implement PBR.
Implements PBR using setup.py and setup.cfg files.
Changes README to correct file extension.
Freezes PIP requirements file.
Moves YAPF configuration into setup.cfg file.
Change-Id: I48ac5aeb3e544d3da7ce25bd9b827d8fd9c4e108
The original CLI is based on click, but includes all options stacked on
one main method. This is in contrast to other Airship CLIs such as
Pegleg which utilizes click's nesting features to organize its CLI into
multiple groups and commands that each have their own options.
This change separates the Spyglass CLI into three different commands:
generate intermediary, generate manifests, and generate manifests from
intermediary.
Adds a 'verbose' flag on Spyglass.
Defaults plugin to 'tugboat'.
Adds validation for options that apply specifically to tugboat or
formation.
Related docs change: https://review.opendev.org/#/c/650137/
Change-Id: I92e5f040d5205c3ab36ec1d46ecd57bc97849cef