Transition from R-Forge to Codeberg: A Fresh Home for R Package Development
After two decades of supporting the R community, the R-Forge package hosting platform is preparing to shut down, transitioning to a read-only site in the coming months. Its departure opens the door for Codeberg, a contemporary alternative that mirrors many of the original values of R-Forge while offering modern tools for collaborative software development.
R-Forge: A Brief History
R-Forge was launched in 2006 following the second useR! conference, spearheaded by Kurt Hornik. His vision was to create a platform akin to SourceForge specifically designed for the R community. With significant contributions from Stefan Theussl, R-Forge was established utilizing the GForge/FusionForge software framework.
Upon launch, R-Forge provided a range of features, including a Subversion (SVN) repository for R package collaboration, daily builds, user forums, mailing lists, bug tracking systems, and web pages. These features were considered state-of-the-art at the time, as documented in the inaugural issue of The R Journal (Theußl & Zeileis, 2009). However, the system became dated, lacking essential modern functionalities like issue tracking, pull requests, and continuous integration, which are now standard in contemporary development environments.
The Move to Codeberg
Codeberg emerges as a dynamic, community-driven platform that offers advanced services for free and open-source projects. Operated by the non-profit organization Codeberg e.V., which is based in Berlin, Codeberg provides Git hosting, project pages, and continuous integration, fostering a collaborative development environment.
Codeberg adheres to the same guiding principles that R-Forge was founded upon but enhances them with modern open-source tools. For users transitioning from R-Forge to Codeberg, the platform represents a fresh start with an improved interface and functionalities that accommodate contemporary development practices.
Transition Guide: Moving from R-Forge to Codeberg
For developers wishing to migrate their projects from R-Forge to Codeberg, Reto Stauffer has compiled a comprehensive step-by-step guide. Here’s a brief summary of the key steps involved:
1. Checkout SVN Repository from R-Forge
Begin by checking out the SVN repository from R-Forge. For demonstration purposes, consider the c403 R package from the exams project:
svn checkout svn://R-Forge.R-project.org/svnroot/exams/
2. List R-Forge Contributors
Identify all SVN usernames associated with the repository by running:
(cd exams/pkg/c403 && svn log -q | grep -e '^r' | awk 'BEGIN { FS = "|" } ; { print $2 }' | sort | uniq) > authors_c403.txtRemove leading spaces from the resulting text file and add full names and e-mail addresses to facilitate proper attribution in the new repository.
3. Clone a Git Version
Utilize git-svn to create a Git version of the SVN repository. Ensure that the authors are accurately listed to prevent cloning failures:
git svn clone svn://R-Forge.R-project.org/svnroot/exams/pkg/c403 \ --authors-file=authors_c403.txt --no-metadata \ git-c403
4. (Optional) Filter Files
If migrating an entire R-Forge repository, it can be beneficial to filter unnecessary files from the Git history using git-filter-repo.
git-filter-repo --force --path 'README' --invert-paths
5. Import the Git Repository on Codeberg
Create a new project on Codeberg and push the local repository to the platform:
cd git-c403 git remote add origin ssh://git@codeberg.org/zeileis/c403.git git push --set-upstream origin main
6. Set Up Package Builds via R-universe
For continuous package builds, leverage the R-universe service. This requires setting up a GitHub account to create the relevant repository with a packages.json file.
7. Generate Project Pages
Project pages can be established using Codeberg Pages for documentation, whether generated via pkgdown or altdoc.
8. Update Package Descriptions
Finally, make sure to refresh project metadata such as the DESCRIPTION file to reflect the new Codeberg URL and to guide users on locating the project.
Transitioning from R-Forge to Codeberg not only aligns with modern software development practices but encourages ongoing contributions within the R community in an updated framework that enhances collaborative efforts.
As R-Forge enters its final phase, migrating to Codeberg represents an opportunity to reinvigorate R package development with fresh resources and collaborative tools.