• 
      

    Add a new primary class for handling evolutions.

    Review Request #10338 — Created Nov. 29, 2018 and submitted

    Information

    Django Evolution
    master
    a06d6b4...

    Reviewers

    This introduces a new Evolver class, which is responsible for managing
    the evolution process. Previously, the logic for managing this existed
    only in the evolve management command, which was hard to extend and
    use in other projects.

    Evolver uses a task-based system, where evolution-related tasks are
    first queued up and then, when the caller is ready, either executed or
    used for information gathering purposes (such as evolution hinting).
    Callers can queue up general project-wide evolutions/purges or can queue
    up the evolutions or purges of individual apps. They can also queue up
    specialized tasks, if they have a need to create them.

    Going forward, additional tasks may be created to help with creating
    model baselines, call into Django's migrations, or perform other
    operations we may need.

    The evolve command itself has been rewritten to wrap the Evolver.
    This massively simplifies the code of the command, taking the logic from
    years of spaghetti code to something straightforward and maintainable.

    Unit tests pass on all databases.

    Manually tested the various evolution operations against several
    generations of Review Board schema evolutions. There may be
    regressions still, but functionality appears to work as expected.

    Description From Last Updated

    E501 line too long (80 > 79 characters)

    reviewbotreviewbot

    E128 continuation line under-indented for visual indent

    reviewbotreviewbot

    E126 continuation line over-indented for hanging indent

    reviewbotreviewbot
    Checks run (1 failed, 1 succeeded)
    flake8 failed.
    JSHint passed.

    flake8

    chipx86
    chipx86
    david
    1. This is kind of a monster change so I'm not super confident in the review, but nothing jumped out at me.

    2. 
        
    chipx86
    Review request changed
    Status:
    Completed
    Change Summary:

    Pushed to master (3e67426)..