From cb718ffc506d49f41f4dcfa3b01ace4f6beae9fa Mon Sep 17 00:00:00 2001 From: Trevor Amburgey Date: Tue, 25 Nov 2025 09:27:45 -0500 Subject: [PATCH 1/7] add changelog, pin setuptools version, update pinned requests version --- changelog.md | 8 ++++++++ setup.cfg | 43 +++++++++++++++++++++++++++++++++---------- 2 files changed, 41 insertions(+), 10 deletions(-) create mode 100644 changelog.md diff --git a/changelog.md b/changelog.md new file mode 100644 index 0000000..6bf8a1e --- /dev/null +++ b/changelog.md @@ -0,0 +1,8 @@ +# Changelog + +This page was created to track changes to versions of Python-ESXi-Utilities (esxi_utils). The changelog was created in v3.22.1 and only changes starting from that version are tracked here. + +## 3.22.1 + +- Adds metadata to pip package for PyPI +- Pins setuptools version and updates requests pinned version diff --git a/setup.cfg b/setup.cfg index 4357339..912f6f7 100644 --- a/setup.cfg +++ b/setup.cfg @@ -1,26 +1,49 @@ [metadata] name = esxi-utils -version = 3.22.0 +version = 3.22.1 author = The MITRE Corporation description = A package that provides functions for interacting with an ESXi server and manipulating VMs/OVFs. +long_description = file: README.md +long_description_content_type = text/markdown +url = https://github.com/mitre/Python-ESXi-Utilities +project_urls = + Documentation = https://github.com/mitre/Python-ESXi-Utilities/blob/main/README.md + Source = https://github.com/mitre/Python-ESXi-Utilities + Issues = https://github.com/mitre/Python-ESXi-Utilities/issues + Changelog = https://github.com/mitre/Python-ESXi-Utilities/changelog.md +license = Apache-2.0 +license_files = LICENSE +keywords = esxi, vmware, vsphere, vcenter, pyvmomi, virtualization, hypervisor, ssh, paramiko, winrm, pywinrm, cisco, netmiko, network-automation, palo-alto, palo-alto-networks, panos, panorama, pan-os, panos-api, firewall, firewall-automation, devops, sysadmin, infrastructure-automation, datacenter, automation, remote-execution, configuration-management, orchestration, python-library, utilities +classifiers = + Development Status :: 5 - Production/Stable + Intended Audience :: Developers + Topic :: Software Development :: Libraries + License :: OSI Approved :: Apache Software License + Programming Language :: Python :: 3 + Programming Language :: Python :: 3 :: Only + Programming Language :: Python :: 3.10 + Programming Language :: Python :: 3.11 + Programming Language :: Python :: 3.12 + Operating System :: OS Independent [options] packages = find: python_requires = >=3.10 install_requires = - pyvmomi==8.0.3.0.1 - requests_ntlm==1.3.0 - requests==2.32.3 - paramiko==3.4.1 fabric==3.2.2 lxml==5.3.0 - vncdotool==1.0.0 - pywinrm==0.4.3 - pan-os-python==1.6.0 netmiko==3.4.0 - textfsm==1.1.2 + opencv-python-headless==4.12.0.88 + pan-os-python==1.6.0 + paramiko==3.4.1 python-dateutil==2.8.2 - opencv-python-headless>=4.8.0.76 + pyvmomi==8.0.3.0.1 + pywinrm==0.4.3 + requests==2.32.5 + requests_ntlm==1.3.0 + setuptools==80.9.0 + textfsm==1.1.2 + vncdotool==1.0.0 include_package_data = True [options.packages.find] From 7202d1ed0b4e8a4b3ae54fed70d0b98356d5dfe9 Mon Sep 17 00:00:00 2001 From: Trevor Amburgey Date: Tue, 25 Nov 2025 09:29:15 -0500 Subject: [PATCH 2/7] add PR validation workflow --- .github/workflows/pr-validation.yml | 22 ++++++++++++++++++++++ 1 file changed, 22 insertions(+) create mode 100644 .github/workflows/pr-validation.yml diff --git a/.github/workflows/pr-validation.yml b/.github/workflows/pr-validation.yml new file mode 100644 index 0000000..0aebf1f --- /dev/null +++ b/.github/workflows/pr-validation.yml @@ -0,0 +1,22 @@ +name: PR Validation Workflow + +on: + pull_request: + branches: + - main + +jobs: + validate: + runs-on: ubuntu-latest + steps: + - uses: actions/checkout@v4 + + - uses: actions/setup-python@v5 + with: + python-version: '3.10' + + - name: Install build and wheel + run: python3 -m pip install build wheel + + - name: Build package + run: make build From df4be1408bd5578f9bb7a33ad78ba2afeda8a49c Mon Sep 17 00:00:00 2001 From: Trevor Amburgey Date: Tue, 25 Nov 2025 09:31:22 -0500 Subject: [PATCH 3/7] update setuptools version in pyproject.toml --- pyproject.toml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/pyproject.toml b/pyproject.toml index 0ad39d0..05e9e94 100644 --- a/pyproject.toml +++ b/pyproject.toml @@ -1,6 +1,6 @@ [build-system] requires = [ - "setuptools>=42", + "setuptools==80.9.0", "wheel" ] build-backend = "setuptools.build_meta" \ No newline at end of file From 9b3e798a2298c5e980c88a50bfd049bef194985e Mon Sep 17 00:00:00 2001 From: Trevor Amburgey Date: Tue, 25 Nov 2025 09:32:42 -0500 Subject: [PATCH 4/7] remove a metadata field the validation doesn't like --- setup.cfg | 1 - 1 file changed, 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index 912f6f7..1e4b436 100644 --- a/setup.cfg +++ b/setup.cfg @@ -18,7 +18,6 @@ classifiers = Development Status :: 5 - Production/Stable Intended Audience :: Developers Topic :: Software Development :: Libraries - License :: OSI Approved :: Apache Software License Programming Language :: Python :: 3 Programming Language :: Python :: 3 :: Only Programming Language :: Python :: 3.10 From 8648abc5186605e54cdd757b56db2a74433ae1f8 Mon Sep 17 00:00:00 2001 From: Trevor Amburgey Date: Tue, 25 Nov 2025 09:45:06 -0500 Subject: [PATCH 5/7] attempt to silence textfsm_templates warning from setuptools and only specify setuptools version in pyproject.toml --- setup.cfg | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/setup.cfg b/setup.cfg index 1e4b436..b1f5360 100644 --- a/setup.cfg +++ b/setup.cfg @@ -40,15 +40,16 @@ install_requires = pywinrm==0.4.3 requests==2.32.5 requests_ntlm==1.3.0 - setuptools==80.9.0 textfsm==1.1.2 vncdotool==1.0.0 include_package_data = True [options.packages.find] -exclude = - docs* - .azuredevops* +exclude = + docs* + .azuredevops* + esxi_utils.util.connect.textfsm_templates* [options.package_data] -* = textfsm_templates/* +esxi_utils.util.connect = + textfsm_templates/*.textfsm From 27444a84b60429bccdb62e3bc9246bf1f446a24a Mon Sep 17 00:00:00 2001 From: Trevor Amburgey Date: Tue, 25 Nov 2025 09:49:05 -0500 Subject: [PATCH 6/7] another attempt to silence a pkg warning for textfsm --- setup.cfg | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/setup.cfg b/setup.cfg index b1f5360..1e5505f 100644 --- a/setup.cfg +++ b/setup.cfg @@ -48,7 +48,8 @@ include_package_data = True exclude = docs* .azuredevops* - esxi_utils.util.connect.textfsm_templates* + esxi_utils.util.connect.textfsm_templates + esxi_utils.util.connect.textfsm_templates.* [options.package_data] esxi_utils.util.connect = From 21304edf8932446eb2d5a766231ac15a4cb8912c Mon Sep 17 00:00:00 2001 From: Trevor Amburgey Date: Tue, 25 Nov 2025 10:00:14 -0500 Subject: [PATCH 7/7] switch from find: packages to find_namespace: and from exclude to include --- MANIFEST.in | 5 +++-- setup.cfg | 12 ++++-------- 2 files changed, 7 insertions(+), 10 deletions(-) diff --git a/MANIFEST.in b/MANIFEST.in index db76fe2..67e3ac2 100644 --- a/MANIFEST.in +++ b/MANIFEST.in @@ -1,2 +1,3 @@ -global-include *.py *.textfsm -global-exclude *.py[cod] \ No newline at end of file +global-include *.py +global-exclude *.py[cod] +recursive-include esxi_utils/util/connect/textfsm_templates *.textfsm \ No newline at end of file diff --git a/setup.cfg b/setup.cfg index 1e5505f..5066f8b 100644 --- a/setup.cfg +++ b/setup.cfg @@ -26,7 +26,7 @@ classifiers = Operating System :: OS Independent [options] -packages = find: +packages = find_namespace: python_requires = >=3.10 install_requires = fabric==3.2.2 @@ -45,12 +45,8 @@ install_requires = include_package_data = True [options.packages.find] -exclude = - docs* - .azuredevops* - esxi_utils.util.connect.textfsm_templates - esxi_utils.util.connect.textfsm_templates.* +include = + esxi_utils* [options.package_data] -esxi_utils.util.connect = - textfsm_templates/*.textfsm +esxi_utils.util.connect.textfsm_templates = *.textfsm