Skip to content

[FEA]: [DevEx] Repo setup scripts #7230

@alliepiper

Description

@alliepiper

Is this a duplicate?

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 <path>) 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

Metadata

Metadata

Assignees

No one assigned

    Labels

    cccl devexCCCL Developer Experience improvementsfeature requestNew feature or request.infrastructureShared CMake, github, etc infrastructure

    Type

    No type

    Projects

    Status

    Todo

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions