On Fri, Sep 18, 2020 at 11:47 PM Bryan Davis bd808@wikimedia.org wrote:
Welcome to the first weekly project update for Toolhub!
Hello!
Some small comments inline
[CUT]
== Prototype development environment == Bryan has been poking at a local development environment [2] for the project over the last few weeks. This week he reached a point where he shared the system with Srishti to see if it could be made to work anywhere other than Bryan's laptops. That test turned out to be successful! Srishti reported back that she was able to get the system booted up on her laptop and returning the expected empty Django project landing page.
This is a great result! And while I think we'll use kubernetes and helm to deploy this software in production, I prefer docker-compose for local development to using minikube.
The current system is very experimental and the tooling it uses may change significantly before we hit any deployment milestones. The current system is using Docker Compose to manage multiple Docker containers (initial one for the Django app and one for a MariaDB database), Poetry for Python dependency management and versioning, and a custom Makefile to make using it all a bit easier for the developer. Today only git, Docker, Docker Compose, and GNU make are needed on the developer's laptop. All of the Python and other tooling requirements are being packed into the development mode Docker containers. This may or may not be sustainable as we progress out of experimental mode and start to integrate with the Wikimedia development ecosystem (Gerrit, Jenkins, etc), but it has been a useful experiment for Bryan who has not worked locally with Docker extensively.
Regarding this, I think it would be advisable to convert the system to use the deployment pipeline sooner rather than later, in particular given it will let you use in development basically the same images you'll use in production (including the same versions of all dependencies).
You can refer to the two very good tutorials here:
https://wikitech.wikimedia.org/wiki/Blubber/Tutorial https://wikitech.wikimedia.org/wiki/PipelineLib/Tutorial
This of course makes even more sense if you move development to gerrit.
Cheers,
Giuseppe