CivicTechJobs
CivicTechJobs copied to clipboard
Improvements to dev configurations
Overview
As a developer we need to set up an environment friendly to developers to improve development speed and reduce the need to debugging our env. For this issue we will discuss, plan, and implement an environment that meets our needs as our development work evolve.
Action Items
- [ ] Discuss ways to implement our ideal dev env
- [ ] Implement it
Resources/Instructions
Our current (dev) environment is a fairly complex configuration. We have three docker containers as created by docker compose:
- pgdb (our postgresDB)
- webpack (which runs webpack in watch mode)
- django (which starts our server to host the site locally)
This setup however, leaves a lot to desire. For frontend work, it is adequate. It successfully compiles frontend code as we develop, and due to the existence of node_modules in our host, we can take advantage of Intellisense. As the project grows, however, this will not work. More specifically, backend work is hampered by the fact that python dependencies are installed within the container, meaning that and IDE's Intellisense and other QoL features cannot be leverage. Therefore, this issue will outline features of an ideal dev environment and come up with a plan to implement it.
Features of an ideal dev env
- Leverages ide capabilities such as intellisense
- Provide the same, isolated, env for all developers
- Easy to add/upgrade dependencies
- Simple and easy to run
Final note
In a perfect world we would be able to create the perfect env. However that might not be possible. For example, our current setup is mildly complex as it requires two dockerfiles and three containers to work. Also, to make dependencies easier to update, we sacrifice the ability to use docker to provide an isolated environment.
Developing inside a Container Working with the Docker registry