Skip to content

Commit

Permalink
Setup basic repo documents needed for rapids-cmake
Browse files Browse the repository at this point in the history
  • Loading branch information
robertmaynard committed Apr 28, 2021
1 parent 5e544d2 commit aa5ac66
Show file tree
Hide file tree
Showing 10 changed files with 220 additions and 98 deletions.
22 changes: 8 additions & 14 deletions .github/CODEOWNERS
Validating CODEOWNERS rules …
Original file line number Diff line number Diff line change
@@ -1,18 +1,12 @@
#cpp code owners
cpp/ @rapidsai/<repo>-cpp-codeowners

#python code owners
python/ @rapidsai/<repo>-python-codeowners
python/dask_cudf/ @rapidsai/<repo>-dask-codeowners

#cmake code owners
**/CMakeLists.txt @rapidsai/<repo>-cmake-codeowners
**/cmake/ @rapidsai/<repo>-cmake-codeowners
**/CMakeLists.txt @rapidsai/rapids-cmake-codeowners
*.cmake @rapidsai/rapids-cmake-codeowners

#build/ops code owners
.github/ @rapidsai/ops-codeowners
ci/ @rapidsai/ops-codeowners
conda/ @rapidsai/ops-codeowners
**/Dockerfile @rapidsai/ops-codeowners
**/.dockerignore @rapidsai/ops-codeowners
docker/ @rapidsai/ops-codeowners
.github/ @rapidsai/ops-codeowners
ci/ @rapidsai/ops-codeowners
conda/ @rapidsai/ops-codeowners
**/Dockerfile @rapidsai/ops-codeowners
**/.dockerignore @rapidsai/ops-codeowners
docker/ @rapidsai/ops-codeowners
8 changes: 3 additions & 5 deletions .github/ISSUE_TEMPLATE/bug_report.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: Bug report
about: Create a bug report to help us improve ___PROJECT___
about: Create a bug report to help us improve rapids-cmake
title: "[BUG]"
labels: "? - Needs Triage, bug"
assignees: ''
Expand All @@ -18,9 +18,7 @@ A clear and concise description of what you expected to happen.

**Environment details (please complete the following information):**
- Environment location: [Bare-metal, Docker, Cloud(specify cloud provider)]
- Method of ___PROJECT___ install: [conda, Docker, or from source]
- If method of install is [Docker], provide `docker pull` & `docker run` commands used

- CMake version

**Additional context**
Add any other context about the problem here.
For harder to track issue it can be helpful to attach the file generated from `cmake --system-information <file>` when executed from the same enviornment as the failure.
4 changes: 2 additions & 2 deletions .github/ISSUE_TEMPLATE/feature_request.md
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
---
name: Feature request
about: Suggest an idea for ___PROJECT___
about: Suggest an idea for rapids-cmake
title: "[FEA]"
labels: "? - Needs Triage, feature request"
assignees: ''

---

**Is your feature request related to a problem? Please describe.**
A clear and concise description of what the problem is. Ex. I wish I could use ___PROJECT___ to do [...]
A clear and concise description of what the problem is. Ex. I wish I could use rapids-cmake to do [...]

**Describe the solution you'd like**
A clear and concise description of what you want to happen.
Expand Down
2 changes: 1 addition & 1 deletion .github/ISSUE_TEMPLATE/submit-question.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
---
name: Submit question
about: Ask a general question about ___PROJECT___
about: Ask a general question about rapids-cmake
title: "[QST]"
labels: "? - Needs Triage, question"
assignees: ''
Expand Down
32 changes: 23 additions & 9 deletions .github/PULL_REQUEST_TEMPLATE.md
Original file line number Diff line number Diff line change
@@ -1,28 +1,42 @@
<!--
Thank you for contributing to ___PROJECT___ :)
Thank you for contributing to rapids-cmake :)
Here are some guidelines to help the review process go smoothly.
1. Please write a description in this text box of the changes that are being
made.
2. Please ensure that you have written units tests for the changes made/features
2. Please ensure that you have followed the following guidelines for the changes made/features
added.
- Each function should follow the `rapids_<component>_<file_name>` naming pattern
- Each function should go into a separate `.cmake` file in the approiate directory
- Each user facing `.cmake` file should have include guards (`include_guard(GLOBAL)`)
- Each user faceing `.cmake` file should be documented using the rst structure
- Each function first line should be `list(APPEND CMAKE_MESSAGE_CONTEXT "rapids.<component>.<function>")`
- A file should not modify any state simply by being included. State modification should
only occur inside functions unless absolutely neccessary due to restrctions of the CMake
language.
- Any files that do need to break this rule can't be part of `rapids-<component>.cmake`.
3. If you are closing an issue please use one of the automatic closing words as
noted here: https://help.github.com/articles/closing-issues-using-keywords/
4. If your pull request is not ready for review but you want to make use of the
continuous integration testing facilities please label it with `[WIP]`.
continuous integration testing facilities please mark your pull request as Draft.
https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/changing-the-stage-of-a-pull-request#converting-a-pull-request-to-a-draft
5. If your pull request is ready to be reviewed without requiring additional
work on top of it, then remove the `[WIP]` label (if present) and replace
it with `[REVIEW]`. If assistance is required to complete the functionality,
for example when the C/C++ code of a feature is complete but Python bindings
are still required, then add the label `[HELP-REQ]` so that others can triage
and assist. The additional changes then can be implemented on top of the
same PR. If the assistance is done by members of the rapidsAI team, then no
work on top of it, then remove it from "Draft" and make it "Ready for Review".
https://docs.github.com/en/github/collaborating-with-issues-and-pull-requests/changing-the-stage-of-a-pull-request#marking-a-pull-request-as-ready-for-review
If assistance is required to complete the functionality, for example when the
CMake code of a feature is complete but downstream testing is still required,
then add the label `help wanted` so that others can triage and assist.
The additional changes then can be implemented on top of the same PR.
If the assistance is done by members of the rapidsAI team, then no
additional actions are required by the creator of the original PR for this,
otherwise the original author of the PR needs to give permission to the
person(s) assisting to commit to their personal fork of the project. If that
Expand Down
21 changes: 21 additions & 0 deletions .gitignore
Original file line number Diff line number Diff line change
@@ -0,0 +1,21 @@
## Common
.DS_Store

## C++ test build directory
build/
example/build/

## Eclipse IDE
.project
.cproject
.settings

## IntelliJ IDE
.idea/
.idea_modules/
*.iml
*.ipr
*.iws

## VSCode IDE
.vscode
4 changes: 3 additions & 1 deletion CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,4 +1,6 @@
# ___PROJECT___ 0.0.0 (DD Mon YYYY)
# rapids-cmake 0.20.0 (Date TBD)

Please see https://github.com/rapidsai/rapids-cmake/releases/tag/v0.20.0a for the latest changes to this development branch.

## New Features

Expand Down
74 changes: 66 additions & 8 deletions CONTRIBUTING.md
Original file line number Diff line number Diff line change
@@ -1,9 +1,9 @@
# Contributing to ___PROJECT___
# Contributing to rapids-cmake

If you are interested in contributing to ___PROJECT___, your contributions will fall
If you are interested in contributing to rapids-cmake, your contributions will fall
into three categories:
1. You want to report a bug, feature request, or documentation issue
- File an [issue](https://github.com/rapidsai/___PROJECT___/issues/new/choose)
- File an [issue](https://github.com/rapidsai/rapids-cmake/issues/new/choose)
describing what you encountered or what you want to see changed.
- The RAPIDS team will evaluate the issues and triage them, scheduling
them for a release. If you believe the issue needs priority attention
Expand All @@ -20,15 +20,73 @@ into three categories:

## Code contributions

While RAPIDS core provides commonly used scripts we know that they aren't universal and might need to be composed in different ways.

This means that the code we are developing should be designed for composibility, and all side-effects
or CMake behavior changes should be explicitly opt-in.

So when writing new rapids-cmake features make sure to think about how users might want to opt-in, and
provide the necessary function decomposition. For example lets look at an example of wanting to have an
easy wrapper around creating libraries and setting properties.

```
[=[ BAD ]=]
function(rapids_add_library target )
add_library(${target} ${ARGN})
set_target_properties(cudf
PROPERTIES
CUDA_STANDARD 17
CUDA_STANDARD_REQUIRED ON
)
endfunction()
rapids_add_library(example SHARED ...)
[=[ GOOD ]=]
function(rapids_cmake_setup_target target )
set_target_properties(${target}
PROPERTIES
CUDA_STANDARD 17
CUDA_STANDARD_REQUIRED ON
)
endfunction()
function(rapids_add_library target)
add_library(example ${ARGN})
rapids_cmake_setup_target( example )
endfunction()
rapids_add_library(example SHARED ...)
```

Here we can see that breaking out `rapids_cmake_setup_target` is important as it allows users
that don't/can't use `rapids_add_library` to still opt-in to other features.


Please ensure that when you are creating new features you follow the following guidelines:
- Each function should follow the `rapids_<component>_<file_name>` naming pattern
- Each function should go into a separate `.cmake` file in the approiate directory
- Each user facing `.cmake` file should have include guards (`include_guard(GLOBAL)`)
- Each user faceing `.cmake` file should be documented using the rst structure
- Each function first line should be `list(APPEND CMAKE_MESSAGE_CONTEXT "rapids.<component>.<function>")`
- A file should not modify any state simply by being included. State modification should
only occur inside functions unless absolutely neccessary due to restrctions of the CMake
language.
- Any files that do need to break this rule can't be part of `rapids-<component>.cmake`.

### Your first issue

1. Read the project's [README.md](https://github.com/rapidsai/___PROJECT___/blob/main/README.md)
1. Read the project's [README.md](https://github.com/rapidsai/rapids-cmake/blob/main/README.md)
to learn how to setup the development environment
2. Find an issue to work on. The best way is to look for the [good first issue](https://github.com/rapidsai/___PROJECT___/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
or [help wanted](https://github.com/rapidsai/___PROJECT___/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) labels
2. Find an issue to work on. The best way is to look for the [good first issue](https://github.com/rapidsai/rapids-cmake/issues?q=is%3Aissue+is%3Aopen+label%3A%22good+first+issue%22)
or [help wanted](https://github.com/rapidsai/rapids-cmake/issues?q=is%3Aissue+is%3Aopen+label%3A%22help+wanted%22) labels
3. Comment on the issue saying you are going to work on it
4. Code! Make sure to update unit tests!
5. When done, [create your pull request](https://github.com/rapidsai/___PROJECT___/compare)
5. When done, [create your pull request](https://github.com/rapidsai/rapids-cmake/compare)
6. Verify that CI passes all [status checks](https://help.github.com/articles/about-status-checks/). Fix if needed
7. Wait for other developers to review your code and update code as needed
8. Once reviewed and approved, a RAPIDS developer will merge your pull request
Expand All @@ -39,7 +97,7 @@ and ask for clarifications!
### Seasoned developers

Once you have gotten your feet wet and are more comfortable with the code, you
can look at the prioritized issues of our next release in our [project boards](https://github.com/rapidsai/___PROJECT___/projects).
can look at the prioritized issues of our next release in our [project boards](https://github.com/rapidsai/rapids-cmake/projects).

> **Pro Tip:** Always look at the release board with the highest number for
issues to work on. This is where RAPIDS developers also focus their efforts.
Expand Down
2 changes: 1 addition & 1 deletion LICENSE
Original file line number Diff line number Diff line change
Expand Up @@ -186,7 +186,7 @@
same "printed page" as the copyright notice for easier
identification within third-party archives.

Copyright 2020 NVIDIA Corporation
Copyright 2021 NVIDIA Corporation

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
Expand Down
Loading

0 comments on commit aa5ac66

Please sign in to comment.