- introduce separate unpacked war directories for
test
andgeneratedJenkinsTest
so they can use different plugins while retaining backwards compatibility - remove jenkins-war from
test
's classpath - improve task dependencies:
test
depends ongenerateTestHpl
(wastestClasses
) - improve input modeling:
test
andgeneratedJenkinsTest
classpaths includegenerateTestHpl
- introduce
jenkinsTestGeneration
sourceSet - dedicated configuration for generating the test class - introduce
generatedJenkinsTest
- dedicated test task for running generated tests, allows for using other test frameworks in thetest
task without negatively impacting the generated tests - introduce
generateJenkinsTests
- tested to ensure generated code is warning-free - deprecate
insertTest
task - usegenerateJenkinsTests
- upgrade dependency
org.jenkins-ci.main:jenkins-test-harness:2.60
->1529.v4fd5bafdcd33
- set
java.awt.headless
ontest
andgeneratedJenkinsTest
tasks - deprecate
JpiExtension#getDisabledTestInjection()
- usegenerateTests
property - deprecate
JpiExtension#setDisabledTestInjection(boolean)
- usegenerateTests
property - deprecate
JpiExtension#getInjectedTestName()
- usegeneratedTestClassName
property - deprecate
JpiExtension#setInjectedTestName(String)
- usegeneratedTestClassName
property - deprecate
JpiExtension#getRequirePI()
- userequireEscapeByDefaultInJelly
property - deprecate
JpiExtension#setRequirePI(boolean)
- userequireEscapeByDefaultInJelly
property - updated to Gradle 6.8.3
- improves task avoidance by properly modeling manifest generation inputs #179 JENKINS-58205
- introduce
generateJenkinsManifest
task for creating the jar and jpi manifest - introduce
generateJenkinsSupportDynamicLoadingManifest
for aggregating the@Extension
annotations - introduce
generateJenkinsPluginDependenciesManifest
for building the plugin dependencies entry - introduce
generateJenkinsPluginClassManifest
for scanning built sources to find an optionalhudson.Plugin
subclass - fix hpl generation task input tracking by depending on
generateJenkinsManifest
- fix problem where server would miss newly updated sources unless explicitly built first
- deprecate
configureManifest
task - deprecate
org.jenkinsci.gradle.plugins.jpi.JpiManifest
- use the output ofGenerateJenkinsManifestTask
instead - deprecate
org.jenkinsci.gradle.plugins.jpi.JpiHplManifest
- use the output ofGenerateHplTask
instead - deprecate
org.jenkinsci.gradle.plugins.jpi.JpiExtension#testSourceTree
- resolve through Gradle - deprecate
org.jenkinsci.gradle.plugins.jpi.JpiExtension#mainSourceTree
- resolve through Gradle - deprecate
org.jenkinsci.gradle.plugins.jpi.JpiExtension.Developers
- see Gradle-managedorg.jenkinsci.gradle.plugins.jpi.core.PluginDeveloper
- deprecate
org.jenkinsci.gradle.plugins.jpi.JpiExtension#developers
- seeJpiExtension#getPluginDevelopers()
- introduce
checkAccessModifier
task as a dependency ofcheck
- it will not fail the build by default - support
-PcheckAccessModifier.useBeta=true
to opt into beta APIs - add
:sourceJar
dependency on:localizer
to fix Gradle 7.0 warning - fix cyclic dependency when using
java-test-fixtures
plugin #175
- use
jenkinsPlugin.shortName
as base name of jar #163 - remove plugins from server work dir when removed from dependencies #165
- introduce
generateTestHpl
for task name consistency (generate-test-hpl
depends ongenerateTestHpl
) - use same task class for
generateTestHpl
andgenerateJenkinsServerHpl
- introduce
checkOverlappingSources
cacheable task (was part of JpiManifest creation) - introduce
generateJenkinsServerHpl
cacheable task (was part ofserver
) - introduce
installJenkinsServerPlugins
cacheable task (was part ofserver
) - rewrite
server
task to beJavaExec
, fixing bug where server continues to run in background #151 - introduce
jenkinsServerRuntimeOnly
configuration, allowing dependencies to be added to theserver
task's classpath - improve error message when
jenkinsPlugin.jenkinsVersion
is not set #148 - remove
mavenLocal()
declaration from project applying plugin #161 - remove dependency on
org.jenkins-ci:version-number
- add reason to dependencies added by org.jenkins-ci.jpi plugin
- add sezpoz to
testAnnotationProcessor
in project applying plugin #167 - updated to Gradle 6.7.1
- use variant-aware dependency management - PR #132, allowing publication of Gradle Module Metadata
- only configure sources and javadoc variants if
configurePublishing
istrue
- PR #140, enabling the use of opinionated publishing plugins without duplicate artifacts - requires Gradle 6.0 or later
- remove
jenkinsPlugins
in favor of usingimplementation
- remove
optionalJenkinsPlugins
in favor of using Gradle feature variants - remove
jenkinsTest
in favor of usingtestImplementation
- updated to Gradle 6.3
- upgrade dependency
org.jenkins-ci.main:jenkins-test-harness:2.31 -> 2.60
added to projects - PR #133 - updated to Gradle 6.1.1
- support version constraints, including platforms, when using Gradle 5.3+ - PR #128
- publish failed part of the way through
- disable module metadata generation because it does not contain all variants - PR #127
- fix testClasses task dependency so it runs generate-test-hpl - PR #125
- include plugin classes as a jar JENKINS-54064 - PR #123
- fix use of deprecated properties in Gradle 6.0 - PR #124
- configure tasks with lazy #named:
- compileJava
- processTestResources
- jar
- javadocJar
- sourcesJar
- war
- configure tasks with lazy #configureEach:
- GroovyCompile
- JavaCompile
- register existing tasks with lazy #register:
- configureManifest
- generate-test-hpl
- generateLicenseInfo
- insertTest
- javadocJar
- jpi
- localizer
- resolveTestDependencies
- server
- sourceJar
- let Gradle create JpiExtension instead of manually instantiating
- use of task avoidance APIs requires at least Gradle 4.9 (released: 2018-07-16)
- updated to Gradle 6.0.1
- updated to Gradle 6.0
- fix property annotation of
TestDependenciesTask#configuration
in response to Gradle warning - make
GenerateTestHpl#hplDir
propertyfinal
in response to Gradle warning - formatting consistency improvements to in-repo documentation
- updated implementation dependency org.jenkins-ci:version-number:1.0 -> 1.1
- updated implementation dependency org.jvnet.localizer:maven-localizer-plugin:1.13 -> 1.24
- updated test dependency org.apache.commons:commons-text:1.6 -> 1.8
- updated test dependency org.spockframework:spock-core:1.2-groovy-2.5 -> 1.3-groovy-2.5
- updated test dependency org.xmlunit:xmlunit-core:2.3.0 -> 2.6.3
- put work directory inside the project directory instead of at root level PR #113
- updated to Gradle 5.5
- Support publishing POMs with resolved versions when dependencies are declared with dynamic versions - PR #112
- updated to Gradle 5.4.1
- Use Gradle DSL for POM customization to allow multiple customizations to co-exist. For example, if you have multiple plugins that set the POM's description from the project description, they work OK together if both using the DSL. This plugin was creating another node, which resulted in duplicate elements. This feature has been available since Gradle 4.8 (released 2018-06-04).
- Enable publishing gradle metadata
-SNAPSHOT
plugin version suffix format changed from1.0-SNAPSHOT (private-01/31/1997 11:35-auser)
to1.0-SNAPSHOT (private-1997-01-31T11:35:00Z-auser)
. Previously the format was timezone-dependent, had no indication of which timezone it was from, and did not conflict resolve correctly. ISO8601 timestamps solve all three issues.jenkinsTest
dependencies now have jars added totestImplementation
instead oftestCompile
.testCompile
has been deprecated since Gradle 4.7 (released 2018-04-18).- Copy dependencies to desired configurations by using
Configuration#withDependencies
instead of checking the hierarchy and state of configuration resolution before copying. The previous way ended up making the final result dependent on the order configurations were resolved in, which wasn't guaranteed by Gradle. This feature has been present since Gradle 4.4 (released 2017-12-06). - Include a reason on the copied jar dependencies, using the
because
api, present since Gradle 4.6 (released 2018-02-28). - updated to Gradle 5.3.1
- skip Jenkins setup wizard on server task (PR #109)
- fix deprecation warning when running on Gradle 5.0
- updated to Gradle 5.0
- add
org.jenkins-ci.main:jenkins-core
toannotationProcessor
config if >= Gradle 4.6 - drop java 7 testing from CI - Jenkins and Gradle both have Java 8 minimum requirement now
- updated to Gradle 4.8.1
- plugin is now compatible with Gradle 4.8
- updated to Gradle 4.6
- bundle license and dependency information (JENKINS-27729)
- added
jenkinsServer
configuration that can be used to install extra plugins for theserver
task - the
junit:junit-dep:4.10
dependency is no longer added tojenkinsTest
configuration for core versions >= 1.505 (JENKINS-48353) - use Jenkins Test Harness 2.31 for core versions greater than 2.63 (JENKINS-47988)
- allow to override
repoUrl
andsnapshotRepoUrl
settings from the command line (JENKINS-45588)
- fixed support for core versions >= 2.64 (JENKINS-46899)
- updated to Gradle 3.5.1
- fixed incremental build (JENKINS-45126)
- fixed transitive plugin dependency resolution, plugin dependencies must not longer be specified with artifact only notation (JENKINS-35412)
- fixed compatibility with Gradle 3.4
- removed the classes
org.jenkinsci.gradle.plugins.jpi.Jpi
andorg.jenkinsci.gradle.plugins.jpi.JpiComponent
as they are no longer used by the plugin - the
jpi
task has been replaced by the standardwar
task and changed to a no-op tasks that depends on thewar
task, use thewar
task to customize the JPI/HPI archive
- updated to Gradle 3.2.1
- strip version from plugin file names in
test-dependencies
directory to mimic the behavior of the Maven HPI plugin better - allow to configure licenses for the generated POM (#83)
- updated to Gradle 3.2
- dropped support for building with Java 6
- do not apply "maven-publish" plugin if
configurePublishing
isfalse
(#80) - fixed problem with missing
Plugin-Class
attribute in generated manifest (JENKINS-38920)
- Fixed Servlet API dependency for Jenkins 2.0 and later (JENKINS-34945)
- removed reference to parent POM from generated POM and declare relevant dependencies directly (JENKINS-34874)
- updated Gradle to version 2.13
- copy plugin dependencies to
test-dependencies
directory instead ofplugins
directory to mimic the behavior of the Maven HPI plugin (#74)
- updated Gradle to version 2.8
- fixed a classpath problem in the
localizer
task (#71) - allow to specify the HTTP port for the
server
task with thejenkins.httpPort
project or system property (JENKINS-31881) - changed default repository URL to
https://repo.jenkins-ci.org/releases
- changed default snapshot repository URL to
https://repo.jenkins-ci.org/snapshots
- use HTTPS URLs for
repo.jenkins-ci.org
- updated Gradle to version 2.5
- removed the
stapler
task and thestaplerStubDir
property, Gradle will generate stubs for annotation processors (see Support for “annotation processing” of Groovy code) - set outputs for
insertTest
andgenerate-test-hpl
tasks to fix problems with incremental builds - fixed injected test suite to avoid compile time warnings
- make SezPoz quiet by default, use
--info
or--debug
to get output
- use Jenkins Test Harness 2.0 for core versions greater than 1.644 (JENKINS-32478)
- added
Extension-Name
entry toMANIFEST.MF
(JENKINS-31542)
- copy HPI/JPI dependencies from {{jenkinsTest}} configuration to {{plugin}} folder on test classpath (JENKINS-31451)
- removed install script
- fixed a regression introduced in 0.13.0 which causes the manifest to be empty (JENKINS-31426)
- fixed a problem with incremental builds (JENKINS-31186)
- fixed StackOverflowError when using Gradle 2.8 (JENKINS-31188)
- allow to override system properties for the embedded Jenkins instance which is started by the
server
task (JENKINS-29297)
- added a dependency from the
assemble
to thejpi
task to hook into the standard lifecycle
- allow JPI/HPI file extension and packaging type to be configured by the
fileExtension
property, which will default tohpi
(JENKINS-28408)
- changed packaging in generated POM back to jpi to fix a regression bug (JENKINS-28305)
- add manifest to the plugin JAR file (JENKINS-27994)
- removed
jenkinsCore
dependencies from generated POM because those are inherited from the parent POM - removed runtime scope from plugin and compile dependencies in generated POM
- mark optional plugins in generated POM
- changed packaging in generated POM to hpi for compatibility with maven-hpi-plugin
- copy plugin dependencies to test resources output directory to be able to use
@WithPlugin
in tests
- localize only
Message.properties
files (JENKINS-27451)
- renamed the
localizerDestDir
option tolocalizerOutputDir
, changed its type toObject
and fixed the configuration to recognize a non-default value - add a JAR dependency for each HPI/JPI dependency to the
testCompile
configuration (JENKINS-17129) - added
configureRepositories
option to be able to skip configuration of repositories (JENKINS-17130) - added
configurePublishing
option to be able to skip configuration of publications or repositories for the Maven Publishing plugin
- use classpath from jpi task to build classpath for server task to allow customization in build scripts (JENKINS-26377)
- the
runtimeClasspath
read-only property inorg.jenkinsci.gradle.plugins.jpi.JpiExtension
has been removed
- added task to inject tests for checking the syntax of Jelly and other things (JENKINS-12193)
- updated Gradle to version 2.3
- publish the plugin JAR (JENKINS-25007)
- create
target
directory (for coreVersions >= 1.545 and < 1.592), cleantarget
directory (for coreVersions < 1.598) and setbuildDirectory
system property for Jenkins test harness (JENKINS-26331)
- support Java 8 (JENKINS-25643)
- updated Gradle to version 2.2.1
- migrated to the maven-publish plugin
- use the
publish
andpublishToMavenLocal
tasks for publishing, theinstall
,deploy
anduploadArchives
tasks are no longer available - all dependencies in the generated POM have the runtime scope
- use the
- re-added the SCM
connection
element in the generated POM to fix a regression with Jenkins Update Center showing the wrong SCM URL
- fixed regression that caused libraries not to be included in the JPI file (JENKINS-25401)
- dependencies from the
groovy
configuration are no longer excluded from the JPI archive, use theprovidedCompile
configuration or the transitive dependencies from Jenkins core instead
- updated Gradle to version 1.12
- added support for
Plugin-Developers
manifest attribute - added support for
Support-Dynamic-Loading
manifest attribute - set
stapler.jelly.noCache
system property totrue
when runningserver
task - removed
v
attribute from manifest - copy plugin dependencies from
jenkinsPlugins
configuration into working directory when runningserver
task (JENKINS-25219) - ignore non-existing source directories in
localizer
task - ignore non-existing library paths in
server
task - the value set for the
snapshotRepoUrl
option is no longer ignored - added
findbugs:annotations:1.0.0
tojenkinsCore
configuration to avoid compiler warnings (JENKINS-14400) - the Maven
connection
anddeveloperConnection
SCM information is no longer generated into the POM - removed
gitHubSCMConnection
andgitHubSCMDevConnection
read-only options - replaced usages of deprecated
groovy
configuration bycompile
configuration - added a missing setter for
shortName
- added
org.jenkins-ci.jpi
as alternative qualified plugin id for Gradle plugin portal inclusion - removed
WEB_APP_GROUP
constant fromorg.jenkinsci.gradle.plugins.jpi.JpiPlugin
- changed visibility of
org.jenkinsci.gradle.plugins.jpi.JpiPlugin.configureConfigurations
to private jpiDeployUser
andjpiDeployPassword
properties fromorg.jenkinsci.gradle.plugins.jpi.JpiExtension
were not used and have been removedorg.jenkinsci.gradle.plugins.jpi.JpiPluginConvention
was not used and has been removed
- do not exclude org.jenkins-ci.modules:instance-identity from jenkinsTest configuration (JENKINS-23603)
- set up the build to use http://repo.jenkins-ci.org/public/ similar to the Maven POMs (JENKINS-19942)
- register input files for the localizer task to avoid that the task is skipped when the inputs change (JENKINS-24298)
- added pluginFirstClassLoader attribute (JENKINS-24808)
- removed deprecation warnings by using newer API which has been introduced in Gradle 1.6
- use ui-samples-plugin version 2.0 in jenkinsTests configuration when using Jenkins core 1.533 or later (JENKINS-21431)