pyinvoke / invoke

Pythonic task management & command execution.
http://pyinvoke.org
BSD 2-Clause "Simplified" License
4.31k stars 365 forks source link

build: implement pep621 #900

Open kuwv opened 1 year ago

kuwv commented 1 year ago

Switch invoke to pep621.

Moved invoke => src for various improvements with setuptools and tox.

Need to update orb to work with pep621. This should work with circleci but untested:

---
parameters:
  config:
    ...
    default: pyproject.toml
steps:
  ...
  - run:
      ...
      command: |
        pip install .[dev]
        ...
kuwv commented 1 year ago

@bitprophet I originally created this PR: https://github.com/pyinvoke/invoke/pull/767. But I think this is probably less disruptive and more inline with the current PyPI packaging recommendations.

LecrisUT commented 1 year ago

Any links to why the standard src/module_name structure? I didn't see it in PEP621

kuwv commented 1 year ago

Here you go: https://packaging.python.org/en/latest/discussions/src-layout-vs-flat-layout/

LecrisUT commented 1 year ago

Thanks, this makes sense

LecrisUT commented 1 year ago

Check the Circle-CI. You need to link the cache key to pyproject.toml instead of dev-requirements.txt.

Seems like it needs to be re-written with something like this