2023-10-16 21:15:26 |
Dan Ryan |
description |
This is a follow up to LP#2022095
As part of several security team projects that interface with artifactory, we maintain some PPAs that use artifactory as a backend. We are trying to use the copyPackages API to move packages between several of these repositories.
We are now able to copyPackages() successfully, however, we have run into the following issues:
* copyPackages() only copies a single version of a given package. Because we must provide only a list of source package names to the api call, we have no control over which version is copied, but launchpad only seems to copy one version of a given package. I do not know how that version is selected, but I suspect it is either the most recently modified/released version, or the latest version. As we are managing python packages here, we are not bound by archive-like restrictions whereby we keep only one version of each package, so the normal assumptions that would apply to the archive do not apply to us. We probably need a way to specify either the version(s) we want, or to just copy all of the versions.
* copyPackages() does not copy all artifacts. In some instances, we have built architecture specific wheels for a package (e.g. for arm+amd64). Even for the version of the package selected, launchpad does not copy both the arm and the amd64 wheel. It appears to choose only one wheel (for every case I examined, it copied the arm wheel). Again, I'm not sure how it is making this choice, maybe it is the most recently uploaded wheel?
Thanks for investigating! |
This is a follow up to #2022095
As part of several security team projects that interface with artifactory, we maintain some PPAs that use artifactory as a backend. We are trying to use the copyPackages API to move packages between several of these repositories.
We are now able to copyPackages() successfully, however, we have run into the following issues:
* copyPackages() only copies a single version of a given package. Because we must provide only a list of source package names to the api call, we have no control over which version is copied, but launchpad only seems to copy one version of a given package. I do not know how that version is selected, but I suspect it is either the most recently modified/released version, or the latest version. As we are managing python packages here, we are not bound by archive-like restrictions whereby we keep only one version of each package, so the normal assumptions that would apply to the archive do not apply to us. We probably need a way to specify either the version(s) we want, or to just copy all of the versions.
* copyPackages() does not copy all artifacts. In some instances, we have built architecture specific wheels for a package (e.g. for arm+amd64). Even for the version of the package selected, launchpad does not copy both the arm and the amd64 wheel. It appears to choose only one wheel (for every case I examined, it copied the arm wheel). Again, I'm not sure how it is making this choice, maybe it is the most recently uploaded wheel?
Thanks for investigating! |
|
2023-10-16 21:15:56 |
Dan Ryan |
description |
This is a follow up to #2022095
As part of several security team projects that interface with artifactory, we maintain some PPAs that use artifactory as a backend. We are trying to use the copyPackages API to move packages between several of these repositories.
We are now able to copyPackages() successfully, however, we have run into the following issues:
* copyPackages() only copies a single version of a given package. Because we must provide only a list of source package names to the api call, we have no control over which version is copied, but launchpad only seems to copy one version of a given package. I do not know how that version is selected, but I suspect it is either the most recently modified/released version, or the latest version. As we are managing python packages here, we are not bound by archive-like restrictions whereby we keep only one version of each package, so the normal assumptions that would apply to the archive do not apply to us. We probably need a way to specify either the version(s) we want, or to just copy all of the versions.
* copyPackages() does not copy all artifacts. In some instances, we have built architecture specific wheels for a package (e.g. for arm+amd64). Even for the version of the package selected, launchpad does not copy both the arm and the amd64 wheel. It appears to choose only one wheel (for every case I examined, it copied the arm wheel). Again, I'm not sure how it is making this choice, maybe it is the most recently uploaded wheel?
Thanks for investigating! |
This is a follow up to lp#2022095
As part of several security team projects that interface with artifactory, we maintain some PPAs that use artifactory as a backend. We are trying to use the copyPackages API to move packages between several of these repositories.
We are now able to copyPackages() successfully, however, we have run into the following issues:
* copyPackages() only copies a single version of a given package. Because we must provide only a list of source package names to the api call, we have no control over which version is copied, but launchpad only seems to copy one version of a given package. I do not know how that version is selected, but I suspect it is either the most recently modified/released version, or the latest version. As we are managing python packages here, we are not bound by archive-like restrictions whereby we keep only one version of each package, so the normal assumptions that would apply to the archive do not apply to us. We probably need a way to specify either the version(s) we want, or to just copy all of the versions.
* copyPackages() does not copy all artifacts. In some instances, we have built architecture specific wheels for a package (e.g. for arm+amd64). Even for the version of the package selected, launchpad does not copy both the arm and the amd64 wheel. It appears to choose only one wheel (for every case I examined, it copied the arm wheel). Again, I'm not sure how it is making this choice, maybe it is the most recently uploaded wheel?
Thanks for investigating! |
|