Arch Tea Time: 2020-07-30
Topics
Feature Toggle Status Report (sneak preview and input gathering)
History of python automated tests evolution in edx + current best practices? (requested by JJ, who will join late at around 2.30pm)
pylint, pep8, pytest, codecoverage → tox, celery ?
History
When edx started nose was popular so that was used.
nose
stopped getting development and pytest became the new defacto standard. very featureful and default for most new python projects in the ecosystem.tox
lets you setup multiple test environments easily.Commonly used for testing on multiple python versions or multiple django version
We also sometimes use it to multiple versions of other important libraries, eg. Django-rest-framework
upshot: tox will continue to be used and become more common because it makes it easy to keep up upgrades.
It reduces the incremental cost of doing upgrades once we have it in place.
History + architecture of ecommerce-worker (requested by JJ, who will join late at around 2.30pm)
Something like this? What other business functions is ecommerce-worker responsible for?
how do you run ecomm-worker locally? (readme hasn’t been updated since 2016 when it was using RabbitMQ and it doesn’t appear to be in devstack…)
History
ecom-worker has a handful of tasks
ecom-worker is slightly unique.
The celery functions live in a separate repo.
Ecommerce pulls in ecommerce-worker library to call tasks.
Ecommerce Worker uses the ecommerce-worker codebase without ecommerce service code.
Calls back to ecommerce service to do some work. It may send email itself.
They are stateless and pretty safe to kill (if not doing work).
Feature Toggle Status Report
BOM will provide a preview of v1 of a “Feature Toggle Status Report”, as first detailed in OEP-17. Some of the potential benefits to your team include understanding:
Does the status of toggles differ across environments (e.g. Prod vs Stage)?, or
Which toggles have served their purpose and can be removed?
Provide early feedback to help us set priorities.
Is there a standard for annotations?
The standard exists but is evolving right now as part of a blended project.
The report links to samples in our codebase.
Is there a place where we have docs on what all or ways of configuring are today and what our recommendations are?
OEP-17 has the concepts but not the implementation details.
edx-toggles is where this a lot of the code is being extracted for the reporting and will likely be where docs will exist in the future.
What about the values in devstack? Can we get that as well?
We will make it easier to generate these reports on demand so that we can get the data on demand for different environments.
We should also be able to compare across environments easily, including devstack vs production (as an example).
Data:
Total toggles: 118
Annotated toggles: 30
Toggle Report sneak preview