For me, it's too early but if you think that it's fine to include it under jenkinsci in the current state then I don't mind. Yet I want to control development of it for now and keep pull request model for it, I hope you understand :)
Sergei On Tue, Mar 22, 2016 at 3:40 PM Oleg Nenashev <[email protected]> wrote: > Why don't you just move it to jenkinsci org? > The plugin is definitely useful, so I think it is reasonable. > > P.S: I'm still planning to run the plugin against big pipelines. I'm just > in the slowpoke mode :( > > BR, Oleg > > вторник, 22 марта 2016 г., 14:07:39 UTC+1 пользователь Sergei Egorov > написал: >> >> FYI I configured CircleCI for this plugin, so now it's possible to >> download the latest *.hpi *automated* build from there: >> >> i.e. Build #7: >> https://circleci.com/gh/bsideup/jenkins-pipeline-view/7#artifacts >> >> On Tue, Mar 22, 2016 at 8:59 AM Michael Neale <[email protected]> >> wrote: >> > In another case it looks like Execution, yes... never mind (should be easy >>> to fix once identified). I think the jackson stuff just happened to pick >>> that edge case up (I thought I saw a serialization problem and my brain >>> suddenly turned off looking for null pointers! hahaha. >>> >>> Nice work! >>> >>> >>> On Tuesday, March 22, 2016 at 5:49:49 PM UTC+11, Sergei Egorov wrote: >>> >>>> Actually... getStartNode marked with @Nonnull, as well >>>> as getExecution(), so one of them is null. Execution maybe? >>>> >>>> On Tue, Mar 22, 2016 at 8:17 AM Sergei Egorov <[email protected]> wrote: >>>> >>> Hi Michael, >>>>> >>>>> Wow, interesting finding! >>>>> >>>>> I checked with the sources and looks like it's not an issue of the >>>>> plugin itself, but StepEndNode. Jackson in plugin configured to serialize >>>>> only pre-configured fields/methods, and any new object in the domain will >>>>> not affect it. >>>>> >>>>> What I see here is that StepEndNode::getTypeDisplayName throws an NPE. >>>>> From StepEndNode's source code, I see that there are no checks for >>>>> getStartNode() result, and for some reason it's null. This is a good place >>>>> to start if you want to figure out what's wrong in your setup (even better >>>>> if you can put conditional breakpoint on getTypeDisplayName and >>>>> "getStartNode() == null", because I see (in code) that it might be null, >>>>> but getTypeDisplayName is not null-safe. >>>>> >>>>> On Tue, Mar 22, 2016 at 8:00 AM Michael Neale <[email protected]> >>>>> wrote: >>>>> >>>> As luck would have it, I notice this is tripped by by having global lib >>>>>> variables added in (basically, DSLs). Is there a JIRA project for this? >>>>>> >>>>>> (not a huge thing, I can't imagine many would run into this, but it >>>>>> looks like it gets upset if not all the things are serializable). >>>>>> >>>>>> Caused by: com.fasterxml.jackson.databind.JsonMappingException: (was >>>>>> java.lang.NullPointerException) (through reference chain: >>>>>> org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode["typeDisplayName"]) >>>>>> >>>>>> at >>>>>> com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:141) >>>>>> >>>>>> at >>>>>> com.fasterxml.jackson.databind.ObjectMapper._configAndWriteValue(ObjectMapper.java:3559) >>>>>> >>>>>> at >>>>>> com.fasterxml.jackson.databind.ObjectMapper.writeValue(ObjectMapper.java:2909) >>>>>> >>>>>> at >>>>>> com.github.bsideup.jenkins.pipeline.ui.view.PipelineViewApi.doNodes(PipelineViewApi.java:75) >>>>>> >>>>>> ... 89 more >>>>>> >>>>>> Caused by: java.lang.IllegalArgumentException: (was >>>>>> java.lang.NullPointerException) (through reference chain: >>>>>> org.jenkinsci.plugins.workflow.cps.nodes.StepEndNode["typeDisplayName"]) >>>>>> >>>>>> at >>>>>> com.fasterxml.jackson.databind.ObjectMapper._convert(ObjectMapper.java:3459) >>>>>> >>>>>> at >>>>>> com.fasterxml.jackson.databind.ObjectMapper.convertValue(ObjectMapper.java:3378) >>>>>> >>>>>> at >>>>>> com.github.bsideup.jenkins.pipeline.ui.view.PipelineViewApi$2.apply(PipelineViewApi.java:78) >>>>>> >>>>>> at >>>>>> com.github.bsideup.jenkins.pipeline.ui.view.PipelineViewApi$2.apply(PipelineViewApi.java:75) >>>>>> >>>>>> at com.google.common.collect.Iterators$8.next(Iterators.java:812) >>>>>> >>>>>> at >>>>>> com.fasterxml.jackson.databind.ser.std.IterableSerializer.serializeContents(IterableSerializer.java:89) >>>>>> >>>>>> at >>>>>> com.fasterxml.jackson.databind.ser.std.IterableSerializer.serialize(IterableSerializer.java:74) >>>>>> >>>>>> at >>>>>> com.fasterxml.jackson.databind.ser.std.IterableSerializer.serialize(IterableSerializer.java:12) >>>>>> >>>>>> at >>>>>> com.fasterxml.jackson.databind.ser.DefaultSerializerProvider.serializeValue(DefaultSerializerProvider.java:130) >>>>>> >>>>>> ... 92 more >>>>>> >>>>>> On Tuesday, March 22, 2016 at 10:49:54 AM UTC+11, Michael Neale wrote: >>>>>>> >>>>>>> Very cool, and I like the use of react! >>>>>>> >>>>>>> On Monday, March 21, 2016 at 5:52:04 PM UTC+11, Sergei Egorov wrote: >>>>>>>> >>>>>>>> Hey everyone, >>>>>>>> >>>>>>>> Yesterday I decided to publish sources for my pipeline >>>>>>>> visualization plugin: >>>>>>>> https://github.com/bsideup/jenkins-pipeline-view >>>>>>>> >>>>>>>> <https://lh3.googleusercontent.com/-t28IjO2m73U/Vu-VVrauoEI/AAAAAAAAAyI/tiF8TH7YVCYiqI4n78DvC0FQ21ir46LNg/s1600/screenshot.png> >>>>>>>> >>>>>>>> >>>>>>>> What's cool about it? >>>>>>>> First of all, it *can handle any graph* provided by pipeline >>>>>>>> because it uses very powerful *JS graph library* to position >>>>>>>> steps. >>>>>>>> Also, it's a *React* application, written in *ES7* (not even >>>>>>>> ES6!), with ImmutableJS and RxJS inside - so hipsters will be happy :D >>>>>>>> But >>>>>>>> in fact, it means that it's damn easy to develop this plugin and >>>>>>>> provide >>>>>>>> more functionality. >>>>>>>> I use *Webpack* to bundle everything (JS, CSS, fonts, images, SVG >>>>>>>> icons) in one single pipe.js file. *No Jenkins JS Modules*, no >>>>>>>> conflicts, no impact on others. Even CSS will not conflict because of >>>>>>>> *CSS-modules* ( http://glenmaddern.com/articles/css-modules ) >>>>>>>> All icons are SVG ones and look good on any screen, retina or not, >>>>>>>> and any zoom level. >>>>>>>> >>>>>>>> I use Jackson on the backend side to serialize FlowNodes and their >>>>>>>> actions. *Why Jackson?* Because it was much easier to implement >>>>>>>> serialization of selected (non-exposed) fields and class info included >>>>>>>> compared to Stapler. I saw something were done about classinfo in >>>>>>>> Stapler, >>>>>>>> but at the moment of creation of this plugin, it wasn't delivered to >>>>>>>> Jenkins core yet. Also, *almost none of the Pipeline actions are >>>>>>>> @Expose-d*. >>>>>>>> >>>>>>>> I use *gradle-jpi-plugin* instead of Maven because it's much >>>>>>>> easier to describe some complex build process with Gradle, especially >>>>>>>> when >>>>>>>> frontend build is involved. In fact, it's just one line: >>>>>>>> >>>>>>>> https://github.com/bsideup/jenkins-pipeline-view/blob/954b895b6574cdf34815ff94a4a8db3ad3811aeb/build.gradle#L61 >>>>>>>> >>>>>>>> >>>>>>>> Future development >>>>>>>> Will I continue to develop it? Definitely! Here, *at >>>>>>>> ZeroTurnaround*, we use Jenkins a lot, and eventually we will >>>>>>>> migrate to the pipelines, and proper visualization of the process is a >>>>>>>> must >>>>>>>> for us. And feel free to contribute as well, it's really a good chance >>>>>>>> to >>>>>>>> learn *modern JS stack* as well :) >>>>>>>> >>>>>>>> >>>>>>>> >>>>>>>> Best regards, >>>>>>>> Sergei Egorov >>>>>>>> >>>>>>> -- >>>>>> 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 [email protected]. >>>>> >>>>> >>>>>> To view this discussion on the web visit >>>>>> https://groups.google.com/d/msgid/jenkinsci-dev/0697c884-91ad-4716-809e-3c40cf5e35da%40googlegroups.com >>>>>> <https://groups.google.com/d/msgid/jenkinsci-dev/0697c884-91ad-4716-809e-3c40cf5e35da%40googlegroups.com?utm_medium=email&utm_source=footer> >>>>>> . >>>>>> 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 [email protected]. >>> >> To view this discussion on the web visit >>> https://groups.google.com/d/msgid/jenkinsci-dev/70fea7d1-fb89-4500-802b-9e7ec2cb3fb1%40googlegroups.com >>> <https://groups.google.com/d/msgid/jenkinsci-dev/70fea7d1-fb89-4500-802b-9e7ec2cb3fb1%40googlegroups.com?utm_medium=email&utm_source=footer> >>> . >>> 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 [email protected]. > To view this discussion on the web visit > https://groups.google.com/d/msgid/jenkinsci-dev/08bfae6f-5de0-41e1-8a1f-4daca75fe753%40googlegroups.com > <https://groups.google.com/d/msgid/jenkinsci-dev/08bfae6f-5de0-41e1-8a1f-4daca75fe753%40googlegroups.com?utm_medium=email&utm_source=footer> > . > 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 [email protected]. To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAAJdKXm%2BjmTcQEMim9s2T7Y0JMJc-tZcP64edZDvVDYTjAG8AQ%40mail.gmail.com. For more options, visit https://groups.google.com/d/optout.
