Add option to copy the open issues from the starter code repo to all student repos #546
Comments
Thanks for the suggestion. We've had some similar ideas, but haven't come up with a solution that we love yet:
A couple of key considerations:
I think this is a common use case. I'd love to hear from other folks about how they would use a feature like this. Our biggest challenge with Classroom is coming up with generalized solutions so that teachers have flexibility in how they use the tool. This seems tangentially related to #502, in that you might want to share new code with the students as they work through the assignments.
Great, thanks for getting started. I'd opening a pull request sooner rather than later, even if it's still work in progress. That way you can get feedback on the approach your taking. It's helpful to include screenshots or gifs of what you're changing to give people an idea of the experience.
The first hurdle is figuring out the general use solution for this followed by getting a quality technical implementation. Let's figure out what we want to implement first and then we can help with this if it's still an issue. cc/ @irishbryan as we've talked a bit about the unit of learning on GitHub. This feature request is essentially looking for a way to write a script for the student to work through on GitHub. |
Thanks for the detailed reply @johndbritton!
(1) is the feature I'm requesting. For on-demand issue creation, I can do that right now just using Octokit, so I don't currently experience too much pain that (2) would solve. (3) is not personally something I need because I intentionally want students to be able to work at their own pace, so I just create all the issues from the get-go. Still, this (and (2)) could be useful for others, but I don't think it means implementing (1) first would be a bad idea.
My suggestion is to go with the simplest approach: create them from the
For my use case, only the relative order of issues matters (which can and should be preserved). The issue numbers do not have to match across student repos because we refer to the issues exclusively by their titles when discussing them.
Makes sense. Still, I don't think the feature I'm suggesting is implicitly narrow/ungeneralized or that it limits flexibility in how Classroom could be used. I could be missing something, though.
I agree that the two may coincide, but I definitely believe they are two independent features: you can have either one without the other.
OK, I opened a PR here: #555.
I don't completely understand that statement. Can you clarify? |
What I mean is that the starter code repository would lay out the whole student journey in terms of issues for the student to resolve on the project. I meant script like a play not like a program. 😄 |
I agree. This feature can definitely stand on it's own. I was thinking that on demand issue creation would be an easier first thing to implement. Not sure where there is more demand amongst other users. |
Thanks for opening #555, I've left a bunch of feedback over there. |
I would like to see (1) and (2) implemented with higher priority in (1). |
Duplicate of #846 Closing all of these repo initialization issues so we can keep everything in one issue. This is something we're working on, but having 10 different issues for similar problems is making things a bit disorganized. |
I'd like to add a feature that gives assignment creators the option to copy the open issues from the starter code repository to each student repository created for that assignment. My use case: the assignment is a long-term project and these issues are smaller "tasks" for the students to complete along the way.
I've got a basic implementation working locally with these changes: b6fc84a~...7475523. I'd be happy to submit a pull request, but I haven't finished the tests yet. I added a few inline comments to 7475523 with some questions.
The other thing I have not dealt with is error handling for the background job. I'd like to hear what you guys think we should do if errors occur during the issue copying. Automatically retrying the issue creation (from the point at which it failed) would be nice, but it could introduce undesired complexity, and there's still the possibility that errors occur again during the retry attempts. So a simpler approach would be to just alert the user of the error (which they could then manually recover from). Thoughts?
The text was updated successfully, but these errors were encountered: