Re: ConcurrentModificationException during pipeline serialization (MAX_SURVIVABILITY)

2021-11-17 Thread 'Devin Nusbaum' via Jenkins Developers
> As far as I understood the problem in JENKINS-67145
 my step is somehow
serialized during the execution in lines 205-215.

Kind of, but I was talking about the publishIssues step, not the
scanForIssues step. I think the scanForIssues steps in the
parallel branches have already completed when the problem manifests and can
be ignored based on the information in the Jira ticket.

> Or can I view the code in a step as an atomic unit?

You only need to worry about the serialized state of the Pipeline, and in
this case I think you just need to worry about local variables in the
Pipeline (e.g. AnnotatedReport objects returned by scanForIssues) and the
StepExecution object for currently-running steps (e.g. publishIssues).
Local variables in PublishIssuesStep.Execution.run and other Java code can
be ignored. Also, since you are using SynchronousNonBlockingStepExecution,
PublishIssuesStep.Execution is not resumable

and you may as well mark Execution.step as transient (but I don't think
that would fix the issue!).

In your case, I think the main issue is with the AnnotatedReport objects
that are returned by scanForIssues that end up being local variables in the
Pipeline. You need to be careful about the ways in which you modify those
objects in the pubishIssues step, since local Groovy variables are
serialized as part of the Pipeline's state, and
PublishIssuesStep.Execution.run is running on a background thread. My
original message describes the only way that I noticed that publishIssues
might modify one of those existing AnnotatedReport objects (on a background
thread separate from the CPS VM thread that will serialize the Pipeline)
that was returned by a previous scanForIssues step.

My best guess as to minimally fixing the problem is to introduce a copy
constructor for FileStatistics and use it here

like this:

statisticsMapping.merge(additionalStatistics.getFileName(), new
FileStatistics(additionalStatistics), this::merge);

This way, if one of the FileStatistics from one of the other
AnnotatedReport instances returned by a scanIssues step has the same file
name, RepositoryStatistics.merge will only end up modifying the copied
FileStatistics rather than the original object.

A more robust change would be to make AnnotatedReport and all of its fields
(and their fields recursively) immutable like Jesse mentioned.

On Wed, Nov 17, 2021 at 10:02 AM Ullrich Hafner 
wrote:

>
>
> Am 17.11.2021 um 14:42 schrieb 'Jesse Glick' via Jenkins Developers <
> jenkinsci-dev@googlegroups.com>:
>
> On Wed, Nov 17, 2021 at 5:57 AM Ullrich Hafner 
> wrote:
>
>> […] is stored in a CopyOnWriteArrayList. If your background thread
>> serializes my instance during the loop it can happen that the loop variable
>> is already set, but the list with the results is not.
>>
>
> Hard to follow what you are saying without a code reference, but a
> `CopyOnWriteArrayList` is designed to be safe to save from another thread;
> that is its whole purpose.
>
> I need some lock around the whole block of variables
>>
>
> Block of *fields*? Again hard to discuss without a concrete example, but
> in general if there is a block of data that should be replaced atomically,
> best to keep it all in its own object with `final` fields, and refer to
> that one object with a `volatile` field.
>
>
> Actually I do not have fields anymore in the step:
>
> https://github.com/jenkinsci/warnings-ng-plugin/blob/089ad6c3aac292bc926503e644b892371f609e88/plugin/src/main/java/io/jenkins/plugins/analysis/core/steps/ScanForIssuesStep.java#L205-L215
>
> As far as I understood the problem in JENKINS-67145
>  my step is somehow
> serialized during the execution in lines 205-215. Or can I view the code in
> a step as an atomic unit?
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jenkinsci-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-dev/CANfRfr0ouBxhg1arOFwosdrit-O9WdBeiiAbgSAA00%3DPnbBkPQ%40mail.gmail.com
> 
> .
>
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to 

Re: ConcurrentModificationException during pipeline serialization (MAX_SURVIVABILITY)

2021-11-16 Thread 'Devin Nusbaum' via Jenkins Developers
The CPS VM thread is responsible for saving the Pipeline's execution state,
so if you are using a non-blocking step execution (and it looks like you are
),
it is possible that your step is executing on a background thread while the
Pipeline program is being saved on the CPS VM thread. You should account
for this in any mutable data reachable from non-blocking step executions
that is part of the execution's serialized state, for example by using
CopyOnWriteArrayList, replacing fields rather than mutating them, using
writeReplace, etc.

The exception in the Jira ticket suggests that one of the objects inside of
one of the AnnotatedReport instances returned by a scanIssues step, which
is stored a local variable in the user's Pipeline, is being modified.
Perhaps the issue is that there is a filename match in the FileStatistics
between the issues collected by the user's different parallel branches, so
when this code

runs
for the first time inside of AnnotatedReport.addAll in
PublishIssuesStep.Execution.Run it uses the exact FileStatistics instance
from an existing AnnotatedReport instance, but when it runs after that it
modifies the previous FileStatistics instance here
,
and then since the FileStatistics instance is also reachable via one of the
AnnotatedReport local variables in the Pipeline you have a potential
ConcurrentModificationError depending on the serialization timing.

On Tue, Nov 16, 2021 at 8:09 AM Ullrich Hafner 
wrote:

> As far as I understand the concept of CPS pipelines, steps may be
> serialized to disk during runtime if the durability level is set to
> MAX_SURVIVABILITY. It seems that one of my steps causes a
> ConcurrentModificationException while the step’s memory is written to disk
> and in parallel the fields (or local variables?) are modified by my step
> (see [1] for the bug report). Is there anything I need to do in my plugin
> to avoid such problems?
>
> [1] https://issues.jenkins.io/browse/JENKINS-67145
>
> --
> You received this message because you are subscribed to the Google Groups
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an
> email to jenkinsci-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit
> https://groups.google.com/d/msgid/jenkinsci-dev/6F19E406-45C9-4D4F-82C9-D2712E996199%40gmail.com
> .
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CAF73ShAM%2ByRivnQBcW7XegcvKRjbHFCH5haF%3D2afOkYuP-tsig%40mail.gmail.com.


Re: FlowNode.addOrReplaceAction breaks due to java.lang.UnsupportedOperationException

2021-01-08 Thread Devin Nusbaum
I think the problem is the implementation of FlowNode.getActions 

 in workflow-api. The returned list probably needs to override the inherited 
implementation of `Collection.removeAll` for `Actionable.addOrReplaceAction` to 
work correctly.

>From a quick read I think the existing code only has issues if there is 
>already an action of the same type that needs to be replaced, which could 
>explain why the issue is infrequent.

Devin

> On Jan 8, 2021, at 12:11, Ullrich Hafner  wrote:
> 
> Hi, 
> 
> I’m currently struggling with an exception in core that is caused by the 
> following code [1] in my plugin. I am setting the result of a pipeline step 
> if the quality gate fails:
> 
> flowNode.addOrReplaceAction(new WarningAction(result).withMessage(message));
> 
> This call sometimes fails in core with:
> 
> java.lang.UnsupportedOperationException
>   at 
> java.util.concurrent.CopyOnWriteArrayList$COWIterator.remove(CopyOnWriteArrayList.java:1182)
>   at java.util.AbstractCollection.removeAll(AbstractCollection.java:376)
>   at hudson.model.Actionable.addOrReplaceAction(Actionable.java:209)
>   at 
> io.jenkins.plugins.analysis.core.util.PipelineResultHandler.setResult(PipelineResultHandler.java:34)
> 
> Is this a bug in core or am I using the API in a not supported way? (This 
> exception rarely occurs, however, at least 2 different people reported that 
> problem recently[2]). The affected code is in core for quite some years now 
> so I wonder why nobody has been hit by that problem before.
> 
> [1] 
> https://github.com/jenkinsci/warnings-ng-plugin/blob/master/plugin/src/main/java/io/jenkins/plugins/analysis/core/util/PipelineResultHandler.java#L30
>  
> 
> [2] https://issues.jenkins.io/browse/JENKINS-64438 
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/DD7EB1C3-B0BE-4BC8-89AA-4A54DDB20980%40gmail.com
>  
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/64BFB279-E37D-4946-A1E9-9AE689161C8C%40cloudbees.com.


Re: Issues compiling Jenkins plugins after 2.107 - Maven Enforcer and slf4j

2020-09-24 Thread Devin Nusbaum
Just to make sure we are talking about the same thing, I mean the `` 
section of your pom.xml, like this 

 (make sure your plugin matches). I would go ahead and update to version 4.7.

The issue is not environmental, so resetting your environment should not make a 
difference.

If you can show us your plugin’s pom.xml file, along with the changes you are 
trying to make, it will be a lot easier for us to help figure out what the 
problem is.

> On Sep 24, 2020, at 17:44, the.n...@gmail.com  wrote:
> 
> I'm on Maven 3.5.2 and my private pom.xml is version 4.0. The situation 
> varies based on what plugins happen to be installed. The issue seems to be 
> incompatible dependency boundaries on slf4j. There are footprints of this all 
> over the jenkins-ci bug tracker, but I don't know where those stand. Is there 
> a good way to reset my maven environment for jenkins and download everything 
> cleanly?
> 
> On Thursday, September 24, 2020 at 5:30:27 p.m. UTC-4 dnus...@cloudbees.com 
> wrote:
> Make sure you are using the latest version of the parent POM (4.7), or at 
> least one of the 4.x versions. The 4.x releases of the parent POM include a 
> BOM  that manages 
> the versions of various dependencies that come from Jenkins core to help 
> avoid these kinds of issues.
> 
> If your plugin is open source, feel free to link to an open GitHub pull 
> request or similar that demonstrates the problems you are seeing, which will 
> make it much easier for us to help identify and fix any issues.
> 
> 
>> On Sep 24, 2020, at 17:21, the.n...@gmail.com  
>> > 
>> wrote:
>> 
> 
>> The last working version is 2.182 (done using bisect).
>> 
>> On Thursday, September 24, 2020 at 5:09:41 p.m. UTC-4 the.n...@gmail.com 
>>  wrote:
>> Hi All,
>> 
>> I've been trying to build my own Jenkins plugin based on 2.258 and am 
>> getting some pretty annoying errors:
>> 
>> [WARNING] Rule 6: org.apache.maven.plugins.enforcer.RequireUpperBoundDeps 
>> failed with message:
>> 
>> Failed while enforcing RequireUpperBoundDeps. The error(s) are [
>> Require upper bound dependencies error for org.slf4j:jcl-over-slf4j:1.7.25 
>> paths to dependency are:
>> +-io.jenkins.plugins:MyPlugin:v1.6.802.0
>>   +-org.slf4j:jcl-over-slf4j:1.7.25
>> and
>> +-io.jenkins.plugins: MyPlugin :v1.6.802.0
>>   +-org.jenkins-ci.main:jenkins-core:2.258
>> +-org.slf4j:jcl-over-slf4j:1.7.26
>> 
>> I have no dependencies on slf4j in my pom.xml, just Jenkins and Struts, but 
>> when the build occurs, the MyPlugin.iml and many of the dependent pom.xml 
>> files from 2.258 refer to that version of slf4j. Turning off the enforcer 
>> gives me a broken Jenkins because of the plugins that are missing that 
>> depend on those versions as a maximum.
>> 
>> This is not an issue at 2.107, but then MyPlugin works at that version.
>> 
>> Please help.
>> Thanks,
>> Randall
>> 
> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Jenkins Developers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to jenkinsci-de...@googlegroups.com 
>> .
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jenkinsci-dev/61f5cc39-6169-4207-987e-9d04d6d7b574n%40googlegroups.com
>>  
>> .
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/b304ed43-b529-4a91-b180-f4e49639e560n%40googlegroups.com
>  
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/96EC4A21-2364-471B-8647-E74D7ACC44BC%40cloudbees.com.


Re: Issues compiling Jenkins plugins after 2.107 - Maven Enforcer and slf4j

2020-09-24 Thread Devin Nusbaum
Make sure you are using the latest version of the parent POM (4.7), or at least 
one of the 4.x versions. The 4.x releases of the parent POM include a BOM 
 that manages the 
versions of various dependencies that come from Jenkins core to help avoid 
these kinds of issues.

If your plugin is open source, feel free to link to an open GitHub pull request 
or similar that demonstrates the problems you are seeing, which will make it 
much easier for us to help identify and fix any issues.

> On Sep 24, 2020, at 17:21, the.n...@gmail.com  wrote:
> 
> The last working version is 2.182 (done using bisect).
> 
> On Thursday, September 24, 2020 at 5:09:41 p.m. UTC-4 the.n...@gmail.com 
>  wrote:
> Hi All,
> 
> I've been trying to build my own Jenkins plugin based on 2.258 and am getting 
> some pretty annoying errors:
> 
> [WARNING] Rule 6: org.apache.maven.plugins.enforcer.RequireUpperBoundDeps 
> failed with message:
> 
> Failed while enforcing RequireUpperBoundDeps. The error(s) are [
> Require upper bound dependencies error for org.slf4j:jcl-over-slf4j:1.7.25 
> paths to dependency are:
> +-io.jenkins.plugins:MyPlugin:v1.6.802.0
>   +-org.slf4j:jcl-over-slf4j:1.7.25
> and
> +-io.jenkins.plugins: MyPlugin :v1.6.802.0
>   +-org.jenkins-ci.main:jenkins-core:2.258
> +-org.slf4j:jcl-over-slf4j:1.7.26
> 
> I have no dependencies on slf4j in my pom.xml, just Jenkins and Struts, but 
> when the build occurs, the MyPlugin.iml and many of the dependent pom.xml 
> files from 2.258 refer to that version of slf4j. Turning off the enforcer 
> gives me a broken Jenkins because of the plugins that are missing that depend 
> on those versions as a maximum.
> 
> This is not an issue at 2.107, but then MyPlugin works at that version.
> 
> Please help.
> Thanks,
> Randall
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/61f5cc39-6169-4207-987e-9d04d6d7b574n%40googlegroups.com
>  
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/E967C12C-85CC-441D-AAA4-53A0BB5A5F3B%40cloudbees.com.


Re: options timeout does not work with my custom step

2020-07-23 Thread Devin Nusbaum
Nikhil, maybe to make it clearer, what we mean is that instead of using your 
step like this:

```
runMATLABCommand "disp('TIMEOUT 
STARTED');disp(datetime('now'));pause(6*60);disp('TIMEOUT 
ENDED');disp(datetime('now'))"   
```

You would implement a SimpleBuildWrapper or a block-scoped step so that users 
would instead do something like this (no idea how the Matlab executable works 
or how it accepts arguments, my escaping is probably wrong as well):

```
withMatlab(…) {
  sh(‘matlab "disp('TIMEOUT 
STARTED');disp(datetime(\’now\'));pause(6*60);disp('TIMEOUT 
ENDED');disp(datetime(\‘now\’))"')
}
```

Maybe with a small helper step to convert a matlab command into a shell command 
if escaping for both Matlab and the shell is tedious, or if there are a bunch 
of arguments that the step needs to add automatically:

```
withMatlab(…) {
  sh(createMatlabCommand("disp('TIMEOUT 
STARTED');disp(datetime('now'));pause(6*60);disp('TIMEOUT 
ENDED');disp(datetime('now'))")
}
```

With these kinds of approaches you don’t have to actually implement the complex 
pieces of the `sh` step yourself. I mentioned the `sh` step to show you how 
complicated it is to implement something similar, but I should have been 
clearer that you should really reconsider your step’s design; trying to 
reimplement the `sh` step does not make sense.


> On Jul 23, 2020, at 14:34, Jesse Glick  wrote:
> 
> On Thu, Jul 23, 2020 at 1:02 PM Nikhil Bhoski  wrote:
>> i am looking into these classes here i hope i am at rite location.
>> 
>> https://github.com/jenkinsci/workflow-durable-task-step-plugin/blob/e7c2d46eee43966560a3b9274aab3745a8e8f841/src/main/java/org/jenkinsci/plugins/workflow/steps/durable_task/DurableTaskStep.java#L99
> 
> You do not need to look at `DurableTaskStep` implementation at all.
> Just implement `SimpleBuildWrapper`, which is quite straightforward.
> Or if you need Pipeline specifics, a block-scoped `Step`; there are
> plenty of examples, such as in the `ant` plugin (whose tests also
> demonstrate usage).
> 
> You _can_ implement `SynchronousNonBlockingStepExecution` but then
> your step will not survive a Jenkins restart, so this should not be
> done if you expect it to take more than a fraction of a second, which
> I understand is not at all the case for you.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CANfRfr001XJJ4GS-MOQ2tEw8ef7wvtP2XMYh94gey_EhqK5kug%40mail.gmail.com.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/47FBC417-3C52-45AF-AF20-2115831B112C%40cloudbees.com.


Re: options timeout does not work with my custom step

2020-07-23 Thread Devin Nusbaum
Yes, it is like Jesse said. The CPS VM thread automatically interrupts any 
synchronous code/step that takes more than 5 minutes to execute. Once you fix 
the step so it executes asynchronously (or redesign it so the actual work is 
done by the `sh` step) then the CPS VM thread will stop interrupting it and the 
timeout set by the `timeout` step will take effect.

> On Jul 23, 2020, at 12:42, Nikhil Bhoski  wrote:
> 
> Thanks Alot Davin for such detailed explanation. I will check sh and bat and 
> try understand its implementation .  However i was curious to know if this is 
> the reason that possibly causing issue of not abiding timeout block .
> 
> Thanks & Regards
> Nikhil
> 
> On Thursday, 23 July 2020 21:59:52 UTC+5:30, Devin Nusbaum wrote:
> Although you tried to make your step asynchronous, it is not actually 
> asynchronous. `execMatlabCommand` runs during your StepExecution’s `start` 
> method and internally calls `Process.join` to wait for the process to 
> complete, so your `start` method doesn’t return until the process completed. 
> Another indication that your step is not asynchronous is that you call 
> `getContext().onSuccess(true);` before you `return false` from the step, 
> meaning that your step has already completed. 
> 
> You need to change things so that your step starts the command and then sets 
> up a background process to check its status periodically to know if it is 
> completed. Doing this for external processes is somewhat complex, but you 
> could look at the `sh` and `bat` steps for an example. 
> 
> Stepping back a little bit, I would try to investigate to see if you could 
> implement this plugin’s functionality in a different way (maybe a 
> block-scoped step that sets up environment variables, etc. as needed) and 
> just have users use the standard `sh` and `bat` steps to launch the Matlab 
> command so that you do not have to reimplement that functionality. 
> 
> 
> > On Jul 23, 2020, at 12:18, Nikhil Bhoski > wrote: 
> > 
> > Hi Gavin , 
> > 
> > The stop is implemented as per the doc which Jesse shared. it reads like 
> > below 
> >  But i get your point now and i guess i should kill the process in stop. 
> > any ideas on how could i get access to the process in stop () ? 
> > 
> > You should also implement stop to terminate the step. It could simply read 
> > 
> > getContext().onFailure(cause); 
> > 
> > On Thursday, 23 July 2020 21:22:12 UTC+5:30, Gavin Mogan wrote: 
> > Its been a long time since i wrote plugins using these APIs but how come 
> > your on stop isn't doing anything? Shouldn't it kill the process? 
> > 
> > On Thu., Jul. 23, 2020, 8:48 a.m. Nikhil Bhoski, > 
> > wrote: 
> > Thanks Jesse, 
> > 
> >  I had referred the same doc and i guess i am following as per 
> > recommendation. Here is my step execution class 
> > 
> > https://github.com/jenkinsci/matlab-plugin/blob/master/src/main/java/com/mathworks/ci/MatlabCommandStepExecution.java
> >  
> > <https://github.com/jenkinsci/matlab-plugin/blob/master/src/main/java/com/mathworks/ci/MatlabCommandStepExecution.java>
> >  
> > 
> > Which will be called in 
> > 
> > https://github.com/jenkinsci/matlab-plugin/blob/master/src/main/java/com/mathworks/ci/RunMatlabCommandStep.java
> >  
> > <https://github.com/jenkinsci/matlab-plugin/blob/master/src/main/java/com/mathworks/ci/RunMatlabCommandStep.java>
> >  
> > 
> > Thanks & Regards 
> > Nikhil 
> > 
> > On Thursday, 23 July 2020 19:09:30 UTC+5:30, Jesse Glick wrote: 
> > On Thu, Jul 23, 2020 at 3:47 AM Nikhil Bhoski > 
> > wrote: 
> > > when i use this step with options block with 6 minutes pause  as shown 
> > > below.my step does not seem to have any effect of this overriden timeout 
> > > value . It always gets terminated after 5 minutes 
> > 
> > You are most likely blocking the whole CPS VM thread, which is illegal. 
> > See: 
> > 
> > https://github.com/jenkinsci/workflow-step-api-plugin/blob/master/README.md#creating-an-asynchronous-step
> >  
> > <https://github.com/jenkinsci/workflow-step-api-plugin/blob/master/README.md#creating-an-asynchronous-step>
> >  
> > 
> > -- 
> > You received this message because you are subscribed to the Google Groups 
> > "Jenkins Developers" group. 
> > To unsubscribe from this group and stop receiving emails from it, send an 
> > email to jenkin...@googlegroups.com <>. 
> > To view this discussion on the web visit 
> > https://groups.google.com/d/msgid/jenkinsci-dev/12357eb4-d90e-4494-8c6f-619c22a718a

Re: options timeout does not work with my custom step

2020-07-23 Thread Devin Nusbaum
Although you tried to make your step asynchronous, it is not actually 
asynchronous. `execMatlabCommand` runs during your StepExecution’s `start` 
method and internally calls `Process.join` to wait for the process to complete, 
so your `start` method doesn’t return until the process completed. Another 
indication that your step is not asynchronous is that you call 
`getContext().onSuccess(true);` before you `return false` from the step, 
meaning that your step has already completed.

You need to change things so that your step starts the command and then sets up 
a background process to check its status periodically to know if it is 
completed. Doing this for external processes is somewhat complex, but you could 
look at the `sh` and `bat` steps for an example.

Stepping back a little bit, I would try to investigate to see if you could 
implement this plugin’s functionality in a different way (maybe a block-scoped 
step that sets up environment variables, etc. as needed) and just have users 
use the standard `sh` and `bat` steps to launch the Matlab command so that you 
do not have to reimplement that functionality.


> On Jul 23, 2020, at 12:18, Nikhil Bhoski  wrote:
> 
> Hi Gavin ,
> 
> The stop is implemented as per the doc which Jesse shared. it reads like below
>  But i get your point now and i guess i should kill the process in stop. any 
> ideas on how could i get access to the process in stop () ? 
> 
> You should also implement stop to terminate the step. It could simply read
> 
> getContext().onFailure(cause);
> 
> On Thursday, 23 July 2020 21:22:12 UTC+5:30, Gavin Mogan wrote:
> Its been a long time since i wrote plugins using these APIs but how come your 
> on stop isn't doing anything? Shouldn't it kill the process?
> 
> On Thu., Jul. 23, 2020, 8:48 a.m. Nikhil Bhoski,  wrote:
> Thanks Jesse,
> 
>  I had referred the same doc and i guess i am following as per 
> recommendation. Here is my step execution class 
> 
> https://github.com/jenkinsci/matlab-plugin/blob/master/src/main/java/com/mathworks/ci/MatlabCommandStepExecution.java
>  
> 
> Which will be called in 
> 
> https://github.com/jenkinsci/matlab-plugin/blob/master/src/main/java/com/mathworks/ci/RunMatlabCommandStep.java
> 
> Thanks & Regards
> Nikhil
> 
> On Thursday, 23 July 2020 19:09:30 UTC+5:30, Jesse Glick wrote:
> On Thu, Jul 23, 2020 at 3:47 AM Nikhil Bhoski  wrote: 
> > when i use this step with options block with 6 minutes pause  as shown 
> > below.my step does not seem to have any effect of this overriden timeout 
> > value . It always gets terminated after 5 minutes 
> 
> You are most likely blocking the whole CPS VM thread, which is illegal. See: 
> 
> https://github.com/jenkinsci/workflow-step-api-plugin/blob/master/README.md#creating-an-asynchronous-step
>  
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkin...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/12357eb4-d90e-4494-8c6f-619c22a718a4o%40googlegroups.com.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/47dea698-df6c-485d-9df3-9230e305c480o%40googlegroups.com.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/91BD05DA-0580-4393-B6F6-DE321FA3798B%40cloudbees.com.


Re: unable to transition Jira issue(s)

2020-07-06 Thread Devin Nusbaum
In my experience, this happens when someone tries to file a new issue while 
Jira is having problems. Jira reports that the issue couldn’t be created, so 
users try to submit the form again, and once the problem with Jira is resolved 
all of the submissions show up as duplicate issues where the status is broken 
and can’t be modified. What I normally do is clone one of the duplicates to get 
a new issue that isn’t broken, and then file an INFRA ticket asking admins to 
delete all of the duplicates. See 
https://issues.jenkins-ci.org/browse/INFRA-2581 
 as an example.

> On Jul 6, 2020, at 10:26, James Nord  wrote:
> 
> Hi all,
> 
> for some reason I can not close some specific Jira issues (other issues are 
> fine)?
> anything in the following query seems like it can not change state : 
> https://issues.jenkins-ci.org/browse/JENKINS-61646?jql=summary%20~%20%22attempt%20reconnect%22%20and%20component%20%3D%20kubernetes-credentials-provider-plugin%20
>  
> 
>  
> 
> /James
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/e7bf1ce7-1f61-4728-8cbc-b7d02b8294e4o%40googlegroups.com
>  
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/CA01FD8E-366F-4BC2-BE24-6D9AA7B7D701%40cloudbees.com.


Re: PR review in workflow-cps-global-lib-plugin

2020-02-10 Thread Devin Nusbaum
Hi Victor, I'll try to take a look through open PRs in the plugin and get a 
release out in the next few weeks, thanks!

On Wednesday, February 5, 2020 at 6:04:18 AM UTC-5, Victor Martinez wrote:
>
> Hi there,
>
> Any feedback for 
> https://github.com/jenkinsci/workflow-cps-global-lib-plugin/pull/83  , 
> I'm not sure what else it's required in my end and neither who are the 
> maintainers.
>
> Thanks so much :)
>

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/1bc5fb2c-7e29-4977-a44b-458afc0cbcf2%40googlegroups.com.


Re: Jenkins Plugin pom (future of)

2019-12-13 Thread Devin Nusbaum
Some housekeeping in the plugin POM sounds good to me.

> for my part we have a lot of properties that are overloaded in profiles 
> (skipTests is a surefire flag but we abuse it to also skip spotbugs which 
> when you know how maven works becomes surprising)

I was always a bit confused by that behavior, but never realized it was 
specific to the plugin POM. +1 for removing it.

> There is also the support for javascript builds, but a quick search  
> of
>  repos showed only 29 repositories (22 in jenkinsci and 7 in cloudbees) that 
> use this (the javascript ecosystem moves much faster so I would argue this is 
> better handled by documentation or another possibly another pom) so I think 
> this should be a candidate for removal.

I agree that given how infrequently this profile is used, it makes sense to 
remove it. I do have one concern though - If one of the plugins currently using 
the profile updates to a version of the plugin POM in which it has been 
removed, will the plugin’s build continue to work silently even though the 
produced artifacts will be broken? (I saw this happen at least once after 
https://github.com/jenkinsci/plugin-pom/pull/36 
 changed the profile used for 
this functionality)? If so, would it be possible to replace the profile with 
one that just fails the build if `.mvn_exec_node` is present to avoid this 
issue, since if downstream plugins copied the profile into their POM, it would 
make more sense for them to activate it by default anyway?

Devin

> On Dec 12, 2019, at 16:23, James Nord  wrote:
> 
> Hi all,
> 
> firstly apologies about the recent messiness with consuming the jenkins bom 
>  in the plugin-pom 
> .
> 
> For those of you that are not aware the jenkins bom is trying to solve to 
> problem of not consuming newer versions of libraries that are shipped in 
> Jenkins core as this can cause unexpected failure at runtime, and to make 
> keeping the versions used in step with the Jenkins version targeted in the 
> POM.
> 
> Now the previous attempt revealed a couple of issues mainly that you should 
> not enable dependencies in a profile when the resulting pom is to be consumed 
> later.  Also Profile activation (applies to incrementals) via 
> environment/system properties is a bad idea when that changes what can be 
> consumed/produced. The reason for this is when you want to aggregate several 
> plugins in a build to perform batch testing of all their masters and some 
> want to use one profile and others don't (but you can only set one property 
> for the whole of the aggregation).
> 
> So to get a parent that works for plugins I need to break some eggs.  And 
> this is the email about what eggs we want to also break, and which eggs are 
> created by Fabergé and are too valuable to throw away. 
> 
> for my part we have a lot of properties that are overloaded in profiles 
> (skipTests is a surefire flag but we abuse it to also skip spotbugs which 
> when you know how maven works becomes surprising), we have findbugs 
> properties as well (to cope with people that are have used a findbugs flag in 
> their build and we now use spotbugs.
> 
> There is also the support for javascript builds, but a quick search  
> of
>  repos showed only 29 repositories (22 in jenkinsci and 7 in cloudbees) that 
> use this (the javascript ecosystem moves much faster so I would argue this is 
> better handled by documentation or another possibly another pom) so I think 
> this should be a candidate for removal.
> 
> Given we are breaking eggs, I do not see a reason for the new parent not to 
> use the jenkins-bom unconditionally.
> 
> Is there any other legacy that people think can be cleaned up / removed, or 
> other points of view that people want to put forward before a PR lands as a 
> surprise?
> 
> Regards
> 
> /James
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/2ce40a15-fe85-475a-8218-255140d4e1f5%40googlegroups.com
>  
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to 

Re: Request access for docker-workflow-plugin

2019-07-29 Thread Devin Nusbaum
Hi Artem!

Thanks for your interest - the docker-workflow plugin definitely could use more 
attention. That said, it's such a critical plugin that I'd like to see a few 
more PRs and/or reviews on this plugin from you before giving you full access.

I'll try to look at some of the open PRs over the next week or so and get a 
release out. In particular I think 
https://github.com/jenkinsci/docker-workflow-plugin/pull/180 
 looks like 
something we definitely want, since it would replace your PR and all other ones 
trying to fix deficiencies in the Dockerfile parsing (181, 179, 178, 176?, 173, 
172, 171, 162, 151, 150, and maybe some others).

One of the main reasons this plugin doesn't get updated very often is that 
behavior changes always seem to cause serious regressions for some subset of 
users. With that in mind, we are probably not going to be merging any new 
features unless they include significant testing to make sure they don't cause 
regressions for existing users, and that they won't regress in the future. If 
you would like to make fundamental changes to the way the plugin works, it 
would probably be a better idea to fork and create a new plugin.

Feel free to ping myself (dwnusbaum ) and Andrew 
Bayer (abayer ) on your PRs and we will try to take 
a look. (Yes I've seen all of the pings on 162, sorry I have not had a chance 
to look at it yet!)

Thanks,
Devin

> On Jul 22, 2019, at 03:21, Artem Navrotskiy  wrote:
> 
> Hello,
> 
> I have some comments for docker-workflow-plugin 
>  that I would like to 
> fix:
> a very naive parsing Dockerfile which not a few works FROM, problem with ARG 
> (JENKINS-44789 , 
> JENKINS-44609 );
> entrypoint/HEALTH CHECK (not working) 
> https://issues.jenkins-ci.org/browse/JENKINS-54389 
> );
> there is no method to remove the container and clean the built containers 
> after the end of the build;
> you cannot create a container without tag;
> too many hacks required for use shared cache directories between builds.
> The fix part of the problem requires a fairly major bug fixes.
> Unfortunately, it seems that the plugin is abandoned: the last commit to the 
> master was on April 16, and there was no reaction to the trial PR for six 
> months (https://github.com/jenkinsci/docker-workflow-plugin/pull/162 
> ).
> Basically, I'm ready to maintain this plugin.
> 
> Briefly about me: Artem Navrotskiy, Russia Moscow, 36 years old.
> I'm new to the Jenkins community.
> My PRs:
> https://github.com/jenkinsci/jenkins/pull/4105 
> 
> https://github.com/jenkinsci/lockable-resources-plugin/pull/138 
> 
> https://github.com/jenkinsci/docker-workflow-plugin/pull/162 
> 
> https://github.com/kohsuke/github-api/pull/530 
> 
> https://github.com/jenkinsci/github-branch-source-plugin/pull/237 
> 
> https://github.com/jenkinsci/pipeline-gitstatuswrapper-plugin/pull/5 
> My 
> open-source projects:
> https://github.com/bozaro/git-as-svn 
> Jenkins account: Bozaro
> GitHub account: bozaro
> 
> -- 
> Best regards,
> Artem Navrotskiy
> +7 (925) 095-80-41
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CAHg4CnH0kfp-UjNds-2VkrNWf4D1xBGRj7916%2BYMVDSzhbg9Ww%40mail.gmail.com
>  
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/D056192F-4EE0-4893-90B2-F913630F957A%40cloudbees.com.


Re: Dependencies required for pipeline jobs in hpi:run

2019-07-05 Thread Devin Nusbaum
“pipeline” in a Jenkinsfile comes from Pipeline: Declarative Plugin, groupId is 
org.jenkinsci.plugins, artifactId is pipeline-model-definition. That has a lot 
of dependencies, so depending on your use case, it might be preferable to 
convert your test case to scripted and depend only on workflow-cps, 
workflow-job, and workflow-basic-steps in test scope (perhaps also a few others 
such workflow-durable-task-step for the `node` step).

> On Jul 5, 2019, at 03:29, Gavin  wrote:
> 
> You need to depend (I recommend scope of test) on the pipeline plugin that 
> implements that feature. I think it would be the following but I can't 
> remember
> 
>   
> org.jenkins-ci.plugins.workflow
> workflow-step-api
> 2.19
> test
> 
> 
> (Or maybe definition- https://plugins.jenkins.io/pipeline-model-definition 
> )
> 
> On Thu., Jul. 4, 2019, 9:04 p.m. Parichay Barpanda, 
> mailto:parichay.barpa...@gmail.com>> wrote:
> Hi all,
> 
> I am working Branch Source part of GitLab Plugin. There are a different bugs 
> that needs attention but for now, the basic branch indexing and branch 
> building for Multibranch Pipeline Jobs works just fine.
> 
> I want to test the pipeline jobs with `mvn hpi:run`. But when a branch is 
> getting built I get an error:
> 
> Branch indexing
> Querying the current revision of branch master...
> Current revision of branch master is fb65543c24719f77167dcb3967423f349094b4d3
> Obtained Jenkinsfile from fb65543c24719f77167dcb3967423f349094b4d3
> Running in Durability level: MAX_SURVIVABILITY
> [Pipeline] End of Pipeline
> java.lang.NoSuchMethodError: No such DSL method 'pipeline' found among steps 
> [archive, build, catchError, checkout, deleteDir, dir, echo, error, 
> fileExists, getContext, git, isUnix, load, mail, parallel, properties, pwd, 
> readFile, readTrusted, resolveScm, retry, sleep, stash, step, timeout, tool, 
> unarchive, unstash, waitUntil, withContext, withEnv, wrap, writeFile] or 
> symbols [all, always, apiToken, architecture, archiveArtifacts, 
> artifactManager, batchFile, booleanP
> .
> 
> The logger also doesn't log `[Pipeline] Start of Pipeline`(Idk what that 
> means). 
> 
> When I install the same plugin in `Jenkins docker with the recommended 
> plugins installed`, the pipeline job is performed successfully. I am not 
> quite sure but I think `pipeline jobs` don't work with `hpi:run` as there 
> is/are some missing dependencies. Here is the pom of my plugin 
> https://github.com/baymac/gitlab-branch-source-plugin/blob/feature/branch-source/pom.xml
>  
> .
> 
> Kindly let me know what I am missing something. If this is something other 
> than just missing dependency then can someone with branch source plugins 
> experience have a look at the pr and suggest changes: 
> https://github.com/baymac/gitlab-branch-source-plugin/pull/20 
> .
> 
> We can also have further discussions in JIRA 
> https://issues.jenkins-ci.org/browse/JENKINS-58268 
> .
> 
> Thank you.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/7962e605-16d0-40b6-a7fb-a4bb67b2fbe0%40googlegroups.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CAG%3D_DuuTn4_BhcTDqvi0ZGyQknVpjusDXpYx5MSPqaGk7bMNjg%40mail.gmail.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 

Re: Looking to help maintain credentials plugin

2019-06-24 Thread Devin Nusbaum
Hi Matt, I’m happy to transfer my permissions to you. I originally sought
release permissions for this plugin as they were related to my work, but I
have since transferred to a new team and do not anticipate working on this
plugin. When I originally received release permissions, Stephen asked that
any changes to the public API of the plugin be reviewed by him, so please
respect that request. I will go ahead and file a PR to 
repository-permissions-updater to give you permission.

Thanks,
Devin

> On Jun 24, 2019, at 10:29, Matt Sicker  wrote:
> 
> It's hard for me to send this email, but yes, I'd like to help
> maintain this plugin. I've been working on some improvements to the
> user-scoped credentials features lately, and this plugin falls into my
> general category of security-related plugins that I've been working
> with more frequently.
> 
> -- 
> Matt Sicker
> Senior Software Engineer, CloudBees
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CAEot4oy7qV0zKZ_AU6wxbTV141tMiySa2Tepujuj%3DXDcpdD_kQ%40mail.gmail.com.
> For more options, visit https://groups.google.com/d/optout.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/FE8CFCC1-99BC-4CF6-A88F-679BD2FDA8DA%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: New API in Pipeline: API Plugin 2.34 that allows Pipeline steps to track more detailed status/result information

2019-05-15 Thread Devin Nusbaum
Good idea! I wasn’t sure of the right location to document this, but that link 
looks like a good start. Looking through the related links I think the Writing 
Pipeline Steps 
<https://github.com/jenkinsci/workflow-step-api-plugin/blob/master/README.md> 
or Core Steps 
<https://github.com/jenkinsci/workflow-basic-steps-plugin/blob/master/CORE-STEPS.md#interacting-with-build-status>
 documentation could also use some related updates. I’ll add a task to my TODO 
list to update them.

> On May 15, 2019, at 16:24, Mark Waite  wrote:
> 
> Would you be willing to add this information to the "Writing Pipeline 
> Compatible Plugins 
> <https://jenkins.io/doc/developer/plugin-development/pipeline-integration/>" 
> page on jenkins.io <http://jenkins.io/>?  It seems like a very useful 
> addition to the documentation on that page.
> 
> On Wed, May 15, 2019 at 12:01 PM Devin Nusbaum  <mailto:dnusb...@cloudbees.com>> wrote:
> Pipeline: API 2.34 added a new API called WarningAction 
> <https://github.com/jenkinsci/workflow-api-plugin/blob/c84dbab8cd35c90f70d84390dc711901fa73b7ad/src/main/java/org/jenkinsci/plugins/workflow/actions/WarningAction.java>
>  that allows steps to report irregular but non-fatal events that occurred 
> during their execution while allowing Pipeline execution to continue 
> normally. This allows long-standing and highly-voted issues such as 
> JENKINS-39203 <https://issues.jenkins-ci.org/browse/JENKINS-39203> to be 
> fixed by modifying Pipeline steps that change the build result directly to 
> also use the new API so that visualizations such as Blue Ocean use the new 
> API (through Pipeline: Graph Analysis 1.10) to display more specific 
> statuses. For any maintainers of plugins setting the build result directly 
> today, here is some information to help you understand how to use the new API 
> if you would like to do so.
> 
> First, if you have a step that throws an exception today to indicate failure, 
> that's totally fine, keep doing that! The new API only applies to steps that 
> want to indicate some kind of problem but continue normal Pipeline execution.
> 
> For regular Steps, if you have code in a StepExecution that does something 
> like this and want to use the new API:
> 
>   getContext().get(Run.class).setResult(...);
> 
> Keep setting the build result the same way and add code to add a 
> WarningAction to the current FlowNode like this:
> 
>   getContext().get(Run.class).setResult(...);
>   getContext().get(FlowNode.class).addOrReplaceAction(new 
> WarningAction(...).withMessage(...));
> 
> The result you pass to the WarningAction constructor will determine how Blue 
> Ocean displays your step and the stage or parallel branch enclosing your 
> step. The message is optional and may be visualized directly in Blue Ocean in 
> some prominent way in the future, but for now it is not shown anywhere.
> 
> See this pull request <https://github.com/jenkinsci/junit-plugin/pull/118> to 
> JUnit plugin for an example of how to integrate a plugin with the new API (in 
> particular the changes to JUnitResultsStepExecution.java). 
> 
> If your plugin currently uses SimpleBuildStep or SimpleBuildWrapper to 
> implement a step that can be used in Freestyle and Pipeline jobs, there is no 
> way to use the new API directly, and you need to create a new Pipeline Step 
> to be able to use the new API. You should be able to call the SimpleBuildStep 
> from your new Step to avoid duplicating logic, but unfortunately you will 
> need to duplicate getters and setters to make data-binding work correctly for 
> the step. Here is an in-progress PR 
> <https://github.com/jenkinsci/warnings-ng-plugin/pull/58> to Warnings Next 
> Generation Plugin that shows what this kind of change might look like.
> 
> See UnstableStep.java 
> <https://github.com/jenkinsci/workflow-basic-steps-plugin/blob/06075283ed70063937a7175da4852f9ddb087130/src/main/java/org/jenkinsci/plugins/workflow/steps/UnstableStep.java>
>  for an example of a new step that uses the new API.
> 
> Thanks, and let me know if you have any questions!
> 
> Devin
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> <mailto:jenkinsci-dev+unsubscr...@googlegroups.com>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/4cd76eee-f788-40b2-98a1-51c1172113ec%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/jenkinsci-dev/4cd76eee-f788-40b2-98a1-51c1172113ec%40googlegroups.com?utm_medium=email_sou

New API in Pipeline: API Plugin 2.34 that allows Pipeline steps to track more detailed status/result information

2019-05-15 Thread Devin Nusbaum
Pipeline: API 2.34 added a new API called WarningAction 

 that 
allows steps to report irregular but non-fatal events that occurred during 
their execution while allowing Pipeline execution to continue normally. 
This allows long-standing and highly-voted issues such as JENKINS-39203 
 to be fixed by 
modifying Pipeline steps that change the build result directly to also use 
the new API so that visualizations such as Blue Ocean use the new API 
(through Pipeline: Graph Analysis 1.10) to display more specific statuses. 
For any maintainers of plugins setting the build result directly today, 
here is some information to help you understand how to use the new API if 
you would like to do so.

First, if you have a step that throws an exception today to indicate 
failure, that's totally fine, keep doing that! The new API only applies to 
steps that want to indicate some kind of problem but continue normal 
Pipeline execution.

For regular Steps, if you have code in a StepExecution that does something 
like this and want to use the new API:

  getContext().get(Run.class).setResult(...);

Keep setting the build result the same way and add code to add a 
WarningAction to the current FlowNode like this:

  getContext().get(Run.class).setResult(...);
  getContext().get(FlowNode.class).addOrReplaceAction(new 
WarningAction(...).withMessage(...));

The result you pass to the WarningAction constructor will determine how 
Blue Ocean displays your step and the stage or parallel branch enclosing 
your step. The message is optional and may be visualized directly in Blue 
Ocean in some prominent way in the future, but for now it is not shown 
anywhere.

See this pull request  
to JUnit plugin for an example of how to integrate a plugin with the new 
API (in particular the changes to JUnitResultsStepExecution.java). 

If your plugin currently uses SimpleBuildStep or SimpleBuildWrapper to 
implement a step that can be used in Freestyle and Pipeline jobs, there is 
no way to use the new API directly, and you need to create a new Pipeline 
Step to be able to use the new API. You should be able to call the 
SimpleBuildStep from your new Step to avoid duplicating logic, but 
unfortunately you will need to duplicate getters and setters to make 
data-binding work correctly for the step. Here is an in-progress PR 
 to Warnings Next 
Generation Plugin that shows what this kind of change might look like.

See UnstableStep.java 

 
for an example of a new step that uses the new API.

Thanks, and let me know if you have any questions!

Devin

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/4cd76eee-f788-40b2-98a1-51c1172113ec%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.


Re: JDK installer for AdoptOpenJDK

2019-05-03 Thread Devin Nusbaum
Interesting! Assuming your approach is robust I’d vote for just putting this 
directly in jdk-tool  (and then 
very visibly deprecating the existing installer for Oracle Java) and adding you 
as a maintainer. You might be able to reuse the platform 

 and CPU 

 detection that already exists in the plugin today, and even if you want to 
keep a separate plugin looking through that code could be useful.

> On May 3, 2019, at 16:20, Mads Mohr Christensen  wrote:
> 
> As a fun project and because it might be useful I’ve been working on a JDK 
> installer plugin for installing OpenJDK from AdoptOpenJDK.net 
> .
> 
> It still needs some work in order to be released as an actual plugin but 
> perhaps someone would like to have a look now?
> 
> https://github.com/hrmohr/adoptopenjdk-plugin 
> 
> https://github.com/hrmohr/crawler/tree/adoptopenjdk 
> 
> 
> I need to finish error handling and I would like to write some tests as well. 
> 
> Especially the part where OS and CPU is detected is something I’m not really 
> sure about, but I would be happy to get any feedback that will improve this 
> plugin in order for it to be released.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/56A31800-AFEA-47B5-A886-BAC196E606BF%40gmail.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/0B883128-2581-4601-9FA6-FBBD32D6F3FC%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: maven-hpi-plugin ... minimumJavaVersion attribute must be set...

2018-12-13 Thread Devin Nusbaum
What versions of Maven, Java, and Ubuntu are you running? I would run `mvn 
--version` to see what it tells you. You want Java 8 and Maven 3.5+. Maybe if 
you have a really old Maven version you could be getting those kinds of errors, 
but I’m not sure.

Regarding the `work` directory, that is the directory that `mvn hpi:run` uses 
as JENKINS_HOME when running a plugin. You don’t need to install Jenkins or run 
it directly at all when working on plugins, since it will be handled 
automatically in that local directory, although there should not be any 
conflicts if you do have it running or installed other than needing to specify 
a different port when running `mvn hpi:run` if you want to run them 
simultaneously.

> On Dec 13, 2018, at 14:27, Paul Smith  wrote:
> 
> Thanks Devin.  Unfortunately it appears that I have some sort or install/dev 
> environment problem.  I’ve tried downloading a clean copy of the external job 
> plugin and running the clean install and hpi:run jobs with that and it 
> doesn’t work for me ☹.
>  
> With the plugin as downloaded, I get…
>  
> [ERROR] Failed to execute goal 
> org.codehaus.mojo:findbugs-maven-plugin:3.0.3:findbugs (findbugs) on project 
> external-monitor-job: Unable to parse configuration of mojo 
> org.codehaus.mojo:findbugs-maven-plugin:3.0.3:findbugs for parameter 
> pluginArtifacts: Cannot assign configuration entry 'pluginArtifacts' with 
> value '${plugin.artifacts}' of type 
> java.util.Collections.UnmodifiableRandomAccessList to property of type 
> java.util.ArrayList -> [Help 1]
>  
> So I created a branch and tried Baptiste’s updated POM and got batch to the 
> error that has been holding me up before…
>  
> [ERROR] Failed to execute goal org.jenkins-ci.tools:maven-hpi-plugin:3.0:run 
> (default-cli) on project external-monitor-job: minimumJavaVersion attribute 
> must be set starting from version 2.8 -> [Help 1]
>  
> I’m running on a clean Ubuntu image (under VirtualBox) and I believe that I 
> followed the ‘get started’ guides correctly so now I’m completely lost!  Are 
> there any sensible checks that I can make to ensure that I’ve not got 
> anything strange lying around?  The two things that spring to mind are that 
> I’ve got the OpenJDK and Jenkins installed but Jenkins is not running; it 
> looked to me like Maven installed a copy of Jenkins below the ../work 
> directory when running the plug-in dev environments but is there some sort of 
> possible interaction even though Jenkins is not active?
>  
> Happy to try a few things before I create another Ubuntu image and start from 
> scratch again.
>  
> Paul DS.
>  
>  
> From: jenkinsci-dev@googlegroups.com  On 
> Behalf Of Devin Nusbaum
> Sent: 13 December 2018 18:59
> To: jenkinsci-dev@googlegroups.com
> Subject: Re: maven-hpi-plugin ... minimumJavaVersion attribute must be set...
>  
>> I'm trying to create a plug-in and started from the external-jobs plugin.  
>> Unfortunately this had a very obsolete pom.xml so I've tried updating it 
>> following some help given elsewhere in this group but I'm stuff no this 
>> error when I try to run 'mvn hpi:run'
> 
> For what it’s worth, there are Maven archetypes for creating a new Jenkins 
> plugin <https://github.com/jenkinsci/archetypes>, which will get you a 
> relatively up-to-date pom.xml free from any historical quirks or unnecessary 
> configuration that you might be present in the pom.xml of existing plugins. 
> To use the archetypes, run `mvn archetype:generate 
> -Dfilter=io.jenkins.archetypes:` (trailing colon is import) from the command 
> line, and then follow the on-screen prompts.
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> <mailto:jenkinsci-dev+unsubscr...@googlegroups.com>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/3DC89470-5B16-40BB-B124-0318D910A180%40cloudbees.com
>  
> <https://groups.google.com/d/msgid/jenkinsci-dev/3DC89470-5B16-40BB-B124-0318D910A180%40cloudbees.com?utm_medium=email_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> <mailto:jenkinsci-dev+unsubscr...@googlegroups.com>.
> To view this discussion on the web visit 
> https://groups.google.

Re: maven-hpi-plugin ... minimumJavaVersion attribute must be set...

2018-12-13 Thread Devin Nusbaum
> I'm trying to create a plug-in and started from the external-jobs plugin.  
> Unfortunately this had a very obsolete pom.xml so I've tried updating it 
> following some help given elsewhere in this group but I'm stuff no this error 
> when I try to run 'mvn hpi:run'

For what it’s worth, there are Maven archetypes for creating a new Jenkins 
plugin , which will get you a 
relatively up-to-date pom.xml free from any historical quirks or unnecessary 
configuration that you might be present in the pom.xml of existing plugins. To 
use the archetypes, run `mvn archetype:generate 
-Dfilter=io.jenkins.archetypes:` (trailing colon is import) from the command 
line, and then follow the on-screen prompts.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/3DC89470-5B16-40BB-B124-0318D910A180%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: Plugin Adoption Request

2018-11-28 Thread Devin Nusbaum
If the current owners are ok with it, then you should file a PR directly 
against https://github.com/jenkins-infra/repository-permissions-updater 
 to update the 
permissions file for the plugin you care about 
(https://github.com/jenkins-infra/repository-permissions-updater/blob/master/permissions/plugin-kryptowire.yml
 
)
 using the instructions in the README 
(https://github.com/jenkins-infra/repository-permissions-updater#requesting-permissions
 
)
 to get release permissions for the plugin, and then ask the current owners to 
give you write/admin access on GitHub as well.

> On Nov 28, 2018, at 14:56, bschu...@kryptowire.com wrote:
> 
> Hello all, 
> 
> I’d like to request ownership of the Aerogear Kryptowire Jenkins Plugin. The 
> current owners have agreed to the request. My Jenkins id is “bschulte3” and 
> my Github ID is “bschulte”. Thanks you for your help.
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/897737ef-326e-435c-b1fa-e2968e476084%40googlegroups.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/A1584D5D-782F-4E01-BC6D-603D08726CCF%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: Becoming a maintainer of matrix-auth-plugin

2018-10-29 Thread Devin Nusbaum
You should always check repository-permissions-updater when looking for 
maintainers. Daniel is listed as the maintainer for that plugin: 
https://github.com/jenkins-infra/repository-permissions-updater/blob/master/permissions/plugin-matrix-auth.yml
 
,
 so you’d need permission from him.

> On Oct 29, 2018, at 12:58, Matt Sicker  wrote:
> 
> I'd like to join this plugin. I can't find any existing maintainers.
> 
> I'm currently working on some permission system overhauls that require 
> changes to various authorization strategies for both configuration migration 
> purposes as well as for some changes regarding the so-called dangerous 
> permissions.
> 
> -- 
> Matt Sicker
> Software Engineer, CloudBees
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CAEot4oxifbUR0%2Bk6V0oh7PrAbDgRi6ftDuczfKem%2B9HAw1MzcQ%40mail.gmail.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/E69741D2-206B-49DE-A142-AD8C7823BEC4%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: Permission to WhiteSource Plugin

2018-10-03 Thread Devin Nusbaum
No, filing a PR to the repository I linked would give you permission to release 
your plugin to the Jenkins Maven repository. It is independent of GitHub 
permissions for your plugin’s repository.

If all you care about is permissions on GitHub, then your manager should 
already have admin permission on 
https://github.com/jenkinsci/whitesource-plugin 
<https://github.com/jenkinsci/whitesource-plugin> and can give you access 
directly through the GitHub interface. If your manager does not have admin 
permissions, then I would have them file an INFRA ticket on 
https://issues.jenkins-ci.org/ <https://issues.jenkins-ci.org/>, referencing 
https://github.com/jenkins-infra/repository-permissions-updater/blob/master/permissions/plugin-whitesource.yml
 
<https://github.com/jenkins-infra/repository-permissions-updater/blob/master/permissions/plugin-whitesource.yml>
 and request admin access to the repository, at which point they should be able 
to give you admin permissions as well.

You probably want GitHub and release permissions, so I would do both things.

> On Oct 3, 2018, at 09:54, philip.a...@whitesourcesoftware.com wrote:
> 
> hmm.. that means if i want to add a code i should add to another branch, and 
> then review with the owner and then we can merge my changes to the repository?
> 
> that is not what i am looking for.. the owner is my manager, he wants to give 
> me permission to be able to push into Master branch, how can she give me such 
> permission?
> 
> 
> On Wednesday, October 3, 2018 at 4:09:23 PM UTC+3, Devin Nusbaum wrote:
> The repository is: 
> https://github.com/jenkins-infra/repository-permissions-updater 
> <https://github.com/jenkins-infra/repository-permissions-updater>. 
> Instructions on how to request permissions for an existing plugin are in the 
> README here 
> <https://github.com/jenkins-infra/repository-permissions-updater#requesting-permissions>.
> 
>> On Oct 3, 2018, at 03:22, phili...@whitesourcesoftware.com  
>> wrote:
>> 
>> Hi, 
>> 
>> i understand i need to "file a PR in the permissions repository" , and get 
>> approval from at least one of the previous maintainers.
>> 
>> in order to get access to my company's jenkins plugin
>> url: https://github.com/jenkinsci/whitesource-plugin 
>> <https://github.com/jenkinsci/whitesource-plugin>
>> 
>> 
>> problem is I have no idea how to do that..
>> 
>> what does PR mean and what is the permissions repository, can anybody help 
>> me please?
>> 
>> 
>> 
>> -- 
>> You received this message because you are subscribed to the Google Groups 
>> "Jenkins Developers" group.
>> To unsubscribe from this group and stop receiving emails from it, send an 
>> email to jenkinsci-de...@googlegroups.com .
>> To view this discussion on the web visit 
>> https://groups.google.com/d/msgid/jenkinsci-dev/d9b4a0a8-075b-4986-b171-b4328d4157c9%40googlegroups.com
>>  
>> <https://groups.google.com/d/msgid/jenkinsci-dev/d9b4a0a8-075b-4986-b171-b4328d4157c9%40googlegroups.com?utm_medium=email_source=footer>.
>> For more options, visit https://groups.google.com/d/optout 
>> <https://groups.google.com/d/optout>.
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> <mailto:jenkinsci-dev+unsubscr...@googlegroups.com>.
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/d786389a-42d0-48ed-9968-c6e45a9e8802%40googlegroups.com
>  
> <https://groups.google.com/d/msgid/jenkinsci-dev/d786389a-42d0-48ed-9968-c6e45a9e8802%40googlegroups.com?utm_medium=email_source=footer>.
> For more options, visit https://groups.google.com/d/optout 
> <https://groups.google.com/d/optout>.

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/A311F05B-2967-4BDF-8233-E24FFD54BCF6%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: Permission to WhiteSource Plugin

2018-10-03 Thread Devin Nusbaum
The repository is: 
https://github.com/jenkins-infra/repository-permissions-updater 
. Instructions 
on how to request permissions for an existing plugin are in the README here 
.

> On Oct 3, 2018, at 03:22, philip.a...@whitesourcesoftware.com wrote:
> 
> Hi, 
> 
> i understand i need to "file a PR in the permissions repository" , and get 
> approval from at least one of the previous maintainers.
> 
> in order to get access to my company's jenkins plugin
> url: https://github.com/jenkinsci/whitesource-plugin
> 
> 
> problem is I have no idea how to do that..
> 
> what does PR mean and what is the permissions repository, can anybody help me 
> please?
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/d9b4a0a8-075b-4986-b171-b4328d4157c9%40googlegroups.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/9BC57272-FCD4-43B3-A60C-DA06227B82BE%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: pubsub-light-plugin maintainer?

2018-09-26 Thread Devin Nusbaum
It looks like there are a few more maintainers listed in 
repository-permissions-updater 
,
 including Vivek Pandey. If you filed a PR against 
repository-permissions-updater adding yourself as a maintainer I’d guess that 
he’d be more than happy to approve it.

> On Sep 26, 2018, at 17:15, Olivier Lamy  wrote:
> 
> ok so let's wait 2 weeks :) 
> 
> On Wed, 26 Sep 2018 at 22:31, Oleg Nenashev  > wrote:
> Tom Fennelly and James Dumay are the current maintainers from what I see.
> If you get approval from them in this ML, we can add you to the plugin 
> maintainers
> 
> https://wiki.jenkins.io/display/JENKINS/Adopt+a+Plugin 
> 
> 
> Hopefully it helps,
> Oleg
> 
> On Wednesday, September 26, 2018 at 1:02:38 AM UTC+2, Olivier Lamy wrote:
> Hi,
> I might need to do some changes for blue ocean.
> I cannot see any active maintainers.
> Is it something I can get karma?
> Cheers
> -- 
> Olivier 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/e306ada1-b773-4537-a3eb-10453a62fa56%40googlegroups.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .
> 
> -- 
> Olivier Lamy
> http://twitter.com/olamy  | 
> http://linkedin.com/in/olamy 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CAPoyBqS0aBFBun12WNtzRet3PVPWknXpAOnXyW7AygQ7t-8QCw%40mail.gmail.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/D17BB3FD-0B1A-4C66-9AD5-EDAF3C9464E3%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: Request to join the Security Team

2018-09-07 Thread Devin Nusbaum
+1 

> On Sep 7, 2018, at 10:02, Oleg Nenashev  wrote:
> 
> +1
> 
> On Friday, September 7, 2018 at 9:25:35 AM UTC+2, wfoll...@cloudbees.com 
>  wrote:
> +1 to be able to work with us :)
> 
> On Thursday, September 6, 2018 at 9:03:46 PM UTC+2, David Lin wrote:
> Hello!
> 
> I'm interested in joining the Security Team. I'm an Engineering Manager at 
> CloudBees and have vested interest in the security of Jenkins and it's 
> related items.
> 
> I've enabled 2FA on GitHub - Username: davidbees
> I've signed and added my CLA - https://github.com/jenkinsci/infra-cla/pull/63 
> 
> I've registered my Freenode IRC Handle - davidbees
> My Jenkins Community is also davidbees
> 
> I'm looking forward to helping ensure the security process around Jenkins is 
> sound as well as contributing. 
> 
> Thanks!
> 
>  - David
> 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/7e36f58e-dbb3-40a9-bbc0-52a2a3e15872%40googlegroups.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/F11904FD-0237-4528-B82C-C2FDA90E90E9%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: Proposal: Modify Plugin Adoption process to use JIRA to track adoption status

2018-08-24 Thread Devin Nusbaum
> Embryonic thought: maybe we could consider
> `repository-permissions-updater` to be the source of truth? After all,

+1. Since this is what actually changes the permissions, I thinks it makes
sense to handle PRs there as formal requests. 

> (I still maintain that a separate heads-up to the dev list is in order.)

Could we send automatic email notifications to the list as part of the
the build given the presence of a special tag in the PR? I’m not sure how
useful it would be, since the requester would probably need to reply
anyway in an attempt to CC the maintainers, but maybe the consistency
would be helpful.

> An org admin also needs to update the GitHub permissions via e.g.
> 
> https://github.com/orgs/jenkinsci/teams/build-token-root-plugin-developers/members
> 
> but that could just be a (manual or scripted) consequence of the
> `plugin-*.yml` patch.


Yes, I think it would be ideal if both Artifactory and GitHub permissions
were granted at the same time and managed in the same place. If it 
were automated, there would need to be a way to specify GitHub
usernames in `plugin-*.yml` for users who have different usernames
on each platform, and we’d need to be careful that automatic
modification of GitHub permissions did not remove permissions from
existing users on GitHub who were not specified in  `plugin-*.yml`.

> We would also want to deprecate the `` POM field

+1

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/EEB000AD-0F94-4C36-ABB5-D54354452E0F%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: Jenkins Blue Ocean requires perforce.hpi that doesn't exist?

2018-08-20 Thread Devin Nusbaum
Perforce was depublished because of a security advisory: 
https://jenkins.io/security/advisory/2018-03-26/#SECURITY-536 
, so the 
download links and the associated webpage on the plugins site have been removed.

> Is it possible to update the Jira plugin to simply not include it in the 
> dependencies?

Yes, it would probably make sense to update the Jira plugin to remove the 
perforce dependency and the code using it since I don’t think there are any 
plans to republish perforce.

> On Aug 20, 2018, at 12:22, Ryan Hendrickson 
>  wrote:
> 
> Hrm, I didn't see that.  Looks like that page is missing too: 
> https://plugins.jenkins.io/perforce 
> 
> Is it possible to update the Jira plugin to simply not include it in the 
> dependencies?
> 
> Ryan
> 
> On Mon, Aug 20, 2018 at 11:25 AM Keith Zantow  > wrote:
> According to https://plugins.jenkins.io/jira 
>  it appears that perforce is optional, so 
> you shouldn't need to have it installed.
> 
> On Mon, Aug 20, 2018 at 10:49 AM Ryan Hendrickson 
>  > wrote:
> Hi all,
>Does the perforce hpi no longer exist?  blueocean -> blueocean-jira -> 
> jira -> perforce, however, when I download the hpi's for an offline install, 
> the perforce hpi doesn't seem to exist.
> 
> https://updates.jenkins-ci.org/latest/perforce.hpi 
> 
> 
> Thanks,
> Ryan
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CAK7mpPdwqgGkCy4Um-P-QTSfVZhY58CW23h5cP1r9tFFMkmbzw%40mail.gmail.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .
> 
> 
> -- 
> Keith Zantow
> Senior Software Engineer
> CloudBees, Inc.
> 
> 
> 
> E: kzan...@cloudbees.com 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CAJTHQaGYwZWHKG2aBGPt%3Dtgo95dh64XaLw%2By6bsk1jf2zv_iMw%40mail.gmail.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CAK7mpPeQfHU1QXvD75ZsX864EsTZzF83ea4KoAu6kbjtdHNZmQ%40mail.gmail.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/B7626C29-B0ED-4636-B0D9-7046AF7E5B20%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: github-api and jackson2-api shared libraries hell

2018-08-02 Thread Devin Nusbaum
I agree this is a problem.

FWIW, I don’t know of any blockers to updating jackson2-api to 2.9.x, I just 
haven’t had time to look through changelogs and run the PCT to see what the 
impact could be. It might be a non-issue.

Thanks, 
Devin

> On Aug 2, 2018, at 04:43, Oleg Nenashev  wrote:
> 
> Hi Kanstantin,
> 
> I totally agree with your concerns about the dependency hell and about the 
> maintenance status.
> W.R.T this project, I offered KK some help with reviewing/integrating changes 
> when I was using GitHub stack a lot (~4 years ago). I have got Write 
> permissions to the repo, and I can merge pull requests. But I am not a 
> maintainer in this repo, sorry.
> 
> I am working on a proposal which would allow streamlining maintenance and 
> hosting of such components being widely used in Jenkins..
> 
> BR, Oleg
> 
> 
> On Thursday, August 2, 2018 at 2:07:35 AM UTC+2, Kanstantsin Shautsou wrote:
> https://github.com/jenkinsci/jackson2-api-plugin/blob/master/pom.xml#L45-L51 
> 
> Additional maintainers 
> https://github.com/jenkins-infra/repository-permissions-updater/blob/master/permissions/plugin-github-api.yml#L7-L14
>  
> 
>  
> 
> github-api 1.93 has this fix 
> https://github.com/kohsuke/github-api/commit/d50ae63a5a10f08e046ea66491b53a057789cc4a
>  
> 
> 
> Since github-api 1.90 jackson 2.9.3 is required 
> https://github.com/Rechi/github-api/commit/6415785220b2cfab393a12a68efcc4c274d208a2
>  
> 
>  
> but it work fine with 2.8 until 
> https://github.com/kohsuke/github-api/pull/422/files 
>  
> https://github.com/FasterXML/jackson-databind/commit/3711a1c585fe63d5bbd5da7f860dd81b233a6b84
>  
> 
> My blind surprised attempt to bump dep 
> https://ci.jenkins.io/blue/organizations/jenkins/Plugins%2Fgithub-api-plugin/detail/master/13/pipeline
>  
> 
> 
> https://issues.jenkins-ci.org/browse/JENKINS-51322 
>  recommends to shade 
> dependencies.
> 
> I think everybody understand what it mean for jenkins:
> - release 2.9 and broke some number of plugins (or not?). Oleg & Stephen are 
> maintainers
> - shade plugin deps and stop shade-plugin hell
> - revert enum, make new release in github-api (usually requires weeks or 
> months to get Kohsuke attention on repository)
> - stop using github-api in github plugins
> - first/last classloader, classloader hacks, etc
> - else?
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/96f3a16d-0fed-49f1-ac4c-faac57a52372%40googlegroups.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/C63EE54E-B75C-499B-95D9-6055800643C6%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: Request Jenkins security team membership for Jeff Thompson

2018-05-15 Thread Devin Nusbaum
+1

> On May 15, 2018, at 04:14, Oleg Nenashev  wrote:
> 
> +1
> 
> On Tuesday, May 15, 2018 at 5:58:03 AM UTC+2, Jeff Thompson wrote:
> I’d like to request to join the Jenkins security team to help review and fix 
> security changes and issues. I’m a software engineer at CloudBees and have 
> begun contributing to Jenkins projects and plugins. In the past, I’ve worked 
> on security issues for a variety of other projects or companies.
> 
> Requirements:
> 2FA at GitHub: yes
> ICLA: PR #57 ( https://github.com/jenkinsci/infra-cla/pull/57 
>  )
> IRC nickname: jeffret-b
> GitHub name: jeffret-b
> Jenkins community name: jthompson
> 
> Thanks
> 
> Jeff Thompson
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/b7aad66d-32cf-4f11-b35e-01e85bdab1e8%40googlegroups.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/47E6B36C-6EED-4C7D-86D5-C279B62D8D3C%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: Request to join security team

2018-05-14 Thread Devin Nusbaum
+1 

> On May 14, 2018, at 11:55, Matt Sicker  wrote:
> 
> Hi, I'm interested in joining the security team. I'm a software engineer at 
> CloudBees who is working on some security-related epics. I've got 2FA enabled 
> on GitHub (username: jvz), signed the CLA, and am registered on Freenode 
> (nick: musigma). My Jenkins community username is also jvz.
> 
> As for experience, I've handled or collaborated on several CVEs at the Apache 
> Logging Services and Apache Commons projects.
> 
> -- 
> Matt Sicker
> Software Engineer, CloudBees
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CAEot4oz9pfvQivZ2-7EMg%2BkNf0qToF8Aq%3D-kZHb0yhCucz5Ccg%40mail.gmail.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/868D8051-9952-4E2F-9BE4-F6581ED185AF%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: AtomicFileWriterTest fails

2018-04-16 Thread Devin Nusbaum
AIUI creating symlinks in Windows 10+ requires running as administrator unless 
developer mode is enabled. Blog post from Microsoft on the changes: 
https://blogs.windows.com/buildingapps/2016/12/02/symlinks-windows-10/ 
. I’m 
not sure if there is an easy way to check that setting from Java. UtilTest 
currently ignores all symlink tests on Windows. (It does have one test for 
junctions, which are a little different.)

Since this test is unrelated to posix file permissions so I would just ignore 
it on Windows unconditionally. If you really wanted it to run when symlinks are 
supported then I guess you could run `cmd.exe /C mklink /d link target` using 
ProcessBuilder and if that exits successfully and the symlink exists then 
creating a symlink via NIO should also work.

Devin

> On Apr 16, 2018, at 15:58, Baptiste Mathus  wrote:
> 
> Yeah, introduced in https://github.com/jenkinsci/jenkins/commit/4f2e2615055 
>  / 
> https://github.com/jenkinsci/jenkins/pull/2548 
> 
> 
> Just checked, and though the PR history is now deleted, I'm pretty sure the 
> CI did run on Windows for this too. 
> 
> 
> 
> So there must be a reason why this works or not under some circumstances I 
> suspect.
> 
> I think I will file something tomorrow for this if nobody beats me to it. 
> Though I'd like to understand why it succeeds sometimes or not, maybe just 
> when running under cygwin or not indeed.
> Or maybe I should just try to be smart... Ever.
> And use Functions.isWindows() to disable this globally on Windows, and not 
> just when that new isPosixSupported() method I added returns true or false.
> 
> -- Baptiste
> 
> 
> 2018-04-16 20:55 GMT+02:00 Jesse Glick  >:
> On Sat, Apr 14, 2018 at 1:13 PM, Jonathan Bergh
> > wrote:
> > This helper function in the test led me to
> > believe this test should not be running on the Windows platform
> 
> The `checkPermissionsRespectUmask` test is skipped on Windows. (Well,
> at least potentially—not sure about Cygwin.) `symlinkToDirectory` is
> not skipped on Windows. Probably it should start with:
> 
> assumeFalse(Functions.isWindows());
> 
> Feel free to add that and file a PR claiming to follow up
> 
> https://github.com/jenkinsci/jenkins/pull/2548 
> 
> https://github.com/jenkinsci/jenkins/pull/3233 
> 
> https://github.com/jenkinsci/jenkins/pull/3275 
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CANfRfr2YVN2s7D5QLaKZFzgHXUxBs7j1QZbWaHYzyvQAzju%2BJQ%40mail.gmail.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CANWgJS6%3DxQCVqvjJbz95NTcs62mwy90C5jH0fbwCd1cWDL9exQ%40mail.gmail.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/8BCC4947-291B-4FD3-837A-98FAA0395780%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Re: Eh why are we suggesting such a complex reverse proxy configuration?

2018-02-07 Thread Devin Nusbaum
+1, I support editing the pages to focus on a simple config that just changes 
X-Forwarded headers.

I created the HAProxy wiki page while testing the HTTP duplex CLI mode with 
various reverse proxies, so I am fully to blame :) I had no prior knowledge 
about HAProxy and pieced together a working config based on some googling, so 
please edit the page if there is something much simpler that will work!

I think a lot of the complexity in these pages comes from things that many 
users don’t need (for example, serving static files directly, using a different 
context path, special buffering and/or timeout options to get the HTTP duplex 
CLI working, or a fix for a random issue specific to one user’s environment). I 
am hesitant to delete these settings from the wiki outright, but we should at 
least move them into a clearly labeled subsection that explains why they should 
and shouldn’t be used (for example, turning off request buffering might get the 
HTTP duplex CLI mode working, but it might also tank performance).


> On Feb 7, 2018, at 08:39, 'Marco Brondani' via Jenkins Developers 
>  wrote:
> 
> +1  to this.
> I’m using a very similar configuration in my own setup.
> And I see that the X-Forwarded* headers on Apache without rewrite rules get 
> the Job done as well.
>  
> Cheers
>  
>  
> From: Stephen Connolly 
> Sent: Wednesday, February 7, 2018 2:10 PM
> To: jenkinsci-dev@googlegroups.com 
> Subject: Eh why are we suggesting such a complex reverse proxy configuration?
>  
> https://twitter.com/connolly_s/status/961223121981399040 
> 
>  
> for example, here is a working haproxy configuration without any crazy 
> rewrite rules:
>  
> frontend jenkins
> mode http
> bind *:80
> use_backend jenkins
>  
> frontend jenkins-tls
> mode https
> bind *:443 crt /path/to/server.pem
> use_backend jenkins
>  
> backend jenkins
> mode http
> option forwardfor
> http-request set-header X-Forwarded-Host %[req.hdr(Host)]
> http-request del-header X-Forwarded-Port
> http-request set-header X-Forwarded-Proto https if { ssl_fc }
> server jenkins jenkins.internal.example.com:8080 
>  check
>  
> and that works perfectly fine, no reverse proxy warnings, all urls generated 
> correctly irrespective of the url you access the reverse proxy with.
>  
> I would love to know why we are pushing much more complex and brittle (and 
> probably subtly broken... cough 
> https://issues.jenkins-ci.org/browse/JENKINS-44006 
>  and similar cough cough
>  
> Don't get me started on how complex all the other configurations are for 
> apache, iis, squid, nginx, etc
>  
> I suspect all could be simplified to just set X-Forwarded-Host to the Host 
> header (and remove any X-Forwarded-Port that evil hacker injected in their 
> request to the reverse proxy) or parse the Host header and set 
> X-Forwarded-Host to the parsed requested hostname and X-Forwarded-Port to the 
> parsed requested port... no rewrite rules... and everyone would be happy.
>  
> Thoughts?
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CA%2BnPnMyCVRaSkqOJEVH7BLt_%2B4o2n57wbLyD3wcEUCknDKkH4w%40mail.gmail.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .
>  
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/5a7b01a9.11b8500a.2b51a.8357%40mx.google.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 

Re: Compatability code

2018-01-16 Thread Devin Nusbaum
Hi Mads,

This wiki page explains the right configuration to add to pom.xml in your 
plugin: 
https://wiki.jenkins.io/display/JENKINS/Marking+a+new+plugin+version+as+incompatible+with+older+versions
 


Thanks,
Devin

> On Jan 16, 2018, at 08:24, Mads Nielsen  wrote:
> 
> Hey There,
> 
> Question: How do you indicate in your plugin to the update center, the 
> possibility of a plugin not being compatible with previous versions? I see 
> this in the update center in red text when i try to update? Can you control 
> this or is automatically done by the update center by some kind of analysis 
> of the current instance?
> 
> Best regards,
> Mads
> 
> Mads Nielsen 
> Consultant 
> 
> m...@praqma.net  
> +45 50 98 18 09 <> 
> Skype: inkspot 
> Praqma.com  
> Praqma Copenhagen  
> 
> 
>  
> 
> 
> -- 
> You received this message because you are subscribed to the Google Groups 
> "Jenkins Developers" group.
> To unsubscribe from this group and stop receiving emails from it, send an 
> email to jenkinsci-dev+unsubscr...@googlegroups.com 
> .
> To view this discussion on the web visit 
> https://groups.google.com/d/msgid/jenkinsci-dev/CAFariuue%2BfTYdmWXdCL46CpN7VioWMf0gndVDvF%3D%2B0pqdFiXjQ%40mail.gmail.com
>  
> .
> For more options, visit https://groups.google.com/d/optout 
> .

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/09765C17-31A1-4FE3-A4FD-CA6BE4E700C8%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.


Request to join Jenkins CERT team

2017-09-26 Thread Devin Nusbaum
Hi everyone,

I would like to request access to join the Jenkins CERT team.

GitHub 2-factor auth enabled: yes
Signed CLA: 
https://github.com/jenkinsci/infra-cla/tree/master/collected/icla/dnusbaum 
<https://github.com/jenkinsci/infra-cla/tree/master/collected/icla/dnusbaum>
GitHub Username: dwnusbaum <https://github.com/dwnusbaum>
IRC Nickname: dnusbaum
Jenkins community username: dnusbaum

Thanks,

Devin Nusbaum

-- 
You received this message because you are subscribed to the Google Groups 
"Jenkins Developers" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to jenkinsci-dev+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/jenkinsci-dev/9185758F-15F0-4D57-BC1B-CB85AA0DDD6E%40cloudbees.com.
For more options, visit https://groups.google.com/d/optout.