Development Containers
Why development containers?
This is our recommended way of getting set up for development, because it'll eliminate the vast majority of development environment quriks that are difficult to debug. There are other reasons to use development containers that are detailed in a variety of blog posts linked below. If you're new to the concept, we recommend that you give them a read.
Microsoft has an awesome tutorial that you should walk through before you attempt to use development containers. The tutorial is available here.
To use development containers, we recommend using Visual Studio Code, which has the best support for development containers amongst the IDEs that we have encountered.
Getting started with SeqLike's development containers
The rough order of steps is as follows:
- Ensure you have Docker running on your computer.
- Clone the repository locally, preferrably using SSH.
- Ensure that you have your SSH agent running.
- Open the repository inside VSCode.
- (If you don't have it) Install the VSCode Remote extension.
- When prompted, re-open the repository inside the Dev container we have specified.
Once that is done, verify that you have everything correctly installed by executing the following commands to run the test suite:
pytest
Also, you can build the docs:
mkdocs serve
You should then be able to go to http://localhost:8000
to view the docs.
Features of our development container
Automated development install
SeqLike is automatically installed in development mode thus allowing you to test code changes as soon as they are made.
Python development tools
We installed the following VSCode extensions:
- Pylance (
ms-python.vscode-pylance
) - Jupyter (
ms-toolsai.jupyter
) - MS Python (
ms-python.python
)
Pre-commit hooks
To ensure code quality, pre-commit hooks are installed into the environment. You'll always be notified if your code needs to be modified because they didn't pass our automated code checks.
Nord theme
We give you a beautiful and aesthetically pleasing theme for VSCode. Rest assured, this doesn't affect whatever your original theme settings are.
Port 8000
We use mkdocs
to build the docs.
mkdocs
comes with a built-in preview server
which runs on port 8000 when you execute mkdocs serve
.
That port is forwarded to your localhost
.