Permanent copy of project in workspace

This is an issue related to setting up a workspace with several projects for teaching, as I did here:

Collaborators can work on a temporary version of a project, but if they make a permanent copy it seems to get added to the workspace. As the default number of projects on a workspace seems to be 5, the workspace quickly fills up and collaborators cannot make permanent copies any more.

Is there a way they can make a permanent copy to their own workspace? Or is this just a bad setup and I should be doing something else?

I noticed here there is a response saying you can request more projects: RStudio Cloud for teaching students however I don't really want people's own projects to be added to the workspace. What I want is a way to share some projects and a way for people to easily create their own from a base project, with all the required packages ready to go. So for this part it would be great if they could create their own project in their own workspace from a template in the shared workspace.

Interesting idea - it would mean that you might not be able to find or see their work. Is that important to you?

One thing to keep in mind is that the work created by a student in your space is by default only visible to that student (assuming you assign students the role of collaborator) and you (and any other admins/moderators in the space). This means that the work of students is not visible to other students unless they explicitly change the access of the project to "Everyone" - and we plan to add a permission setting that will allow you to disable their ability to change the access.

Does that help, or does it still feel off that the students' projects are added to the shared space?

If you follow the prompts when you encounter the space limit of 5 projects, you can request additional space capacity. During alpha, we are reviewing each request to make sure we have the capacity to handle it, but if you're using Cloud for educational purposes, it shouldn't be a problem.

I'm quite happy not to see their work :slight_smile: The scenario is a one-off workshop, during the workshop one of the tutors can always come and look at a student's project on their computer, after the workshop there is no marking or follow-up. Moreover I'd like the workspace to be clean, ready to use again.

Now I've discovered from Using R Studio cloud for teaching package development that I can put a whole project in a sub-directory, I think the answer is not to use a workspace at all, but a single project in my "Your Workspace" which is a directory with multiple subdirectories, each of which is its own .Rproj. I've got this working here:

This has the properties I want in that the top-level project gives the general setup (e.g. the packages installed that I want to use) and the student can open each sub-project and work on that as usual (in particular using the package build tools)

The only problem then is it doesn't seem to be easy to create these sub-projects. Any idea for example how I could clone a package repo from git to add as a sub-project?

Of course I could create each sub-project as a separate project, but then I need to go through installing all the packages for each one (I don't think there's a templating option in "Your Workspace" as there is in a separate workspace) and share all the individual links. Given it takes a few mins to swap between projects, this doesn't seem so attractive, but would work.

Yeah - and you'd have to distribute links to each of the individual projects as well. If the projects were in a space, you'd get the required set of packages from the base template (you're right that there is not a templating option in Your Workspace at this point) and you'd only need to distribute one link to the space.

If there was an easy way to remove the students' projects from your space at the end of the workshop, would that give you pretty much what you need?

Another option: we're planning on adding a Copy Space feature in the fairly near future - so for each iteration of the workshop, you could make a copy the space for that workshop and start clean.

Sub projects might work - but I don't believe there's a way to create your sub-projects from git.

Either an easy way to remove the student's projects at the end of the workshop (e.g. remove all non-admin collaborators) or the copy workshop feature would do the job as far as running repeats of the workshop goes.

What would be great though is if Forwards could publicize the link to the workshop space/project so that we can say: here's a workspace ready for you to go through our workshop! This could make it easy for anyone to go through as a student or for people to run the workshop at their community group, e.g. R-Ladies - no setup necessary!

Actually I have found it is possible to create the sub-projects from GitHub with the usethis package (thanks @jennybryan!), e.g.

usethis::create_from_github("forwards/mylittlepony", destdir = ".", protocol = "https")

Incidentally I discovered that if I didn't specify destdir the package project was created in /home/rstudio-user. Is there any particular reason for putting it in /cloud/project instead?

So now I think I can set up a project with example package projects as sub-directories, plus potentially other bits and bobs needed by the students (e.g. slides) and share the project link so that they can work in the project temporarily or make their own copy as they wish.

What happens regarding git in a temporary/copied project - is it recognised that the person is different (and therefore they don't have permission to commit to Forwards repos?

Here's the code that determines usethis::use_course()'s default for destdir:

I definitely didn't have RStudio Cloud in mind when I wrote that, so perhaps it needs something else?