CHANGES
=======

0.8.9
-----

* set gitlabci to python3.6
* use gwdg gitlab runner 2
* group test, linters, py36 to codecheck
* use git tag as version and add --version to cli
* fix exclude for pycodestyle
* change stage order - linters first
* Linting setup.py
* Linting scotty/log.py
* Linting scotty/cli.py
* Linting scotty/\_\_init\_\_.py
* Linting scotty/cmd/workload.py
* Linting scotty/cmd/\_\_init\_\_.py
* Linting scotty/cmd/resource.py
* Linting scotty/cmd/experiment.py
* Linting scotty/core/exceptions.py
* Linting scotty/core/moduleloader.py
* Linting scotty/core/report.py
* Linting scotty/core/workspace.py
* Linting scotty/core/settings.py
* Linting scotty/core/\_\_init\_\_.py
* Linting scotty/core/components.py
* Linting scotty/core/\_\_init\_\_.py
* Linting scotty/core/checkout.py
* Linting scotty/core/context.py
* Linting scotty/core executor.py
* Linting scotty/utils/workload.py
* Linting scotty/utils/resultstore.py
* Linting scotty/utils/\_\_init\_\_.py
* Linting scotty/utils/base.py
* Linting scotty/utils/resource.py
* Linting scotty/utils/experiment.py
* Linting scotty/tests modules
* Linting scotty/tests/unit/test\_utils.py
* Linting scotty/tests/function and unit/core module
* Linting scotty/tests/unit/core/test\_executor.py
* Linting scotty/tests/unit/core/test\_components.py
* Linting scotty/tests/unit/core/test\_checkout.py
* Liniting scotty/tests/functional/test\_experiment\_perform\_parallel.py
* linting scotty/tests/functional/test\_experiment\_clean.py
* linting scotty/test/functional/test\_experiment\_perform.py
* liniting scotty/workflows/workflows.py
* linting scotty/workflows/\_\_init\_\_.py
* liniting scotty/workflows/base.py
* lining scotty/workflows/resource.py
* back to sequentiel jobs
* test delay for gitlabci jobswq
* fix codestyle für workflow experiment
* fix codestyle for scotty/cmd/base.py
* run scripts sequential for workaround docker image shit
* workaround to pull image allways
* pull docker image allways do prevent Error: No such container:
* fix cmd/base.py docstrings - add pytest to tox and gitlab
* fix N802 function name buildCommand should be lowercase
* setup ci stages and tox environents
* Update .gitlab-ci.yml
* ignore venv for flake8
* add tox environment flake8
* Update .gitlab-ci.yml
* prepare test, codestyle checks and packaging
* fix python codestyle and use pep8
* better functional testing for experiment workflow
* Fix/tests
* add python code style module
* fix missing import os for base utils
* fix python code style
* refactor workload utils
* Rename self.workload to self.current\_workload in WorkloadUtils
* Fix assorted bugs
* Add missing import of "sys"
* use for-loop instead of Listcomprehensions in experiment workflow
* use tubles in experiment workflow to perform executors
* refactor experiment workflow
* change resource stack wait loop from return to break - fix handle\_wait\_else state\_finish
* refactor resource utils wait for stack and add stack error handling
* add generic perform to component executor and mov submit\_components and collect\_results to this function - remove all from experiment workload
* handle stack exists with exception and add exeption for connection error
* add check experiment wrapper and replace wait with collect\_result
* fix config path search for scotty.conf - app is last prio now
* Implement heat calls with retries
* mv utils.py to utils/\*
* add openstack credentials to scotty conf
* relex component params
* add resource interfaces exists and endpoint, implement resource parameter reuse and keep
* add openstack heat functions to support stack destroy, exists, outputs
* add telegraf config and heat parameter
* Add workaround for connection issues with keystone
* add .gitignore to resource creation
* Change some code
* first step for init resource
* set paramete name for scotty resource init to mandadory - use \_\_all\_\_ für cmd imports
* remove cmd/init.py from cli
* add .eggs/ to gitignore
* add remove\_file and file\_exists to ExperimentUtils
* fix scotty cli
* remove generator
* move pipy package to python3
* move tests to python3
* remove generator
* ready for python3
* fix missing config module
* move from scotty/config to scotty/core/settings
* Delete scotty.py

0.8.7
-----

* update gitlabci
* update gitlabci
* remove except by branches in gitlabci
* update requirements
* fix test-requirements.txt in  gitlabci
* add docker image python to gitlabci
* add testrequirements to test pipeline
* use common gitlabrunner
* add pipelines for release pypi on tag and cleanup
* remove version from setup.cfg and let pbr take the version from git tag
* add version parametere to scotty
* add pbr to requirements
* update setup.py rights
* clean setup.py
* implement flexible search for scotty.conf
* add appdirs python module as requirement
* setup.cfg
* update setup.cfg
* update setup.cfg
* fix missing etc/scotty
* add pbr hook to setup.cfg
* update setup.cfg
* move to version 0.8.4
* move to pbr
* update Readme gitignore and setup.cfg
* update setup.py fix entry point
* fix log dir in scotty.conf
* update setup.py
* update setup.py
* add MANIFEST.in
* add setup.cfg
* add find modules to setup.py
* add setup.py for pypi
* fix real path in experiment utils
* add experiment utils
* get error from component process and handle failed experiment
* do not run workload if resources failed
* longer sleep for stack wait
* fix submodules
* add logging for failed module loading in component process tree
* add resource property to workload utils
* implement heat stack client
* catch customer error during module load
* add utils for resources
* fix experiment clean and a more robust testing
* move prepare components from workflow to component factory
* set default for experiment.config to None
* move resultstore from experiment.yaml to scotty.conf
* implement resultstore utils
* Implement utils for workload to save files from workloadcollect
* implement workload.collect(context) interface execution
* fix tests
* implement process execution for components
* reduce time for tests
* Update components.py
* Implement uuid for components and make experiment.uuid accessible from utils
* fix type "referenc" to reference in checkout.py
* Finish test for component.generator
* fix git url parsing and add gitlab ci informations
* throw sys.exit 1 at the end of the experiment if one component has a error
* keyinterupt for workloads
* change regex for environment var matching in experiment.yaml
* parse <%= ENV[...] %> for environment variables and load this from the environment
* add starttime to experiment
* add starttime and endtime to components
* add get\_workloads to utils
* sample runs longer
* fix workload init
* move experiment clean to new workflow module
* refactor experiment perform workflow and add new components - systemcollector, resultstore
* smarter workflow implementation
* remove result interface from workload sample
* implement parallel resource deployment
* delete interface resource.endpoint - adapt samples
* move test data to test case spezific path
* implement parallel workloads and tests
* more tests in experiment perform
* implement first test for scotty experiment perform
* prepare samples for testing, add more gitignores, copy samples in tmp
* add test directory to scotty.py/scotty/ with functional and unit tests
* add python module futures for parallel execution
* own classmethode to validate interface + exception msg in own line for legibility
* rename report.collect\_baseline to collect\_static
* rename report.collect\_baseline to collect\_static
* add component states to workloads and resources and handle clean for both
* add report collector interfaces
* Add ComponentValidator and validate interfaces
* Implement states in experiment workflow - part 1
* revert checkout manager publish - source grep
* Implement tests to reach 100% coverage
* Add new tests
* Raised tests for config.py to 100%
* Raise test coverage for CommandParser to 100%
* Refactor test\_cmd and add tests for the commands: experiment & workload
* Implement tests for the resource cmd
* use enum for resource init action
* use enum for workload init action
* rename templates for resource and workload for better code highlighting
* Fix spelling in README template for resource
* Fix resource readme template
* fix 'ImportError: No module named' in custom component module
* make resource.params accessible from context
* Use logger instead of print in workload and resource templates
* Implement 'scotty resource init'
* use templates to create workload repo instead of write everything to the file
* add readme.md to new workload directories
* update templates/README.md.workload
* Fix column in templates/README.md.workload
* add template readme for workload init
* add experiment clean - implement workload init
* delete workflow (resource deploy / workload run) - fix tests - restructure samples
* update Readme
* update Readme
* update Readme
* update Readme
* Add install instructions
* Remove single run component
* update Readme
* change component copy do shutils.copytree and update README
* Add clean resource and check components in experimernt workflow
* implement utils and a workload example for utils
* move logging from utils to log
* Change CheckoutManger methods to classmethod
* Add context component - shorter exp workflow implentation, etc
* flake code
* add config path paramter to experiment
* Implement resource translation
* implement resource checkout in experiment
* fix test for workload context
* change context and implement resource deploy workflow
* remove checkout and project argument from resource cli
* move logging reduce to utils
* add pyyaml to requirements
* add Gitlab Runner install instructions
* delete zuul stuff
* merge and fix code
* fix git\_ref none for strings and flake8
* refactor some code for legibility
* refactor CheckoutManager for legibility
* fixing bug in scottyconfig
* add minor refactoring and correct typos
* implement git and file checkout for components
* remove flake8 from requirements
* use os.path.join in test\_experiment
* remove multiple import on one line
* add os.path.join instead of string concat
* smooth the code
* add flake8 to requirements.txt and add tox.ini for pytest and flake8
* add pytest config so you only need to run "pytest"
* add pytest coverage plugin to requirements
* prepare tests for pytest or nose2 and add pytest to requirements.txt
* add module path to resource component
* Remove legacy code
* mv code from modules experiment, workload, resource to workflow workspace components and delete this modules
* Add workspace for components
* mv workload, experiment, resource to components
* separate workspace to use it for all components
* fix naming in module loader test
* move module loader from workload and resource to scotty.core.moduleload
* rename scotty.core.checkout.Manager to scotty.core.checkout.CheckoutManager
* rename experiment run to perform
* rename Config to ScottyConfig - mv from utils to config.py
* jump to version 0.3.0
* rename resource run to deploy
* rename samples/component to samples/components
* add an example for running an experiment in the readme
* Update README.md
* writing tests for scotty.core.experiment
* minor formatting changes
* remove unused config path from workload.workspace / samples / test
* init scotty component type resource - restructure samples
* Implement workload option -c --config
* Fixing tests and adding new tests for experiments
* change update\_url handling
* clean code and reorder classes
* move WorkloadException from core.workload to core.exceptions
* remove Config Wrapper for dict from workload.py
* move scotty.experiment.Workload and scotty.experiment.WorkloadLoader to core.workload
* rename workload.WorkloadLoader to WorkloadModulLoader
* move experiment and worklad to core
* Implement core/exceptions
* Add exceptions for scotty
* merge
* Change to config object
* adding CheckoutManagerTest and others
* Fix workload checkout for experiments
* User context from workload data object
* Fix experiment and workload checkout
* implement workload run
* Remove unused git from workspace
* Fix workload config in experiment
* Remove unuse checkout in experiment workspace
* Implement workload checkout
* add load by dict to load WorkloadCOnfig over dictionary
* Implement experiment load
* Add run workflow for experiment and checkout parameters
* add sample for experiment
* init experiment command
* fixing tests; removing Config singleton; removing @builder
* add coverage to gitignore
* fix new structure for command parser and builder
* Pushing coverage to 99%
* pushing coverage to 98%
* adding coverage to readme
* adding CliTest
* Adding tests for utils; renaming DEFAULT to logging in scotty.conf
* Refactoring for testing, implementing WorkflowTest
* adding samples dir in workload, adding workload tests, mocking git
* refactoring workload functions
* Moving tests to new file, extending workloadloader tests
* Refactoring and adding exceptions
* Implement git clone for workloads / add project as workload parameter / handle environment parameters for workload
* Implement workload.workflow / load workload-gen run without git clone
* pep8 formating
* FIX 'CommandBuilder' object has no attribute 'command\_class'
* Saved code
* Add Command Class to registry CommandBuilder implementation in command is not necessary
* fixing formatting in README.md
* implementing use of workload\_conf; refactoring
* minimal version of the workload command
* renaming plugins.py to workload.py
* Add CLi class and use it in cli
* Renaming and refactoring
* lint code
* fixing formatting in README
* fixing test
* implementing the plugin mechanism
* Format code wich flake8 Named decorator parameters classes in scotty.cmd.base.CommandRegistry
* rm unused args class from utils
* Implement new command pattern for scotty cli
* add option --skip-checkout for workload-generator
* Update README.md
* Update README.md
* Update README.md
* Update README.md
* fallbacks for workload.yaml in workload-generator run
* Read zuul parameters from environment Add environment samples for workload and experiment
* implement workload-generator checkout and run
* fix workload-generator parameter
* add osmod config
* set log format from config
* remove swp files
* change logger in experiment
* Change logging format
* fix doublicate logging
* Add logging by logconfig
* fix log config
* ignore log directory
* first step workload-generator legacy
* handle option --not-run in experiment
* add option --not-run for experiment and workload-generator
* add log configuration and default directory
* remove legacy script gerrit-git-prep.sh
* change experiment parameter to workspace - implement experiment checkout
* add scotty config parser to utils
* add config for gerrit host
* remove implemented legacy scripts
* add requirement GitPython
* change argparser and implement experiment without checkout
* Add legacy experiment workflow (first implementation) - add experiment config
* Refactor cli
* Move COMMANDS list to central scotty module - for easy expansion
* Add dynamic methods to run pipelines
* Add destination pipeline for legacy parameter pipeline
* Fix Args object as parameter for commands
* Add .gitignore and remove .pyc from repo
* Add scotty.py as entrypoint - Add parser utility - Add subparser for legacy scripts
* Add new file
* Delete wrapper.py
* Add old jenkins scripts and empty wrapper.py
* Clean Repo
* Add version 0.0.1
* Delete component\_scheduler.py
* Delete workload\_generator\_scheduler.py
* Add new file
* Add new file
* Add new directory
* Add new file
* Add new file
* Delete .gitkeep
* Update experiment\_scheduler
* Add new file
* Add new file
* Delete .gitkeep
* Add new directory
* Add new file
* Add new file
* Delete .gitkeep
* Add new file
* Add new directory
* Add new directory
* Add readme.md
