Skip to content

Commit b755335

Browse files
jeremymanningclaude
andcommitted
Add CDL development environment setup scripts and documentation
- Create scripts/setup.sh for macOS/Linux with idempotent installs - Homebrew, Git, Slack, VS Code, LaTeX, Dropbox, Miniconda - CDL conda environment setup with verification - Create scripts/setup.ps1 for Windows with winget support - Same functionality as Unix script for Windows users - Create scripts/cdl-environment.yml conda environment spec - Python 3.11 with numpy, scipy, pandas, polars, matplotlib - PyTorch, transformers, diffusers, datasets - CDL packages: hypertools, quail, timecorr, supereeg - Create tests/test_cdl_environment.py integration tests - Real imports only, no mocks - Tests for all major package categories - @pytest.mark.slow for network-dependent tests - Update lab_manual.tex with development environment section - Instructions for running setup script - Support resources and help contacts Addresses #59 🤖 Generated with [Claude Code](https://claude.com/claude-code) Co-Authored-By: Claude <[email protected]>
1 parent dddda40 commit b755335

File tree

6 files changed

+1554
-0
lines changed

6 files changed

+1554
-0
lines changed

lab_manual.pdf

2.54 KB
Binary file not shown.

lab_manual.tex

Lines changed: 50 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -864,6 +864,52 @@ \subsection{Authorship guidelines}
864864
feel you don't have the appropriate account type, please communicate
865865
your concerns to \director.
866866

867+
\newthought{Setting up your development environment}
868+
\label{sec:dev-environment}
869+
870+
\noindent To ensure all lab members have consistent development environments,
871+
we provide an automated setup script. The script installs standard applications
872+
and creates a Python environment with all necessary packages for lab research.
873+
874+
\marginnote{\texttt{TASK:} Run the CDL setup script on your computer
875+
by following the instructions below. Verify that all installations
876+
complete successfully.}
877+
878+
\textbf{To run the setup script:}
879+
880+
\textit{On macOS or Linux:}
881+
\begin{verbatim}
882+
curl -fsSL https://raw.githubusercontent.com/
883+
ContextLab/lab-manual/master/scripts/setup.sh | bash
884+
\end{verbatim}
885+
886+
\textit{On Windows (PowerShell as Administrator):}
887+
\begin{verbatim}
888+
irm https://raw.githubusercontent.com/ContextLab/
889+
lab-manual/master/scripts/setup.ps1 | iex
890+
\end{verbatim}
891+
892+
\textbf{What the script installs:}
893+
\begin{itemize}
894+
\item \textbf{Applications:} Slack, VS Code, \LaTeX~distribution, Git, Dropbox
895+
\item \textbf{Python environment:} Miniconda with the \texttt{cdl} conda environment
896+
\item \textbf{Python packages:} NumPy, Pandas, PyTorch, Transformers, HyperTools,
897+
Quail, timecorr, supereeg, and other lab-standard packages
898+
\end{itemize}
899+
900+
\noindent After installation, activate the CDL environment with:
901+
\begin{verbatim}
902+
conda activate cdl
903+
\end{verbatim}
904+
905+
\textbf{Getting help with setup issues:}
906+
\begin{itemize}
907+
\item For software or hardware issues: email \href{mailto:[email protected]}{[email protected]}
908+
\item For lab-specific issues: reach out to \director~via Slack or email
909+
\item For non-urgent questions or general interest problems:
910+
file an issue at \url{https://github.com/ContextLab/lab-manual/issues}
911+
\end{itemize}
912+
867913
\newthought{CITI training}
868914

869915
\noindent Our lab studies human memory,
@@ -1966,6 +2012,10 @@ \chapter{Checklist and signature page}
19662012
have also recompiled the PDF of the lab manual by running
19672013
\texttt{pdflatex} \textbf{twice}, and have ensured that (a) the PDF compiled
19682014
without errors, and (b) the table of contents was generated correctly.
2015+
\item I have run the CDL setup script (described in the
2016+
\hyperref[sec:dev-environment]{Setting up your development environment}
2017+
section) and verified that my development environment is correctly
2018+
configured.
19692019
\item I have access to the following lab calendars:
19702020
Contextual Dynamics Lab, Out of lab, CDL Resources, DHMC Meetings (if
19712021
applicable), and PBS department events.

scripts/cdl-environment.yml

Lines changed: 91 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,91 @@
1+
# CDL Conda Environment
2+
# Contextual Dynamics Laboratory, Dartmouth College
3+
#
4+
# This environment includes all packages needed for CDL research.
5+
#
6+
# To create this environment:
7+
# conda env create -f cdl-environment.yml
8+
#
9+
# To update an existing environment:
10+
# conda env update -n cdl -f cdl-environment.yml --prune
11+
#
12+
# To activate:
13+
# conda activate cdl
14+
#
15+
16+
name: cdl
17+
channels:
18+
- conda-forge
19+
- pytorch
20+
- defaults
21+
22+
dependencies:
23+
# Python version
24+
- python=3.11
25+
26+
# Core scientific computing
27+
- numpy>=1.24
28+
- scipy>=1.11
29+
- pandas>=2.0
30+
- polars>=0.19
31+
32+
# Visualization
33+
- matplotlib>=3.7
34+
- seaborn>=0.12
35+
36+
# Machine learning
37+
- scikit-learn>=1.3
38+
39+
# PyTorch - will install appropriate version for platform (CPU/CUDA/MPS)
40+
- pytorch>=2.0
41+
- torchvision>=0.15
42+
- torchaudio>=2.0
43+
44+
# Jupyter
45+
- jupyter
46+
- jupyterlab
47+
- ipykernel
48+
- ipywidgets
49+
50+
# Interactive plotting
51+
- ipympl
52+
53+
# Utilities
54+
- requests>=2.28
55+
- tqdm
56+
- joblib
57+
- h5py
58+
- pyyaml
59+
60+
# Development tools
61+
- pytest
62+
- pytest-cov
63+
64+
# Neuroimaging (lightweight dependencies)
65+
- nibabel
66+
- nilearn
67+
68+
# pip-installed packages
69+
- pip
70+
- pip:
71+
# Dimensionality reduction
72+
- umap-learn>=0.5
73+
74+
# Transformers and HuggingFace
75+
- transformers>=4.30
76+
- diffusers>=0.21
77+
- datasets>=2.14
78+
- huggingface-hub>=0.17
79+
- accelerate>=0.24
80+
81+
# CDL packages
82+
- hypertools>=0.8
83+
- quail>=0.2
84+
- timecorr>=0.1
85+
- supereeg>=0.2
86+
87+
# Data storage
88+
- deepdish>=0.3
89+
90+
# PPCA for hypertools
91+
- ppca>=0.0.4

0 commit comments

Comments
 (0)