Skip to content

R CRAN package registry not working when requesting archived packages #32782

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

Closed
Sebastian-T-T opened this issue Dec 10, 2024 · 0 comments · Fixed by #32783
Closed

R CRAN package registry not working when requesting archived packages #32782

Sebastian-T-T opened this issue Dec 10, 2024 · 0 comments · Fixed by #32783
Labels

Comments

@Sebastian-T-T
Copy link
Contributor

Sebastian-T-T commented Dec 10, 2024

Description

R package managers expects the newest package URL to be available at the base path and all older versions to be available in a specific /Archive/package path of the package registry.

Currently Gitea CRAN support for R packages stores all packages in the base path, causing R package manager to not being able to find older versions of packages.

Example:
I upload two versions of my R package "giteaR" to Gitea under an Organization called "R-packages", version 1.0.0 and 1.0.1, these are now available at:
https://gitea.url/api/packages/R-packages/cran/src/contrib/giteaR_1.0.0.tar.gz
https://gitea.url/api/packages/R-packages/cran/src/contrib/giteaR_1.0.1.tar.gz

However my R package manager (either base, renv or packrat) expects them to be located at:
https://gitea.url/api/packages/R-packages/cran/src/contrib/Archive/giteaR/giteaR_1.0.0.tar.gz
https://gitea.url/api/packages/R-packages/cran/src/contrib/giteaR_1.0.1.tar.gz

The same structure is visible in the official R CRAN respository.
Example for the ggplot2 package:
Newest (as of this issue report): https://cran.r-project.org/src/contrib/ggplot2_3.5.1.tar.gz
Version before that: https://cran.r-project.org/src/contrib/Archive/ggplot2/ggplot2_3.5.0.tar.gz

The above is only true for source package builds and not for binaries. CRAN doesn't keep binaries for older versions of packages nor does it keep them for Archived packages.

Suggested solution is to keep the current Gitea behavior as-is and add a new Get router which adds support for the /Archive/package path.

Gitea Version

1.21

Can you reproduce the bug on the Gitea demo site?

Yes

Log Gist

No response

Screenshots

No response

Git Version

No response

Operating System

No response

How are you running Gitea?

We are running Gitea via a systemd service on Ubuntu

Database

None

lunny pushed a commit that referenced this issue Dec 11, 2024
The R package repository currently does not have support for older
versions of packages which should be stored in a separate /Archive
router. This PR remedies that by adding a new path router.

I am a member of a group that loves using Gitea and this bug has been
annoying us for a long time. Hope it can be merged in time for Gitea
1.23.0.

Any feedback much appreciated.

Fixes #32782
GiteaBot pushed a commit to GiteaBot/gitea that referenced this issue Dec 11, 2024
…2783)

The R package repository currently does not have support for older
versions of packages which should be stored in a separate /Archive
router. This PR remedies that by adding a new path router.

I am a member of a group that loves using Gitea and this bug has been
annoying us for a long time. Hope it can be merged in time for Gitea
1.23.0.

Any feedback much appreciated.

Fixes go-gitea#32782
wxiaoguang pushed a commit that referenced this issue Dec 11, 2024
…32789)

Backport #32783 by Sebastian-T-T

The R package repository currently does not have support for older
versions of packages which should be stored in a separate /Archive
router. This PR remedies that by adding a new path router.

Fixes #32782

Co-authored-by: Sebastian T. T. <[email protected]>
@go-gitea go-gitea locked as resolved and limited conversation to collaborators Mar 11, 2025
Sign up for free to subscribe to this conversation on GitHub. Already have an account? Sign in.
Labels
Projects
None yet
Development

Successfully merging a pull request may close this issue.

1 participant