...
Data will be specified in multiple Yaml files
A top level yaml file will list other yaml files
The order by which the data is built in specific IDA will be specified in the top level yaml file
The data contained within the yaml files will be as minimal as possible
foreign keys will be linked via some unique identifier for lookup (i.e. course_key, domain, username)
For each use of the
load_test_data
management command, there will be a separate yaml file with data specified.The management command will read the specified yaml file and pass on the data specification to the appropriate data creation generation function.
We will be reusing existing factories used for unit tests
Benefits of reuse
Decrease in code duplication
There are ton of factories, so we’d be able to support ton of data creation very quickly
Downsides
There are ton of factories which were designed for different use cases. Due to the complex nature of some of these factories, it might be hard determine side effects on the database.
...
Prototype for ARCH-BOM [in-progress]
Develop MVP
tasks to do
Finalize and fully implement make interface
load_data management command in each of necessary IDA's
Add tests for the management command and data creation generation functions
minimum creation functions in each of the management commands
Documentation
Walkthrough of how to extend system yourself
Walkthrough of how to use system to create custom local data
Overarching system design
Recruit another Squad to work with us on this
Goal: have MVP ready to be used by another squad
User Testing with another Squad
Tasks to do
Showcase this method to external Squad
This could be a synchronous meeting or an email/document
[maybe] Ideate with them as to how they would use this method
Have person be on stand-by to answer any questions by Squad and to handle any roadblocks
Continue improving both implementation and documentation based on feedback
Goal: Have method ready to be spread to whole org
Advertise this tool to org
Tasks to be do
Further mature implementation and Documentation
Email, Slack post, eng-all-hands presentation
Have person on-call be ready to continue advertising and answering questions about this method
Replace most of provisioning with this method of loading data
Requirements
TBD
...