NVIDIA / NVIDIA/cccl

[FEA]: [DevEx] Repo setup scripts

Open
#7,230 0 comments 0 reactions 0 assignees View on GitHub
devex infra
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

Open the contributing guide

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.