CHANGES
=======

3.0.0b1
-------

* Add Python 3.11 testing (#474)
* Misc typo fixes (#471)
* Prefer COPY over ADD (#466)
* Remove set-output syntax in GH workflow (#459)
* Do not build local builder image in CI (#469)
* Change ansible\_core/ansible\_runner schema types (#464)
* add container\_init customization (#18)
* Add option for package manager (#17)
* Add check for Ansible/Runner in final image
* Bump schema to v3 (#15)
* Remove py3.8 classifier
* Carry over fix for v2 default images
* Add check for ansible-galaxy before galaxy installs
* Revise help for --squash option
* Revise docs for --squash option
* Add squash feature
* Set user to root in base image
* Add mypy to linters job and correct existing errors
* Support directories being the src for additional\_build\_files
* Support additional build files
* [feature] allow custom commands before and after build phases (#7)
* Enforce min python version and lint fixes
* Move steps.py code to containerfile.py
* Split Containerfile class
* Fixes for integration tests
* Use jsonschema for EE schema validation (#3)
* Fix CI failures (#1)
* wip
* Clarify help (#456)
* Make sure default images are used with v2 schema (#455)
* Add license and classifiers metadata (#449)
* Bump certifi from 2021.10.8 to 2022.12.7 in /docs (#441)
* Check minimum Python version (#415)
* Update yamllint config for new 1.29.0 version (#440)
* Docs: Use the Ansible Sphinx theme (#439)
* Remove Zuul remnants (#428)
* Update CI GH actions (#420)
* Container image signature validation (#371)
* Fix secrets\_preflight check (#405)
* only run pulp tests when registry secrets are available
* setup\_pulp.sh now expects username as passed in secret
* Have setup\_pulp.sh exit early if pwd is empty
* Move test script, some cleanup
* Add pulp\_integration framework
* Add LABEL to Containerfile (#397)
* Fix default tag not being used (#395)
* Implement ANSIBLE\_GALAXY\_CLI\_ROLE\_OPTS (#394)
* Remove integration test for prune (#389)
* Optimize logger lines with formatting (#385)
* Remove unused Containerfile parameter (#386)
* Add support of HTTP requirements (#378)
* Add min python version to install docs (#381)
* Add --prune-images flag in build command (#375)
* Added example EE config files (#374)
* Cleanup UserDefinition class (#370)
* Support collection signing verification (#357)
* Validate the EE definition file earlier (#366)
* Normalize python package names (#359)
* Create SECURITY.md (#356)
* Use  tag for the development image (#353)
* Use lastest image in docs (#352)
* Revert PR #279 (#341)
* No code coverage of test code (#344)
* Fix CI to use image from PR (#342)
* Support multiple tags (#337)
* Do not sanitize user python requirements (#336)
* Add --no-cache option to container build subcommand (#335)
* Add coverage badge (#333)
* Upload code coverage report (#331)
* Add Python 3.10 to the test matrix (#329)
* Mark unreliable tests (#330)
* Run tests on all supported run times and fix \`test\_build\_layer\_reuse\` test (#326)
* Run tests using GitHub Actions (#284)
* Use v2.4.1 of issue-labeler action (#324)
* Improve test performance and organization (#318)
* Create separate workflow for new/existing PRs/issues (#317)
* Fix problems with issue templates (#316)
* Fix labeler workflow (#314)
* Add workflow to triage new issues and pull requests (#304)
* Remove github-workflows job (#312)
* Add issue templates (#311)
* Add coverage reporting, requirements, update gitignore (#308)
* Update yamllint settings (#309)
* Set the version in the docs conf (#302)
* Remove duplicate RTD config file (#300)
* Revert "Switch project to squash-merge mode"
* Switch project to squash-merge mode
* Add Read the Docs config
* Pin documentation requirements for consistent builds
* Remove some CI jobs
* Do not use dash separate keys in setup.cfg
* Pre-pull some build images
* Update docs for new  CLI usage
* Update help integration tests
* Add CLI type subcommand
* Add a Patchback config
* Add py38 job
* Add CODEOWNERS file
* Add cherry\_picker 🍒⛏
* Fix linting errors
* Cleanup trailing whitespace and indentation in tox.ini
* Update flake8 configuration to not ignore white space formatting
* Remove autopep8 settings
* Add docs tox target and Zuul docs check/gate job
* Fix delete\_image in tests (#264)
* Fix location of ansible.cfg step in rendered Containerfile
* Update docs to show renamed build\_arg\_defaults param
* Fix another Freenode mention
* Update IRC network
* Reduce layer churn in the /output folder
* Add 'create' command info to documentation
* Fix verbosity issue for introspect command
* Trival change to clean up Containerfile
* Move to bindep.txt for Containerfile
* Change validation ordering and eliminate NoneType error
* Added validation for allowed keys in dependencies, checking against CONTEXT\_FILES dict
* Added validation of dependencies key, checking for dict as value
* Change runner to latest
* Split build and create integration tests
* Separate out certain arguments from 'create' command and move log statements
* Add docker to allowlist
* Add podman to tox allowlist\_externals for integration tests
* Update main.py with new methods related to create command, update test assertions
* Add back 'create' command as an option
* Fix yaml syntax reference in docs
* Register marker to get rid of pytest warnings
* Add log for excluded requirements
* check that requirements-parser is not there either
* Add another python test requirement to skip

1.0.0a2
-------

* Make Flask test permissive to case
* Only run github-workflow when those files change
* Disable integration tests in Zuul
* Add test to confirm that git requirements work
* Run integration tests in github actions
* Add wheel and git to container image
* adding ansible-core to ignore list
* Use pkg\_resources to get version
* Always use the --sanitize flag for introspect in Containerfile
* Fix bug where --sanitize did not work with --write options
* Move build-arg to start of stage
* whoops
* Change parents of ansible-builder image, back to 3-stage builds
* Resolve a few TODO items
* Add a dockerignore file
* WIP put in jobs for building and uploading ansible-builder image
* Remove test assertion no longer valid
* Pre-build docker images for integration tests too
* Skip some stages conditionally to make no-op scenarios pass
* Have tox make me an image so integration tests will run
* Break out ADD of build context from GalaxyInstallSteps
* Fix issue with missing directory and not being in /output
* Fix parser bug
* Pull in missing items from the parent python builder image
* Combine introspect and assemble steps to get functionality
* Rename the build args
* Fix tagging issues with make image
* Fix bug
* WIP Initialize an ansible-builder image
* Add back --write-bindep type options as means of writing introspect output
* WIP
* Bump ansible-builder tox job to 75mins
* Bump job timeout
* Explicitly flip to root user during build process
* Fix quay image path
* Remove redundant/repeated line about Python dependencies

1.0.0a1
-------

* Put in new wording from chrismeyersfsu
* Address several documented usability issues
* Copy build context folder into galaxy layer
* Allow user to toggle image clean up for integration tests
* Do not copy introspect.py file
* Test a fix bug where run\_command exited early
* Custom message if files are already in build context
* Show all defaults in help text, consolidate some
* More detail to assertion
* fix zuul syntax
* Make the integration job voting
* Clean up this method a bit more
* Delete images test-by-test
* Make fixture assertion even less restrictive
* Apply conservative test fixes
* Remove the now unnecessary mkdir command
* Add ANSIBLE\_GALAXY\_CLI\_COLLECTION\_OPTS build-arg
* Copy the entire Ansible share dir for bug workaround
* Change base image name to more simple name
* Show last 20 lines of output in case of error
* Fix docker and podman error due to ARG ordering
* Add back in test content for build args in definition
* Unify treatment of build arg defaults with definition
* Test fixes with build args syntax changes
* Do everything as build args where possible
* Remove unused entry point in tox.ini

0.5.1
-----

* Remove usage of poetry
* Fix missing requirements

0.5.0
-----

* Include package in wheel generated by PBR

0.4.2
-----

* Fix missing entrypoint when built with PBR

0.4.1
-----

* Install pbr in readthedocs
* Adopt pbr / dynamic versioning
* Fix linter
* BASE\_IMAGE -> ANSIBLE\_RUNNER\_IMAGE
* Add missing documentation for --base-image
* Document build args feature
* Add support for build args
* Write out files to \_build dir in build context

0.4.0
-----

* Bump version to 0.4.0
* Add python-builder-container-image to list of zuul requires
* Adopt pattern of running \`assemble\` script in builder stage
* Pre-build wheels that are copied into final image
* Fix some integration tests
* Check for invalid keys in the definition file
* Change other kwargs in the Containerfile class to initialize as None
* Initialize base\_image properly in the Containerfile class

0.3.1
-----

* Bump to version 0.3.1

0.3.0
-----

* Fix prepended steps
* Remove extra double-spacing from subcommands
* Update unit test and add a mock config file
* use docker by default if podman is not installed
* Remove files and point to new AWX EE home
* Add unit tests, add error if config file path is not a string, update docs
* Add ability to specify ansible config file path and add it to the Containerfile if specified
* Move mkdir command from second stage to first stage of build
* Initial commit for supporting custom Galaxy server settings
* Switch to ubuntu-bionic-4vcpu for integration jobs
* Change verbosity implementation, change default verbosity level, add to docs
* Add integration testing job
* Make default base image in argparse None
* Review suggestions for base image default handling
* Change precedence of base image so CLI-specified one is priority
* Shortcut the need for another method
* Add documentation info on new base\_image option
* Allow base image to be defined in definition file, add a couple of tests
* Emit more helpful warning when container runtime isn't found
* Update/add some functional tests
* Fix remaining tests
* Fix some integration tests, show error output when running command fails
* Change filter name in config
* Implement color log filter
* Fix linter errors, add more logging changes
* Replace more print statements with verbosity logging
* Add more logging to cli.py etc
* Set logging level via detected verbosity
* Add a verbosity option to build command
* Fix editable pip installations

0.2.2
-----

* Edit setup.py to have correct description
* Correctly clean up podman images that start with localhost
* Update setup.py to match pyproject.toml
* Update version number to 0.2.2
* Fix test race condition
* Restructure and expand documentation

0.2.1
-----

* Update for release of ovirt collection
* Update version to capture PyYAML version range change
* Trigger copy of files if modification time has updated
* Add code of conduct + license info to readme
* Simplify container run command generated by builder
* Update AWX requirements after recent merges
* Relax pyyaml version constraint

0.2.0
-----

* Update version number before publishing to PyPI
* Fix minor typos and update outdated helptext
* Start migrating docs content into docs site
* Remove some test data files that were duplicated by mistake
* Add file with moved tests
* Remove example no longer used
* Sync setup.py
* Beginnings of documentation content
* Add skeleton for docs
* Organization refactor for external python-based introspect use
* Use newly released azure collection
* Fix test after moving to Fedora for upstream ansible-runner base image
* Do not skip requests library
* Do not use dockerhub, use quay
* Update upstream requirements for awx case
* Remove introspect step
* Rework how and when bindep is run
* Echo stdout in event of failures
* Move awx EE bindep into ovirt.ovirt branch
* Processing of bindep.txt from collections
* Unskip test and fix root issue
* Update the data directory README
* Do a single session-scoped image cleanup
* Some more basic patches for integration tests and examples
* Put deps on a diet
* Update for upstream merges
* Add blank case
* use amazon.aws that released with change
* Add test for user pip req
* Tweaks to have examples fully run again
* Move AWX system deps into bindep
* Flip order of dnf and pip installs
* Add test coverage for an invalid prepend step
* Update base image
* Update branch for openstack collection
* Remove part no longer needed
* Update awx example to functionality
* Echo command for user to use
* Get svn example working with additional build steps
* Add newline to bindep file
* yamllint fixes
* Allow running all examples
* Update the awx manifest of collections
* Consolidate into single bash script
* Significantly build out examples
* Split up the tests using pytz and skip layer stuff for podman
* Remove or promote content from old pytz example
* Move the pytz example to test data folder
* Use the force option when removing images
* Add unit test, remove unintentional indentation
* Create new custom exceptions module
* Add integration test for subversion test case
* Fix 'file not found' error message to specify actual missing file, update format string replacement fields to have reference numbers
* Reformat error messages, remove traceback via custom error class, add info to README
* Handle steps error with DefinitionError and add tests
* Do not write python requirements.txt if nothing to write
* Skip install in tox
* Make \`make test\` work
* Use yaml.safe\_load
* Update docs and write docs for collection maintainers
* Update output colors, remove traceback, remove redundant check in append\_steps
* Add failure color to error message
* give sensible error when provide wrong type
* make this run on podman or docker
* fix problem with tox + rootless podman (thanks shane)
* Remove unnecessary return code check
* add option to pass addtional pytest args
* add basic pattern for integration tests
* Detect and exit process when error occurs during build process
* Fix wrong option to bindep
* fix spelling error
* Add simple unit tests for the sanitization method
* Fix tests
* Add processing of python requirements to run AWX case to completion
* Update test yum to dnf
* Change from yum to dnf
* Flake8 fix
* Add test for bindep steps
* Fix work after rebase
* WIP, accept user bindep file
* Move prepare method to tests
* rename method
* Add validation step, combine makedirs and copy code
* Add parsererror exception, parsererror unit test
* Put some argparse definition around the introspect command
* Fail out if additional\_build\_steps in wrong format
* Remove unnecessary kwargs
* Add documentation about additional build steps in the definition file
* Add color to output text
* Enable additional build commands to be run and put into Containerfile/Dockerfile
* Dont rely on builder being installed in the base image
* Remove redundant 'self.steps'
* Fix user python requirements install, add debug lines
* Fix up tests and linters
* Update introspect command
* Assert that galaxy files from subdirs get copied
* Refactor how we detect collection metadata
* Update example to new syntax from runner
* yamllint fixes
* Add test for coverage of relative galaxy file
* Refactoring code
* Move collection manager to another module
* more docstring
* Make type kwarg to collection\_dependencies make sense
* Remove property definitions and other consolidation changes
* correct comment
* remove commented code
* Move steps modules into simpler method definitions
* Swap usage of \_\_new\_\_ for proper iterators
* Fix bug with line continuation characters in Containerfile
* Some light refactoring
* Deterministic ordering of collections
* Put collection metadata in Containerfile
* Recombine create and build when running 'build'
* Separate create and build commands, show more output when building
* mark var names
* Add some initial text for use documentation
* Apply options to container runtime argument
* Start a pattern for command help text for documentation
* Read galaxy requirements.yml as relative path optionally
* Polish up build command, update associated unit test
* Add version flag
* Split up build command function in main.yml, add unit test for command
* Make the build/create action a primary parameter
* Share constants between modules and take runtime for create command
* Make the build command actually build a container with the proper flags/args
* Add 'tag' flag for build command, fix linter errors
* Initial commit for CLI 'build' command
* Update Poetry info in documentation
* Add documentation for builder repo
* Update tox file to remove setup-to-compare.py
* Remove my name from authors list
* Add custom message when running 'create' without EE file
* Packaging: Do not rely on macros but on command
* Do installs in /usr/share directory to avoid user specific issues
* Packaging: Introduce setup.py
* Packaging: Introducing RPM packaging
* LICENSE: Add missing ASL2.0 license
* tox: Specify lower limit for poetry
* Rename project
* Rename build commant to create
* First bits of semi-functional code and tests
* Add ipdb to dev deps
* Add setup.cfg
* Add tox.ini
* Rename tests dir to test
* Ignore some files
* Adding TODO for things that need to be done
* Initial version
