uw-ssec / MAWpy

Mobility Analysis Workflow in Python
https://mawpy.readthedocs.io/
BSD 3-Clause "New" or "Revised" License
1 stars 5 forks source link

perform initial sp-repo-review to check project structure #1

Closed anujsinha3 closed 4 months ago

anujsinha3 commented 4 months ago

Using the below package to review and get the checklist of action items required to restructure the code. https://pypi.org/project/sp-repo-review/

anujsinha3 commented 4 months ago

• Detected build backend: MISSING

├── PY001 Has a pyproject.toml ❌ │ All projects should have a pyproject.toml file to support a modern build system and support wheel installs properly.
├── PY002 Has a README.(md|rst) file ✅ ├── PY003 Has a LICENSE file ❌ │ Projects must have a license
├── PY004 Has docs folder ❌ │ Projects must have documentation in a folder called docs (disable if not applicable)
├── PY005 Has tests folder ❌ │ Projects must have a folder called
test or src//test
├── PY006 Has pre-commit config ❌ │ Projects must have a .pre-commit-config.yaml file
└── PY007 Supports an easy task runner (nox or tox) ❌ Projects must have a noxfile.py, tox.ini, or tool.hatch.envs/tool.spin/tool.tox in pyproject.toml to encourage new contributors.

PyProject: ├── PP002 Has a proper build-system table [skipped] ├── PP003 Does not list wheel as a build-dep [skipped] ├── PP301 Has pytest in pyproject [skipped] ├── PP302 Sets a minimum pytest to at least 6 [skipped] ├── PP303 Sets the test paths [skipped] ├── PP304 Sets the log level in pytest [skipped] ├── PP305 Specifies xfail_strict [skipped] ├── PP306 Specifies strict config [skipped] ├── PP307 Specifies strict markers [skipped] ├── PP308 Specifies useful pytest summary [skipped] └── PP309 Filter warnings specified [skipped]

GitHub Actions: ├── GH100 Has GitHub Actions config ❌ │ All projects should have GitHub Actions config for this series of checks. If there are no .yml files in .github/workflows, the remaining checks will be skipped.
├── GH101 Has nice names [skipped] ├── GH102 Auto-cancel on repeated PRs [skipped] ├── GH103 At least one workflow with manual dispatch trigger [skipped] ├── GH104 Use unique names for upload-artifact [skipped] ├── GH200 Maintained by Dependabot [skipped] ├── GH210 Maintains the GitHub action versions with Dependabot [skipped] ├── GH211 Do not pin core actions as major versions [skipped] └── GH212 Require GHA update grouping [skipped]

Pre-commit: ├── PC100 Has pre-commit-hooks [skipped] ├── PC110 Uses black or ruff-format [skipped] ├── PC111 Uses blacken-docs [skipped] ├── PC140 Uses mypy [skipped] ├── PC160 Uses codespell [skipped] ├── PC170 Uses PyGrep hooks (only needed if RST present) [skipped] ├── PC180 Uses prettier [skipped] ├── PC190 Uses Ruff [skipped] ├── PC191 Ruff show fixes if fixes enabled [skipped] └── PC901 Custom pre-commit CI message [skipped]

MyPy: ├── MY100 Uses MyPy (pyproject config) [skipped] ├── MY101 MyPy strict mode [skipped] ├── MY102 MyPy show_error_codes deprecated [skipped] ├── MY103 MyPy warn unreachable [skipped] ├── MY104 MyPy enables ignore-without-code [skipped] ├── MY105 MyPy enables redundant-expr [skipped] └── MY106 MyPy enables truthy-bool [skipped]

Ruff: ├── RF001 Has Ruff config ❌ │ Must have [tool.ruff] section in pyproject.toml or ruff.toml/.ruff.toml.
├── RF002 Target version must be set [skipped] ├── RF003 src directory specified if used [skipped] ├── RF101 Bugbear must be selected [skipped] ├── RF102 isort must be selected [skipped] ├── RF103 pyupgrade must be selected [skipped] ├── RF201 Avoid using deprecated config settings [skipped] └── RF202 Use (new) lint config section [skipped]

Documentation: ├── RTD100 Uses ReadTheDocs (pyproject config) ❌ │ Should have a .readthedocs.yaml file in the root of the repository. Modern ReadTheDocs requires (or will require soon) this file.
├── RTD101 You have to set the RTD version number to 2 [skipped] ├── RTD102 You have to set the RTD build image [skipped] └── RTD103 You have to set the RTD python version [skipped]

anujsinha3 commented 4 months ago

This is an abstract view of the actions required to restructure the codebase. Each item can be broken down into separate tasks/issues. MyPy is ranked lower in the priority order. Use Jupyter Book for Documentation.