This repository collects our recommendations for a research software project in Python. We have a website if you need some advice, and a template if you're starting from scratch.
πͺ Our template uses cookiecutter to set up a new package with our preferred tools ready to go.
Note
If you're making a package in a research community that already has a template, use theirs instead!
If you're comfortable with the command line, here are some quick start steps. We also have a more detailed tutorial that has been presented in workshops for researchers at UCL.
If you have uv installed, run:
uvx cookiecutter gh:ucl-arc/python-tooling --checkout latestIf you don't want to use uv you can install cookiecutter, then run without uvx:
cookiecutter gh:ucl-arc/python-tooling --checkout latestcookiecutter will ask you questions to set up your project. Type your answer, or hit return without typing anything to use the defaults.
When finished, it prints some information to the terminal. These are tips for next steps like creating a repository and making a website for your package.
It will have created a directory for your project:
ls -ltr | tail -n1 # Show the last directory that was createdYou can see the structure with the tree command.
In our example we've called our project example-research-software-project:
tree example-research-software-projectTo start working on your project:
- change directory to your project directory,
- initialise a
gitrepository, - and install your new package editable mode.
You probably want to do this in a virtual environment.
The comments show how to do this in uv with uv venv:
cd example-research-software-project
git init
# uv venv
# source .venv/bin/activate
uv syncYou can ask questions in discussions or in the #helpme channel on UCL's Research Programming Hub Slack.