Skip to content
This repository has been archived by the owner on Feb 16, 2019. It is now read-only.

Suggested development workflow

Radha Giduthuri edited this page Feb 26, 2018 · 11 revisions

1. Fork your own copy of amdovx-modules to your account

Public can access your repository from http://github.com/USER/amdovx-modules where USER is your GitHub username.

See GitHub help for more details.

2. Setup your development environment

2.1 Install dependencies

  • CMake 2.8 or newer
  • OpenCL SDK
  • OpenCV 3 SDK (optional)
  • ROCm dependencies: rocm-cmake, MIOpenGEMM, MIOpen (optional)

2.2 Setup local copy of your personal repository

% cd ~/work
% git clone --recursive http://github.com/USER/amdovx-modules
% cd amdovx-modules
% git branch -m master-personal
% git remote add amd http://github.com/GPUOpen-ProfessionalCompute-Libraries/amdovx-modules
% git fetch --all
% git checkout -b master --track amd/master
% git checkout -b develop --track amd/develop
% git pull
% cd deps
% rm -rf amdovx-core
% git clone --recursive http://github.com/USER/amdovx-core.git
% cd amdovx-core
% git branch -m master-personal
% git remote add amd http://github.com/GPUOpen-ProfessionalCompute-Libraries/amdovx-core.git
% git fetch --all
% git checkout -b master --track amd/master
% git checkout -b develop --track amd/develop
% git pull
% cd ../..
% git submodule init
% git submodule update

2.3 Make sure you can build

% cd ~/work
% mkdir build
% cd build
% cmake -DCMAKE_BUILD_TYPE=Release ../amdovx-modules
% make
% ls -l bin
... all the binaries will be in ~/work/build/bin folder ...

To make changes to amdovx-modules repo, follow instructions in Section 3.

To make changes to amdovx-core repo, follow instructions in Section 4.

3. Start the development work

3.1 Sync personal repository and create a new branch before making any local changes

% cd ~/work/amdovx-modules
% git checkout develop
% git pull
% git submodule update
% git checkout -b your-name-initials/new-branch-name

Pick a meaningful name for the new branch, for example, rg/stitching-examples

3.2 Make source code changes, build, and unit test

% cd ~/work/amdovx-modules
% ... edit source files ...

Make sure that amdovx-core dependency is the latest and correct. If you need a particular special branch of amdovx-core for your development, make sure to checkout the corresponding amdovx-core branch.

% cd ~/work/amdovx-modules/deps/amdovx-core
% git pull

Now, just build and unit test

% cd ~/work/build
% make
% ... unit test using binaries in ~/work/build/bin folder ...

3.3 Review your source code changes before commit

Make sure that you didn't accidentally commit changes to deps/amdovx-core.

% cd ~/work/amdovx-modules
% git status
... review changes and make sure that only files that you intended to change are listed ...
% git diff
... review every change to source code files ...
% git add list-of-file(s)
% git status
... review changes again and make sure that only files that you intended to change are listed ...
% git commit -m "describe your changes"
% git push
... this will push local commits into your personal repository on github ...
  • select base fork as GPUOpen-ProfessionalCompute-Libraries/amdovx-modules
  • select base branch as develop
  • select head fork as USER/amdovx-modules
  • select compare branch as your-name-initials/new-branch-name
  • type in the title and comment
  • scroll down and review all code change once more
  • scroll up and click Create pull request button to submit the pull request

See GitHub help for more details.

4. Start the development work in amdovx-core

4.1 Sync personal repository and create a new branch before making any local changes

% cd ~/work/amdovx-modules/deps/amdovx-core
% git checkout develop
% git pull
% git submodule update --recursive
% git checkout -b your-name-initials/new-branch-name

Pick a meaningful name for the new branch, for example, rg/opencl-interop-extension

4.2 Make source code changes, build, and unit test

% cd ~/work/amdovx-modules/deps/amdovx-core
% ... edit source files ...

Now, just build and unit test

% cd ~/work/build
% make
% ... unit test using binaries in ~/work/build/bin folder ...

4.3 Review your source code changes before commit

Make sure that you didn't accidentally commit changes to deps/amdovx-modules.

% cd ~/work/amdovx-modules/deps/amdovx-core
% git status
... review changes and make sure that only files that you intended to change are listed ...
% git diff
... review every change to source code files ...
% git add list-of-file(s)
% git status
... review changes again and make sure that only files that you intended to change are listed ...
% git commit -m "describe your changes"
% git push
... this will push local commits into your personal repository on github ...
  • select base fork as GPUOpen-ProfessionalCompute-Libraries/amdovx-core
  • select base branch as develop
  • select head fork as USER/amdovx-core
  • select compare branch as your-name-initials/new-branch-name
  • type in the title and comment
  • scroll down and review all code change once more
  • scroll up and click Create pull request button to submit the pull request
  • select a reviewer
  • once the pull request is accepted and merged, checkout develop branch and pull the latest changes
    % cd ~/work/amdovx-modules/deps/amdovx-core
    % git checkout develop
    % git pull
  • now you need to make sure amdovx-modules point to this change in amdovx-core latest commit, by following instructions in Step 3.3 and Step 3.4 after verifying that all tests pass with amdovx-modules and amdovx-core repos.

See GitHub help for more details.

Now go back to Step 3.1