Showcase that guides a project maintainer and project collaborator unfamiliar with Upstream through making code contributions with Upstream.
Script
- Maintainer creates a Radicle identity
- Maintainer installs
rad
CLI
- Maintainer runs
rad auth
- Maintainer creates a Radicle project
- Maintainer goes to Git repository
- Maintainer runs
rad init
- Maintainer downloads and installs Upstream from
radicle.xyz
.
- Maintainer starts Upstream. (They don’t need to log in)
- Maintainer sees the project they have just created
- Maintainer publishes the project by running:
rad push
- Maintainer shares the project ID with collaborator
- Collaborator creates a Radicle identity with
rad auth
- Collaborator downloads and installs Upstream from
radicle.xyz
- Collaborator gets the project ID and seed node from somewhere out of band.
- Collaborator clones the project with
rad clone
and publishes their default branch, effectively forking the project with git push rad main
(substitute main
with the default branch name)
- Known Problem: It is currently not obvious which branch the collaborator should checkout in order to implement their fix. We do currently allow maintainers to designate a “main” branch.
- Ideas:
- We may think about ways to make it more apparent the time or latest fix that a branch has merged
- Prominently display the maintainer’s designated branch on the Upstream UI
- Collaborator starts Upstream. (They are automatically logged in)
- Collaborator sees the project in Upstream
- Collaborator submits a patch using the CLI
- Collaborator creates a branch based on the projects main branch. (What is the main branch?)
- Collaborator makes changes and commits them
- Collaborator creates a patch with
upstream patch create
- Collaborator needs to provide title and description for patch
- Collaborator publishes their patch with
rad push
- Known Problem:
rad push
doesn’t push the default branch anymore, only the branch you’re on, currently the workaround is to git push rad main
- Collaborator sees their patch in Upstream
- Collaborator announces the patch in a public forum. The announcement includes the patch URI and the peer ID. Both of these can be copied to the clipboard in Upstream.
- Maintainer sees that announcement for the patch
- Maintainer follows the peer using the provided peer ID