The actual release needs to happen in a lock step, as the new plugin
needs to require yet-to-be-released version of the core. So for the time
being it's a snapshot dependency, deployed in the snapshot repository.
Previously, the presence of the xpath parameter suppressed the tree
parameter processing. This change fixes that so that the tree parameter
can be used for building small DOM, then XPath to manipulate the data
further.
Added test whether the currently checked slave computer actually can take the buildable item before flagging it as needed (avoids powering up and connecting to slaves for jobs they can't build).
... not from user's point of view, but more from implementation point of
view (and this can be used to push SCM retry counts out of the core.)
To avoid cluttering the UI unnecessarily, adding isApplicable() to
SCMCheckoutStrategyDescriptor so that it can nominate itself only for
matrix projects.
For example, a common use cases are:
- skip the parent checkout and only do the checkout in MatrixRun
- check out only once in MatrixBuild and then let all MatrixRuns build from the same directory
Accoringly,
- renamed classes to drop 'Run' since now they cover 'Build' as well.
- instead of using the boolean return value to indicate the fallback to
default, using some backdoor to have the default implementation do
this. I think this keeps the abstraction cleaner for the implementor
of the extension point.
Further reduce the scope of the lock to only cover jobNames access, which is mandatory. if ig.doCreateItem requires synchronization, that's a job of ig.doCreateItem implementation, not that of ListView.
It uses Diffie Hellman to come up with one-time session key, then have
the server sign this session key to allow the client to verify that
there's no man in the middle.
Until now, Jenkins.overallNodeProvisioner was tracking an inconsistent
pair of numbers. On one hand, it was tracking all the executors in the
system, but then it was also only tracking the # of free-roaming
label-unassigned jobs as the queue length.
So if all your slaves are set with Node.Mode.EXCLUSIVE and you have some
free-roaming jobs, then it'll never tickle NodePrivisioner.
In other words, the # of executors weren't reflecting the actual # of
executors that can execute what's counted as the queue length.
See the problem report at
https://groups.google.com/forum/?fromgroups#!topic/jenkinsci-dev/bUwGEgOwv4Q
To fix this, I introduced another LoadStatistics that only counts
the # of executors that can execute free-roaming jobs, and # of
free-roaming jobs as the queue length. In this way, two pairs of numbers
are consistent.
This now allows us to use overallLoadStatistics for really the entire
system, including all executors and the total queue length. This is
primarily for administrators to see the resource utilization, and it is
not useful for NodeProvisioner input because it's mixing too many
different things.
The semantics change in OverallLoadStatistics.queueLength allows us to
deprecate its totalQueueLength field.
Backward compatibility is preventing the View.READ permission to apply
correctly. It actually overrides the View.READ instead of complementing
it.
This change only applies default READ right if the View.READ is not
available, and the user has View.CONFIGURE + the view is not empty.
The previous implementation was always appending the per-configuration unique suffix, making it impossible for different configuration builds to share workspaces. In this fix, we introduce a secondary field to control the workspace of sub-builds (which can be either absolute or relative to the matrix head workspace.)
In the past JDK download site had served error message with 200 error code, making Jenkins think that the download is actually successful. Without this check, such cache polution will not be corrected.
Previously, the untar code tries to set the last modified time and mode
on every untarred file. However, if the tar contains a broken symlink,
or a symlink that points to a file that has not been untarred yet, the
time/mode setting would fail on the broken symlink.
Symlinks don't have meaningful modified times or modes of their own, so
only set these values on non-symlinks.
Rename the file "a" in the test to expose the bug.