jenkins-job-builder/doc/source/changelog.rst
Vsevolod Fedorov 2fb1a53c44 Update changelog for release 6.4.1
Change-Id: I344f7f8d8e099e9ac4f563a7c2d938d1c700bb43
2024-07-10 18:01:46 +03:00

254 lines
11 KiB
ReStructuredText

Changelog
==========
Release 6.4.1
-------------
Bugs fixed
~~~~~~~~~~
* Reverted commit: Allow `disabled` to remain the last setting.
With it, new jobs without a `disabled` value configured in their source would fail
to be created on Jenkins.
Release 6.4.0
-------------
Features added
~~~~~~~~~~~~~~
* githuborg: Pull build strategies into parent xml.
* githuborg: Support ignoring archived repositories in an organization.
* Add support for clean-first parameter of repo scm.
* Add labels to lauch build property for gitlab trigger.
* Cache raw YAML parsing results of files.
* Add job_builder option to load extra modules for jinja2 filters.
Bugs fixed
~~~~~~~~~~
* include-raw-verbatim fails on job-template
(`Story 2011112 <https://storyboard.openstack.org/#!/story/2011112>`_).
* Require setuptools for pkg_resources.
* Fix links to nexus platform plugin.
* Fix expansion on `{obj:key}` variable on includes.
* Allow `disabled` to remain the last setting.
Release 6.3.0
-------------
Features added
~~~~~~~~~~~~~~
* Add support for filtering repositories in GitHub Organizations.
Bugs fixed
~~~~~~~~~~
* Recursively find jinja2 vars from templates.
(`Story 2011116 <https://storyboard.openstack.org/#!/story/2011116>`_).
Release 6.2.0
-------------
Features added
~~~~~~~~~~~~~~
* ``--delete-old`` flag for ``update`` cli command is now deletes obsolete views also, not only jobs.
* Add ``--force`` flag to ``delete-all`` cli command to allow it's usage in scripts.
Bugs fixed
~~~~~~~~~~
* Do not delete obsolete jobs when ``--views-only`` option specified.
* Add readthedocs configuration file. RTD now requires it. Fixes documentation build on RTD.
Release 6.1.0
-------------
Features added
~~~~~~~~~~~~~~
* Update TAP publisher plugin (by Kienan Stewart).
* Add tags: ``!include-raw-verbatim:`` and ``!include-raw-expand:``. Tags ``!include-raw:`` and ``!include-raw-escape:`` are now deprecated.
* Macros can now use parameters specified in defaults, the same way as job-templates.
See this examples:
* `macro-uses-global-defaults.yaml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/910877/4/tests/yamlparser/job_fixtures/macro-uses-global-defaults.yaml>`_
* `macro-uses-custom-defaults.yaml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/910877/4/tests/yamlparser/job_fixtures/macro-uses-custom-defaults.yaml>`_
* Macros can now define default parameters in their body the same way as jobs, job-templates and projects.
See this example:
`macro-parameter-precenence.yaml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/910880/5/tests/yamlparser/job_fixtures/macro-parameter-precenence.yaml>`_
.. note::
After moving to 6.1.0 release, to remove deprecation warnings make these adjustments to your JJB sources:
* Replace tags ``!include-raw:`` -> ``!include-raw-expand:``.
* Replace tags ``!include-raw-escape:`` -> ``!include-raw-verbatim:``.
Release 6.0.0
-------------
Changes breaking backward compatibility
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* Jobs are now expanded the same way as job templates.
* Macros without parameters are now expanded the same way as macros with parameters.
* Tags ``!include-raw``: and ``!include-raw-escape:`` should now be used the same way in jobs
and macros without parameters as they are used in job templates and macros with parameters.
See also these stories:
* Expand jobs the same way as job templates are expanded (`Story 2010963 <https://storyboard.openstack.org/#!/story/2010963>`_).
* Expand macros even if called without arguments (`Story 2010588 <https://storyboard.openstack.org/#!/story/2010588>`_).
.. note::
To move to 6.0.0 release, make these adjustments to your JJB sources:
For every job and macro without parameters:
* Duplicate curly braces: ``{...}`` -> ``{{...}}``.
* Replace tags ``!include-raw:`` -> ``!include-raw-escape:``.
See this example: `job-and-macro-expansions.yaml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/900858/8/tests/yamlparser/job_fixtures/job-and-macro-expansions.yaml>`_.
Also, global defaults are now used when expanding job elements the same way as they are used for expanding job templates.
See this example:
`concat_defaults003_job.yaml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/901665/7/tests/yamlparser/job_fixtures/concat_defaults003_job.yaml>`_
`concat_defaults003_job.xml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/901665/7/tests/yamlparser/job_fixtures/concat_defaults003_job.xml>`_
Release 5.1.0
-------------
Features added
~~~~~~~~~~~~~~
* Added macro call context to errors.
* Removed cap on setuptools version (`Story 2010842 <https://storyboard.openstack.org/#!/story/2010842>`_).
* Added support for Python 3.11.
Bugs fixed
~~~~~~~~~~
* Restored macros support for notifications. It was lost with 5.0.0 release.
* Folder defined at defaults is ignored
(`Story 2010984 <https://storyboard.openstack.org/#!/story/2010984>`_).
* Wrong files adding by tag !include-raw (include-raw-escape, etc)
(`Story 2010711 <https://storyboard.openstack.org/#!/story/2010711>`_) (by Maxim Trunov).
* On multibranch projects ignore-tags-older-than and ignore-tags-newer-than are inverted
(`Story 2004614 <https://storyboard.openstack.org/#!/story/2004614>`_) (by Michal Szelag).
* Legacy plugin version comparison (`Story 2010990 <https://storyboard.openstack.org/#!/story/2010990>`_).
This also closed:
- `Story 2009943 <https://storyboard.openstack.org/#!/story/2009943>`_:
PostBuildScript Plugin Version Format Change in 3.1.0-375.v3db_cd92485e1 Breaks Job Builder Version Compares.
- `Story 2009819 <https://storyboard.openstack.org/#!/story/2009819>`_:
Slack Plugin Version Format Change in 602.v0da_f7458945d Breaks Job Builder Version Compares.
* Support for obsolete format of pre-scm-buildstep
Release 5.0.4
-------------
Bugs fixed
~~~~~~~~~~
* Dimension parameter overrides bug (`Story 2010883 <https://storyboard.openstack.org/#!/story/2010883>`_).
Release 5.0.3
-------------
Features added
~~~~~~~~~~~~~~
* Added tokenCredentialId parameter support to generic-webhook-trigger (by Oleg Stiplin).
* Axis in project parameters are now expanded before enumerating it's jobs.
For example, see test
`include-param.yaml <https://opendev.org/jjb/jenkins-job-builder/src/branch/master/tests/yamlparser/job_fixtures/include-param.yaml>`_
(`include-param.yaml.inc <https://opendev.org/jjb/jenkins-job-builder/src/branch/master/tests/yamlparser/job_fixtures/include-param.yaml.inc>`_)
Release 5.0.2
-------------
Bugs fixed
~~~~~~~~~~
* Macro call with null parameters.
Release 5.0.1
-------------
Bugs fixed
~~~~~~~~~~
* JJB fails on empty YAML file
Release 5.0.0
-------------
Changes breaking backward compatibility
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
* YAML parser/expander is rewritten.
- More aggressive parameter expansion. This may lead to parameters expanded in places where they were not expanded before.
See changes in this test for examples:
* `inter-parameter-expansion.yaml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/871965/5/tests/yamlparser/job_fixtures/inter-parameter-expansion.yaml>`_
* `inter-parameter-expansion.xml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/871965/5/tests/yamlparser/job_fixtures/inter-parameter-expansion.xml>`_
- Top-level elements, which is not known to parser (such as 'job', 'view', 'project' etc), are now lead to parse failures.
**Fix:** Prepend them with underscore to be ignored by parser. For example:
* `custom_retain_anchors_include001.yaml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/871965/5/tests/loader/fixtures/custom_retain_anchors_include001.yaml>`_
- Files included using ``!include-raw:`` elements and having formatting in it's path ('lazy-loaded' in previous implementation) are now expanded too.
**Fix:** Use ``!include-raw-escape:`` for them instead.
See changes in these tests for examples:
* `lazy-load-jobs-multi001.yaml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/871965/5/tests/yamlparser/job_fixtures/lazy-load-jobs-multi001.yaml>`_
* `lazy-load-jobs-multi002.yaml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/871965/5/tests/yamlparser/job_fixtures/lazy-load-jobs-multi002.yaml>`_
* `lazy-load-jobs001.yaml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/871965/5/tests/yamlparser/job_fixtures/lazy-load-jobs001.yaml>`_
- Parameters with template value using themselves were substituted as is. For example: ``timer: '{timer}'`` was expanded to ``{timer}``.
Now it leads to recursive parameter error.
See changes in this test for example:
* `parameter_name_reuse_default.yaml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/871965/5/tests/yamlparser/error_fixtures/parameter_name_reuse_default.yaml>`_
* `parameter_name_reuse_default.xml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/871965/5/tests/yamlparser/job_fixtures/parameter_name_reuse_default.xml>`_
* `parameter_name_reuse_default.error <https://review.opendev.org/c/jjb/jenkins-job-builder/+/871965/5/tests/yamlparser/error_fixtures/parameter_name_reuse_default.error>`_
- When job group includes a job which was never declared, it was just ignored. Now it fails: job is missing.
See changes in this test for example:
* `job_group_includes_missing_job.yaml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/871965/5/tests/yamlparser/error_fixtures/job_group_includes_missing_job.yaml>`_
* `job_group_includes_missing_job.xml <https://review.opendev.org/c/jjb/jenkins-job-builder/+/871965/5/tests/yamlparser/job_fixtures/job_group_includes_missing_job.xml>`_
* `job_group_includes_missing_job.error <https://review.opendev.org/c/jjb/jenkins-job-builder/+/871965/5/tests/yamlparser/error_fixtures/job_group_includes_missing_job.error>`_
Features added
~~~~~~~~~~~~~~
* Error handling is improved: now JJB shows tracebacks with error locations
See these `tests <https://opendev.org/jjb/jenkins-job-builder/src/branch/master/tests/yamlparser/error_fixtures>`_ for examples.
* Added support for Python 3.9 and 3.10.
* Added configuration for Suppress SCM Triggering (by Piotr Falkowski).
* Added discord-notifier publisher (by Ettore Leandro Tognoli).
Bugs fixed
~~~~~~~~~~
* ``--enabled-only`` option when updating jobs (by Thomas Bechtold).
* Default value does not propertly unescape curly braces
(`Story 2006270 <https://storyboard.openstack.org/#!/story/2006270>`_).
* Different behaviour on defaults list and inline variables for Jenkins Job Builder
(`Story 2008510 <https://storyboard.openstack.org/#!/story/2008510>`_).
* TypeError: argument of type ``Jinja2Loader`` is not iterable
(`Story 2010428 <https://storyboard.openstack.org/#!/story/2010428>`_).
* ``yaml.load`` without ``Loader=`` is deprecated
(`Story 2006725 <https://storyboard.openstack.org/#!/story/2006725>`_).
* ``j2-yaml`` is not allowed inside macro body
(`Story 2010534 <https://storyboard.openstack.org/#!/story/2010534>`_).