as you might know I’m currently actively working on the Change Request extension, and I have an open question about allowing people to participe on existing change requests.
So on the following, I will only consider Change requests that are already created, and I consider that the first person who creates the change request is the original author.
Now, nothing prevents a Change request to be authored by multiple people, bringing different contributions on same documents or on different documents. To bring a bit more context, you should however know that the people who author a change request cannot approve them by themselves. So only external people of a change request (who are not author) can approve, and those approvals might be required for merging (depending on the chosen merging strategy).
Also consider that several edition activities can occur on a change request:
- changes can be performed on documents already added in the change request,
- changes can be added from documents that are not yet included in the change request,
- conflicts can be solved
- changes can be rebased individually on some files, or on all the documents of the change request
- description and title of the change request can be edited
- status of the change request can be changed, to mark it as draft, or ready to review, or to even close it
So based on all those information, my question is: for those existing change request, do we allow any people who has proper rights to create a change request, to also edit the existing ones to perform the activities I just mentioned?
AFAIK when you create a pull request on Github, if you are committer of the original repository then you are able to perform commits on the branch of the creator of the PR, so basically you can edit the created PR to add changes. I think you can even edit title and description, and for sure you can close it.
So right now I see different solutions:
- we authorize anyone who can create a CR, to participate to any existing CR by performing the activities I mentioned, in which case for all the mentioned activities the user is added to the list of author and cannot approve the CR anymore (and if there’s an existing approval, it would be outdated automatically, to not consider it)
2a. we only authorize the original creator to edit their own CR, nobody can perform any changes on them, so they will be always the only author and any CR can only have a single author
2b. we only authorize the original creator to edit their own CR for a subset of the activities such as editing description / title / status and adding changes from other documents. We authorize other people to solve conflicts / rebase and add changes concerning the already added documents: in such case, those people become authors of the CR, on same condition than in solution 1.
- we let the author of the CR to decide if it should be closed or not, and we let them the capability to invite people to participate to a CR.
Note that for solution 3, we cannot give a CR author Admin rights on the CR automatically to handle that, since if we give admin rights it means the user would be able to bypass the approval mechanism in the CR.