Releases: RDTK/generator
Release 0.35
-
BUGFIX
Generating Jenkins jobs for projects which use thearchive
SCM no longer fails. -
ENHANCEMENT
The Jenkins installation performed by theinstall-jenkins
command now includes thepermissive-script-security
plugin which circumvents the approval mechanism for Groovy scripts. Please review the security implications before using a Jenkins installation created using theinstall-jenkins
command. -
ENHANCEMENT
When a project which uses GIT SCM specifies a sub directory, Jenkins SCM polling is now configured to ignore repository changes outside of that sub directory. -
ENHANCEMENT
The generator can now produce output for targets other than Jenkins jobs. Thegenerate
command will be supported for backward compatibility, but the newgenerate-jenkins
command should be used in newly written invocations. Additional targets will follow the same pattern, namelygenerate-TARGET
and will accept target-specific commandline options to the command. -
ENHANCEMENT
The newgenerate-dockerfile
command can be used to place into a specified output directory a Dockerfile with supporting scripts that build one or more distributions within a Docker container. -
ENHANCEMENT
The newgenerate-makefile
command can be used to write a Makefile into a specified output directory. When executed, that Makefile builds and/or installs one or more distributions in the filesystem. -
ENHANCEMENT
The newbuild
command builds or installs one or more distributions in the filesystem under the direct control of the generator process. -
ENHANCEMENT
Use HTTPS URL scheme in download URL forjenkins.war
. The download server now seems to reply with a 308 redirect otherwise. -
ENHANCEMENT
Consume and produce both the current and the legacy Jenkins permission configuration format. -
ENHANCEMENT
Git LFS (large file storage) is now supported. -
ENHANCEMENT
The commandsbuild
,generate-dockerfile
andgenerate-makefile
now handle arguments to directory-related commandline options better when the trailing slash is omitted.
Release 0.34.2
Bug fix release.
- ENHANCEMENT
Use HTTPS URL scheme in download URL forjenkins.war
. The download server now seems to reply with a 308 redirect otherwise.
Release 0.34
-
ENHANCEMENT (#53)
Theparameters
aspect now supports the parameter kind "password". However, a default value cannot be specified for parameters of this kind. -
ENHANCEMENT (#50)
When a variant of the--on-error
commandline option is supplied, errors during the analysis of a git repository (for example due to the repository being private) should no longer prevent the generation of a basic SCM configuration for the corresponding job. -
BUGFIX (#49)
Theinstall-jenkins
command is now more careful about downloading plugin versions that are compatible with the downloaded Jenkins core.
The command also tries to prevent newer Jenkins versions from entering the setup wizard when started for the first time. -
BUGFIX (#54, #55)
Configurations involving thewarnings-ng
plugin should no longer break with every update of the plugin (Thanks to Robert Haschke). -
BUGFIX
The variablesscm.username
andscm.password
are handled correctly.
Release 0.33
-
Linked against
libssl.so.1.1
for Ubuntu Focal (#47) -
INCOMPATIBLE-CHANGE
The following Jenkins plugins have been deprecated and seem to no longer be available for download:- Warnings
- Task Scanner
- Checkstyle
- PMD
For this reason, the generator no longer attempts to install the plugins when installing a new Jenkins instance. The "Warnings NG" plugin has
replaced the above plugins. The generator therefore now generates configuration data for the "Warnings NG" plugin by default. For Jenkins
instances that have the deprecated plugins installed, the previous generator behavior can be selected by setting the following variables:-D aspect.checkstyle.implementation=legacy -D aspect.pmd.implementation=legacy -D aspect.tasks.implementation=legacy -D aspect.warnings.implementation=legacy
-
ENHANCEMENT (#44)
The variablemessage
can be used to specify a message that should be displayed after processing a project or distribution. The generate command displays all such messages as the final output before terminating the generator process. Example message for a distribution:job-list: | * ${jobs.list} message: >- Will install your stuff into ${toolkit.dir}. Generated the following jobs: @{job-list}
-
ENHANCEMENT (#47)
The!b!include FILENAME
and!b!literal-include FILENAME
constructs can now refer to the to-be-included file in three ways:FILENAME-NOT-STARTING-WITH-/
is interpreted as a filename relative to the directory of the recipe file in which the include construct occurs./REST-OF-FILENAME-NOT-STARTING-WITH-/
is interpreted as an absolute filename.//REST-OF-FILENAME
is interpreted as a filename relative to the root directory of the repository containing the recipe file in which the include construct occurs, that isREPOSITORY-ROOT/REST-OF-FILENAME
.
So assuming a repository /home/recipes containing a recipe/home/recipes/projects/my-project.project
, include filename would be resolved as follows
!b!include patches/patch.diff → /home/recipes/projects/patches/patch.diff !b!include /usr/share/patches/patch.diff → /usr/share/patches/patch.diff !b!include //patches/patch.diff → /home/recipes/patches/patch.diff
Release 0.32
-
BUGFIX (#42)
Apparently, Jenkins at some point changed the way it installs and loads plugins such that it now expects installed plugin file to use the "jpi" extension. Theinstall-jenkins
command now uses this extension. -
BUGFIX
Thejson
report kind works again. -
ENHANCEMENT (#40, #41)
Jenkins recently started using a stricter cross-site request forgery (CSRF) protection scheme combining session cookies and a CSRF protection token. This stricter scheme is now supported. -
ENHANCEMENT (#39)
The new variabledependencies.required-upstream-result
controls the required status of upstream jobs in order to trigger builds of downstream jobs. Possible values are:success
- All upstream jobs must have successful builds.unstable
- All upstream jobs must have unstable (e.g. with test failures) or successful builds.any
- The build of the downstream job can start irregardless of the status of the upstream jobs.
The new variable
dependencies.required-result
can be used to specify the status of jobs required to trigger downstream jobs. This can be used to relax the threshold established viadependencies.required-upstream-result
in cases in which a known-unreliable upstream should still trigger downstream jobs. Note that marking the upstream job avoids the need to adapt the threshold in all downstream jobs. -
ENHANCEMENT (#45)
Dependency specifications (for example in theextra-requires
,extra-provides
,platform-requires
andplatform-provides
variables) can now use the following shorthand syntax:NATURE: TARGET
instead of the usualnature: NATURE target: TARGET
Release 0.31
-
ENHANCEMENT (#29)
The analysis cache is now used by default. The default cache directory is obtained by appendingbuild-generator/
to the XDG user cache directory. -
ENHANCEMENT (generalization of #31)
Template directories in recipe repositories can now contain aparents
file referencing other template directories in the same repository. Syntactically theparents
file is a YAML document the root node of which is a sequence of scalar nodes each of which is a relative directory pathname:# Fall back to templates in _common directory - ../_common
-
ENHANCEMENT (#30)
Recipe repositories can now contain aparents
file referencing other recipe repositories. The basic idea is: when a required recipe file cannot be found in the local repository, referenced repositories are probed and the recipe is loaded from a referenced repository if it can be found in one. Syntactically theparents
file is a YAML document the root node of which is a sequence of a single scalar node which is either- a directory pathname:
# Load recipes from sibling repository: - ../recipes-core/
- or a git URL:
A specific branch of a remote repository can be specified using the fragment part of the URL:
# Load recipes from remote repository: - https://github.com/rdtk/recipes-core
# Load recipes from remote repository: - https://github.com/rdtk/recipes-core#master ^^^^^^ branch
Referenced remote repositories are cloned into the configured cache directory when first accessed and updated on subsequent accesses.
- a directory pathname:
-
ENHANCEMENT
Analysis of the CMakeinclude()
commands succeeds in more cases. -
ENHANCEMENT
Analysis of ASDF systems can now extract executable names (:build-pathname
) and entry points (:entry-point
) from system definitions. -
ENHANCEMENT (#34)
Theinstall-jenkins
command no longer silently accepts invalid Jenkins usernames.
Release 0.30.1
Bug fix release.
- BUGFIX (#35)
Recipes passed as relative paths no longer cause an error.
Release 0.30
-
INCOMPATIBLE-CHANGE (#26)
Thenon-interactive
commandline option is no longer accepted. This change represents no reduction in functionality since the option did not have any effect. -
ENHANCEMENT
Computing variable values is substantially faster than before. As a result, many user-level commands complete more quickly: generating Jenkins jobs, computing system requirements and generating reports. -
ENHANCEMENT (#31)
It is no longer necessary to create symbolic links for template recipe files that are shared between multiple modes. When a required template fileMODE/NAME.template
does not exist,_common/NAME.template
is tried instead. -
ENHANCEMENT (#33)
Recipe files can now be placed into sub-directories. The respective directory name or names are part of the object name:Filename Object name projects/ordinary.project → "ordinary" projects/sub-directory/special.project → "sub-directory/special" distributions/sub1/sub2/two.distribution → "sub1/sub2/two"
The respective include syntax for projects and distributions uses this object name - not a (relative) path.
Release 0.29
-
ENHANCEMENT
Analysis of projects with cmake nature now recognizesfind_library
andfind_program
calls and turns them into the following feature requirements:find_library(OUTPUT_VAR NAME …) → nature: library target: NAME find_program(OUTPUT_VAR NAME …) → nature: program target: NAME
-
ENHANCEMENT (#23)
Thegenerate
command uses a better default pattern for deleting previously generated jobs if thedelete-other
commandline option is supplied, butdelete-other-pattern
is not supplied. The new default value corresponds to the regular expression(DISTRIBUTION-NAME₁|DISTRIBUTION_NAME₂|…)$
whereDISTRIBUTION-NAMEₖ
are the names of the distributions for which jobs are being generated. -
ENHANCEMENT (#24)
The console timestamper plugin for Jenkins is now supported. -
ENHANCEMENT (#25)
The console ANSI color plugin for Jenkins is now supported.
Release 0.28
-
INCOMPATIBLE-CHANGE
The legacy syntax for including project versions in distribution recipes, i.e.[ "NAME", "VERSION₁", "VERSION₂", … ]
, is no longer recognized. -
ENHANCEMENT (#19)
Variable assignments specified on the commandline using-D NAME=VALUE
are now taken into account when resolving project version includes in distribution recipes. That is, a project version include in a distribution recipe like the followingvariables: foo-tag: '1.1' versions: - project@v${foo-tag}
is now affected by a
-D foo-tag="1.2"
commandline option. -
BUGFIX
Analysis results for archives are now cached in some cases that should have worked but did not. -
ENHANCEMENT (#16)
The variable platform-provides can now be used to describe system packages in terms of provided features, thus interfacing with the automatically analyzed or manually declared required features of projects. For example, the following entry could be used to describe the Protocol Buffers C++ Library:platform-provides: - name: protocol-buffers-cpp-library variables: extra-provides: - nature: cmake target: ProtocolBuffers platform-requires: ubuntu: packages: - libprotobuf-dev
A project version requiring
cmake:ProtocolBuffers
would then automatically gainlibprotobuf-dev
as a platform requirement. -
ENHANCEMENT
Printing of error and warning messages has been improved:- Error and warning messages are now printed in color if it makes sense in the current context (apparently running interactively, non-dumb terminal)
- Messages should no longer be printed twice
-
BUGFIX
ssh sub-processes (started by git ) should no longer hang when encountering issues during host key verification. -
ENHANCEMENT (#15)
When processing information representing a person, names and email address explicitly specified in the name, aliases and identities sections of the corresponding person recipe take precedence over information collected during automatic analysis of project repositories. -
ENHANCEMENT (#11)
Theinstall-jenkins
command now accepts a profile option which can be used to choose among different Jenkins configuration profiles. The following profiles are currently built in:single-user
(default): the Jenkins installation will be used by a single user without additional slaveslocal-docker
: the Jenkins installation will use the Docker daemon on the local machine to dynamically create slaves