FAQ | This is a LIVE service | Changelog

Skip to content
  1. Oct 02, 2024
  2. Mar 04, 2019
  3. Feb 28, 2019
  4. Feb 22, 2019
  5. Feb 07, 2019
  6. Feb 06, 2019
  7. Feb 04, 2019
    • Dr Abraham Martin's avatar
      Merge branch 'issue-3-yaml-safe-load' into 'master' · 3cf7fe02
      Dr Abraham Martin authored
      config: use yaml.safe_load()
      
      Closes #3
      
      See merge request !7
      3cf7fe02
    • Dr Rich Wareham's avatar
      Enable AutoDevOps pipeline features · e442253e
      Dr Rich Wareham authored
      Now we have a proper CI runner to test with, we can re-enable most of
      the AutoDevOps pipeline. A couple of jobs are still disabled as
      documented in the new .gitlab-ci.yml file.
      
      Split out the overrides for running tests and building documentation and
      move them to a separate template. It's intended that, in the fullness of
      time, this template moves into a dedicated "CI templates" repo and the
      "include:local" configuration in ".gitlab-ci.yml" is replaced with an
      "include:file" configuration which pull it in from the template repo.
      
      The test job runs tests: flake8 and unit tests. The coverage report is
      submitted and any build artefacts are uploaded.
      
      There is now a documentation job which runs in parallel to the tests and
      which builds the documentation as an artefact. This is uploaded
      separately. When we ship GitLab Pages in the Developer Hub, we should be
      able to browse the documentation directly from the GitLab UI. For the
      moment, we can download it as a zip file.
      
      Closes #1, closes #2
      e442253e
    • Dr Rich Wareham's avatar
      config: use yaml.safe_load() · 329af22d
      Dr Rich Wareham authored
      The default yaml.load() function allows creation of arbitrary Python
      objects. Since we're using YAML as a passive configuration file format,
      use safe_load() instead.
      
      This vulnerability was found using the GitLab SAST scanner.
      
      Closes #3.
      329af22d
    • Mike Bamford's avatar
      Merge branch 'issue-143-ingest-preferences' into 'master' · 0b1593ca
      Mike Bamford authored
      add dynamic ingest of lecturer preferences
      
      See merge request !4
      0b1593ca
    • Dr Rich Wareham's avatar
    • Dr Abraham Martin's avatar
      Merge branch 'fix-ci' into 'master' · a8f38dd7
      Dr Abraham Martin authored
      fix CI test job
      
      See merge request !5
      a8f38dd7
    • Dr Rich Wareham's avatar
      fix CI test job · c67ec778
      Dr Rich Wareham authored
      The setup_docker command was a relic from a previous runner setup. Adapt
      the test job to the new CI runners by removing the setup_docker command.
      
      This still does not upload documentation or coverage artefacts but it
      does at least mean we get code coverage reporting now.
      c67ec778
    • Dr Rich Wareham's avatar
      add dynamic ingest of lecturer preferences · 387d1758
      Dr Rich Wareham authored
      Add ingest of lecturer preferences from the preferences webapp.
      Periodically the preferences web application is polled for lecturer
      preferences and the state of opt-ins are updated.
      
      In future, we can use filtering on the preferences list to only query
      preferences which have *changed* since the last time we fetched them
      but, for the moment, keep the simple approach until we hit scaling
      problems.
      387d1758
    • Dr Rich Wareham's avatar
      refactor Configuration.from_dict() into shared code · 0748f425
      Dr Rich Wareham authored
      The from_dict() class method in googlesheets is useful for other loops.
      In preparation to add a preferences ingest loop, refactor it out into
      the config module.
      0748f425
    • Dr Rich Wareham's avatar
      allow loops to update more than just events · 98c30c74
      Dr Rich Wareham authored
      Generalise the state update loop to be able to handle other updates
      (e.g. lecturer preferences). The event queue is replaced by an "update
      queue" which has StateUpdate objects pushed on it.
      
      Event ingest loops push a StateUpdate object with the events sequence
      set. Other loops (e.g. preferences) will push a StateUpdate with
      lecturer preferences.
      
      As an optimisation, avoid notifying state change handlers if the state
      update does not, in fact, result in any update to the state.
      98c30c74
    • Dr Rich Wareham's avatar
      log exits from main loop as errors · faff74ea
      Dr Rich Wareham authored
      The main loop should never terminate unless the application is killed.
      The main loop exiting usually means one or more ingest loops failed and
      so should be logged as an error.
      faff74ea
    • Dr Rich Wareham's avatar
      configuration-template.yaml: document poll_delay_seconds · 9269649b
      Dr Rich Wareham authored
      The Google sheets ingest takes another option which can be used to
      override the poll delay. Document it.
      9269649b
  8. Jan 31, 2019
  9. Jan 30, 2019
  10. Jan 25, 2019
    • Dr Rich Wareham's avatar
      initial implementation · af4b6cee
      Dr Rich Wareham authored
      Add an initial implementation of the scheduler application. The initial
      implementation contains:
      
      * Documentation (README, an API reference and getting started guide)
      * Test harness using tox
      * docker-compose based development environment
      * A Dockerfile
      * An ingest loop for Google Sheets
      * A stub implementation of the Opencast scheduler which prints what
        events should be scheduled.
      af4b6cee
Loading