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
--
Giuseppe Lavagetto
Principal Site Reliability Engineer, Wikimedia Foundation