A toy IDE to explore barebones constructs required in an IDE.
-
docs: Project documentation lives in here.
-
src: production code lives in folder and is divided in the modules below:
- app_ide: Project package.
- linting:
- Text linting lives in this module.
- model:
- The domain logic of the application lives in this module.
- text_editor:
- Text editing live in this module.
- app.py: Entry point to startup the application
- linting:
- app_ide: Project package.
-
tests: Test code lives in folder. The tests are intentionally separated from production code.
- benefits:
- Tests can run against an installed version after executing
pip install .. - Tests can run against the local copy with an editable install after executing
pip install --edit. - When using Docker, the entire app_etl folder can be copied without needing to exclude tests, which we don't release to PROD.
- Tests can run against an installed version after executing
- more in depth discussion here: https://docs.pytest.org/en/latest/explanation/goodpractices.html#choosing-a-test-layout-import-rules
- benefits:
-
utilities: Any useful scripts, such as curl & postman requests, JSON payloads, software installations, etc.
- The repository is configured to use devcontainers for development.
```shell
python src/app.py
```
- Run unit and integration tests
pytest
- End to End tests
- Not Implemented
- NB: The main is locked and all changes must come through a Pull Request.
- Commit Messages:
- Provide concise commit messages that describe what you have done.
# example: git commit -m "feat(core): algorithm" -m"implement my new shiny faster algorithm"
- References:
- Provide concise commit messages that describe what you have done.
Disclaimer: This is still work in progress.