Plugin Hosting Request for Custom Command SCM and Node Cleanup Plugin

44 views
Skip to first unread message

Andreas K

unread,
Sep 15, 2015, 2:25:20 PM9/15/15
to jenkin...@googlegroups.com
Hi,

I have created two plugins which I would like to host on jenkins-ci.


Custom Command SCM:
This plugin allows to use any program on as a SCM. For polling and
checkout two separate commands can be defined in the Jenkins system page.

For each job additional parameters may be configured and are added to
both, polling and checkout command.

The outcome of the poll step depends on the return code of the poll
command, intermediate revision states are feed to the command using
stdin and may be returned via stdout.

The checkout command may write its change log to stdout. The required
xml format is described using a xsd schema.


Node Cleanup Plugin:
This plugin allows to remove unused workspaces from slave nodes. It
lists all workspaces (subfolders in the configured root folder on the
slave) and displays if there is a job available with an according
workspace name and if the job is bound to the slave.


My GitHub ID: anderl86
My jenkins-ci.org ID: anderl86

Custom Command SCM ID: custom-command-scm
Node Cleanup ID: node-cleanup

If possible I'd like to start with empty GitHub repositories.

Thanks for your assistance!

Bye, Andreas

Oleg Nenashev

unread,
Sep 16, 2015, 4:18:53 AM9/16/15
to Jenkins Developers, ande...@hotmail.com

Custom Command SCM: 
This plugin allows to use any program on as a SCM. For polling and 
checkout two separate commands can be defined in the Jenkins system page. 

Sounds to be very relevant to https://wiki.jenkins-ci.org/display/JENKINS/Script+SCM+Plugin . Did you consider integrating the features there?
 
Node Cleanup Plugin: 
This plugin allows to remove unused workspaces from slave nodes. It 
lists all workspaces (subfolders in the configured root folder on the 
slave) and displays if there is a job available with an according 
workspace name and if the job is bound to the slave. 

This feature will be definitely useful as a separate plugin. It would be great to see the code in order to check if it is possible to integrate the implementation with existing plugins in order to avoid the functionality duplications.
вторник, 15 сентября 2015 г., 21:25:20 UTC+3 пользователь Andreas K написал:

Andreas K

unread,
Sep 16, 2015, 3:04:53 PM9/16/15
to Oleg Nenashev, Jenkins Developers
Thanks for your input.

Custom Command SCM:
I'll check the Script SCM Plugin, unfortunately there is a bit of
documentation missing, so I probably need to go through the code. It
looks like it is closely connected to groovy and ant which is not what I
require.
Code is available at: https://github.com/anderl86/custom-command-scm


Node Cleanup Plugin:
I checked the (Distributed) Workspace Cleanup plugins but I think the
intention is somewhat different: Both plugins do cleanup during a build
(before or after). My usecase is to get rid of workspaces on slaves for
jobs that have already been deleted (Job deletion on master does not
delete the workspaces on the slaves) sometimes also for jobs that have
been moved from one slave to another.
It is definitely of use together with the Disk Usage plugin and may be
integrated. But I heard of some performance issues with the Disk Usage
plugin (We have workspaces with around 60GB of small files) so I'd
rather have a separate plugin. Potential integration could be something
for a future release.
Code is available at: https://github.com/anderl86/workspace-cleanup-plugin

Kind regards, Andreas



Am 16.09.2015 um 10:18 schrieb Oleg Nenashev:
>
>
> This plugin allows to use any program on as a SCM. For polling and
> checkout two separate commands can be defined in the Jenkins system
> page.
>
>
> Sounds to be very relevant
> to https://wiki.jenkins-ci.org/display/JENKINS/Script+SCM+Plugin . Did
> you consider integrating the features there?
>
>
> This plugin allows to remove unused workspaces from slave nodes. It
> lists all workspaces (subfolders in the configured root folder on the
> slave) and displays if there is a job available with an according
> workspace name and if the job is bound to the slave.
>
>
> This feature will be definitely useful as a separate plugin. It would be
> great to see the code in order to check if it is possible to integrate
> the implementation with existing plugins in order to avoid the
> functionality duplications.
>
> * Probably the functionality overlaps
> with https://wiki.jenkins-ci.org/display/JENKINS/Hudson+Distributed+Workspace+Clean+plugin.
> * It could be a value-added feature
> for https://wiki.jenkins-ci.org/display/JENKINS/Workspace+Cleanup+Plugin
> or for https://wiki.jenkins-ci.org/display/JENKINS/Disk+Usage+Plugin
> => integrations may be useful
>
> вторник, 15 сентября 2015 г., 21:25:20 UTC+3 пользователь Andreas K написал:
>
> Hi,
>
> I have created two plugins which I would like to host on jenkins-ci.
>
>
> Custom Command SCM:
> This plugin allows to use any program on as a SCM. For polling and
> checkout two separate commands can be defined in the Jenkins system
> page.
>
> For each job additional parameters may be configured and are added to
> both, polling and checkout command.
>
> The outcome of the poll step depends on the return code of the poll
> command, intermediate revision states are feed to the command using
> stdin and may be returned via stdout.
>
> The checkout command may write its change log to stdout. The required
> xml format is described using a xsd schema.
>
>
> Node Cleanup Plugin:
> This plugin allows to remove unused workspaces from slave nodes. It
> lists all workspaces (subfolders in the configured root folder on the
> slave) and displays if there is a job available with an according
> workspace name and if the job is bound to the slave.
>
>
> My GitHub ID: anderl86
> My jenkins-ci.org <http://jenkins-ci.org> ID: anderl86

Oleg Nenashev

unread,
Sep 27, 2015, 4:40:41 PM9/27/15
to Jenkins Developers, o.v.ne...@gmail.com, ande...@hotmail.com

I'll check the Script SCM Plugin, unfortunately there is a bit of
documentation missing, so I probably need to go through the code. It
looks like it is closely connected to groovy and ant which is not what I
require.

Yes, they are different a bit. Seems I've referenced a wrong plugin

Implementation of return codes handling in your plugin is not Generic enough, so actually we pass a single-line script. I think https://github.com/jenkinsci/shell-script-scm-plugin would work in your case, but it presumes the "sh family" of interpreters. Probably it could address your case.

Node Cleanup Plugin:

Agreed, a new plugin may make sense. Probably https://wiki.jenkins-ci.org/display/JENKINS/Workspace+Cleanup+Plugin could be also considered.

I briefly went through your code and discovered some potential issues in it. Even if we agree to create a new plugin, I would highly recommend to create a pull request with all contents and to pass a review before the first release. Jenkins API is complex and unclear sometimes, hence a review could allow to avoid common issues.

Best regards,
Oleg


среда, 16 сентября 2015 г., 22:04:53 UTC+3 пользователь Andreas K написал:

Andreas K

unread,
Oct 9, 2015, 4:10:53 PM10/9/15
to Oleg Nenashev, Jenkins Developers, ande...@hotmail.com
The return code handling can for sure be improved also I don't
understand the issue at the moment. Code review is for sure a good Idea,
I am not a routinized plugin developer.
Nevertheless the SCM plugin is running in my companies build system with
4 slaves and has already survived thousands of builds.

The shell-script-scm-plugin really does a very simelar job, but seems
more like a stub not maintained for 5 years and not listed on the
Plugins page? I thinks my plugin, with some improvements, could replace
that one.

I would like to agree on creating a new plugin ;) The proposed way with
a pull request for review is for sure a good idea. I am always
interested in improving my skills and learning new stuff.
Also this plugin is already in productive use in our build system.

Once more thanks for your support.

Regards, Andreas
> <https://wiki.jenkins-ci.org/display/JENKINS/Hudson+Distributed+Workspace+Clean+plugin>.

Oleg Nenashev

unread,
Oct 10, 2015, 3:34:31 AM10/10/15
to Jenkins Developers, o.v.ne...@gmail.com, ande...@hotmail.com, jie...@java.net
Hi Andreas,

Thanks a lot for your patience and detailed answers!
I'm OK with node-cleanup-plugin. I'll fork it today.

Regarding the "custom-script-scm-plugin", I would vote for extending Script SCM plugin (https://issues.jenkins-ci.org/browse/JENKINS-28472) and deprecating the existing shell-script-plugin.

BTW, I also agree if you want to create a separate plugin. Then...
  • Script SCM Plugin could be renamed to Groovy System Script SCM Plugin
  • The old plugin https://github.com/jenkinsci/shell-script-scm-plugin can be deprecated or replaced by the new code if Jesse Farinacci agrees (in Cc)
  • I'll create "custom-script-scm-plugin" repo. If there is a response from Jesse, we can always move the code
BR, Oleg

пятница, 9 октября 2015 г., 23:10:53 UTC+3 пользователь Andreas K написал:

Andreas K

unread,
Nov 8, 2015, 4:54:17 PM11/8/15
to jenkin...@googlegroups.com, Oleg Nenashev, ande...@hotmail.com
Hi Oleg,

sorry for the very long break! Had been really busy on work and had to
do some business trips. I'd be grateful if you create a repo for the
node-cleanup-plugin. You proposed a review of my plugin code but
unfortunately I don't know the review process, so how to trigger a review?

About the custom script scm plugin I'll check if it could be integrated
into the script scm plugin. I understand the issue not having to many
plugins to make it easier for users to find the right plugin. On the
other hand having separate plugins for separate things might also be
helpful? Really not sure what is the best solution here.

Once again, thanks for your support.

Kind Regards, Andreas


Am 10.10.2015 um 09:34 schrieb Oleg Nenashev:
> Hi Andreas,
>
> Thanks a lot for your patience and detailed answers!
> I'm OK with node-cleanup-plugin. I'll fork it today.
>
> Regarding the "custom-script-scm-plugin", I would vote for extending
> Script SCM plugin (https://issues.jenkins-ci.org/browse/JENKINS-28472)
> and deprecating the existing shell-script-plugin.
>
> BTW, I also agree if you want to create a separate plugin. Then...
>
> * Script SCM Plugin could be renamed to Groovy System Script SCM Plugin
> * The old plugin https://github.com/jenkinsci/shell-script-scm-plugin
> can be deprecated or replaced by the new code if Jesse Farinacci
> agrees (in Cc)
> * I'll create "custom-script-scm-plugin" repo. If there is a response
Reply all
Reply to author
Forward
0 new messages