Tutorial¶
This page contains a complete tutorial on how to create your project.
Step 1: Install copier¶
To start, we will need to install copier
.
We recommend doing so with uv
. If you don't have uv
, installation instructions can be found
here. For MacOS or Linux;
curl -LsSf https://astral.sh/uv/install.sh | sh
Then you can use uv
to install copier
:
uv tool install copier
Alternatively, once you have uv
installed, you can use uvx
to use copier
without actually installing it:
uvx copier copy ...
Step 2: Generate your project¶
On your local machine, navigate to the directory in which you want to create your project, and run the following command:
copier copy --trust https://github.com/switchbox-data/data-science-project.git <project-name>
For an explanation of the prompt arguments, see Prompt Arguments.
Follow the prompts to configure your project. Once completed, a new directory containing your project will be created. A git repo will automatically be created, and the generated files will be committed.
Step 3: Set up your Github repository¶
Create an empty new repository on Github. Give
it a name that matches <project-name>
above. The name should contain alphanumeric characters and optionally -
.
DO NOT check any boxes under the option Initialize this repository
with
.
Step 4: Upload your project to Github¶
Run the following commands, replacing <project-name>
with the name
that you also gave the Github repository and <github_author_handle>
with the Github username or organization where you made your repo.
cd <project_name>
git remote add origin git@github.com:<github_author_handle>/<project_name>.git
git push -u origin main
Step 5: Set Up Your Development Environment¶
Initially, the CI/CD pipeline will fail for two reasons:
- The project does not yet contain a
uv.lock
file - There are a few formatting issues in the project
To fix that, we first install the environment and the pre-commit hooks with:
just install
This will generate the uv.lock
file
Step 6: Run the pre-commit hooks¶
Now, to resolve the formatting issues, let's run the pre-commit hooks:
uv run pre-commit run -a
7. Commit the changes¶
Now we commit the changes made by the two steps above to the repository:
git add .
git commit -m 'Fix formatting issues'
git push origin main