Documentation and General Guidance for Plugin Development with Jenkins 2 and Extension Points

24 views
Skip to first unread message

Gergely Brautigam

unread,
Jul 11, 2017, 10:54:38 AM7/11/17
to Jenkins Developers
Hi Everyone.

I'm fairly new to the plugin development part of Jenkins. I've been a long time user though.

I would like to write a complex S3 archive uploader plugin, because the s3 plugin available right now (located here: https://github.com/jenkinsci/s3-plugin), is old and really outdated and lacking things like KMS Encryption and selecting individual artifacts for uploading.

That said, it's also written in the old structure way and not using the supposed "new" way implementing Extension Points. Also, I would like to use Java 8 for this.

I'm looking for some guides on general plugin development, preferable something that is not 3-4-5-10 years old stuff. And a documentation on how to properly implement the Extension Points for post build actions like locating archives and performing actions on them.

Is there something like that around? Or do you guys know some repositories that are doing post build actions and use Extension Points I could look at?

Thanks, 
Any help and advice from plugin developers is greatly appreciated. :)
Gergely.

Daniel Beck

unread,
Jul 11, 2017, 11:44:59 AM7/11/17
to jenkin...@googlegroups.com

> On 11. Jul 2017, at 15:36, Gergely Brautigam <skarl...@gmail.com> wrote:
>
> I'm looking for some guides on general plugin development, preferable something that is not 3-4-5-10 years old stuff. And a documentation on how to properly implement the Extension Points for post build actions like locating archives and performing actions on them.

Right, progress on the developer documentation modernization has been very slow, so almost all of the docs are still wiki pages that have been around for a while.

That said, the plugin archetype is reasonably well written in a pipeline compatible way (mvn hpi:create).

Depending on what your plugin does, reading the guides how to integrate it with Credentials, Pipeline, and Script Security should take care of the major "recent" technology available.

I don't think that much else has changed in major ways. I think it's mostly relatively minor stuff, like DataboundSetters instead of adding a new constructor when a field is added.

If you have any questions, poke me on IRC. You're going to help me as well, in prioritizing documentation work.

Gergely Brautigam

unread,
Jul 13, 2017, 4:50:30 AM7/13/17
to Jenkins Developers, m...@beckweb.net
On Tuesday, 11 July 2017 17:44:59 UTC+2, Daniel Beck wrote:

> On 11. Jul 2017, at 15:36, Gergely Brautigam <skarl...@gmail.com> wrote:
>
> I'm looking for some guides on general plugin development, preferable something that is not 3-4-5-10 years old stuff. And a documentation on how to properly implement the Extension Points for post build actions like locating archives and performing actions on them.

Right, progress on the developer documentation modernization has been very slow, so almost all of the docs are still wiki pages that have been around for a while.

Oh yeah that's usually the case when things move fast. :)
 

That said, the plugin archetype is reasonably well written in a pipeline compatible way (mvn hpi:create).

You mean when I'm creating a plugin skeleton with mvn?
 

Depending on what your plugin does, reading the guides how to integrate it with Credentials, Pipeline, and Script Security should take care of the major "recent" technology available.

Uh, which are... where? Wiki? :)
 

I don't think that much else has changed in major ways. I think it's mostly relatively minor stuff, like DataboundSetters instead of adding a new constructor when a field is added.

If you have any questions, poke me on IRC. You're going to help me as well, in prioritizing documentation work.

Awesome! Thanks very much man. I will. :)
 

Daniel Beck

unread,
Jul 13, 2017, 5:03:22 AM7/13/17
to jenkin...@googlegroups.com

> On 13. Jul 2017, at 09:48, Gergely Brautigam <skarl...@gmail.com> wrote:
>
>> That said, the plugin archetype is reasonably well written in a pipeline compatible way (mvn hpi:create).
>
> You mean when I'm creating a plugin skeleton with mvn?

Yes.

>> Depending on what your plugin does, reading the guides how to integrate it with Credentials, Pipeline, and Script Security should take care of the major "recent" technology available.
>
> Uh, which are... where? Wiki? :)

Credentials:
https://wiki.jenkins.io/display/JENKINS/Credentials+Plugin#CredentialsPlugin-InformationforPluginDevelopers
(Also, I think the plugin maintainer is writing new guides right now)

Pipeline:
https://github.com/jenkinsci/pipeline-plugin/blob/master/DEVGUIDE.md
https://github.com/jenkinsci/workflow-step-api-plugin/blob/master/README.md

Script security:
https://wiki.jenkins.io/display/JENKINS/Script+Security+Plugin#ScriptSecurityPlugin-Developer%E2%80%99sguide

Gergely Brautigam

unread,
Jul 13, 2017, 5:30:36 AM7/13/17
to Jenkins Developers, m...@beckweb.net
Vii, awesome stuff! Thanks again man. And thanks for the fast response. :)

It's been a long time since I did Java. Mainly built stuff in Go. Will be fun getting back to it. 
Reply all
Reply to author
Forward
0 new messages