Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Multiple requests for GSoC 2024 Plugin Modernizer Tool #4262

Open
jonesbusy opened this issue Aug 25, 2024 · 14 comments
Open

Multiple requests for GSoC 2024 Plugin Modernizer Tool #4262

jonesbusy opened this issue Aug 25, 2024 · 14 comments
Assignees
Labels

Comments

@jonesbusy
Copy link

Service(s)

Other

Summary

Hi,

With GSoC 2024 coming to an end we would like to industrialize the Plugin Modernizer Tool we developed during the GsoC 2024 period

Right now we have a repository https://github.com/jenkinsci/plugin-modernizer-tool and this is fine for the code.

This tool has mainly 2 axis

  1. Getting metadata about plugins (we are using an OpenRewrite scanning recipe for this). For example we can extract information about transitive dependencies or just to know if a specific file is present
  2. Running recipe and refactoring and open a pull request with the transformation

For the 1) we would like to store this information (it's basically JSON document generated by the tool) on a Git repository. Historically some maintainer were using their personal repos to store this information (example https://github.com/gounthar/jdk8-removal) Now we would like to have a central place to store those JSON document.

What is the best organisation for this ? jenkinsci or jenkins-infra ?

In a more long term future (perhaps a future GSoC project) those metadata could be consumed by the plugin health score system to create more probe that cannot be created without help of OpenRewrite (like getting transitive dependencies and warn if a plugin doesn't use an API plugin instead).

In a short term only the maintainers of the tool would push those metadata to this repository until we have some kind of workflow/job to do it for us

The second point is about the distribution of the CLI. We would expect some frequent release and we need to think about packaging and would like perhaps to start with HomeBrew distribution to cover Linux and MacOSX user

I noticed you guys are using already a Tap on https://github.com/jenkins-infra/homebrew-tap/. Is it something we could also use to distribute our CLI ? Or do you see it more on the jenkinsci organisation ?

Thanks for taking the time to answer with your thought.

Regards,

Reproduction steps

No response

@jonesbusy jonesbusy added the triage Incoming issues that need review label Aug 25, 2024
@jonesbusy
Copy link
Author

FYI @gounthar @sridamul

@timja
Copy link
Member

timja commented Aug 25, 2024

Jenkins Infra GitHub org would make most sense to me as its information and tooling for the Jenkins project and not for end users of Jenkins.

and it related to plugin health score and plugin site as well with the potential integration points.

@dduportal
Copy link
Contributor

+1 with @timja

@jonesbusy
Copy link
Author

Hi,

Looks good for me. We can transfer the repository to jenkins-infra as long we can keep our maintainers permission.

I also never published anything to homebrew, right now the GH action just use the cd.yaml workflow.

https://jreleaser.org/ looks a good alternative for Java project. They are some module to publish to HomeBrew.

The history of metadata is not so important, the last option would also be possible, how could we publish such JSON files to this WebServer. Do you have any example ?

I've craeted 2 issues related to packaging

jenkinsci/plugin-modernizer-tool#239
jenkinsci/plugin-modernizer-tool#240

(Perhaps for Hacktoberfest)

@gounthar
Copy link

gounthar commented Sep 2, 2024

For Homebrew, @jmMeessen has already published for Jenkins in https://github.com/jenkins-infra/jenkins-contribution-aggregator thanks to goreleaser, but I don't know what would be the equivalent (if any) for Java. 🤔

For the docker image, we could publish on GitHub as a package, as we did with the quickstart tutorials

@timja
Copy link
Member

timja commented Sep 3, 2024

It means we'll have to transfer the repository jenkinsci/plugin-modernizer-tool to the @jenkins-infra organization (ping @timja does it look good to you?) as a start

Looks fine to me.

@jonesbusy
Copy link
Author

but I don't know what would be the equivalent (if any) for Java. 🤔

Yes there is (https://jreleaser.org/) but I never played with it

@dduportal
Copy link
Contributor

Hello folks, we have delayed any work on this task to mid-October as the infra team will be in limited availability

@jonesbusy
Copy link
Author

An other point (that can be discussed on an other issue is about a GitHub for the CI (GH action or Jenkins infra I don't have strong opinion)

We are adding the support on jenkinsci/plugin-modernizer-tool#295 in addition of GH_TOKEN (that is used when running the CLI from a maintainer machine)

We still need to define granular permissions, but the CLI will soon be able to use GitHub app installation in order to open PR

@dduportal
Copy link
Contributor

Hello folks, back at this topic.

Whenever you are ready, you can transfer the repository(ies) to the GH organization jenkins-infra.

Please let us by commenting here once you did it, and tell us the expected maintainers so I can add them back if the transfer changes user permissions.

Then, we'll start working with issues in the repository(ies) for the tasks

  • CLI publication (homebrew tap + Docker images)
  • CI system (ci.jio?)
  • CD system (GH app? infra.ci.jio ?)

@jonesbusy
Copy link
Author

Hi,

Thanks for the update.

I personnally cannot perform the transfer because it must be initiated by an org owner of jenkinsci

transfer_owner

Perhaps we can start this transfert in more less 1 week ? (due to my availability) Or @gounthar do you want to follow-up this ?

@gounthar
Copy link

I can't perform the transfer either, as I'm not an org owner of jenkinsci. 🤷

@dduportal
Copy link
Contributor

Hi,

Thanks for the update.

I personnally cannot perform the transfer because it must be initiated by an org owner of jenkinsci

transfer_owner

Perhaps we can start this transfert in more less 1 week ? (due to my availability) Or @gounthar do you want to follow-up this ?

Ping @timja , is it ok for you to perform this transfer next week to help Valentin here?

@timja
Copy link
Member

timja commented Oct 29, 2024

thats fine just ping when you want it done

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Projects
None yet
Development

No branches or pull requests

4 participants