FAQ | This is a LIVE service | Changelog

Skip to content
Snippets Groups Projects
  • Dr Rich Wareham's avatar
    0b3745d7
    feat: dynamically generate Django, Python and logan/terraform jobs · 0b3745d7
    Dr Rich Wareham authored
    Move to generating image build jobs for Django, Logan/terraform and
    Python dynamically by querying the appropriate upstream APIs.
    
    This is mostly a genericisation of the previous logan terraform work. We
    extend our version parsing code to understand PEP440-style versions and
    code in some knowledge about which Django versions are compatible with
    which Python versions.
    
    Aside from a fair amount of Python code, the only _changes_ to image
    building are as follows:
    
    * The Python alpine image has been updated to allow passing Django
      versions dynamically rather than having a
      `requirements/django-{...}.txt` file for each Django release.
    * We've had to put in some horrible hackery to support _both_ envsubst
      and build args for Docker image building.
    * Building of django, Python and logan/terraform images are serialised
      by means of a `resource_group` since, in testing, the number of
      dynamic jobs could easily overwhelm the VM runners.
    
    Anticipated Python version support changes for Django 5.0 have been
    coded in so that we don't get taken by surprise on Django 5.0 release
    day.
    0b3745d7
    History
    feat: dynamically generate Django, Python and logan/terraform jobs
    Dr Rich Wareham authored
    Move to generating image build jobs for Django, Logan/terraform and
    Python dynamically by querying the appropriate upstream APIs.
    
    This is mostly a genericisation of the previous logan terraform work. We
    extend our version parsing code to understand PEP440-style versions and
    code in some knowledge about which Django versions are compatible with
    which Python versions.
    
    Aside from a fair amount of Python code, the only _changes_ to image
    building are as follows:
    
    * The Python alpine image has been updated to allow passing Django
      versions dynamically rather than having a
      `requirements/django-{...}.txt` file for each Django release.
    * We've had to put in some horrible hackery to support _both_ envsubst
      and build args for Docker image building.
    * Building of django, Python and logan/terraform images are serialised
      by means of a `resource_group` since, in testing, the number of
      dynamic jobs could easily overwhelm the VM runners.
    
    Anticipated Python version support changes for Django 5.0 have been
    coded in so that we don't get taken by surprise on Django 5.0 release
    day.
Code owners
Assign users and groups as approvers for specific file changes. Learn more.