SS Open source projects
Last saved by Pierre henri Seylan on February 25, 2015
Context:
Open source projects are a new typ of projects deviated from the initial Jobs and Collabs models.
Those types of projects are called Open source (OS) because they are open to any member of Soundslates, and not only to members that have been previously accepted by the project admin.
Details:
1. Details specific to OS projects:
- An OS project can be created by anyone
- OS projects are displayed by default on the project board (see condition below)
- It is decided at the project creation if a project is OS, Job or Collab
- The typ of project can't be switched later
- the OS projects share common features with Jobs and Collabs (see below)
- Every members of Soundslates have a READ access to OS projects
2. Access:
In an OS project there are 3 different kinds of user role:
- Admin: project creator, can invite and accept users for the OS project, can also update the master branch
- Collaborators: Users invited and accepted by the project admin /like for collabs and jobs)
- Reviewers (new): this user role is new, the reviewers have only a READ access to the master branch, they can create private branches and push revisions to it
3. Project board:
Like Jobs and Collabs, the OS projects are displayed on the project board and have their own tabs.
4. API:
At first sight, the following API functionality are needed:
- Create a OS project
- Get list of OS projects (from project board)
- For other requests such as push, invite ect, the same requests should be used as for the jobs and collabs projects types
5. Pull requests:
In general, the pull request feature is missing from the API functionality, this should be added for all projects, and will be used in OS projects as well.
Technically, a pull request would simply be a READ access to a private branch.
When collaborators are working in a project, they can send pull requests to the project admin so the admin can review their changes and maybe decide to merge them to the master branch.
- A project collaborator or reviewer can send a pull request to any other collaborators of the project or to admin
- the pull request is an temporary access, meaning that the project admin who has received the pull request should not have READ access to this branch for ever, it should be canceled once the branch has been pulled (not sure it it is the best, how is it in GIT?)
Initial revision:
To avoid empty OS projects, we should allow an OS project to be visible on the project board only if a revision is present on the master branch.
If the master branch is empty, the OS project should not be visible on the project board.