meson icon indicating copy to clipboard operation
meson copied to clipboard

Tracking Issue for type safety PRs

Open dcbaker opened this issue 11 months ago • 1 comments

Meson should be completely type safe.

The following modules are still not fully type safe:

  • [ ] mesonmain.py
  • [x] modules/cmake.py
  • [x] modules/dlang.py (https://github.com/mesonbuild/meson/pull/15041)
  • [ ] modules/python.py (https://github.com/mesonbuild/meson/pull/15406)
  • [ ] modules/hotdoc.py
  • [ ] modules/python3.py
  • [ ] munstable_coredata.py
  • [ ] rewriter.py
  • [ ] ast/interpreter.py
  • [x] interpreter/dependencyfallbacks.py (https://github.com/mesonbuild/meson/pull/12057)
  • [ ] interpreter/interpreter.py
    • [x] Enforce type checking for the dependency https://github.com/mesonbuild/meson/pull/12057
    • [ ] refactor conversion of keyword arguments by breaking up build_target. It's a typing nightmare
    • [x] finish type enforcement for build_target types
      • [x] dependencies (https://github.com/mesonbuild/meson/pull/15374)
      • [x] link_whole (https://github.com/mesonbuild/meson/pull/15347)
      • [x] link_with (https://github.com/mesonbuild/meson/pull/15347)
      • [x] link_args (https://github.com/mesonbuild/meson/pull/15343)
      • [x] include_directories (https://github.com/mesonbuild/meson/pull/15373)
      • [x] install_dir (https://github.com/mesonbuild/meson/pull/15375)
      • [x] install_tag (https://github.com/mesonbuild/meson/pull/15342)
      • [x] *_pch (https://github.com/mesonbuild/meson/pull/15209)
      • [x] extra_files - still does some unique validation in the build layer (https://github.com/mesonbuild/meson/pull/15189)
      • [x] vala_header (https://github.com/mesonbuild/meson/pull/15129)
      • [x] vala_gir (https://github.com/mesonbuild/meson/pull/15129)
      • [x] vala_vapi (https://github.com/mesonbuild/meson/pull/15129)
  • [x] dependency (https://github.com/mesonbuild/meson/pull/12057)
  • [ ] backend/vs20*backend.py (https://github.com/mesonbuild/meson/pull/14219)
  • [ ] backend/ninjabackend.py
  • [ ] backend/xcodebackend.py
  • [ ] mesondata.py (https://github.com/mesonbuild/meson/pull/15349)
  • [x] options.py (https://github.com/mesonbuild/meson/pull/13620)
  • [x] coredata.py
  • [x] environment.py (https://github.com/mesonbuild/meson/pull/14247)
  • [ ] build.py
    • [x] remove duplicated checks between the interpreter and the build module (https://github.com/mesonbuild/meson/pull/14133)
    • [ ] make the install_dirs interface more intuitive with vala (https://github.com/mesonbuild/meson/pull/15185)

Additional work:

  • [ ] Use additional typing features for better type safty
    • [ ] Make programming languages a Literal (#14784)
  • [ ] Turn on strict-null checking (requires every module to be fully type safe).
  • [ ] Refactor the way that build targets track outputs, install_dirs, installation, and install_tags We have to do a lot of checking to ensure that the four independent data sources do not have different lengths, if the BuildTargets stored them together as a single unit that would not be required.

dcbaker avatar Jan 31 '25 16:01 dcbaker