Inedo
CRAN (R) Feeds Come to ProGet!
When you upgrade to ProGet 2023.23, you may notice that you can create CRAN Feeds along with the existing, extensive list of supported feeds. This new feed type was borne out of a feature request from our user community, and we’re happy to finally implement these in ProGet.
A CRAN feed is used for R packages, which are used primarily by data scientists. This new feed type will not only allow you to “proxy” packages from the central CRAN repository (while detecting vulnerabilities and licenses along the way), but to host your own, private packages.
This article will give a quick introduction to CRAN, R packages, and how they work in ProGet.
Background: ProGet 2023’s New Indexing System
Since its inception as a private NuGet server, ProGet has undergone significant development.
Our initial design, influenced by NuGet-type feeds and npm-type feeds, always included plans to support various package types. But each time we added a new feed, it often felt like we were “bolting” them on. Each feed was its own distinct product, linked by ProGet’s web interface but operating independently with different protocols and data models.
As ProGet evolved from a basic repository into a comprehensive Software Composition Analysis (SCA) and Security solution, it was clear we needed a more unified approach. In ProGet 2023, we basically redid the back-end to establish better first-class support for all package types.
This not only enhanced existing feed types but made it much easier to integrate new ones. CRAN (R) feeds are a testament to these ongoing improvements.
Introducing CRAN (R) Feeds
Like all package formats and feed types, CRAN (R) has a lot of subtle quirks that make it slightly different than other types. But the experience in ProGet should be the same as others.
See the CRAN (R) Feeds Documentation to learn:
- How to install CRAN (R) packages and specific versions
- Working with authenticated feeds in R
- Publishing Packages
- Connecting to other repositories (like the main CRAN repository)
What Package Types / Feeds Should we Support Next?
We’re very open to your feedback! Of course, understanding the ins and outs of a third-party package format can be a bit of a challenge. This is why we’d like to team-up with our users: you’re usually way more familiar with these package formats, and can tell us how to use them, give us the low down on conventions and internals, and help us take a test drive with a proof-of-concept.
Are there any feed types you would like to see supported in future versions of ProGet? Let us know by posting something in our forums; we can link to it from our feed types page, and track it fairly easily.