-
Notifications
You must be signed in to change notification settings - Fork 45
Manual Development Environment Setup
vaccine-feed-ingest
's cli tool is written in Python, but you can contribute pipeline stages in most scripting languages. Currently we run bash
and python
, but are open to more!
To get started helping out, you first need to set up the vaccine-feed-ingest
cli.
These instructions assume you have configured git
on your machine, have cloned this repo, and are working from the root directory of the repo (cd vaccine-feed-ingest
after cloning).
Once you have set up your development environment, see running vaccine-feed-ingest
.
-
Install
homebrew
if you don't have it:/bin/bash -c "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/HEAD/install.sh)"
-
Install
python
version3.9
or higher:brew install python@3.9
-
(optional, recommended) If you need multiple python versions then use
pyenv
:brew install pyenv pyenv install echo -e 'if command -v pyenv 1>/dev/null 2>&1; then\n eval "$(pyenv init -)"\nfi' >> ~/.zshrc
If you have an issue, see pyenv's instructions or skip this step.
-
Install
poetry
brew install poetry
-
Install app dependancies with extras for development:
poetry install --extras lint
Known problems and fixes:
⚠️ On some macs there may be an error with a dependency calledFiona
. If you see something like:
Complete output (2 lines): Failed to get options via gdal-config: [Errno 2] No such file or directory: 'gdal-config' A GDAL API version must be specified. Provide a path to gdal-config using a GDAL_CONFIG environment variable or use a GDAL_VERSION environment variable.
Then install
gdal
with:brew install gdal
And try
poetry install --extras lint
again!⚠️ When testing your installation (next step below), if you see an error like this about a dependency calledrtree
:
AttributeError: dlsym(RTLD_DEFAULT, Error_GetLastErrorNum): symbol not found
Then install
spatialindex
with:brew install spatialindex
And try testing again!
-
Test your installation!
poetry run vaccine-feed-ingest --help
-
(optional, not recommended) Install
gcloud
SDK:You do not need this unless you are developing against GCS. Google has detailed instructions if you need them.
In addition to this installation step, you will need to be granted access to our development GCP environment to use this. Most contributors will not need to do this.
brew install --cask google-cloud-sdk gcloud init
-
Install required system deps:
sudo apt-get install libbz2-dev liblzma-dev libreadline-dev libsqlite3-dev pdftohtml
-
Install
python
version3.9
or higher:sudo apt-get install python3.9 python3-pip
-
(optional, recommended) If you need multiple python versions then use
pyenv
:curl https://pyenv.run | bash
Add
pyenv
to.bashrc
:export PATH="$HOME/.pyenv/bin:$PATH" eval "$(pyenv init -)" eval "$(pyenv virtualenv-init -)"
Install project python version:
pyenv install
-
Install
poetry
:curl -sSL https://raw.githubusercontent.com/python-poetry/poetry/master/install-poetry.py | python -
-
Add to
.bashrc
:export PATH="$HOME/.local/bin:$PATH"
-
Install app dependancies with extras for development:
poetry install --extras lint
-
Test your installation!
poetry run vaccine-feed-ingest --help
-
(optional, not recommended) Install
gcloud
SDK:You do not need this unless you are developing against GCS. Google has detailed instructions if you need them.
In addition to this installation step, you will need to be granted access to our development GCP environment to use this. Most contributors will not need to do this.
curl https://sdk.cloud.google.com | bash gcloud init
WSL is probably your best bet
- Find an issue you'd like to help out with
- Set up a development environment
- Read up on how our pipeline works
- Run the pipeline locally
Some pre-built tools to help fetch or parse common data types