From 5c7eff72985f388d6db8f91941fd6905ea046b9a Mon Sep 17 00:00:00 2001 From: Jake Hemstad Date: Tue, 3 Oct 2023 12:34:36 -0500 Subject: [PATCH 1/9] [skip ci] Minor wording changes --- .devcontainer/README.md | 25 ++++++++++++++----------- docs/images/codespaces.png | Bin 0 -> 38041 bytes 2 files changed, 14 insertions(+), 11 deletions(-) create mode 100644 docs/images/codespaces.png diff --git a/.devcontainer/README.md b/.devcontainer/README.md index e0a1d20be7..5c4f2e83e1 100644 --- a/.devcontainer/README.md +++ b/.devcontainer/README.md @@ -1,11 +1,11 @@ > **Note** -> The instructions in this README are specific to Linux development environments. Instructions for Windows is coming soon! +> The instructions in this README are specific to Linux development environments. Instructions for Windows are coming soon! [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/NVIDIA/cccl?quickstart=1&devcontainer_path=.devcontainer%2Fdevcontainer.json) # CCCL Dev Containers -To ensure consistency and ease of setup, CCCL uses [Development Containers](https://code.visualstudio.com/docs/devcontainers/containers) for local development and for CI. This guide covers setup in Visual Studio Code and Docker. +CCCL uses [Development Containers](https://code.visualstudio.com/docs/devcontainers/containers) to provide consistent and convenient development environments for both local development and for CI. This guide covers setup in Visual Studio Code and Docker. ## Quickstart: VSCode (Recommended) @@ -27,7 +27,7 @@ To ensure consistency and ease of setup, CCCL uses [Development Containers](http - Alternatively, use the Command Palette to start a Dev Container. Press `Ctrl+Shift+P` to open the Command Palette. Type "Remote-Containers: Reopen in Container" and select it. - ![Shows "Reopen in Container" in command pallete.](./img/open_in_container_manual.png) + ![Shows "Reopen in Container" in command pallete.](./img/open_in_container_manual.png) 4. Select an environment with the desired CTK and host compiler from the list: @@ -43,11 +43,13 @@ To ensure consistency and ease of setup, CCCL uses [Development Containers](http After starting the container, there will be a prompt to authenticate with GitHub. This grants access to a [`sccache`](https://github.com/mozilla/sccache) server shared with CI and greatly accelerates local build times. This is currently limited to NVIDIA employees belonging to the `NVIDIA` or `rapidsai` GitHub organizations. +Without authentication to the remote server, `sccache` will still accelerate local builds by using a filesystem cache. + Follow the instructions in the prompt as below and enter the one-time code at https://github.com/login/device ![Shows authentication with GitHub to access sccache bucket.](./img/github_auth.png) -Even without this step, `sccache` will utilize a local cache on your filesystem, benefiting local rebuilds. To manually trigger this authentication, execute the `devcontainer-utils-vault-s3-init` script within the container. +To manually trigger this authentication, execute the `devcontainer-utils-vault-s3-init` script within the container. For more information about the sccache configuration and authentication, see the documentation at [`rapidsai/devcontainers`](https://github.com/rapidsai/devcontainers/blob/branch-23.10/USAGE.md#build-caching-with-sccache). @@ -77,15 +79,19 @@ For more information about the sccache configuration and authentication, see the CCCL provides environments for both the oldest and newest supported CUDA versions with all compatible host compilers. -Look in the [`.devcontainer/`](.) directory to see the available configurations.The top-level [`devcontainer.json`](./devcontainer.json) serves as the default environment. All `devcontainer.json` files in the `cuda-` sub-directories are derived from this top-level file, just with different base images to for the different CUDA and host compiler versions. +Look in the [`.devcontainer/`](.) directory to see the available configurations.The top-level [`devcontainer.json`](./devcontainer.json) serves as the default environment. All `devcontainer.json` files in the `cuda-` sub-directories are derived from this top-level file, just with different base images for the different CUDA and host compiler versions. ## GitHub Codespaces [![Open in GitHub Codespaces](https://github.com/codespaces/badge.svg)](https://codespaces.new/NVIDIA/cccl?quickstart=1&devcontainer_path=.devcontainer%2Fdevcontainer.json) -Dev Containers integrate natively with [GitHub Codespaces](https://github.com/features/codespaces) that provide a VSCode development environment right in your browser running on a machine in the cloud. This provides a truly one-click, turnkey development environment with no other setup required. +One of the benefits of Dev Containers is that they integrate natively with [GitHub Codespaces](https://github.com/features/codespaces). Codespaces provide a VSCode development environment right in your browser running on a machine in the cloud. This provides a truly one-click, turnkey development environment where you can build tests with no other setup required. + +Click the badge above or [click here](https://codespaces.new/NVIDIA/cccl?quickstart=1&devcontainer_path=.devcontainer%2Fdevcontainer.json) to get started with CCCL's Dev Containers on Codespaces. This will start the default Dev Container environment. [Click here](https://github.com/codespaces/new?hide_repo_select=true&ref=main&repo=296416761&skip_quickstart=true) to start a Codespace with a particular environment and hardware configuration as shown: + + ![Shows configuring a Codespace with a custom environment](../docs/images/codespaces.png) + -Click the badge above or [click here](https://codespaces.new/NVIDIA/cccl?quickstart=1&devcontainer_path=.devcontainer%2Fdevcontainer.json) to get started with CCCL's Dev Containers on Codespaces. ## For Maintainers: The `make_devcontainers.sh` Script @@ -99,9 +105,6 @@ Click the badge above or [click here](https://codespaces.new/NVIDIA/cccl?quickst 2. Use the top-level [`.devcontainer/devcontainer.json`](./devcontainer.json) as a template. For each unique combination of CTK version and host compiler, generate a corresponding `devcontainer.json` configuration, adjusting only the base Docker image to match the desired environment. 3. Place the generated configurations in the `.devcontainer` directory, organizing them into subdirectories following the naming convention `cuda-`. -### Usage: -```bash -make_devcontainers.sh -``` +For more information, see the `.devcontainer/make_devcontainers.sh --help` message. **Note**: When adding or updating supported environments, modify `matrix.yaml` and then rerun this script to synchronize the `devcontainer` configurations. diff --git a/docs/images/codespaces.png b/docs/images/codespaces.png new file mode 100644 index 0000000000000000000000000000000000000000..3f711d03df33a31e30b4381a261d5c8d0fd219ee GIT binary patch literal 38041 zcmcG#1yoki+xB?`B}77yR7weHrMpAAyQI6j5fG%6loILgZl$|BrMsjb>f88#-*0{2 z%&awQX4W7eJm+EWv-jC?@9X;A!E!QUs80!=LJ)*1{y|s)g5VJ#=#c{w9C!s~Ja`)X z_t->0S^$E|B2jMio`By;3_d7GLy$WK1o;L)5DdKJy9Gf`?;vRBBLs1Nhag0=K&mX>HyxXDg?WLi8 zOS`OOfBb{s;k7%m#{wU|g!c4E6uj-8)FCIhP*SqTQmptc^`6`fpGq9LkUantajPfM z$H8$Wf{m?Z<%FGG``z}+gmmOOVBCF`;^BH4AF`8d{|8m=+5n3Bh@Ka1t`GGI`fy`E zQKwL(r74lC&7>fseoHGK75|&_KX=D3u9N+s&uP7<$Do77je1W~@&0Ua<9IR5JHJM#S z2MM=$k5#y|?2@vv*=UJjJpMrqO5W;HR#C~$HhR~N_w?yg%qUDXQo&?<8F@STk(}3O zapo&4D|}JPSdrxEBc{-Bx(JFNiGt#o<1?vx=R>F6!G*ztg(aUaG}P3IOg{2+Xek;A z>Mq+mZj(c)v*zcGpFu0SWPcFxnkOeHzr3*KN#*sBDe4^ab_mw?VaLOeTCDFC?PYzCJh5H&}8qU5Xgm)JCtn zqI$o*lf_ScTeZt(2tJIAR#ve#=(I-53=mnAl`UC8_usv%b9?gaePCGOGw~?3msMXO z{wT(BM(o(+`9?qDI{!)LCSjY!PHwMr?$?YVed|vjlcf%oaD1z)L)jb(4vu)o$Sn6Y z{%~n%?tZUFd#=XObO{a8*Vq3{b$xo^w5oBmkTmsO%2-9k8GLQs29=c^zT$Ld_t=@P ztH{}#t(K9IxWl;kCc(hKaIy9~MRST_uF7g)^?1?eOB)S5n476Nxw&5kI$d+$lZltl zFp7wX@I{G_1qg56%J_tYUR@rXm9-)E_DYCF5b3I`vs_Bb%i9h6-i_}!;g99u5p2n( z9H%xJY$nxM!~62DJ?3)WL4q(bF=sUrAvt;ZV^VrFDEALCG?>D3wlUGCA{sazxj#1( z92z=iS{X;D0muI&$bahb!^B0;NmuaeX?HhGejI(}4?mP-Py0MY#>Ls5nT?5tjwUoL zBpZjCiW;d)J@OTg_dZM-bOTe4^zqI_#`y*_=b6CwA499~P?7r;?${eJetpRHNMKKt z$J^TqLPJ7UR(RncO^y76d|W+-8O!reO%1S%lZZ&!OMPn?%pE$q?7`aUdgLFZIXmlh zgBM9j^lx?*Pz9-?JibvKv0;A|VMp^uNT{v9UuuL|K|#TiwV}4wwSDV&hJyoiJLIc5 zqeiT1f@{LVvw(J6GK9i<`bxP9GhzM_ITjwoz)`B71tDQ5^a-(-!CbEPldmGQM584`B4n59J zxhrkhelR`EQj5&&>=LyGH&}AVr}*L!dh|wDqs7q)nn`OJY3Y0M2C$NsR+=Rx#m|N1 zhhjv0j0}-3Wt{9ld03xdMeU8DV(DqA>e#2Ji5VHf*V7k~w)CyGi0Q*BA$=tTK2cu%VNW1%wbD2%fX>m=umP+eOVRQ<`{4KYK z-o3lbf7I?sVAUHFED<8{CJ^;0r(6IL>SLlrym@2ujdpM4TOf9lDbG! z+nku}TpS!8x;#THvL4Sft1?q5k&aHwgO}vUGsPwL{N!Mvq~xNckmgzN!*0em-J%g*0yP-CDo0*fWY8rzwqDdPTnau zgZ7)xp$7W;9_Od0J2M%IV%KlPBBvHUXlWH5Yl&o}-%E1;*Y4@lX!j=QE;IS$+A6RI^F_B%fiwkT3X4!KXQBjtrS72`abRA zaY6K!hGx^gZYh55o(3=d50(kIz2Q`#v8eYh57>q{qw}%8pgu9XGMNE`?g$ni?VGQVB;? z+x=Iep~kXSWHlyw&u#P