Inedo Community Forums Forums
    • Recent
    • Tags
    • Popular
    • Login

    Welcome to the Inedo Forums! Check out the Forums Guide for help getting started.

    If you are experiencing any issues with the forum software, please visit the Contact Form on our website and let us know!

    Support for R and CRAN

    Scheduled Pinned Locked Moved Support
    progetpackages
    28 Posts 10 Posters 199 Views 3 Watching
    Loading More Posts
    • Oldest to Newest
    • Newest to Oldest
    • Most Votes
    Reply
    • Reply as topic
    Log in to reply
    This topic has been deleted. Only users with topic management privileges can see it.
    • apxltdA Offline
      apxltd inedo-engineer
      last edited by

      hi all, thanks for the interest/comments; I decided to write-up a page that details this on the docs.

      http://inedo.com/support/documentation/proget/feeds/other-types

      I'm hoping we can use this public thread to maintain the discussion on technical detail; otherwise it'll get stuck in my email, or somewhere else, and we can get everyone to chime in this way.

      That said, @M-W if you've got any insight into how R/CRAN works please do share :)

      Founder and CEO, Inedo

      1 Reply Last reply Reply Quote 2
      • V Offline
        valeon
        last edited by

        Hi

        I have a bit of experience with R, and I like ProGet, so I thought I would add my 5p to this thread.

        CRAN mainly hosts the package sources. The actual repository is this folder:
        https://cran.rstudio.com/src/contrib/

        This is just what it looks like, a list of tar.gz files which are essentially package sources. The only "special" files are the PACKAGES* ones. The one without extension is a yaml file with some metadata of all the packages in the folder. The .gz one is the same thing compressed, the .rds one is the same thing in a special R data format. I believe you can get away with just the PACKAGES and the PACKAGES.gz files.

        Every package (tar.gz) will have a DESCRIPTION file in its root, which is another yaml file with all the metadata for the package. To build the PACKAGES file, the fields of the example below are copied:

        Package: A3
        Version: 1.0.0
        Depends: R (>= 2.15.0), xtable, pbapply
        Suggests: randomForest, e1071
        License: GPL (>= 2)
        NeedsCompilation: no

        and they are pasted all together separated by empty lines.

        For windows clients, CRAN also generates binary versions of the packages for the different versions of R. These are listed here:
        https://cran.rstudio.com/bin/windows/contrib/

        Each one of the numeric folders, look very much like the sources folder with the same PACKAGES files. The only difference is that in the R subfolder of the zip packages, instead of the source of the R functions there is now a compiled binary. The DESCRIPTION file is still there though with all the metadata.

        The folder structure is important, since essentially, in the R client the command will be something like:

        install.packages("lubridate", repos = "http://my-private-host")
        

        This command knows to look exactly in the right folders depending on the environment of the caller (operating system, version of R, etc). For windows, it will work even without the binaries at all, but it would make a big difference in terms of speed.

        As far as hosting in-house packages, I wouldn't expect from ProGet to compile them and provide binaries, leaving them as source only should be fine. For the packages coming from CRAN though, it would be good to relay the windows binary versions as well as the source one.

        DISCLAIMER: This is part experience, part guesswork so any of those might not work. I have only used CRAN as a package consumer.

        apxltdA 1 Reply Last reply Reply Quote 2
        • apxltdA Offline
          apxltd inedo-engineer @valeon
          last edited by

          @valeon fantastic, thanks so much! This will really help us explore; it doesn't look "too bad", and is "somewhat similar" to how Debian manages it's packages.

          We'll try to start hacking around with a POC in the coming weeks, hopefully; i'll update when I can!

          Founder and CEO, Inedo

          1 Reply Last reply Reply Quote 0
          • M Offline
            miles.waller_2091
            last edited by

            Hi,

            Was just wondering if the PoC made any progress at all?

            Thanks!

            1 Reply Last reply Reply Quote 0
            • atrippA Offline
              atripp inedo-engineer
              last edited by

              Hello; unfortunately we hit a few snags in getting the environment and PoC code running (a bit more variety in R/CRAN packages), and then we ran out of budgeted time :(

              But it's still definitely on our roadmap and we're going to take another stab at it in NOvember.

              1 Reply Last reply Reply Quote 0
              • O Offline
                olivier
                last edited by

                Hi,

                I'm just another user registering my interest in this thread. This would definitively be a big plus for our organization as well :)

                Hope this will be added on the roadmap (and best of luck for your ongoing PoC) !

                Cheers,

                1 Reply Last reply Reply Quote 0
                • apxltdA Offline
                  apxltd inedo-engineer
                  last edited by

                  Hi all, a quick update!

                  We've just started a new internal project ( @gdivis will be leading the efforts), and you can expect to hear something in the next week or so with a rough plan / timeline.

                  Thanks for all your continued interest.

                  Founder and CEO, Inedo

                  1 Reply Last reply Reply Quote 1
                  • gdivisG Offline
                    gdivis inedo-engineer
                    last edited by

                    Thanks everyone for your interest in this. As @apxltd said, I'll be leading the effort on this. As the package format and repository system both seem relatively simple, I don't foresee too many technical challenges with adding this to ProGet, but there are a few things I'd like to make sure I understand right now:

                    1. ProGet typically needs to understand versioning rules for packages (to show which is the latest, to do retention policies, etc). From what I've gathered, CRAN uses 2 or more integers separated by dots. Does anyone know if that's required universally, or if it's just a convention?
                    2. CRAN doesn't appear to have a server-side repository API, instead just exposing a list of packages using HTML. Is my understanding correct here?
                    3. Submitting a package to CRAN looks like it's only done manually using a form here. Is that right, or is there some other automated mechanism that is used?

                    Also- we don't have any in-house R experts, so any (tentative) commitments to try out a prerelease version of ProGet with CRAN support would be very helpful in getting this feature out sooner :)

                    Thanks!

                    1 Reply Last reply Reply Quote 3
                    • I Offline
                      It-purchasing_9924
                      last edited by

                      Hello @gdivis, this is a feature some engineers at my company would benefit from greatly. It would be super nice to have our own 'official place' to install R packages. As soon as you have a prerelease version we'd gladly be willing to test.

                      Thanks!

                      1 Reply Last reply Reply Quote 0
                      • atrippA Offline
                        atripp inedo-engineer
                        last edited by

                        Thanks, noted :)

                        There was more demand for RPM/Yum packages, so we recently added those. Now, we are focusing on ProGet 5.3, so perhaps after that we can reconsider this --- if we get more community interest that will go a long way.... so if anyone elee is reading these and interested, let us know.

                        1 Reply Last reply Reply Quote 0
                        • O Offline
                          olivier
                          last edited by olivier

                          Would you have any feedback about your latest POC ?

                          Thanks :)

                          1 Reply Last reply Reply Quote 0
                          • apxltdA Offline
                            apxltd inedo-engineer
                            last edited by

                            @olivier we're mostly still looking for insight/answers into the questions @gdivis had asked, so if you can help on this we could at least move the ball forward

                            @gdivis said in Support for R and CRAN:

                            1. ProGet typically needs to understand versioning rules for packages (to show which is the latest, to do retention policies, etc). From what I've gathered, CRAN uses 2 or more integers separated by dots. Does anyone know if that's required universally, or if it's just a convention?
                            2. CRAN doesn't appear to have a server-side repository API, instead just exposing a list of packages using HTML. Is my understanding correct here?
                            3. Submitting a package to CRAN looks like it's only done manually using a form here. Is that right, or is there some other automated mechanism that is used?

                            Founder and CEO, Inedo

                            M 1 Reply Last reply Reply Quote 0
                            • M Offline
                              miles.waller_2091 @apxltd
                              last edited by

                              Hi

                              1 - Here's some info on the version numbers: http://r-pkgs.had.co.nz/description.html#version. 2 integers separated by dots or dashes is the minimum length, but can be up to 4. There's also the

                              1. Yes, it doesn't have a queryable API, just uses static assets. It doesn't need to build any html though (thats just for humans): it builds out a static package list by concatenating the individual files within each package, and that could be done dynamically.

                              2. That's right. There is devtools::release() but it looks like that only works for cran, so I think there's no consensus about a generic upload method. OTOH, once built its just a zip file so crafting the R to send it off over http is not hard.

                              1 Reply Last reply Reply Quote 1
                              • atrippA Offline
                                atripp inedo-engineer
                                last edited by

                                Thanks @miles-waller_2091 ; we're heads-down in 5.3 now, so after that we'll be able to resume investigating this. Perhaps May/June? In the meantime, if more people can volunteer to help test, we'll be able to get this going rather quickly :)

                                1 Reply Last reply Reply Quote 0
                                • E Offline
                                  entro_4370
                                  last edited by atripp

                                  Hi! Any news on R-support in ProGet? There seems to be quite a demand! As a Data Engineer in a large government that bases its package management on ProGet i feel that there is a clear gap here...

                                  atrippA 1 Reply Last reply Reply Quote 0
                                  • atrippA Offline
                                    atripp inedo-engineer @entro_4370
                                    last edited by

                                    @entro_4370 said in Support for R and CRAN:

                                    Hi! Any news on R-support in ProGet? There seems to be quite a demand! As a Data Engineer in a large government that bases its package management on ProGet i feel that there is a clear gap here...

                                    I'm afraid it's still not on our roadmap, based on our research. Here's how we evaluate this sort of things.

                                    At first, what's the market demand outside of existing users? We didn't find much opportunity to attract data engineers (or their bosses, who would buy software) who aren't already using ProGet (or a competing product) to use a private repository instead of CRAN directly. It's just not big discussion of R/CRAN community, unlike other package types.

                                    And then, we surveyed/asked users. But we phrase it like this: how much more would you pay for ProGet it if it had this feature, because this is an honest assessment of "how much more value would this feature bring to you" (which is what we want to decide).

                                    Unfortunately everyone we asked said, "it's a nice to have, but we would actually pay X% more if ProGet had feature X instead."

                                    Anyways still something we want to do, but we want to make features that bring most value to most people at first...

                                    of course if you have insights on this please let us know! Cheers.

                                    E 1 Reply Last reply Reply Quote 0
                                    • E Offline
                                      entro_4370 @atripp
                                      last edited by

                                      @atripp Any news on CRAN-support? I can see that it is displayed as a coming feature under feeds/Developer libraries?!

                                      atrippA 1 Reply Last reply Reply Quote 0
                                      • atrippA Offline
                                        atripp inedo-engineer @entro_4370
                                        last edited by

                                        Hi @entro_4370,

                                        I'm afraid not... seems this thread has been a little quiet.

                                        We haven't had many enterprise customers or sales leads requesting it as a feature, and we didn't see a good way to market the feature. It seems very few people search for CRAN-related topics or wanting private repository

                                        Best,
                                        Alana

                                        E 1 Reply Last reply Reply Quote 0
                                        • E Offline
                                          entro_4370 @atripp
                                          last edited by

                                          @atripp Maybe it's because resources such as https://packagemanager.rstudio.com/client/#/repos/2/packages exist then.. Or could it be that almost no one runs [R] in on-prem production? Difficult knowing exact reasons..

                                          atrippA 1 Reply Last reply Reply Quote 0
                                          • atrippA Offline
                                            atripp inedo-engineer @entro_4370
                                            last edited by

                                            @entro_4370 we are definitely seeing "package" interest from "data science" teams inside of large organizations, but it seems they're more Python users instead of R users 🤷‍♀️

                                            1 Reply Last reply Reply Quote 0

                                            Hello! It looks like you're interested in this conversation, but you don't have an account yet.

                                            Getting fed up of having to scroll through the same posts each visit? When you register for an account, you'll always come back to exactly where you were before, and choose to be notified of new replies (either via email, or push notification). You'll also be able to save bookmarks and upvote posts to show your appreciation to other community members.

                                            With your input, this post could be even better 💗

                                            Register Login
                                            • 1
                                            • 2
                                            • 1 / 2
                                            • First post
                                              Last post
                                            Inedo Website Home • Support Home • Code of Conduct • Forums Guide • Documentation