Skip to content
Daniel Mach edited this page Feb 12, 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

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