diff --git a/README.md b/README.md index 12363ab8..e2813723 100644 --- a/README.md +++ b/README.md @@ -46,82 +46,7 @@ TODO ## Development/contributing -### For developers at NSIDC - -For developers at NSIDC, the [seaice_ecdr_vm -repository](https://bitbucket.org/nsidc/seaice_ecdr_vm/src/main/) provides the -NSIDC VM configuration for this project. - -An initial copy of the pm_icecon "cdr" generation can be executed from the VM directory: - -`~/seaice_ecdr/` - -using the cli.sh command: - -``` -./scripts/cli.sh bootstrap amsr2 --date 2022-08-01 --hemisphere north --output-dir /tmp/ --resolution 12 -``` - -### Adding dependencies - -To add new dependencies to this project, update the `environment.yml` file with -the new dependency. Then update your conda environment: - -``` -$ mamba env update -``` - -Once the conda environment has been updated, lock the environment using `conda-lock`: - -``` -$ conda-lock -``` - -Commit the changes for the `environment.yml` and the `conda-lock.yml` files. - - -### Running tests/CI - -#### Linting / formatting -This project uses [pre-commit](https://pre-commit.com/) to run pre-commit hooks -that check and format this project's code for stylistic consistency (using -`ruff` and `black`) . - -The pre-commit configuration for this project can be found in -`.pre-commit-config.yaml`. Configuration for specific tools (e.g., `mypy`) is -given in the included `pyproject.toml`. - -For more information about using `pre-commit`, please sese the [Scientific -Python Library Development Guide's section on -pre-commit](https://learn.scientific-python.org/development/guides/gha-basic/#pre-commit). - -To install pre-commit to run checks for each commit you make: - -``` -$ pre-commit install -``` - -To manually run the pre-commit hooks without a commit: - -``` -$ pre-commit run --all-files -``` - -#### Running unit tests - -Use `pytest` to run unit tests: - -``` -$ python -m pytest -``` - -#### Type-checking - -Use `mypy` to run static typechecking - -``` -$ mypy -``` +See [doc/development.md](doc/development.md) for more information. ## License diff --git a/README_dev.txt b/README_dev.txt deleted file mode 100644 index 8c0c650e..00000000 --- a/README_dev.txt +++ /dev/null @@ -1,16 +0,0 @@ -While developing at NSIDC, the workflow is: - -Create a dev VM with the `seaice_ecdr_vm` project -(https://bitbucket.org/nsidc/seaice_ecdr_vm) - -`pm_icecon`, `seaice_ecdr`, and `pm_tb_data` will be checked out to -`/home/vagrant/{project_name}`. - -in ~/seaice_ecdr/: - - Can run unit and integration tests -- or manual subsets of -- with: - ./scripts/run_ecdr_pytest.sh - - Create an Initial Daily ECDR file with e.g.,: - - ./scripts/cli.sh idecdr --date 2021-04-05 --hemisphere north --resolution 12 --output-dir /tmp/ diff --git a/doc/development.md b/doc/development.md new file mode 100644 index 00000000..f39711a1 --- /dev/null +++ b/doc/development.md @@ -0,0 +1,83 @@ +While developing at NSIDC, the workflow is: + +### For developers at NSIDC + +For developers at NSIDC, the [seaice_ecdr_vm +repository](https://bitbucket.org/nsidc/seaice_ecdr_vm/src/main/) provides the +NSIDC VM configuration for this project. + +`pm_icecon`, `seaice_ecdr`, and `pm_tb_data` will be checked out to +`/home/vagrant/{project_name}`. + +### Adding dependencies + +To add new dependencies to this project, update the `environment.yml` file with +the new dependency. Then update your conda environment: + +``` +$ mamba env update +``` + +Once the conda environment has been updated, lock the environment using `conda-lock`: + +``` +$ conda-lock +``` + +Commit the changes for the `environment.yml` and the `conda-lock.yml` files. + + +### Running tests/CI + +#### Linting / formatting +This project uses [pre-commit](https://pre-commit.com/) to run pre-commit hooks +that check and format this project's code for stylistic consistency (using +`ruff` and `black`) . + +The pre-commit configuration for this project can be found in +`.pre-commit-config.yaml`. Configuration for specific tools (e.g., `mypy`) is +given in the included `pyproject.toml`. + +For more information about using `pre-commit`, please sese the [Scientific +Python Library Development Guide's section on +pre-commit](https://learn.scientific-python.org/development/guides/gha-basic/#pre-commit). + +To install pre-commit to run checks for each commit you make: + +``` +$ pre-commit install +``` + +To manually run the pre-commit hooks without a commit: + +``` +$ pre-commit run --all-files +``` + +#### Running unit tests + +Use `pytest` to run unit tests: + +``` +$ python -m pytest +``` + +Alternatively, use `scripts/run_ecdr_pytest.sh`. + +#### Type-checking + +Use `mypy` to run static typechecking + +``` +$ mypy +``` + +## Running tests / generating sample data + +Can run unit and integration tests -- or manual subsets of -- with: + + ./scripts/run_ecdr_pytest.sh + +Create an Initial Daily ECDR file with e.g.,: + + ./scripts/cli.sh idecdr --date 2021-04-05 --hemisphere north --resolution 12 --output-dir /tmp/