[FEA]: [DevEx] Repo setup scripts
- Dominant language
- C++
- Stars
- 2.5k
- Forks
- 486
- Avg merge
- 2d 6h
- Merged PRs (30d)
- 295
Description
### Is this a duplicate?
- [x] I confirmed there appear to be no [duplicate issues](https://github.com/NVIDIA/cccl/issues) for this request and that I agree to the [Code of Conduct](CODE_OF_CONDUCT.md)
### Area
Infrastructure
### Is your feature request related to a problem? Please describe.
### Developer Setup
As a CCCL developer, there are many routine setup tasks that need to be done after cloning a repo. While our devcontainers streamline much of the process, there are still setup tasks that need to be done on the host-side repo that cannot be configured via devcontainers:
- remote fork setup
- git repo config (rev-parse-ignore, git aliases, ignore `copy-pr-bot` branches on fetch)
- host-side vscode extension setup
- host-side precommit install
- WSL setup / error checking
### Developer One-Shot
As a CCCL developer, I need to fetch/build/test a single SHA on a remote / temporary environment.
- Single-branch shallow fetch
- Option to run arbitrary commands in the fetched repo to simplify scripting
- Examples of useful commands: `ci/{build,test}_*.sh`, `ci/util/build_and_test_targets.sh` `.devcontainer/launch.sh -d <...>`
### User Clone / Install
As a CCCL user, I'd like to be able to do a minimum fetch/install of a user-facing branch:
- Single branch clone
- Shallow clone
- Restrict auto-fetch branches to only `main` and release branches.
- (optional: `--install `) Minimum config/build/install cycle restricted to only producing an install tree.
### Describe the solution you'd like
Add convenience scripts that can be `wget | bash`'d to implement the above workflows:
- `setup/dev_clone.sh`
- clones and calls `dev_setup.sh` to do the bulk of the work (allows post-clone setup on existing repos).
- `setup/oneshot_clone.sh`
- `setup/user_clone.sh`
- Install option uses existing install scripts.
### Describe alternatives you've considered
_No response_
### Additional context
_No response_
Contributor guide
Assessment
This issue has not been assessed yet.