Skip to content

Latest commit

 

History

History
110 lines (73 loc) · 2.58 KB

Development-workflow.md

File metadata and controls

110 lines (73 loc) · 2.58 KB

Development Workflow

ks-workflow

1 Fork in the cloud

  1. Visit https://github.com/kubesphere/kubesphere
  2. Click Fork button to establish a cloud-based fork.

2 Clone fork to local storage

Per Go's workspace instructions, place KubeSphere' code on your GOPATH using the following cloning procedure.

  1. Define a local working directory:
$ export working_dir=$GOPATH/src/kubesphere.io
$ export user={your github profile name}
  1. Create your clone locally:
$ mkdir -p $working_dir
$ cd $working_dir
$ git clone https://github.com/$user/kubesphere.git
$ cd $working_dir/kubesphere
$ git remote add upstream https://github.com/kubesphere/kubesphere.git

# Never push to upstream master
$ git remote set-url --push upstream no_push

# Confirm that your remotes make sense:
$ git remote -v

3 Keep your branch in sync

git fetch upstream
git checkout master
git rebase upstream/master

4 Add new features or fix issues

Branch from it:

$ git checkout -b myfeature

Then edit code on the myfeature branch.

Test and build

Currently, make rules only contain simple checks such as vet, unit test, will add e2e tests soon.

Using KubeBuilder

  • For Linux OS, you can download and execute this KubeBuilder script.

  • For MacOS, you can install KubeBuilder by following this guide.

Run and test

$ make all
# Run every unit test
$ make test

Run make help for additional information on these make targets.

5 Development in new branch

Sync with upstream

After the test is completed, suggest you to keep your local in sync with upstream which can avoid conflicts.

# Rebase your the master branch of your local repo.
$ git checkout master
$ git rebase upstream/master

# Then make your development branch in sync with master branch
git checkout new_feature
git rebase -i master

Commit local changes

$ git add <file>
$ git commit -s -m "add your description"

6 Push to your folk

When ready to review (or just to establish an offsite backup or your work), push your branch to your fork on github.com:

$ git push -f ${your_remote_name} myfeature

7 Create a PR