Releases: RDTK/generator
Release 0.35
-
BUGFIX
Generating Jenkins jobs for projects which use thearchiveSCM no longer fails. -
ENHANCEMENT
The Jenkins installation performed by theinstall-jenkinscommand now includes thepermissive-script-securityplugin which circumvents the approval mechanism for Groovy scripts. Please review the security implications before using a Jenkins installation created using theinstall-jenkinscommand. -
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. Thegeneratecommand will be supported for backward compatibility, but the newgenerate-jenkinscommand should be used in newly written invocations. Additional targets will follow the same pattern, namelygenerate-TARGETand will accept target-specific commandline options to the command. -
ENHANCEMENT
The newgenerate-dockerfilecommand 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-makefilecommand 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 newbuildcommand 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-dockerfileandgenerate-makefilenow 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)
Theparametersaspect 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-errorcommandline 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-jenkinscommand 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-ngplugin should no longer break with every update of the plugin (Thanks to Robert Haschke). -
BUGFIX
The variablesscm.usernameandscm.passwordare handled correctly.
Release 0.33
-
Linked against
libssl.so.1.1for 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 variablemessagecan 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 FILENAMEand!b!literal-include FILENAMEconstructs 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-FILENAMEis 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-jenkinscommand now uses this extension. -
BUGFIX
Thejsonreport 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-resultcontrols 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-resultcan 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-resultin 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-requiresandplatform-providesvariables) can now use the following shorthand syntax:NATURE: TARGETinstead 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 aparentsfile referencing other template directories in the same repository. Syntactically theparentsfile 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 aparentsfile 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 theparentsfile 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-jenkinscommand 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-interactivecommandline 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.templatedoes not exist,_common/NAME.templateis 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_libraryandfind_programcalls 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)
Thegeneratecommand uses a better default pattern for deleting previously generated jobs if thedelete-othercommandline option is supplied, butdelete-other-patternis 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=VALUEare 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:ProtocolBufferswould then automatically gainlibprotobuf-devas 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-jenkinscommand 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