diff --git a/.dockerignore b/.dockerignore index 78167aeb..1c0a85a2 100644 --- a/.dockerignore +++ b/.dockerignore @@ -1,2 +1,2 @@ .vagrant -.git +.venv diff --git a/Dockerfile b/Dockerfile index 0abc3040..b0e33ff4 100644 --- a/Dockerfile +++ b/Dockerfile @@ -3,6 +3,7 @@ LABEL MAINTAINER="BJ Dierkes " ENV PS1="\[\e[0;33m\]|> cement <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " WORKDIR /src COPY . /src +ENV PDM_BUILD_SCM_VERSION=0.0.0.dev RUN pip install . \ && rm -rf /src WORKDIR / diff --git a/MANIFEST.in b/MANIFEST.in deleted file mode 100644 index 9a4633c8..00000000 --- a/MANIFEST.in +++ /dev/null @@ -1,5 +0,0 @@ -recursive-include *.py -include setup.cfg -include README.md CHANGELOG.md LICENSE CONTRIBUTORS.md -include *.txt -recursive-include cement/cli/templates/generate * diff --git a/Makefile b/Makefile index ce77a422..ab49be11 100644 --- a/Makefile +++ b/Makefile @@ -2,8 +2,7 @@ dev: docker-compose up -d - docker-compose exec cement pip install -r requirements-dev.txt - docker-compose exec cement python setup.py develop + docker-compose exec cement pip install . docker-compose exec cement /bin/bash test: comply @@ -15,9 +14,6 @@ test-core: comply virtualenv: pdm venv create pdm install - virtualenv --prompt '|> cement <| ' env - env/bin/pip install -r requirements-dev.txt - env/bin/python setup.py develop @echo @echo "VirtualENV Setup Complete. Now run: eval $(pdm venv activate)" @echo diff --git a/docker-compose.yml b/docker-compose.yml index a8bd286d..524bcb4b 100644 --- a/docker-compose.yml +++ b/docker-compose.yml @@ -23,31 +23,6 @@ services: MEMCACHED_HOST: memcached SMTP_HOST: mailpit SMTP_PORT: 1025 - - cement-py35: - <<: *DEFAULTS - image: "cement:dev-py35" - build: - context: . - dockerfile: docker/Dockerfile.dev-py35 - profiles: - - donotstart - - cement-py36: - <<: *DEFAULTS - image: "cement:dev-py36" - build: - context: . - dockerfile: docker/Dockerfile.dev-py36 - profiles: - - donotstart - - cement-py37: - <<: *DEFAULTS - image: "cement:dev-py37" - build: - context: . - dockerfile: docker/Dockerfile.dev-py37 cement-py38: <<: *DEFAULTS diff --git a/docker/Dockerfile.dev b/docker/Dockerfile.dev index 6fd49b22..789fe393 100644 --- a/docker/Dockerfile.dev +++ b/docker/Dockerfile.dev @@ -3,8 +3,8 @@ LABEL MAINTAINER="BJ Dierkes " ENV PS1="\[\e[0;33m\]|> cement-py312 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " WORKDIR /src -RUN apk update --no-check-certificate \ - && apk add --no-check-certificate libmemcached-dev \ +RUN apk update \ + && apk add libmemcached-dev \ gcc \ musl-dev \ cyrus-sasl-dev \ diff --git a/docker/Dockerfile.dev-py310 b/docker/Dockerfile.dev-py310 index a88502f1..86cd8189 100644 --- a/docker/Dockerfile.dev-py310 +++ b/docker/Dockerfile.dev-py310 @@ -3,7 +3,6 @@ LABEL MAINTAINER="BJ Dierkes " ENV PS1="\[\e[0;33m\]|> cement-py310 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " WORKDIR /src -COPY requirements-dev.txt /src/ RUN apk update \ && apk add libmemcached-dev \ gcc \ @@ -18,10 +17,12 @@ RUN apk update \ libffi-dev \ openssl-dev \ jq \ - && ln -sf /usr/bin/vim /usr/bin/vi \ - && pip install --no-cache-dir -r requirements-dev.txt \ - && pip install --upgrade -r requirements-dev.txt + pipx \ + && ln -sf /usr/bin/vim /usr/bin/vi +RUN pipx install pdm +ENV PATH="${PATH}:/root/.local/bin" COPY . /src COPY docker/vimrc /root/.vimrc -RUN python setup.py develop +RUN pdm venv create +RUN pdm install CMD ["/bin/bash"] diff --git a/docker/Dockerfile.dev-py311 b/docker/Dockerfile.dev-py311 index b9d9ca31..996e766f 100644 --- a/docker/Dockerfile.dev-py311 +++ b/docker/Dockerfile.dev-py311 @@ -3,8 +3,8 @@ LABEL MAINTAINER="BJ Dierkes " ENV PS1="\[\e[0;33m\]|> cement-py311 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " WORKDIR /src -RUN apk update --no-check-certificate \ - && apk add --no-check-certificate libmemcached-dev \ +RUN apk update \ + && apk add libmemcached-dev \ gcc \ musl-dev \ cyrus-sasl-dev \ diff --git a/docker/Dockerfile.dev-py312 b/docker/Dockerfile.dev-py312 index 7fc8c26e..789fe393 100644 --- a/docker/Dockerfile.dev-py312 +++ b/docker/Dockerfile.dev-py312 @@ -3,7 +3,6 @@ LABEL MAINTAINER="BJ Dierkes " ENV PS1="\[\e[0;33m\]|> cement-py312 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " WORKDIR /src -COPY requirements-dev.txt /src/ RUN apk update \ && apk add libmemcached-dev \ gcc \ @@ -18,10 +17,12 @@ RUN apk update \ libffi-dev \ openssl-dev \ jq \ - && ln -sf /usr/bin/vim /usr/bin/vi \ - && pip install --no-cache-dir -r requirements-dev.txt \ - && pip install --upgrade -r requirements-dev.txt + pipx \ + && ln -sf /usr/bin/vim /usr/bin/vi +RUN pipx install pdm +ENV PATH="${PATH}:/root/.local/bin" COPY . /src COPY docker/vimrc /root/.vimrc -RUN python setup.py develop +RUN pdm venv create +RUN pdm install CMD ["/bin/bash"] diff --git a/docker/Dockerfile.dev-py35 b/docker/Dockerfile.dev-py35 deleted file mode 100644 index 2bd839e8..00000000 --- a/docker/Dockerfile.dev-py35 +++ /dev/null @@ -1,26 +0,0 @@ -FROM python:3.5-alpine -LABEL MAINTAINER="BJ Dierkes " -ENV PS1="\[\e[0;33m\]|> cement-py35 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " - -WORKDIR /src -COPY requirements-dev.txt /src/ -RUN apk update \ - && apk add libmemcached-dev \ - gcc \ - musl-dev \ - cyrus-sasl-dev \ - zlib-dev \ - make \ - vim \ - bash \ - git \ - libffi \ - libffi-dev \ - openssl-dev \ - jq \ - && ln -sf /usr/bin/vim /usr/bin/vi \ - && pip install --no-cache-dir -r requirements-dev.txt -COPY . /src -COPY docker/vimrc /root/.vimrc -RUN python setup.py develop -CMD ["/bin/bash"] diff --git a/docker/Dockerfile.dev-py36 b/docker/Dockerfile.dev-py36 deleted file mode 100644 index b000fed7..00000000 --- a/docker/Dockerfile.dev-py36 +++ /dev/null @@ -1,26 +0,0 @@ -FROM python:3.6-alpine -LABEL MAINTAINER="BJ Dierkes " -ENV PS1="\[\e[0;33m\]|> cement-py36 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " - -WORKDIR /src -COPY requirements-dev.txt /src/ -RUN apk update \ - && apk add libmemcached-dev \ - gcc \ - musl-dev \ - cyrus-sasl-dev \ - zlib-dev \ - make \ - vim \ - bash \ - git \ - libffi \ - libffi-dev \ - openssl-dev \ - jq \ - && ln -sf /usr/bin/vim /usr/bin/vi \ - && pip install --no-cache-dir -r requirements-dev.txt -COPY . /src -COPY docker/vimrc /root/.vimrc -RUN python setup.py develop -CMD ["/bin/bash"] diff --git a/docker/Dockerfile.dev-py37 b/docker/Dockerfile.dev-py37 deleted file mode 100644 index cf27b981..00000000 --- a/docker/Dockerfile.dev-py37 +++ /dev/null @@ -1,27 +0,0 @@ -FROM python:3.7-alpine -LABEL MAINTAINER="BJ Dierkes " -ENV PS1="\[\e[0;33m\]|> cement-py37 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " - -WORKDIR /src -COPY requirements-dev.txt /src/ -RUN apk update \ - && apk add libmemcached-dev \ - gcc \ - musl-dev \ - cyrus-sasl-dev \ - zlib-dev \ - make \ - vim \ - bash \ - git \ - libffi \ - libffi-dev \ - openssl-dev \ - jq \ - && ln -sf /usr/bin/vim /usr/bin/vi \ - && pip install --no-cache-dir -r requirements-dev.txt \ - && pip install --upgrade -r requirements-dev.txt -COPY . /src -COPY docker/vimrc /root/.vimrc -RUN python setup.py develop -CMD ["/bin/bash"] diff --git a/docker/Dockerfile.dev-py38 b/docker/Dockerfile.dev-py38 index 23fcd328..cae9535e 100644 --- a/docker/Dockerfile.dev-py38 +++ b/docker/Dockerfile.dev-py38 @@ -1,9 +1,8 @@ FROM python:3.8-alpine LABEL MAINTAINER="BJ Dierkes " -ENV PS1="\[\e[0;33m\]|> cement-py38 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " +ENV PS1="\[\e[0;33m\]|> cement-py8 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " WORKDIR /src -COPY requirements-dev.txt /src/ RUN apk update \ && apk add libmemcached-dev \ gcc \ @@ -18,10 +17,12 @@ RUN apk update \ libffi-dev \ openssl-dev \ jq \ - && ln -sf /usr/bin/vim /usr/bin/vi \ - && pip install --no-cache-dir -r requirements-dev.txt \ - && pip install --upgrade -r requirements-dev.txt + pipx \ + && ln -sf /usr/bin/vim /usr/bin/vi +RUN pipx install pdm +ENV PATH="${PATH}:/root/.local/bin" COPY . /src COPY docker/vimrc /root/.vimrc -RUN python setup.py develop +RUN pdm venv create +RUN pdm install CMD ["/bin/bash"] diff --git a/docker/Dockerfile.dev-py39 b/docker/Dockerfile.dev-py39 index 32a8b91d..581d3778 100644 --- a/docker/Dockerfile.dev-py39 +++ b/docker/Dockerfile.dev-py39 @@ -3,7 +3,6 @@ LABEL MAINTAINER="BJ Dierkes " ENV PS1="\[\e[0;33m\]|> cement-py39 <| \[\e[1;35m\]\W\[\e[0m\] \[\e[0m\]# " WORKDIR /src -COPY requirements-dev.txt /src/ RUN apk update \ && apk add libmemcached-dev \ gcc \ @@ -18,10 +17,12 @@ RUN apk update \ libffi-dev \ openssl-dev \ jq \ - && ln -sf /usr/bin/vim /usr/bin/vi \ - && pip install --no-cache-dir -r requirements-dev.txt \ - && pip install --upgrade -r requirements-dev.txt + pipx \ + && ln -sf /usr/bin/vim /usr/bin/vi +RUN pipx install pdm +ENV PATH="${PATH}:/root/.local/bin" COPY . /src COPY docker/vimrc /root/.vimrc -RUN python setup.py develop +RUN pdm venv create +RUN pdm install CMD ["/bin/bash"] diff --git a/pdm.lock b/pdm.lock index efe5f3ec..8a7e6f33 100644 --- a/pdm.lock +++ b/pdm.lock @@ -2,10 +2,10 @@ # It is not intended for manual editing. [metadata] -groups = ["default", "alarm", "argparse", "colorlog", "configparser", "daemon", "dev", "docs", "dummy", "dynamic", "generate", "jinja2", "json", "logging", "memcached", "mustache", "plugin", "print", "redis", "scrub", "smtp", "tabulate", "watchdog", "yaml"] +groups = ["default", "alarm", "argparse", "colorlog", "configparser", "daemon", "dev", "docs", "dummy", "generate", "jinja2", "json", "logging", "memcached", "mustache", "plugin", "print", "redis", "scrub", "smtp", "tabulate", "watchdog", "yaml"] strategy = ["cross_platform", "inherit_metadata"] lock_version = "4.4.1" -content_hash = "sha256:bf23e124fbd46134cf85ca0a29c598a95ef26581c672933995aa6a452cdfd069" +content_hash = "sha256:7ee1b527b606c4f99aa980b75b4591ee99f97bd57e78a773fcdb8c3b36f6fd93" [[package]] name = "alabaster" @@ -299,7 +299,7 @@ name = "docutils" version = "0.20.1" requires_python = ">=3.7" summary = "Docutils -- Python Documentation Utilities" -groups = ["docs", "dynamic"] +groups = ["docs"] files = [ {file = "docutils-0.20.1-py3-none-any.whl", hash = "sha256:96f387a2c5562db4476f09f13bbab2192e764cac08ebbf3a34a95d9b1e4a59d6"}, {file = "docutils-0.20.1.tar.gz", hash = "sha256:f08a4e276c3a1583a86dce3e34aba3fe04d02bba2dd51ed16106244e8a923e3b"}, @@ -503,30 +503,6 @@ files = [ {file = "mypy_extensions-1.0.0.tar.gz", hash = "sha256:75dbf8955dc00442a438fc4d0666508a9a97b6bd41aa2f0ffe9d2f2725af0782"}, ] -[[package]] -name = "nh3" -version = "0.2.15" -summary = "Python bindings to the ammonia HTML sanitization library." -groups = ["dynamic"] -files = [ - {file = "nh3-0.2.15-cp37-abi3-macosx_10_12_x86_64.macosx_11_0_arm64.macosx_10_12_universal2.whl", hash = "sha256:9c0d415f6b7f2338f93035bba5c0d8c1b464e538bfbb1d598acd47d7969284f0"}, - {file = "nh3-0.2.15-cp37-abi3-macosx_10_12_x86_64.whl", hash = "sha256:6f42f99f0cf6312e470b6c09e04da31f9abaadcd3eb591d7d1a88ea931dca7f3"}, - {file = "nh3-0.2.15-cp37-abi3-manylinux_2_17_aarch64.manylinux2014_aarch64.whl", hash = "sha256:ac19c0d68cd42ecd7ead91a3a032fdfff23d29302dbb1311e641a130dfefba97"}, - {file = "nh3-0.2.15-cp37-abi3-manylinux_2_17_armv7l.manylinux2014_armv7l.whl", hash = "sha256:5f0d77272ce6d34db6c87b4f894f037d55183d9518f948bba236fe81e2bb4e28"}, - {file = "nh3-0.2.15-cp37-abi3-manylinux_2_17_ppc64.manylinux2014_ppc64.whl", hash = "sha256:8d595df02413aa38586c24811237e95937ef18304e108b7e92c890a06793e3bf"}, - {file = "nh3-0.2.15-cp37-abi3-manylinux_2_17_ppc64le.manylinux2014_ppc64le.whl", hash = "sha256:86e447a63ca0b16318deb62498db4f76fc60699ce0a1231262880b38b6cff911"}, - {file = "nh3-0.2.15-cp37-abi3-manylinux_2_17_s390x.manylinux2014_s390x.whl", hash = "sha256:3277481293b868b2715907310c7be0f1b9d10491d5adf9fce11756a97e97eddf"}, - {file = "nh3-0.2.15-cp37-abi3-manylinux_2_17_x86_64.manylinux2014_x86_64.whl", hash = "sha256:60684857cfa8fdbb74daa867e5cad3f0c9789415aba660614fe16cd66cbb9ec7"}, - {file = "nh3-0.2.15-cp37-abi3-manylinux_2_5_i686.manylinux1_i686.whl", hash = "sha256:3b803a5875e7234907f7d64777dfde2b93db992376f3d6d7af7f3bc347deb305"}, - {file = "nh3-0.2.15-cp37-abi3-musllinux_1_2_aarch64.whl", hash = "sha256:0d02d0ff79dfd8208ed25a39c12cbda092388fff7f1662466e27d97ad011b770"}, - {file = "nh3-0.2.15-cp37-abi3-musllinux_1_2_armv7l.whl", hash = "sha256:f3b53ba93bb7725acab1e030bc2ecd012a817040fd7851b332f86e2f9bb98dc6"}, - {file = "nh3-0.2.15-cp37-abi3-musllinux_1_2_i686.whl", hash = "sha256:b1e97221cedaf15a54f5243f2c5894bb12ca951ae4ddfd02a9d4ea9df9e1a29d"}, - {file = "nh3-0.2.15-cp37-abi3-musllinux_1_2_x86_64.whl", hash = "sha256:a5167a6403d19c515217b6bcaaa9be420974a6ac30e0da9e84d4fc67a5d474c5"}, - {file = "nh3-0.2.15-cp37-abi3-win32.whl", hash = "sha256:427fecbb1031db085eaac9931362adf4a796428ef0163070c484b5a768e71601"}, - {file = "nh3-0.2.15-cp37-abi3-win_amd64.whl", hash = "sha256:bc2d086fb540d0fa52ce35afaded4ea526b8fc4d3339f783db55c95de40ef02e"}, - {file = "nh3-0.2.15.tar.gz", hash = "sha256:d1e30ff2d8d58fb2a14961f7aac1bbb1c51f9bdd7da727be35c63826060b0bf3"}, -] - [[package]] name = "packaging" version = "24.0" @@ -567,7 +543,7 @@ name = "pygments" version = "2.17.2" requires_python = ">=3.7" summary = "Pygments is a syntax highlighting package written in Python." -groups = ["docs", "dynamic"] +groups = ["docs"] files = [ {file = "pygments-2.17.2-py3-none-any.whl", hash = "sha256:b27c2826c47d0f3219f29554824c30c5e8945175d888647acd804ddd04af846c"}, {file = "pygments-2.17.2.tar.gz", hash = "sha256:da46cec9fd2de5be3a8a784f434e4c4ab670b4ff54d605c4c2717e9d49c4c367"}, @@ -706,35 +682,6 @@ files = [ {file = "PyYAML-6.0.1.tar.gz", hash = "sha256:bfdf460b1736c775f2ba9f6a92bca30bc2095067b8a9d77876d1fad6cc3b4a43"}, ] -[[package]] -name = "readme" -version = "0.7.1" -summary = "readme is a library for rendering \"readme\" descriptions for Warehouse" -groups = ["dynamic"] -dependencies = [ - "readme-renderer", -] -files = [ - {file = "readme-0.7.1-py2.py3-none-any.whl", hash = "sha256:37482f34fc20bff7e4ad8a42f726dc902250d27a52e1196bb8fad4bdcfdcbbe4"}, - {file = "readme-0.7.1.tar.gz", hash = "sha256:32fbe1538a437da160fa4e4477270bfdcd8876e2e364d0d12898302644496231"}, -] - -[[package]] -name = "readme-renderer" -version = "43.0" -requires_python = ">=3.8" -summary = "readme_renderer is a library for rendering readme descriptions for Warehouse" -groups = ["dynamic"] -dependencies = [ - "Pygments>=2.5.1", - "docutils>=0.13.1", - "nh3>=0.2.14", -] -files = [ - {file = "readme_renderer-43.0-py3-none-any.whl", hash = "sha256:19db308d86ecd60e5affa3b2a98f017af384678c63c88e5d4556a380e674f3f9"}, - {file = "readme_renderer-43.0.tar.gz", hash = "sha256:1818dd28140813509eeed8d62687f7cd4f7bad90d4db586001c5dc09d4fde311"}, -] - [[package]] name = "redis" version = "5.0.3" @@ -998,15 +945,6 @@ files = [ {file = "urllib3-2.2.1.tar.gz", hash = "sha256:d0570876c61ab9e520d776c38acbbb5b05a776d3f9ff98a5c8fd5162a444cf19"}, ] -[[package]] -name = "version" -version = "0.1.1" -summary = "" -groups = ["dynamic"] -files = [ - {file = "version-0.1.1.tar.gz", hash = "sha256:9ca4aae0312bc3924f4fd31cbfbef468ebf29f278174be0a6bb418fbfad7e85f"}, -] - [[package]] name = "watchdog" version = "4.0.0" diff --git a/pyproject.toml b/pyproject.toml index e70952ee..9e819839 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -14,7 +14,7 @@ classifiers = [ "License :: OSI Approved :: MIT License", ] -dynamic = ["version"] +dynamic = ["version", "README"] requires-python = ">=3.8" @@ -44,8 +44,6 @@ tabulate = ["tabulate"] watchdog = ["watchdog"] yaml = ["pyYaml"] -dynamic = ["version", "readme"] - [project.scripts] cement = "cement.cli.main:main" @@ -73,7 +71,12 @@ precision = 2 [tool.pdm.build] package-dir = "cement" -includes = ["cement/cli/templates/generate/*"] +includes = [ + "cement", + "cement/cli/templates/generate", + "CONTRIBUTORS.md", + "CHANGELOG.md" +] excludes = ["tests"] [tool.pdm.version]