Skip to content
Daniel Mach edited this page Feb 13, 2024 · 6 revisions

OSC Roadmap

There is currently no timeline, this page only explains the overall direction of the project.

Constraints

  • Keep in mind that the minimal supported Python version is 3.6 (this may change in the future versions of osc)

Library

  • Split osc.core into smaller modules.

    • connection for anything related to HTTP(S) and URLs
    • obs_api for anything that communicates with OBS API
    • obs_scm for anything that handles OBS SCM checkouts
    • util for anything generic
  • Replace any code that uses ElementTree with an objects that manages the XML.

  • Consider moving from custom BaseModel and XmlModel to pydantic v2 once (and if) possible.

  • Replace osc.OscConfigParser if there's a config parser preserving comments.

  • Consider merging CredentialsManagerDescriptor classes into their CredentialsManager counterparts.

Commands

  • Split osc.commandline to osc.commands, one module per command.
  • Generate shell completion with argcomplete
  • Figure out how to deal with project/package vs project package arguments, make sure completion works for them. Argparse processes all arguments at once, has no callback that would allow us to split args and inject them back to the yet unparsed args.

Coding style, sanity

  • Follow PEP 8.
  • Use black for any new code - but only where it makes sense.
  • Use type hints in all function/method declarations.
  • Reduce as many mypy errors as possible.
  • Reduce as many pylint warnings as possible.

Developer information

End user information

Clone this wiki locally