Wikimedia Release Engineering Team/Local Dev Sync/2019-06-13

2019-06-13 edit

These notes intermingle some items from previous meetings; this is the first we've archived them.

CLI / web interface for local dev edit

Create an interface for the local-charts ecosystem

From the task:

Currently users interact with local-charts through a Makefile, which is a temporary and incomplete solution. We should create an interface that allows users to quickly and easily define what they want and deploy to their environment.

Some things to consider:

  • How to deploy multiple versions
  • How to change/update configuration
  • How to access the deployments and view their status
  • How to deploy to a remote environment (?)
  • How to mount files
  • How to run tests

Discussion edit

  • Mukunda: Python CLI

GTK webview? pywebview? convenient so you don't have to worry about ports, etc.

https://github.com/r0x0r/pywebview - platform specific executable can be compiled

go app? so you don't have to worry about other platforms is there a CLI framework for go? ...a few were mentioned https://github.com/spf13/cobra built in http library

Go, PHP, or Python to be used.

example skaffold.yaml

   apiVersion: skaffold/v1beta7
   kind: Config
   #build:
   #  artifacts:
   #  - image: mediawiki
   #    context: ../core
   #    push: false
   #    sync:
   #      '**/*/': .
   #  - image: restbase
   #    context: ../restbase
   #    push: false
   #  - image: parsoid
   #    context: ../parsoid
   #    push: false
   deploy:
     helm:
       releases:
       - name: "my-release"
         chartPath: .
         skipBuildDependencies: true
         valuesFiles:
           - values.yaml


  • Testing rubric
    • 2 mediawiki versions?
    • 2 mediawiki configurations?
    • Developers shouldn't have to work on this tool to add their own extensions/services?

Skaffold Alternatives:

Changes pending review edit

Testing / CI / linting edit