XTrigger-Lib needs maintenance/release

26 views
Skip to first unread message

Tony Noble

unread,
Jul 11, 2019, 5:48:45 AM7/11/19
to jenkin...@googlegroups.com
I realise this isn't a plugin as such, so not sure how the process would work.

A number of trigger plugins, mine included (urltrigger) rely on xtrigger-lib to perform the core job handling and cron scheduling.  From what I can see, Gregory Boissinot used to maintain this, along with the dependent plugins, but I'm guessing he stepped back from them all at the same time.

At the moment, a number of issues within xtrigger-lib prevent the dependent plugins from being pipeline-compliant.  Proposed fixes for them have been merged by @oleg-nenashev , but no release has been performed, so they're not specifically useable.

I guess the questions is - how do I go about getting a release created?  I'm happy to take the responsibility on myself, if that's what's required, but as mentioned above, I'm not sure how the process would work for a lib rather than a plugin.

Tony

Oleg Nenashev

unread,
Jul 11, 2019, 5:53:17 AM7/11/19
to Jenkins Developers
FTR, there was a thread about the next steps for XTrigger lib: https://groups.google.com/forum/#!searchin/jenkinsci-dev/XTrigger%7Csort:date/jenkinsci-dev/voKBrqz7V_o/rCP5ysYZBwAJ
AFAICT, we still need to get a release, and ownership has not been fully transferred to anyone.

Tony, if you are fine with that, we can just co-maintain the library for now.
In my case I would rather want to help to get it over the line and to help with further releases if needed, I have no time to really "maintain" the component

WDYT?

Tony Noble

unread,
Jul 11, 2019, 6:14:01 AM7/11/19
to jenkin...@googlegroups.com
Hi @oleg-nenashev,

That sounds ideal.  I do remember the thread now, but have to admit - I'm very much of the 'just keep it working' approach for the moment, until I get my head around how to create plugins that are essentially subclasses of other plugins (which is what would need to happen if xtrigger was migrated to be a plugin).  And if it's even possible to do all this without breaking existing user configuration.

I can raise the PR for repository permissions - what needs to happen for commit access to the repo?

Tony

--
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/edb112a3-84f7-4acf-8581-ccff5caf4cdf%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.

Jesse Glick

unread,
Jul 11, 2019, 10:17:32 AM7/11/19
to Jenkins Dev
On Thu, Jul 11, 2019 at 6:14 AM Tony Noble <tony....@gmail.com> wrote:
> how to create plugins that are essentially subclasses of other plugins (which is what would need to happen if xtrigger was migrated to be a plugin)

Completely routine; you just declare a Maven dependency and you are
done. Certainly less exotic and trouble-prone than the current design.

https://jenkins.io/doc/developer/plugin-development/dependencies-and-class-loading/

> if it's even possible to do all this without breaking existing user configuration.

Assuming Java package names are left untouched, there should be no
effect on user settings.

At any rate,

> I'm not sure how the process would work for a lib rather than a plugin.

The release process for the library is identical to that for a plugin:

mvn release:{prepare,perform}

The additional step in the current design is that you then need to go
to all the plugins using the library, update their dependency, and
release them too. If we switched the library to a plugin, it would
suffice to just release it—anyone accepting that update would get the
new behavior for all the feature plugins, since these would no longer
be physically bundling the library.

Tony Noble

unread,
Jul 11, 2019, 10:27:28 AM7/11/19
to jenkin...@googlegroups.com
On Thu, Jul 11, 2019 at 3:17 PM Jesse Glick <jgl...@cloudbees.com> wrote:
Completely routine; you just declare a Maven dependency and you are
done. Certainly less exotic and trouble-prone than the current design.

https://jenkins.io/doc/developer/plugin-development/dependencies-and-class-loading/

Thanks.  That gives me somethign to get stuck in to. 

The release process for the library is identical to that for a plugin:

mvn release:{prepare,perform}


Apologies - I meant the process of being added as a maintainer :0)  Thankfully the day job means I'm pretty comfortable with maven releases.

The additional step in the current design is that you then need to go
to all the plugins using the library, update their dependency, and
release them too. If we switched the library to a plugin, it would
suffice to just release it—anyone accepting that update would get the
new behavior for all the feature plugins, since these would no longer
be physically bundling the library.

True, but then if I read that correctly, any breaking change of the xtrigger plugin would require all dependant plugins to be updated and a co-ordinated release organised, rather than the current system where the dependent plugins simply avoid bumping the version of xtigger until they're ready?  The issue I see there is that (from what I can see) all the dependent plugins, or at least a lot of them, were maintained by Gregory and are now effectively unmaintained...

Admittedly, that's a problem to deal with as and when we get to the migration and I realise that the answer will probably be "don't make any breaking changes" :0)

Tony

Jesse Glick

unread,
Jul 11, 2019, 2:00:07 PM7/11/19
to Jenkins Dev
On Thu, Jul 11, 2019 at 10:27 AM Tony Noble <tony....@gmail.com> wrote:
> any breaking change of the xtrigger plugin would require all dependant plugins to be updated and a co-ordinated release organised

Yes…so do not make breaking changes.

> The issue I see there is that (from what I can see) all the dependent plugins, or at least a lot of them, were maintained by Gregory and are now effectively unmaintained

I would advise anyone taking over as owner of part of this to ask to
be made owner of all of them. (Does not mean other interested parties
cannot contribute or even be primarily responsible for substantive
changes—just means that you have permissions to make changes to the
whole set of things when you need to.)

Tony Noble

unread,
Jul 11, 2019, 6:47:58 PM7/11/19
to jenkin...@googlegroups.com
Pull request submitted for release permissions: https://github.com/jenkins-infra/repository-permissions-updater/pull/1216

Could I also be give access to the github repo for xtrigger-lib, please?  

GitHub id: TonyNoble
Jenkins id: stealthdj

I'll look at what other plugins depend on xtrigger and submit a separate request for those.  Judging by the issues I've discovered with this update and previous conversations, I'm guessing that envinject may well also need to be included.

Thanks,

Tony

--
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.

Tony Noble

unread,
Jul 20, 2019, 8:51:56 AM7/20/19
to jenkin...@googlegroups.com
@jglick , @oleg-nenashev

Using xtrigger-plugin as a guide, I'd suggest that the following should be grouped together as previously owned by Gregory.  As such, please could I be added as maintainer on github to:
I note that EnvInject has since been converted to a plugin - should I include this, or are you happy with the current setup for it?

Another point to note - given that the goal for xtrigger-lib is to convert to a plugin, the natural name for it would be xtrigger-plugin.  But that's obviously taken as noted above - rather than go off on the wrong track, would 'xtrigger-base-plugin' seem reasonable?

Thanks,

Tony

(GitHub id: TonyNoble , Jenkins id: StealthDJ)

Daniel Beck

unread,
Jul 20, 2019, 1:53:59 PM7/20/19
to jenkin...@googlegroups.com


> On 20. Jul 2019, at 14:52, Tony Noble <tony....@gmail.com> wrote:
>
> Another point to note - given that the goal for xtrigger-lib is to convert to a plugin, the natural name for it would be xtrigger-plugin. But that's obviously taken as noted above - rather than go off on the wrong track, would 'xtrigger-base-plugin' seem reasonable?
>

It's customary to name it whatever-api in Jenkins. envinject-lib is provided by the plugin 'envinject-api', there's branch-api and scm-api, etc.

Oleg Nenashev

unread,
Jul 20, 2019, 2:15:32 PM7/20/19
to JenkinsCI Developers
My plan was to keep EnvInject Lib as a temporary lib until all plugins and "libs" switch to EnvInject API. Then I would have moved the code and removed the library repository. It was at the time of a Pipeline compatibility effort 4 years ago. But we have not been able to rework all Geegory's plugins at that time, switched to other tasks.

If you rework XTrigger Lib to a plugin, please use EnvInject API Plugin as a dependency.

BR, Oleg

--
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Developers" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-dev/Ue9hmTRhqS4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CFD98BB8-4683-4BB7-8101-D6FAEE28B4EC%40beckweb.net.

Tony Noble

unread,
Jul 20, 2019, 3:30:49 PM7/20/19
to jenkin...@googlegroups.com
Okay, so modifications:

- No need to add me as maintainer for envinject-lib
- XTrigger-lib plugin replacement will be named XTrigger-api-plugin

On that basis, if someone could add me as maintainer for the rest, it'd be much appreciated.

Tony



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/CAPfivLCe-d47xKn9wmOhen02%2BT0fxqXDF%3DQirp2MJqCSdPiCmQ%40mail.gmail.com.

Oleg Nenashev

unread,
Jul 21, 2019, 4:50:21 AM7/21/19
to Jenkins Developers
Hi Tony,

I have granted you write access and made you a default assignee in the components.
If you decide  to become a maintainer of the EnvInject stuff, I will be happy to grant your permissions as well.

Some notes:
  • To release the components, you will need to create a pull request to https://github.com/jenkins-infra/repository-permissions-updater
  • ColMelvin has contributed a lot of patches which have not been released yet. IIRC I reviewed them 1 year ago, but nobody took ownership at that point. Some area for collaboration there, maybe
  • For plugin you plan to maintain in longer term, it might make sense to use Release Drafter for changelogs (docs)
Best regards,
Oleg


On Saturday, July 20, 2019 at 9:30:49 PM UTC+2, Tony Noble wrote:
Okay, so modifications:

- No need to add me as maintainer for envinject-lib
- XTrigger-lib plugin replacement will be named XTrigger-api-plugin

On that basis, if someone could add me as maintainer for the rest, it'd be much appreciated.

Tony



On Sat, Jul 20, 2019 at 7:15 PM Oleg Nenashev <o.v.n...@gmail.com> wrote:
My plan was to keep EnvInject Lib as a temporary lib until all plugins and "libs" switch to EnvInject API. Then I would have moved the code and removed the library repository. It was at the time of a Pipeline compatibility effort 4 years ago. But we have not been able to rework all Geegory's plugins at that time, switched to other tasks.

If you rework XTrigger Lib to a plugin, please use EnvInject API Plugin as a dependency.

BR, Oleg

On Sat, Jul 20, 2019, 19:54 Daniel Beck <m...@beckweb.net> wrote:


> On 20. Jul 2019, at 14:52, Tony Noble <tony...@gmail.com> wrote:
>
> Another point to note - given that the goal for xtrigger-lib is to convert to a plugin, the natural name for it would be xtrigger-plugin.  But that's obviously taken as noted above - rather than go off on the wrong track, would 'xtrigger-base-plugin' seem reasonable?
>

It's customary to name it whatever-api in Jenkins. envinject-lib is provided by the plugin 'envinject-api', there's branch-api and scm-api, etc.

--
You received this message because you are subscribed to a topic in the Google Groups "Jenkins Developers" group.
To unsubscribe from this topic, visit https://groups.google.com/d/topic/jenkinsci-dev/Ue9hmTRhqS4/unsubscribe.
To unsubscribe from this group and all its topics, send an email to jenkin...@googlegroups.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 jenkin...@googlegroups.com.

Tony Noble

unread,
Jul 21, 2019, 8:35:16 AM7/21/19
to jenkin...@googlegroups.com

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/6ea8aa69-4713-43af-ae1f-181dc37e9000%40googlegroups.com.

Tony Noble

unread,
Jul 26, 2019, 8:37:31 AM7/26/19
to jenkin...@googlegroups.com
Pull request looks to have been approved, but not applied - can anyone assist?

Cheers,

Tony

Oleg Nenashev

unread,
Jul 26, 2019, 8:47:58 AM7/26/19
to JenkinsCI Developers
done. Was waiting for more confirmations, but it got stalled

To unsubscribe from this group and all its topics, send an email to jenkinsci-de...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/jenkinsci-dev/CAEWqh9HA8ETqBpxbRODcsgZAEEkDPGQ8FRxe8d2hb3EHTNzGOQ%40mail.gmail.com.

Tony Noble

unread,
Dec 1, 2019, 6:04:19 PM12/1/19
to jenkin...@googlegroups.com
Late follow-up, apologies.

Now I have time to look at outstanding PRs / Jira tickets, I still don't appear to have owner access to the following git repos:

      All other access appears to be sorted, however.

      Can someone assist?

      Tony


      Ullrich Hafner

      unread,
      Dec 2, 2019, 2:39:26 AM12/2/19
      to Jenkins Developers
      I added you as committer to the repositories.

      Tony Noble

      unread,
      Dec 2, 2019, 4:37:59 AM12/2/19
      to jenkin...@googlegroups.com
      Brilliant, thanks :0)


      Tony Noble

      unread,
      May 15, 2021, 7:23:03 PM5/15/21
      to jenkin...@googlegroups.com
      Dredging up an old conversation - apologies

      I've had chance to do some work on xtrigger-lib and convert to a plugin, removing its dependency on envinject-lib in the process.  I have a project xtrigger-api-plugin ready to go, so really just a query as to what the next step is - do I need to create my own repo which is then forked / moved into jenkinsci org, or is it possible to just create an empty repo and make me maintainer / owner?

      I assume artifact upload permissions will also need to be sorted, but from memory that requires the github repo to exist first?

      Cheers,

      Tony

      Oleg Nenashev

      unread,
      May 16, 2021, 1:12:23 AM5/16/21
      to JenkinsCI Developers
      Hi Tony,

      Thanks a lot for working on it! In this case I would be happy to just create a repo for you. Before we do so, what do you think about just renaming https://github.com/jenkinsci/xtrigger-lib ? It might be a more convenient approach if you keep the most of the codebase and do not need the old library implementation anymore.

      Best regards,
      Oleg


      Tony Noble

      unread,
      May 16, 2021, 7:18:23 AM5/16/21
      to jenkin...@googlegroups.com
      Hi Oleg,

      I'm keeping as much of the codebase as possible and the revision history, though obviously the structure has changed somewhat.  Happy to rename the existing repo and run a maintenance branch for xtrigger-lib, as long as that can be done without breaking any existing linkages and the artifact permissions system can cope with two different things pointing to the same repo?

      Tony

      Oleg Nenashev

      unread,
      May 16, 2021, 8:02:25 AM5/16/21
      to JenkinsCI Developers
      There should be no infra issues with renaming, so it is totally your choice based on your preference

      FTR I created a separate repo for EnvInject API plugin when working on pluginizing EnvInject Lib. I did that because I wanted to retain binary/XStream compatibility, but did not want to bring the legacy AbstractProject only API into the new plugin. Not sure it is a case for you Toby, but for me it caused big overhead due to the need to maintain a chain of dependent components.



      Tony Noble

      unread,
      May 16, 2021, 8:53:02 AM5/16/21
      to jenkin...@googlegroups.com
      I looked at what you'd done with EnvInject when working on XTrigger and did wonder what the reasons for your approach were - and did spot the caveats.

      My intention is to draw a line in the sand for XTrigger and all components that use it - the lib setup will be kept on a branch for security fixes only, the same will apply for dependent trigger plugins.  Development from here onwards will depend on the current LTS (2.277, I think?) as a minimum and any future releases of urltrigger, fstrigger etc will be in turn dependent on that.

      I didn't plan to have the new repo require the old one, merely to leave the old one mothballed as a reference.  I suppose that suggests a rename is the best option - if you could sort that, it would be much appreciated.

      Thanks,

      Tony


      Oleg Nenashev

      unread,
      May 16, 2021, 9:06:29 AM5/16/21
      to JenkinsCI Developers
      Actually, XTrigger lib was another reason as I remembered after looking at its code. XTrigger Lib depends on EnvInject Lib, and hence I would have been unable to just convert EnvInject Lib to API plugin without fixing the XTrigger Lib and its dependencies. Such an approach could have led to binary conflicts due to direct bundling of the EnvInject lib in all XTrigger-based plugin. Neither me nor my product manager were keen on expanding scope that much at that point.

      FTR I renamed the XTrigger Lib repo to https://github.com/jenkinsci/xtrigger-api-plugin




      Reply all
      Reply to author
      Forward
      0 new messages