WIPACrepo / wipac-dev-tools

Common, basic, and reusable development tools
MIT License
0 stars 0 forks source link

Prep + Publish to PyPI #20

Closed ric-evans closed 2 years ago

ric-evans commented 2 years ago

wipac-dev-tools is our guinea pig. It also has no requirements which will make this transition less painful.

Roadmap: Pre-Merge

  1. Replace SetupShop usage in setup.py with setup.cfg section(s)
    • update setup.cfg with [wipac:cicd_setup_builder] section
      [wipac:cicd_setup_builder]
      pypi_name = wipac-dev-tools
      python_min = 3.6
      keywords_spaced = python tools utilities
    • requirements go in [options] section
      [options]
      install_requires =
          package-a
          package-b
  2. Use copy-pasteable GH Action for generation of standardized setup/requirements (this is in wipac-cicd.yml)
    • ~Source of Truth TBD: requirements.txt/setup.py/setup.cfg/etc.~
    • Source of Truth: setup.cfg ([options] section)
  3. Turn on the PyPI-publishing trigger within semantic_release's GH Action (this is in wipac-cicd.yml)

Roadmap: Post-Merge

Proceed to update WIPAC repos in descending order of complexity. All updates:

Updates, in order:

  1. Add wipac-telemetry to PyPI (https://github.com/WIPACrepo/wipac-telemetry/pull/53)
    • call it wipac-telemetry w/ v1.0.0 (no longer prototype)
    • has requirements, and requires wipac-dev-tools (and no other wipac packages)
    • follow Roadmap: Pre-Merge workflow for this repo
  2. Add rest-tools to PyPI (https://github.com/WIPACrepo/rest-tools/pull/62)
    • publish on PyPI as wipac-rest-tools
    • requires wipac-telemetry (and wipac-dev-tools in turn, but no other wipac packages)
      • TBD: Will this be an optional/extra pip feature: wipac-rest-tools[wipac-telemetry]?
        • Is tracing "core" to rest-tools? No.
        • But is it worth separating the functionality at the package level? Maybe.
    • follow Roadmap: Pre-Merge workflow for this repo
  3. Add other utility repos to PyPI
  4. Fix requirements for each end-stream app
  5. Fix requirements for each script
    • Scripts:
      • ...
    • these are not required by any "downstream" repo/client (not-published on PyPI)
dsschult commented 2 years ago

If you want to save some duplication efforts, you could use the tool cog along with a github action to render text into files programmatically.

An example of someone using cog to edit their build files: https://github.com/hynek/structlog/commit/5e6ea9c04e070f7ef0106ff1256c58ef54c03686

ric-evans commented 2 years ago

If you want to save some duplication efforts, you could use the tool cog along with a github action to render text into files programmatically.

An example of someone using cog to edit their build files: hynek/structlog@5e6ea9c

I'm looking into https://github.com/jazzband/pip-tools