Question: How to configure the development environment
-
Hello,
been new with docker, i'm looking for a decription how to organize the development prozess, make debugging and run the regression tests.
Can you describe how your development is organized and propose the known good practice.
Best regards
-
Hi and welcome to the forum! I'm assuming you are already familiar with https://developer.egeoffrey.com right? If not, there you can find described in detailed most of the internals. Despite eGeoffrey is based on docker containers, there is no need to do anything with docker since the
egeoffrey-cli
has plenty of helpers to initialize repos, committing new version and finally building the docker image (egeoffrey-cli -h
for details, ensure you have the latest version) without other additional actions.As for the development process, if willing to build a brand new module (e.g. a service called XXX) the process is more or less the following:
egeoffrey-cli init_repo service XXX <your_github_user>
to create a new local repo and configure remote URL automatically- Do you changes to the
service/XXX.py
file - Test your module by running it manually outside docker with
python -m sdk.python.module.start
(you need to define at least the variablesEGEOFFREY_GATEWAY_HOSTNAME
andEGEOFFREY_MODULES
to make it connecting to an already running gateway egeoffrey-cli commit "First version"
to commit the changes and push it to your github repositoryegeoffrey-cli build amd64,arm
to build the docker images and push them to you dockerhub account- Add your module to https://github.com/egeoffrey/egeoffrey-marketplace with a PR so to show up in the marketplace
Of course I highly recommend to review existing packages and their code before starting developing something. Out of curiosity, what are you looking forward to building?
Thanks!
-
Hi, I've taken this good question as an excuse to revisit the developer website (https://developer.egeoffrey.com), re-organize the contents as well as provide additional details on the development and building process and workflows.
Thanks