CHANGES
=======

0.9.0
-----

* Switch to new project-config repo
* Flatten attribute for publish plugins
* ModuleRegistry now cache entry points group
* Add PMD publisher
* Extend trigger_builds functionality
* wrappers: fixed locks for empty collection
* Adding support for the Powershell plugin
* Move ordereddict to requirements
* Revert "Some tweaks to get closer to Python 3 compat"
* Add support for the Jenkins Environment Script plugin
* Adds support for Change Assembly Version plugin
* Some tweaks to get closer to Python 3 compat
* Ensure dict orders are deterministic
* Implements wrapper for ownership plugin
* valgrind publisher: Add parameters to fail build
* Handle utf8 in JJB
* Added recursive option
* Add support for the Jenkins Valgrind publisher plugin
* SCM: rename `self` arguments to `parser`
* Adding feature to specify the user id for jenkins user credentials
* Work around PYTHONHASHSEED-related problems
* Apply defaults to job-templates parameters
* Allow configuration of Topics for Gerrit trigger
* git: Support timeout option
* doc update: add references to yaml local include files
* Clarify configuration and job definition
* Replace 'Testing JJB' with the term 'Test Mode'
* Add support for URLTrigger plugin
* Argparse is required for JJB to parse arguments
* Document default values for git scm
* Add support for 'ignore-notify' in git SCM
* add include/exclude regions/users in svn scm (doc and tests)
* Test defaults honors project variables
* Revert "Allow using template variables in "defaults" field."
* add logfilesize plugin support (doc, tests)
* Add Gitlab Merge Request trigger
* Specify logging string format arguments as function parameters
* Fix method name call when files cannot be found
* Show usage of job-group
* Support the Store SCM plugin
* Add support for reverse build trigger
* Allow `test` command to use conf files
* tests for JJB command processing
* Add support for Managed Script Plugin
* Add support for builder Groovy and System Groovy
* Change default Reply-To header to $DEFAULT_REPLYTO
* Document the Zuul triggers
* Allow using template variables in "defaults" field
* multijob: added kill-phase-on option
* Fix ant builder definition in complete test
* Use yaml local tags to support including files
* Make 'keep_descriptions' fully optional
* Consistency updates in documentation
* refactor cmd processor to make it slightly easier to test
* add presend-script to email-ext
* Fix a broken include in the configuration documentation

0.8.1
-----

* Adding second failure option to the email-ext module
* re-arrange docs for clarity
* remove misleading jjb example
* matrix project: add support for dynamic axis
* removed job configuration duplication in docs
* ssh publisher: add always-publish-from-master support
* Fixed referenced before assignment in zuul module
* authorization property: add extended read support
* reference tests as examples
* Add tox "coverage" target
* scms: MultiSCM is generated for scms hidden in macro
* update URL references to project
* add overview info to pypi

0.8.0
-----

* Fix typo: sigleton => singleton
* Support variable-specific substitutions in templates
* Add support for triggering on unreviewed patches
* Test creation of multiple jobs from templates
* Patch writexml for non standard XML DOM implementations
* Refactor the `matches` function
* Modularize to enable easier testing
* Checkstyle publisher did not honor 0 values
* Pass argv to main
* Fix recursion depth error caused by Git-remotes
* support execute-on for postbuildscript
* Tiny spelling fix: YMAL -> YAML
* Doc: Use VersionInfo from pbr and remove openstack common modules
* Fix "delete-all"
* Add additional yaml/xml tests, literalinclude them
* Treat ignore_cache as a boolean
* Add more tests
* Add some more Trove classifiers
* add tests for shell builder
* add support for python builder
* Catch EPIPE exception and return
* Update authorship information
* Fail if specified set of defaults is not found
* add timeout-var option to the timeout module
* Added support for Exclusion plugin
* Add support for multiple Gerrit servers in Gerrit trigger
* README.rst: Note GitHub PRs are auto-closed
* README.rst: Add links
* `test` command read/write stdin/stdout by default
* Add support for the Jenkins Doxygen publisher plugin
* Allow to specify multiple branches per project in Gerrit trigger
* Zuul parameter ZUUL_URL
* Add hacking to requirements
* Support Fitnesse results publisher
* Create the output_dir for the test subcommand
* add ability to parse from a file object
* Make logger available during tests
* Added config options to not overwrite jobs desc
* Make overrideDefaultExcludes line into 3 lines
* Make all help text start with lowercase letter
* Add support for Copy Artifact project copy permissions
* Sort ant builders settings for consistency
* Minor fixes in the installation documentation
* Fix some minor typos in the trigger documentation
* Support Matrix Tie Parent Plugin in wrappers
* Allow 'Build on the same node' in trigger-builds builder
* README.rst: Remove space before bullets
* Add support for Stash as a repository viewer
* Tests for checkstyle publisher
* Added send-to options support to email-ext plugin
* Enhance coverage for builder trigger-builds
* Output name of ini file when it's not valid
* Small documentation tweaks
* triggered-builds: Support property file injection
* Allow custom settings configs for maven projects
* SCM module: Add support for multiple Git remotes
* Add support for Slave Utilization plugin
* add retry-count in general.py
* fix the literalinclude reference to least-load test
* Clean up a few errant tabs in setup.cfg
* use {obj:key} as a way to pass an object and not only strings to templates
* Install the jenkins_jobs package on setup
* Add workspace scm
* Support the Post Build Script plugin
* Migrate to pbr
* Added support for CI Game plugin
* Fix typo in ircbot's default matrix-notifier
* ZMQ Event Publisher plugin support added
* Minor fixes in the trigger documentation

0.7.0
-----

* Ruby metrics plugin support added
* Support the new Always trigger type
* Fix doc error in the testng publisher
* make command parsing compatible with python 2.6
* Content-Type can now be set for email-ext publisher
* Use venv to build documentation
* Add attachment pattern expression to email-ext
* Test for email-ext publisher
* ArtifactDeployer Plugin support added
* Added support for Delivery Pipeline Plugin
* Campfire had a malformed doc syntax
* Fix unused variable in ci-skip wrapper
* Add support for TestNG publisher
* Added support for python virtualenv plugin
* Added support for Jenkins Campfire plugin
* Added support for least load plugin
* Fix misspelling in jenkins-job-builder
* allow missing reports for HTML publisher
* Heavy Job Plugin support added
* Added matrix trigger option to email-ext publisher
* Add best and worst status details for conditional-step plugin
* Add script trigger
* Do not produce extra whitespaces on Python 2.7.3
* Fix misspellings in jenkins-job-builder
* added logstash plugin support and fixed test typo
* Added clone-workspace publisher
* Enhance project specific parameters example
* Toplevel collection typecheck
* doc: fixed path including example for description setter
* Added support for Ci Skip Plugin
* Added support for Builds chain fingerprinter
* Support site monitor publisher
* make scm test as the example
* Zuul trigger no more send GERRIT_* env variable
* project_maven: allow to set private repository
* Add tests for YamlParser and patch 2.6 minidom
* Add support for Test Stability with Junit
* Added rbenv wrapper
* Add support for credentials-id in git repositories
* project_maven: Don't require artifact-id and group-id
* tests: Allow to test project parameters
* make job creation consistent
* Add local-branch option
* Fix multibyte character problem
* Fix references to examples in api documentation
* maven-deploy: don't require id
* Explain howto use maven's pre/postbuilders
* Add support for parameters in pipeline publisher
* Add support to specify GitLab version
* Implements: Archive publisher allow-empty setting
* Added support for Github notifier
* Fix format in installation.rst
* cloverphp publisher
* Pin Sphinx to <1.2
* Enable ignore_cache flag on jenkins_jobs.ini
* add private-repository, java-opts, settings and global-settings to maven-target
* Description Setter Plugin support added
* Fix GitHub pull request builder plugin support
* Add support for batch_tasks
* Corrected typo in example for pipeline plugin
* raise JenkinsJobsException instead of Exception
* ModuleRegistry now caches entry points lookup

0.6.0
-----

* Cleaned up fixtures. Removing vim editor settings
* Added support for Jenkins plugin Blame upstream committers
* update doc and add new JJB unit tests
* Ensure jobparams and group_jobparams are dict
* Added support for Stash Notifier
* fix jjb configuration documentation
* Added support for Emotional Jenkins
* use jjb tests as the examples
* fix jjb scp publisher example
* Fix string continuation exception
* Provide default ConfigParser object
* Updated gitblit projectname
* Deprecate projectName setting of CopyArtifact
* Added support for Git shallow clone parameter
* New base class to declare test cases and tests to the node option
* Fix format of debug message to be compatible with py2.6
* Add build-publisher to jenkins-job-builder
* Make -o option required if using 'test' command
* Add display-name job property
* Add CodeReview vote ability to the Gerrit trigger
* Fix indentation in example of Logrotate section
* fix typo
* Jenkins Dynamic Parameter Plug-in support
* Added default value of -1 for all logrotate attributes
* Inject passwords to the build as environment variables support added
* Adding support for the Build Result Trigger plugin
* publishers: correct XML element for boosttest xunit
* Jenkins Ownership Plugin
* Added globbed parameters to the job specification
* Make --delete-old more robust
* Allow use template variables in dictionnary key
* missing parameter error are no more meaningfull
* Raise exceptions when no entrypoint, macro or template found
* Add optional option to copyartifact plugin
* Flow project support
* Moved get_scenarios() function to a base module to make it easier to reuse
* Add repo scm
* log info on job deletion
* doc: fix up strict errors
* KeepLongStdio argument for JUnit publisher
* Add publisher for Git Publisher support
* stop ignoring doc/source/*
* Make sure tox does not call pip install with --pre
* Build Blocker Plugin support added
* Publish Over SSH Plugin option added
* Fix plot plugin support
* Ensure Conditional Builder produces valid class paths
* Add usage info to JJB documentation
* Add documentation for XDG_CACHE_HOME
* Fix plot plugin support
* Added support for JaCoCo plugin Publisher
* Added SBT builder support
* Add Plot plugin support
* Add IRCbot plugin support
* Add support for purging obsolete, managed jobs
* Make references to Jenkins plugins uniform
* Escape special characters in documentation
* Sort entry_points in setup.py for maintainability
* Fix typo in publishers documentation
* Add SLOCCount plugin support
* Revert "Adding AnsiColor Support"
* Adding AnsiColor Support
* Job-specific subst. in a job group's job list
* Fixed timeout wrapper
* Fixing override-votes for gerrit trigger
* Existing plugins improvements
* Add support for parameter filters in copyartifact
* Adding support for the Warnings plugin
* Document escaping braces in template literals
* Added more options to the Build Timeout plugin
* Added ignore-cache and flush-cache options
* Improved the gerrit trigger
* Use a more consistent style for booleans values
* Fix handling of optional parameter description
* ignore instead of fail when reading empty config files
* Added pre-scm-buildstep wrapper
* Added Robot Framework reports publisher
* Not sending description or disabled by default
* Added some more scm options
* Add support for the Summary Report publisher
* Pathignore plugin support added
* Add RVM (ruby version manager) support
* Added post-task publisher
* Allow the gitConfigName and gitConfigEmail values to be used
* Adding the Sauce OnDemand Plugin
* HTML Publisher plugin support added
* TextFinder plugin support added
* Add python26 multiline string assertion back
* Add python26 support
* Tests: Use a testscenarios for running tests
* Tests for publishers
* Add an option for the buildChooser
* xunit publisher was wrong with multiple types
* document JJB module execution order
* Adding root-build-script to gradle
* Fixing documentation
* Do not assume a failure message is specified
* Set dynamicTriggerConfiguration switch
* wrapper ansicolor now support different colormap
* Add support for job priority sorter plugin
* trigger_parameterized_builds: Add support restrict-matrix-project
* Metadata plugin module - largely based on Parameters module
* Add TAP test result handling ability
* add Environment File Plugin
* job filtering was not working properly

0.5.0
-----

* setup.py: Basic support for windows
* Maven: expose configuration of automatic archiving
* Fix job-specific parameters for job groups
* maven: support for MAVEN_OPTS
* Add excluded-regions and included-regions for GIT
* Allow to override ignore upstream changes setting
* Add Release plugin
* fix invalid yaml in archive example
* change latest_only to latest-only for consistency
* Add Deploy artifacts to Maven repository publisher
* Add Excluded Users support to Git SCM
* Add Current build status to Conditional BuildStep
* Installation doc setup.py
* Add support for the Team Foundation Server Plugin
* add post build workspace cleanup publisher
* Adding Build User Vars support
* Fixing copyartifact to work with latest version
* Adding Jabber Plugin
* Fixing ant java opts
* Add support for the performance plugin
* Pass svn revision to triggered jobs
* Enhance support for the Cobertura Coverage Plugin. Deprecates the coverage module
* Make it easier to run in place
* only generate XML for requested jobs
* Adding merge before build to git
* maven-target: Expose maven version and pom location
* add support for building with grails
* Add support for the promoted builds plugin
* email-ext: Expose reply-to and attach-build-log
* Add support for custom gradle version aka gradleName
* matrix jobs: Add slave axis support
* PublishOver: Expose several options
* Add msbuild plugin support
* Add support to the Conditional BuildStep plugin
* Make reuse of builders/publishers inside other components easier
* Add suport for the Publish over SSH plugin
* `test` can now takes several job names
* Add support for the MultiJob plugin
* Documentation fixes
* Add support for join trigger publisher
* Add support for password parameters
* Add jenkins-jobs command line tool
* Maven: Fix XML markup
* Adding 'switches' to gradle
* add an auth-token YAML parameter for the General Job Configuraion module
* matrix jobs now supports user-defined axes
* gerrit: Add file paths filtering support
* Adding Top-Level Maven Targets
* prevent duplicate XML expansion of job templates
* Add Sonar Plugin support
* Adding GitHub Pull Request Builder Plugin
* job cache now varies by remote url
* Jobs not tied to a node can roam
* job now supports a custom workspace
* restore ability to pass multiple jobs on 'update'
* gerrit: Use hyphenated key names
* gerrit: Add support for skipVote
* gerrit: Add support for on changed restored/abandoned
* gerrit: Support gerrit-trigger >= 2.6.0
* gerrit: Make triggerOn* parameters really use boolean values
* 'names' argument to update no longer required
* doc/configuration: Fix incorrect name "defaults"
* `update` can now takes several job names
* Add multi-SCM capabilities
* Fix checkstyle documentation
* Document current-params option for trigger-build
* ftp, cifs: Make optional prefixes really optionals
* ftp: Refactor using base_publish_over
* cifs: Externalize common code to base_publish_over
* publishers: Add support for Publish over CIFS
* Build when a change is pushed to GitHub
* Property file for parameterized downstream jobs
* Adding ability to specify Java Options to Ant
* Stop referring to openstack/openstack-ci-puppet
* Add support to copyartifact builder for flattening dirs
* Add support for passing git revision through a parameterized build trigger
* Fixing svn-tags to work correctly
* Copy Artifact Plugin now specifies which build
* Fixing trigger-parameterized-builds example
* Adding extended-choice functionality
* Gitignore: Add /etc/jenkins_jobs.ini and output/ directory
* Implement publisher.checkstyle
* publishers: added option to define groovy postbuild script
* Fixing Inject to not create empty tags
* Bugfix and tidy-up
* Raise exception for at least one type of syntax errors
* Remove setuptools-git from setup.py
* Documentation fixes to make Sphinx happy

0.4.0
-----

* Add ability to specify mavenName for maven jobs
* sphinx is now stricter
* Fixing defaults for email-ext
* Adding ability to use batch commands
* Adding new options to git checkout
* Fixing function name to follow standards
* Fixing capitalization of SubElement in wrappers.py
* Doc consistency between help and confirm text
* Add a jclouds wrapper
* add category support to throttle configuration
* Adding ability to specify the JDK to use. This change moves the top level config from builder.py into a separate file called general.py. This change also moves the assigned node work as well as the log rotator work into the general.py file. This change also adds the ability to specify the JDK for the build to use
* Updated .gitreview location
* Update README for project move
* Add ZUUL_REF parameter to zuul post jobs
* document parameter usage of Macros
* ant can now be passed properties
* add matrix job support
* Add option to specify Zuul URL
* Adding ablity to use the Env Inject Plugin with the Build Environment section. This adds the third place the Env Inject Plugin can be used
* Adding ability to specify the scm browser
* Add ability to use the JIRA Plugin. This change adds the ability for Jenkins to update relevant JIRA issues
* use the xdg cache directory for the job cache
* add support for copy-to-slave and copy-to-master
* add support for logparser publisher
* Adding ability to use the Gradle plugin
* add support for cppcheck result publisher
* git 'basedir' specify destination directory
* <builders/> should always be inserted in jobs
* Bump pep8 to 1.3.3
* Small doc fixes - A couple of typos - Avoid .yaml to be interpreted as manpage macro
* Update man_pages name to jenkins-jobs
* xunit publisher update for <failIfNotNew />
* Convert our README to ReStructuredText
* Update tox to exclude *egg for pep8
* Just give in and use setuptools_git

0.3.0
-----

* Add copyartifact builder to entry points and fix target attribute
* Use console_scripts entrypoint
* Add option to block up|down stream builds

0.2.0
-----

* git scm learned 'refspec' parameter
* Provide ZUUL_COMMIT to zuul triggered job
* jenkins user must have global read permission
* trivial whitespace errors in Sphinx
* zuul trigger now also adds ZUUL_UUID parameter
* Add a LICENSE file
* Adding ability to use the Repository Connector Plugin
* Adding ability to use the Locks and Latches plugin

0.1.0
-----

* Add etc folder to manifest
* Add openstack-common support for setup and version
* Adding ability to block build till triggered builds complete
* Adding ability to aggregate downstream test results
* Adding ability to use the Port Allocator Plugin
* Adding ability to fingerprint files
* Adding ability to checkout multiple svn repositories
* Adding ability to use the Email-ext plugin
* Adding ability to specify the ant installation to use
* Fix up example syntax in triggers.py
* Expose more options for the git scm handler
* Add pre-build support for the workspace cleanup plugin
* Fix up description of text_param and file_param
* Adding ability to use the Build Name Setter Plugin
* Add some style developer docs
* Add support for full authorization matrices
* Fix up examples so they're at least syntactically valid
* Adding ability to use the EnvInject Plugin
* Changing parameter order for 'trigger-builds' builder
* Add sample jenkins_jobs.ini configuration file
* Adding ability to use the mask passwords plugin
* Do not output XML if job name not specified ('pipeline', 'trigger-builds')
* Add support for giving lists to job templates
* Adding ability to checkout from subversion and use the list tags parameter with the parameterized build plugin
* Fixing documentation for the timed trigger
* Add BuildTrigger support
* Adding ability to use the validating-string parameter
* Adding ability to use the claim plugin
* Add copyartifact builder method
* Enable job-specific substitutions in a project's job list
* Fix docstring for pipeline publisher
* fallback to ./jenkins_job.ini conf
* publisher for xunit
* builder for ant
* Add 'delete-all' subcommand to clear all jobs from Jenkins
* Add additional search path to fix building of documentation
* Correct pip package for Jenkins in README.md
* Adding hipchat notification capability
* Adding some exception classes
* Add choice parameter type
* basic README for the newcomers
* Add email publisher/reporter
* Fix typo in --log_level argument help
* Allow for deletion of mulitple jobs
* Tweak jenkins-jobs to conform with pep8 (v1.2)
* Add some missing docs
* Make Jenkins Job Builder pass pyflakes checks
* Make code pass pep8 1.2 checks
* Add links to required Jenkins plugins in docs
* Add documentation
* Forcing string conversion on boolean parameter
* Adding 'pipeline' publisher to enable the build pipeline plugin
* Adding 'builders-from' builder
* Adding 'current-parameters' option to trigger-builds
* Setting throttle values to default to 0 (instead of None)
* Adding logger (updated following suggestions from jeblair)
* Adding 'quiet-period' option
* Remove openstack-specific description
* Add defaults
* Simplify the xml test paths
* Add property injection specification
* Fix early exit from compare test
* Add test to determine whether XML output has changed
* Add rootpom option to maven jobs
* Improve scp publisher
* Add new zuul parameters
* Change pep8 publisher to generic violations
* Add tox.ini and pep8, pyflakes cleanup
* Remove openstack config files
* Fix "update" command
* Remove example config
* Standardize redundant jobs
* Change all '_' to '-' in YAML for consistency
* Refactor modules and templating
* Add .gitreview
* Set timeouts for all jobs
* Add periodic bitrot check jobs
* Use oneiric for stable/diablo
* Fix zuul-docs being disabled
* Switch zuul to jenkins python jobs template
* Collect Xunit results from horizon selenium tests
* Add framework for selenium tests on test slaves
* Trim down some un-needed repetition
* Add PBR to Jenkins/zuul
* Use devstack-oneiric for stable/diablo
* Collect tempest nosetests output files
* Add gerritbot and gerritlib jobs
* Set pipefail when running `tox | tee`
* Add gerrit-verification-status-plugin project
* Split jobs into multiple templates
* Run gerrit-git-prep in docs/coverage jobs
* Only build tarball once for client libs
* Make Jenkins use Openstack instead of Stackforge
* Migrate Stackforge Jenkins/Gerrit to OpenStack
* Trigger docs and coverage via zuul
* Upload client lib tarballs to their own place
* Run pypi uploads on a pypi slave
* Use zuul_post trigger instead of zuul trigger
* Disable authenticated builds globally
* Add Jenkins jobs for openstack-common. Will gate
* Remove disabled flag from python27-essex
* Fix spelling of ceilometer job names
* First stab at auto-uploads
* Move client tarballs to main project
* Discard old builds on more jobs
* Remove buildWrappers from base xml
* Add devstack jobs to job builder
* Abate modules section
* Add Zuul module to job filler
* Fix syntax errors in ceilometer
* Changes to builders/publishers
* Update doc FTP destination dir
* Add FTP doc publishing job
* Remove melange related jobs
* Switch pyflakes builder to use tox
* Remove check jobs
* Move the rest of the jobs to precise
* Publish xunit test results for unittests jobs
* Start moving to precise
* Add tempest to job filler/zuul
* Add py26-essex and py27-essex jobs to ceilometer
* Switch all jobs to Zuul
* Switch openstack-ci-puppet to zuul
* Add openstack-ci-puppet to job filler
* Add post-merge queue
* Disable scm when gerrit-git-prep in use
* Switch gerrit repo to zuul
* Add pypi-mirror to jobs config
* Allow check jobs to run in parallel
* Add support for maven jobs
* Update zuul job params
* Switch stackforge to oneiric
* Put the publisher info in the right section
* Publish wars from unittests
* Change zuul endpoint port
* Add missing zuul parameters
* Switch stackforge jobs to precise builders
* Add Zuul jobs
* Upgrade ceilometer to have all common jobs
* Change gerrit jobs to use tools/release.sh
* Revert "Fix tarball jobs"
* Fix NOMILESTONE
* Fix tarball jobs
* Fix name off-by-one
* Add horizon and melange
* Add support for jobs to build gerrit
* Finish removing ppa jobs
* Added the rest of the openstack projects
* Fix YAML parsing
* Make all Python pass pyflakes
* Stackforge Jenkins Jobs changes
* Support dependent changes in gerrit-git-prep
* Disable ppa jobs
* Fix is_job call
* Fix Jenkins Jobs for Heat
* Move to sync with heat-api/heat on github
* Fix key errors
* Check key exists before testing if it is true
* Don't use copy_bundle builder since it is now gone
* Fix Jenkins Jobs XML and missing package
* Remove venv jobs
* Timed trigger and pollscm are different things
* Add first openstack projects
* Add merge-check to Ceilometer
* Port job_filler to python-jenkins
* Add heat project to Stackforge
* Add support for overriding verify votes
* Jenkins Job Builder 2.2
* Version 2.1 of Jenkins Jobs Builder
* Jenkins Job builder 2.0
