Skip to content

Latest commit

 

History

History
94 lines (93 loc) · 4.4 KB

TODOS.md

File metadata and controls

94 lines (93 loc) · 4.4 KB

Todos

  • Manage unified single virtual env
    • Install repo deps in a unified dev venv
      • Installing in less pip calls possible? Maybe just use a temporary requirements.txt?
    • "Dependency Merger" (creates list of conflict-free dependencies from all repos)
      • Implement merger
      • Check if repo deps are conflict-free
      • Consider all (optional) groups
        • And remove them from qpy-dev pyproject.toml
      • Use dict[dep.name, tuple[Dep, Pkg]] for DependencyMerger._deps?
      • Use (version constraint) intersection of conflicting deps
        • Raise error if result is empty
      • Consider dep extras: use union of conflicting deps extras
      • (Idea: Choose one or the other interactively when a conflict occurs. Can also be done manually/is probably overkill.)
  • Common developer tasks and workflows
    • post-checkout hook that sets up venv automatically?
    • Manage Moodle dev stack
      • Tasks
        • start
        • stop
        • reset/remove
        • log tail
        • access to docker-compose command
      • Automate config (local.yml)
        • Add host.docker.internal to webserver container /etc/hosts so QPy server can be specified by using a fixed hostname in Moodle
        • qtype-questionpy as bind volume into the webserver container
      • Start/stop hooks (mainly need this for creating/removing a Firewall rule to allow the Moodle webserver container to access the QPy server on my host)
    • QPy server
      • Tasks
        • start dev server
        • watch dev server
      • Create config.ini
      • Pass env vars
      • Create cache directories
    • Per repo tasks
      • All some/repos
      • Bump versions in pyproject.toml
      • git tasks
        • git clone
          • all repos
          • some repos, single repo
          • .github repo
        • git pull/fetch (to see if there have been pushes)
      • tox task
        • make sure dev repos are used in tox
        • add pyenv to requirements/add pyenv instructions
      • Run GH actions locally using act?
      • Sync tooling config into QPy repos
        • ruff_defaults.toml
        • Use tomlkit to sync tooling config (pyproject.toml)
          • dependencies: check pylint, flake8, tox is not present
          • check tool.tox is not presence
          • check no tool.pylint* are present
          • mypy, check keys/values from qpy-dev config are present and match
          • tool.pytest.ini_options
            • asyncio_mode = "auto", ignore others
            • tool.coverage.run
              • branch = true
              • source = [MODULE_NAME]
          • ruff
            • check extend = "ruff_defaults.toml" option is present
            • check that extend-* variants are used
    • Docs
  • Update tooling