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

Migrate the Uyuni build process from Ant to Maven #193

Open
renner opened this issue Jan 20, 2023 · 6 comments
Open

Migrate the Uyuni build process from Ant to Maven #193

renner opened this issue Jan 20, 2023 · 6 comments
Labels
Larged Sized Project Large sized project is 350 hours Uyuni

Comments

@renner
Copy link
Member

renner commented Jan 20, 2023

Project Title:

Migrate the Uyuni build process from Ant to Maven

Description:

Uyuni is an open source systems management solution that can be used to manage various Linux distributions using a powerful web UI and API. The Uyuni Java code is built using Ant since a long time for the purpose of building official packages for installation, but also for development usage. We would like to achieve the following while preserving all of the existing use cases:

  • Move all the Java code and tests to a maven like structure
  • Use maven for the build process for developers and official releases
  • Use maven to run checkstyle and unit tests on the Java code locally and in CI

Deliverable:

  • It should be possible to build and deploy the code to a local development server using maven
  • It should be possible to run checkstyle and the unit tests locally or in CI (e.g. in Jenkins or GH Actions)
  • The official package build process should be migrated to maven (see the spec file)
  • Ant buildfiles should become obsolete and should finally be removed from the repo

Mentor:

@mackdk with @cbosdo as co-mentor.

Skills:

  • Very good knowledge of the Java programming language and best practices
  • Expertise with both of the most common Java build tools (Ant and Maven)
  • Experience with packaging software for Linux, ideally using the Open Build Service

Skill Level:

Be aware that even though it might sound rather easy, the skill level here is Medium / Hard. The reason is that the codebase is huge, there is a lot of dependencies (that we are resolving from OBS rather than from maven central), the package build process is very complex and this migration is a huge change for everyone involved, especially developers and release engineers.

Project Size:

Large Sized Project (350 hours)

Get started:

  • Set up a development environment for Uyuni locally using sumaform
  • Get familiar with the dependency resolution mechanism used in the project and respective tools (especially obs-to-maven)
  • Use the Open Build Service to build packages with maven, or migrate an existing package
@ddemaio ddemaio added Uyuni Larged Sized Project Large sized project is 350 hours labels Jan 20, 2023
@cbosdo
Copy link

cbosdo commented Jan 20, 2023

Ant files to be replaced are: https://github.com/uyuni-project/uyuni/blob/master/java/build.xml (used in the spec file only) and https://github.com/uyuni-project/uyuni/blob/master/java/manager-build.xml (used for development purpose only)

@AkashKumar7902
Copy link

@cbosdo @mackdk

Hi!

I’m Akash Kumar, a CSE engineering student. I have written a well explained proposal.

Looking forward to contributing!

Thanks,
Akash Kumar

@haanhvu
Copy link

haanhvu commented Jan 9, 2024

Hi, will this project open for GSoC 2024? Thanks for any info.

@cbosdo
Copy link

cbosdo commented Jan 9, 2024

Hi, will this project open for GSoC 2024? Thanks for any info.

As long as openSUSE and Uyuni are selected as mentoring organizations yes.

@sinduku
Copy link

sinduku commented Mar 4, 2024

HI @cbosdo @mackdk Just want to introduce myself here real quick, my name is Siva and I'm a student at Johns Hopkins in Baltimore studying Computer Science. I was looking through the project ideas in openSUSE and this caught my eye because I have done a similar task shifting a code base from Ant to Maven for one of the startups I am currently working with as an algorithm developer, Delineo Disease Modeling. The codebase I had to shift was significantly smaller but I just scanned through the Uyuni code base and think I can reasonably do this project throughout the summer. Would love to discuss more about this specific project and how I can start contributing.

@cbosdo
Copy link

cbosdo commented Mar 6, 2024

Would love to discuss more about this specific project and how I can start contributing.

You could start looking at our two ant files and merge them into a single one. Developers use manager-build.xml and the package build uses build.xml. The latter one is used in spacewalk-java.spec. The idea is to deduplicate the code between those two: this is a prerequisite of the conversion to maven.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Larged Sized Project Large sized project is 350 hours Uyuni
Projects
None yet
Development

No branches or pull requests

6 participants