-
Notifications
You must be signed in to change notification settings - Fork 15
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Redesign review assignment such that each students gets a separate review issue #789
Comments
We are working on this issue. |
Cool, assigning you to it! How far have you progressed? I'm currently refactoring the |
Me and Adam are in a project group for a course in KTH (fellow alum!), so we are both working on it. We have just started out laying out the requirements, but have not written any code yet. Do you have an estimate for when you will be done rewriting it? We might just continue on the current version of the function and resolve the conflicts afterwards if the refactoring won't be ready for some time. |
Ah, I see, DD2480?
Probably tomorrow, I started picking it apart today but got a bit sidetracked about halfway through. |
@slarse Great! Please assign @ZinoKader as well. Looking forward to seeing your changes. |
Our initial solution involves simply creating multiple issues tagging each member of the reviewing team. Very easy fix. for member in review_team.members:
issue_title = f"{issue.title} ({member})"
api.create_issue(
issue_title,
issue.body,
reviewed_repo,
assignees=[member]
if not isinstance(api, _repobee.ext.gitea.GiteaAPI)
else None,
) |
Fixes repobee#789 - Creates a new review issue for each student - Assigns each user to their own review issue
@Adamih That seems reasonable. Just off the top of my head, I'm a little bit uncertain how that plays with the double-blind review functionality. I frankly don't remember how that even works. There may be a need to add a new test when running in double-blind mode to ensure that there's still only one (anonymous) issue created when in double blind mode. For context, see the double-blind review docs here |
We will try double blind and create some rudimentary unit tests. Thanks for the input. |
@Adamih Actually, now I'm just confusing myself. This works transparently for double-blind review as the "owner" of the reviewed repo doesn't actually have access to the repo copy (it would of course not be double-blind otherwise). So there's no need for any special considerations for double-blind review, your implementation looks reasonable. The only real effort will be to test the new functionality, which will probably amount to adapting existing tests. |
There's now a PR with a moderately successful refactor of the Will have to merge tomorrow (granted that the system tests pass), it took me a wee bit too many hours to figure out a halfway decent split of the functionality. That module was very much written with the mindset of "this is tomorrow me's problem". And it sure is. |
I'm very much under the controversial opinion that long functions are totally ok, so it doesn't affect me that much. I will check out your PR though and whip up a test or two. |
It's merged :) I'm not a zealot about function length, but from experience, a long function is either littered with inline comments explaining what the different blocks do (and at that point you might as well create a function with a good name), or it isn't and then it's hard to understand the intent of the different parts of the function. There's of course also a downside to factoring a long function into smaller components. As is evident from my (now merged) refactoring, there are some intricate couplings between the functions that are handled with callbacks, which adds complexity of its own. Which I intend to massage away, I just ran out of time. But, now that the initial refactoring is done, you can happily chop away at your isolated part of the functionality while I can keep refactoring, and the chances that our edits conflict is reduced compared to when everything is in the same function, which importantly has the same scope. Scopes in Python are a little bit devious as well as only functions create new scopes, whereas stuff like loops and conditional blocks don't. |
GitLab CE and GitHub free do not support multiple assignees per issue (#532 #696). This causes trouble for the current review assigning scheme, which assigns all reviewers for a single repository to a single issue.
A workaround for this is to open one issue per reviewer.
The text was updated successfully, but these errors were encountered: