From c93df2c75ae98382b320d91062d85e416b31e006 Mon Sep 17 00:00:00 2001 From: Jordan Graesser Date: Fri, 31 Mar 2023 19:40:02 +1100 Subject: [PATCH] docs: Add CONTRIBUTING (#253) * block isort * block isort * add vscode ext notes * updating instructions (not complete) * in progress * add video test embed * change video image * play icon * video play button * play button * cleanup * cleanup --------- Co-authored-by: Michael Mann --- .pre-commit-config.yaml | 6 +++ CONTRIBUTING.md | 96 ++++++++++++++++++++++++++++++++++++ data/logo_.png | Bin 18373 -> 0 bytes data/resume.png | Bin 0 -> 1835 bytes dockerfiles/gw_docker_debug | 39 ++++++++++----- pyproject.toml | 8 +++ 6 files changed, 137 insertions(+), 12 deletions(-) create mode 100644 CONTRIBUTING.md delete mode 100644 data/logo_.png create mode 100644 data/resume.png diff --git a/.pre-commit-config.yaml b/.pre-commit-config.yaml index 73e2ea4d..5dae95c1 100644 --- a/.pre-commit-config.yaml +++ b/.pre-commit-config.yaml @@ -20,3 +20,9 @@ repos: rev: 6.0.0 hooks: - id: flake8 + # - repo: https://github.com/pycqa/isort + # rev: 5.11.2 + # hooks: + # - id: isort + # name: isort (python) + # args: [--settings-path=pyproject.toml] diff --git a/CONTRIBUTING.md b/CONTRIBUTING.md new file mode 100644 index 00000000..187df485 --- /dev/null +++ b/CONTRIBUTING.md @@ -0,0 +1,96 @@ +# Contibuting to Geowombat + +We have two methods for contribution: + +1. Local install +2. Docker-based debugging + +## 1. Local Install + +### Install GeoWombat + +#### Clone the latest repo + +```commandline +git clone https://github.com/jgrss/geowombat.git +``` + +#### Create a virtual environment + +Modify the Python version (i.e., 3.8.15) as needed + +```commandline +pyenv virtualenv 3.8.15 venv.gw +``` + +#### Activate the virtual environment + +```commandline +pyenv activate venv.gw +``` + +#### Install pre-commit + +```commandline +(venv.gw) pip install pre-commit +(venv.gw) pre-commit install +``` + +#### Install GeoWombat + +Install other extras from `setup.cfg` as needed. + +```commandline +(venv.gw) cd geowombat/ +(venv.gw) pip install -e .[tests] +``` + +### Create a new branch for your contribution + +```commandline +(venv.gw) git checkout -b new_branch_name +``` + +### After making changes, run tests + +```commandline +(venv.gw) cd tests/ +(venv.gw) python -m unittest +``` + +## 2. Docker debugging + +### Prerequisites + +- [Visual Studio Code](https://code.visualstudio.com/download) +- [Docker VSCode Extension](https://code.visualstudio.com/docs/containers/overview) +- [Docker Desktop](https://docs.docker.com/desktop/) + +1. Build `geowombat/dockerfiles/gw_docker_debug` by right clicking and hit `Build Image...` + - This will take a long time the first time only + - Give the image a name like `gw_debug`, hit Enter +2. Click on dock extension tab on left panel of vscode +3. Under Images click on `gw_debug` right click on `latest`, hit `Run Interactive` +4. Under Individual Containers, right click on your running `gw_debug` instance, hit `Attach Visual Studio Code` +5. Once opened make sure the `python` and `ipython` vscode extensions are installed in your attached vscode server +6. Go to `geowombat/src/debug_script.py` run top cell. +7. Add code and run `debug cell` + +View Example Video here: [![Debug Docker](https://github.com/jgrss/geowombat/blob/jgrss/features_precommit/data/resume.png?raw=true)](https://youtu.be/hBIE4qmOsgA "Debug Docker") + +### Create a Pull Request + +#### Commit and push changes + +```commandline +git add . +git commit -m 'your commit message' +git push origin new_branch_name +``` + +#### GitHub Pull Request + +1. Go to 'Pull Requests' tab +2. Go to 'New Pull Request' +3. Choose 'base:main' and 'compare:new_branch_name' +4. 'Create pull request' diff --git a/data/logo_.png b/data/logo_.png deleted file mode 100644 index 013018cc22bb8c070a45c775520f45b8978f30cd..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 18373 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.29.* -RUN pip install -U --no-cache-dir numpy>=1.21.0 +RUN pip install -U --no-cache-dir "setuptools<=58.*" \ + cython>=0.29.* \ + numpy>=1.21.0 \ + pip-tools \ + rtree \ + ipykernel \ + black -RUN git clone https://github.com/jgrss/geowombat.git --branch jgrss/#242 +# install VS Code (code-server) +RUN curl -fsSL https://code-server.dev/install.sh | sh -RUN cd geowombat && pip install --user -e .[stac,time,perf,ml,zarr,coreg,tests,docs] - -RUN pip install pip-tools rtree ipykernel - -RUN pip install git+https://github.com/jgrss/sklearn-xarray +# install geowombat or a branch using --branch option +RUN git clone https://github.com/jgrss/geowombat.git #--branch jgrss/features_citests +# install cloned geowombat +RUN cd geowombat && pip install --user -e .[stac,time,perf,ml,zarr,coreg,tests,docs] -RUN echo ' # %% \n\ +# add script to debug from +RUN echo ' #%% \n\ import sys \n\ sys.path.append("/") \n\ sys.path.append("/geowombat") \n\ - import geowombat as gw \n # %%' > ./geowombat/src/debug_script.py + import geowombat as gw \n #%%' > ./geowombat/src/debug_script.py +# add debug profile RUN cd geowombat && mkdir -p .vscode RUN echo '{ \ "version": "0.2.0", \ @@ -63,4 +70,12 @@ RUN echo '{ \ ] \ }'> ./geowombat/.vscode/launch.json -CMD cd geowombat/tests/ && python -m unittest && bash +# install VS Code extensions +RUN code-server --install-extension ms-python.python \ + --install-extension HoangKimLai.ipython + +# start from bash command line +CMD /usr/bin/bash + +# to run debug tests simply run: +# cd geowombat/tests/ && python -m unittest \ No newline at end of file diff --git a/pyproject.toml b/pyproject.toml index cd6f9ab9..16354e6e 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -24,3 +24,11 @@ exclude = ''' | dist )/ ''' + +[tool.isort] +line_length = 79 +multi_line_output = 3 +include_trailing_comma = true +force_grid_wrap = 0 +use_parentheses = true +ensure_newline_before_comments = true