Contributing

We briefly explain the workflow to contribute by making a pull request (PR) against main branch. Followings are the steps to contribute the project:

  1. Report bugs or Suggest features: First open issues or ask questions on the Kokkos slack channel.

  2. Fork the Repository: Click the “Fork” button on our repo to create your own copy.

  3. Clone Your Fork: Clone the repository to your local machine with submodules.

    git clone --recursive https://github.com/<your-username>/kokkos-fft.git
    
  4. Add the Upstream Remote: Set the original repository as the upstream remote to keep your fork up to date:

    cd kokkos-fft
    git remote add upstream https://github.com/kokkos/kokkos-fft.git
    
  5. Create a New Branch: Create a new branch for your feature or bug fix with a descriptive name:

    git switch -c <feature-name>
    
  6. Rebase Your Branch Against Upstream/main: To ensure your branch is up to date with the latest changes from the original repository:

    1. Fetch the latest changes from upstream:

      git fetch upstream main
      
    2. Rebase your branch onto the upstream main branch:

      git rebase upstream/main
      
  7. Make Your Changes: Implement your feature or bug fix. Ensure you adhere to the project’s coding standards and guidelines (see details of CI).

  8. Commit Your Changes: Stage your changes and commit them with a clear, concise commit message:

    git add .
    git commit -m "Brief description of changes"
    
  9. Push Your Branch: Push your branch to your GitHub fork:

    git push --force-with-lease origin <feature-name>
    
  10. Open a Pull Request: On GitHub, open a PR from your branch to the original repository’s main branch. Include a detailed description of your changes and reference any related issues.

  11. Participate in the Code Review: Respond to any feedback or questions from maintainers. To run unit-tests on GPUs, you need a special CI approval from maintainers. Update your PR as needed until it meets the project requirements.

  12. Merge Your Changes: Once your pull request is approved, your changes will be merged into the main project. Thank you for your contribution!