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

📦 Make RPM packaging easier for Azure CLI + SDK #17909

Closed
major opened this issue Apr 28, 2021 · 2 comments
Closed

📦 Make RPM packaging easier for Azure CLI + SDK #17909

major opened this issue Apr 28, 2021 · 2 comments

Comments

@major
Copy link
Contributor

major commented Apr 28, 2021

👋🏻 Hello there,

I work for Red Hat and I am researching how to package the Azure CLI and SDK components in RPMs for Red Hat Enterprise Linux (RHEL). The current RPM for Azure CLI depends on allowing pip to resolve dependencies during the build process. Unfortunately, packaging requirements for RHEL specify that all source must be downloaded before the RPM is built and no network access is allowed during the build itself.

I would like to package the Azure CLI and required SDK components for RHEL (and update the Fedora SDK package which still uses the older SDK bundle style), but I am running into several problems:

  1. The CLI has strict python dependency mapping (using ==) and this forces me to update the SDK and CLI packages in parallel.
  2. Strict dependency mapping also causes challenges where the CLI may require python-foo==1.2.3 but RHEL may have python-foo-1.2.4.
  3. The SDK component dependencies release independently from the same repository, which means if I use sources from GitHub, I need to clone the SDK repo, checkout a tag, install from a subdirectory, checkout another tag, install from another subdirectory, and so on.
  4. Using the source code from PyPi does make packaging a little easier, but the tests aren't included with PyPi tarballs and that prevents me from using the %check phase of the RPM build.

It's entirely possible that I've missed an easier method for packaging all of these components into RPMs. If you have suggestions for how to work around some of the issues noted above, I'd be grateful! 🤗

@ghost ghost added needs-triage This is a new issue that needs to be triaged to the appropriate team. question The issue doesn't require a change to the product in order to be resolved. Most issues start as that labels Apr 28, 2021
@ghost ghost removed the needs-triage This is a new issue that needs to be triaged to the appropriate team. label Apr 29, 2021
@yungezz
Copy link
Member

yungezz commented Apr 29, 2021

thanks for reporting the issue. add @fengzhou-msft to help have a look

@major
Copy link
Contributor Author

major commented Jun 3, 2021

For what it's worth, I'm making progress on this in Fedora. I may have some feedback around a few things as I get the remainder of these packages done.

@yonzhan yonzhan assigned jiasli and unassigned fengzhou-msft Jun 3, 2021
@yonzhan yonzhan added this to the S188 milestone Jun 3, 2021
@yonzhan yonzhan added feature-request and removed question The issue doesn't require a change to the product in order to be resolved. Most issues start as that labels Jun 3, 2021
@yonzhan yonzhan modified the milestones: S188, S189 Jun 13, 2021
@yonzhan yonzhan modified the milestones: S189, S190, Backlog Jun 15, 2021
@major major closed this as completed Aug 3, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Projects
None yet
Development

No branches or pull requests

5 participants