mirror of
https://github.com/mrlesmithjr/ansible-manage-lvm.git
synced 2026-09-02 21:50:36 +03:00
Compare commits
1 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
| 1b5981848c |
@@ -1 +0,0 @@
|
|||||||
github: mrlesmithjr
|
|
||||||
@@ -1,23 +0,0 @@
|
|||||||
version: 2
|
|
||||||
updates:
|
|
||||||
- package-ecosystem: "github-actions"
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: "monthly"
|
|
||||||
groups:
|
|
||||||
github-actions:
|
|
||||||
patterns: ["*"]
|
|
||||||
labels: ["dependencies"]
|
|
||||||
commit-message:
|
|
||||||
prefix: "ci"
|
|
||||||
|
|
||||||
- package-ecosystem: "pip"
|
|
||||||
directory: "/"
|
|
||||||
schedule:
|
|
||||||
interval: "monthly"
|
|
||||||
groups:
|
|
||||||
python-deps:
|
|
||||||
patterns: ["*"]
|
|
||||||
labels: ["dependencies"]
|
|
||||||
commit-message:
|
|
||||||
prefix: "chore"
|
|
||||||
@@ -1,4 +1,5 @@
|
|||||||
name: CI
|
---
|
||||||
|
name: Molecule
|
||||||
on:
|
on:
|
||||||
push:
|
push:
|
||||||
branches-ignore:
|
branches-ignore:
|
||||||
@@ -10,18 +11,23 @@ on:
|
|||||||
- main
|
- main
|
||||||
- master
|
- master
|
||||||
jobs:
|
jobs:
|
||||||
lint:
|
build:
|
||||||
name: Lint
|
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
|
strategy:
|
||||||
|
fail-fast: false
|
||||||
|
max-parallel: 4
|
||||||
|
matrix:
|
||||||
|
python-version: [3.9]
|
||||||
|
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6
|
- uses: actions/checkout@v4
|
||||||
with:
|
with:
|
||||||
submodules: recursive
|
submodules: recursive
|
||||||
- name: Set up Python
|
- name: Set up Python ${{ matrix.python-version }}
|
||||||
uses: actions/setup-python@v6
|
uses: actions/setup-python@v5
|
||||||
with:
|
with:
|
||||||
python-version: '3.11'
|
python-version: ${{ matrix.python-version }}
|
||||||
- uses: actions/cache@v5
|
- uses: actions/cache@v4
|
||||||
with:
|
with:
|
||||||
path: ~/.cache/pip
|
path: ~/.cache/pip
|
||||||
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }}
|
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }}
|
||||||
@@ -12,6 +12,6 @@ jobs:
|
|||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
# Drafts your next Release notes as Pull Requests are merged into "master"
|
# Drafts your next Release notes as Pull Requests are merged into "master"
|
||||||
- uses: release-drafter/release-drafter@v7
|
- uses: release-drafter/release-drafter@v5
|
||||||
env:
|
env:
|
||||||
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }}
|
||||||
|
|||||||
@@ -1,6 +1,10 @@
|
|||||||
|
---
|
||||||
name: Ansible Galaxy
|
name: Ansible Galaxy
|
||||||
|
|
||||||
on:
|
on:
|
||||||
|
push:
|
||||||
|
branches:
|
||||||
|
- main
|
||||||
|
- master
|
||||||
release:
|
release:
|
||||||
types:
|
types:
|
||||||
- published
|
- published
|
||||||
@@ -9,22 +13,22 @@ jobs:
|
|||||||
galaxy:
|
galaxy:
|
||||||
runs-on: ubuntu-latest
|
runs-on: ubuntu-latest
|
||||||
steps:
|
steps:
|
||||||
- uses: actions/checkout@v6
|
- uses: actions/checkout@v4
|
||||||
|
|
||||||
- name: Set up Python
|
|
||||||
uses: actions/setup-python@v6
|
|
||||||
with:
|
with:
|
||||||
python-version: '3.11'
|
submodules: recursive
|
||||||
|
- name: Set up Python 3.9
|
||||||
- name: Install Ansible
|
uses: actions/setup-python@v5
|
||||||
|
with:
|
||||||
|
python-version: '3.9'
|
||||||
|
- uses: actions/cache@v4
|
||||||
|
with:
|
||||||
|
path: ~/.cache/pip
|
||||||
|
key: ${{ runner.os }}-pip-${{ hashFiles('**/requirements*.txt') }}
|
||||||
|
restore-keys: |
|
||||||
|
${{ runner.os }}-pip-
|
||||||
|
- name: Install dependencies
|
||||||
run: |
|
run: |
|
||||||
python -m pip install --upgrade pip
|
python -m pip install --upgrade pip
|
||||||
pip install ansible-core
|
pip install -r requirements.txt -r requirements-dev.txt
|
||||||
|
- name: Trigger a new import on Galaxy.
|
||||||
- name: Trigger a new import on Galaxy
|
run: ansible-galaxy role import --api-key ${{ secrets.GALAXY_API_KEY }} $(echo ${{ github.repository }} | cut -d/ -f1) $(echo ${{ github.repository }} | cut -d/ -f2)
|
||||||
run: >-
|
|
||||||
ansible-galaxy role import
|
|
||||||
--api-key ${{ secrets.GALAXY_API_KEY }}
|
|
||||||
${{ github.repository_owner }}
|
|
||||||
${{ github.event.repository.name }}
|
|
||||||
|
|
||||||
|
|||||||
@@ -1,122 +1,64 @@
|
|||||||
# ansible-manage-lvm
|
# ansible-manage-lvm
|
||||||
|
|
||||||
An [Ansible](https://www.ansible.com) role to create, extend, and resize [LVM](https://en.wikipedia.org/wiki/Logical_Volume_Manager_(Linux)) volume groups and logical volumes.
|
Ansible role to manage LVM Groups/Logical Volumes.
|
||||||
|
|
||||||
> Used by [OpenStack Kayobe](https://docs.openstack.org/kayobe/latest/) for LVM management.
|
> NOTE: Can be used to create, extend or resize LVM Groups and volumes.
|
||||||
|
|
||||||
## Ansible Galaxy
|
## ⚠️ Important: Ansible Galaxy Role Name
|
||||||
|
|
||||||
```bash
|
**As of December 2025**, this role is available on Ansible Galaxy as:
|
||||||
ansible-galaxy install mrlesmithjr.manage_lvm
|
|
||||||
|
```yaml
|
||||||
|
- src: mrlesmithjr.manage_lvm # Note: underscore, not hyphen
|
||||||
```
|
```
|
||||||
|
|
||||||
> **Note:** As of December 2025, the canonical Galaxy name is `mrlesmithjr.manage_lvm` (underscore).
|
The previous role names (`mrlesmithjr.manage-lvm` and `mrlesmithjr.manage_lvm`) were
|
||||||
> Update any `requirements.yml` using the older hyphen-style name `mrlesmithjr.manage-lvm`.
|
consolidated into a single role. If you were using `mrlesmithjr.manage-lvm`, please
|
||||||
|
update your `requirements.yml` to use `mrlesmithjr.manage_lvm`.
|
||||||
|
|
||||||
<details>
|
**Note:** This role is used by [OpenStack Kayobe](https://docs.openstack.org/kayobe/latest/)
|
||||||
<summary>Historical download statistics</summary>
|
for LVM management. The `manage_lvm` name was preserved to maintain compatibility.
|
||||||
|
|
||||||
|
### Historical Download Statistics
|
||||||
|
|
||||||
|
Prior to consolidation, this role had accumulated significant usage:
|
||||||
|
|
||||||
| Role Name | Downloads (as of Dec 2025) |
|
| Role Name | Downloads (as of Dec 2025) |
|
||||||
|-----------|---------------------------|
|
|-----------|---------------------------|
|
||||||
| `mrlesmithjr.manage_lvm` | 697,492 |
|
| `mrlesmithjr.manage_lvm` | 697,492 |
|
||||||
| `mrlesmithjr.manage-lvm` | 494,517 |
|
| `mrlesmithjr.manage-lvm` | 494,517 |
|
||||||
| **Combined** | **1,192,009** |
|
| **Combined Total** | **1,192,009** |
|
||||||
|
|
||||||
Download counts reset when roles are re-imported to Galaxy. These figures represent actual historical usage.
|
Due to Ansible Galaxy limitations, download counts reset when roles are re-imported.
|
||||||
</details>
|
The historical data above represents the actual community usage of this role.
|
||||||
|
|
||||||
## Supported Platforms
|
|
||||||
|
|
||||||
Any Linux distribution with LVM support, including:
|
|
||||||
|
|
||||||
| Platform | Versions |
|
|
||||||
|----------|----------|
|
|
||||||
| Ubuntu | 20.04, 22.04, 24.04 |
|
|
||||||
| Debian | 11, 12 |
|
|
||||||
| Rocky Linux / RHEL | 8, 9 |
|
|
||||||
| Fedora | 39+ |
|
|
||||||
|
|
||||||
## Requirements
|
## Requirements
|
||||||
|
|
||||||
- Unpartitioned disk devices to assign to volume groups
|
Devices/disks to be members of the LVM setup **must be** identified prior to
|
||||||
- `lvm2` package (installed automatically by the role)
|
using this role.
|
||||||
|
|
||||||
## Important: Safety Default
|
## Role Variables
|
||||||
|
|
||||||
`manage_lvm` defaults to `false`. **The role will not make any disk changes** unless you explicitly set:
|
[defaults/main.yml](defaults/main.yml)
|
||||||
|
|
||||||
```yaml
|
## Dependencies
|
||||||
manage_lvm: true
|
|
||||||
```
|
|
||||||
|
|
||||||
This prevents accidental modifications on misconfigured runs.
|
None
|
||||||
|
|
||||||
## Quick Start
|
## Example Playbook
|
||||||
|
|
||||||
```yaml
|
[playbook.yml](playbook.yml)
|
||||||
---
|
|
||||||
- hosts: all
|
|
||||||
become: true
|
|
||||||
vars:
|
|
||||||
manage_lvm: true
|
|
||||||
lvm_groups:
|
|
||||||
- vgname: data-vg
|
|
||||||
disks:
|
|
||||||
- /dev/sdb
|
|
||||||
create: true
|
|
||||||
lvnames:
|
|
||||||
- lvname: data
|
|
||||||
size: 100%FREE
|
|
||||||
create: true
|
|
||||||
filesystem: ext4
|
|
||||||
mount: true
|
|
||||||
mntp: /data
|
|
||||||
roles:
|
|
||||||
- role: mrlesmithjr.manage_lvm
|
|
||||||
```
|
|
||||||
|
|
||||||
## Key Variables
|
|
||||||
|
|
||||||
| Variable | Default | Description |
|
|
||||||
|----------|---------|-------------|
|
|
||||||
| `manage_lvm` | `false` | Master switch — must be `true` to make any changes |
|
|
||||||
| `lvm_groups` | `[]` | List of volume group definitions |
|
|
||||||
| `pvresize_to_max` | `false` | Resize all PVs to maximum available size |
|
|
||||||
|
|
||||||
### `lvm_groups` Structure
|
|
||||||
|
|
||||||
```yaml
|
|
||||||
lvm_groups:
|
|
||||||
- vgname: my-vg # Volume group name
|
|
||||||
disks: # Physical volumes to assign
|
|
||||||
- /dev/sdb
|
|
||||||
- /dev/sdc
|
|
||||||
create: true # true = create, false = remove
|
|
||||||
pvresize: false # Resize PV to max size
|
|
||||||
lvnames:
|
|
||||||
- lvname: data # Logical volume name
|
|
||||||
size: 50g # Size: 10g | 1024 (MB) | 100%FREE
|
|
||||||
create: true # true = create, false = remove
|
|
||||||
filesystem: ext4 # ext4 | xfs | swap | etc.
|
|
||||||
mount: true # Mount after creation
|
|
||||||
mntp: /data # Mountpoint
|
|
||||||
mopts: noatime # Mount options (optional)
|
|
||||||
fsopts: # Filesystem creation options (optional)
|
|
||||||
```
|
|
||||||
|
|
||||||
See [defaults/main.yml](defaults/main.yml) for full examples including XFS, swap, and OpenStack Cinder volumes.
|
|
||||||
|
|
||||||
## License
|
## License
|
||||||
|
|
||||||
MIT
|
MIT
|
||||||
|
|
||||||
## Support This Project
|
## Author Information
|
||||||
|
|
||||||
This role has been downloaded over **1.1 million times** from Ansible Galaxy.
|
Larry Smith Jr.
|
||||||
If your organization depends on it in production, consider
|
|
||||||
[sponsoring its maintenance](https://github.com/sponsors/mrlesmithjr).
|
|
||||||
Enterprise support tiers are available.
|
|
||||||
|
|
||||||
## Author
|
- [@mrlesmithjr](https://twitter.com/mrlesmithjr)
|
||||||
|
- [mrlesmithjr@gmail.com](mailto:mrlesmithjr@gmail.com)
|
||||||
|
- [http://everythingshouldbevirtual.com](http://everythingshouldbevirtual.com)
|
||||||
|
|
||||||
Larry Smith Jr. — [everythingshouldbevirtual.com](http://everythingshouldbevirtual.com) · [mrlesmithjr@gmail.com](mailto:mrlesmithjr@gmail.com)
|
<a href="https://www.buymeacoffee.com/mrlesmithjr" target="_blank"><img src="https://cdn.buymeacoffee.com/buttons/v2/default-yellow.png" alt="Buy Me A Coffee" style="height: 60px !important;width: 217px !important;" ></a>
|
||||||
|
|||||||
Generated
+1650
-733
File diff suppressed because it is too large
Load Diff
@@ -0,0 +1,4 @@
|
|||||||
|
{
|
||||||
|
"$schema": "https://docs.renovatebot.com/renovate-schema.json",
|
||||||
|
"extends": ["github>mrlesmithjr/renovate-config"]
|
||||||
|
}
|
||||||
+70
-73
@@ -1,73 +1,70 @@
|
|||||||
ansible-compat==3.0.2 ; python_version >= "3.9" and python_version < "4.0"
|
ansible-compat==24.10.0
|
||||||
ansible-core==2.13.10 ; python_version >= "3.9" and python_version < "4.0"
|
ansible-core==2.15.13
|
||||||
ansible-lint==6.8.7 ; python_version >= "3.9" and python_version < "4.0"
|
ansible-lint==6.8.7
|
||||||
ansible==6.6.0 ; python_version >= "3.9" and python_version < "4.0"
|
arrow==1.4.0
|
||||||
arrow==1.2.3 ; python_version >= "3.9" and python_version < "4.0"
|
astroid==2.15.8
|
||||||
astroid==2.15.5 ; python_version >= "3.9" and python_version < "4.0"
|
attrs==26.1.0
|
||||||
attrs==23.1.0 ; python_version >= "3.9" and python_version < "4.0"
|
binaryornot==0.6.0
|
||||||
binaryornot==0.4.4 ; python_version >= "3.9" and python_version < "4.0"
|
black==22.12.0
|
||||||
black==22.12.0 ; python_version >= "3.9" and python_version < "4.0"
|
bracex==2.6
|
||||||
bracex==2.3.post1 ; python_version >= "3.9" and python_version < "4.0"
|
certifi==2026.2.25
|
||||||
certifi==2023.5.7 ; python_version >= "3.9" and python_version < "4.0"
|
cffi==2.0.0
|
||||||
cffi==1.15.1 ; python_version >= "3.9" and python_version < "4.0"
|
cfgv==3.5.0
|
||||||
cfgv==3.3.1 ; python_version >= "3.9" and python_version < "4.0"
|
charset-normalizer==3.4.6
|
||||||
chardet==5.1.0 ; python_version >= "3.9" and python_version < "4.0"
|
click==8.3.1
|
||||||
charset-normalizer==3.1.0 ; python_version >= "3.9" and python_version < "4.0"
|
click-help-colors==0.9.4
|
||||||
click-help-colors==0.9.1 ; python_version >= "3.9" and python_version < "4.0"
|
cookiecutter==2.7.1
|
||||||
click==8.1.3 ; python_version >= "3.9" and python_version < "4.0"
|
cryptography==46.0.5
|
||||||
colorama==0.4.6 ; python_version >= "3.9" and python_version < "4.0" and sys_platform == "win32" or python_version >= "3.9" and python_version < "4.0" and platform_system == "Windows"
|
dill==0.4.1
|
||||||
cookiecutter==2.1.1 ; python_version >= "3.9" and python_version < "4.0"
|
distlib==0.4.0
|
||||||
cryptography==46.0.6 ; python_version >= "3.9" and python_version < "4.0"
|
enrich==1.2.7
|
||||||
dill==0.3.6 ; python_version >= "3.9" and python_version < "4.0"
|
filelock==3.25.2
|
||||||
distlib==0.3.6 ; python_version >= "3.9" and python_version < "4.0"
|
flake8==6.1.0
|
||||||
enrich==1.2.7 ; python_version >= "3.9" and python_version < "4.0"
|
identify==2.6.18
|
||||||
filelock==3.12.2 ; python_version >= "3.9" and python_version < "4.0"
|
idna==3.11
|
||||||
flake8==6.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
isort==5.13.2
|
||||||
identify==2.5.24 ; python_version >= "3.9" and python_version < "4.0"
|
jinja2==3.1.6
|
||||||
idna==3.4 ; python_version >= "3.9" and python_version < "4.0"
|
jsonschema==4.26.0
|
||||||
isort==5.12.0 ; python_version >= "3.9" and python_version < "4.0"
|
jsonschema-specifications==2025.9.1
|
||||||
jinja2-time==0.2.0 ; python_version >= "3.9" and python_version < "4.0"
|
lazy-object-proxy==1.12.0
|
||||||
jinja2==3.1.2 ; python_version >= "3.9" and python_version < "4.0"
|
markdown-it-py==4.0.0
|
||||||
jsonschema==4.17.3 ; python_version >= "3.9" and python_version < "4.0"
|
markupsafe==3.0.3
|
||||||
lazy-object-proxy==1.9.0 ; python_version >= "3.9" and python_version < "4.0"
|
mccabe==0.7.0
|
||||||
markdown-it-py==3.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
mdurl==0.1.2
|
||||||
markupsafe==2.1.3 ; python_version >= "3.9" and python_version < "4.0"
|
molecule==5.1.0
|
||||||
mccabe==0.7.0 ; python_version >= "3.9" and python_version < "4.0"
|
molecule-plugins==23.5.0
|
||||||
mdurl==0.1.2 ; python_version >= "3.9" and python_version < "4.0"
|
mypy-extensions==1.1.0
|
||||||
molecule-plugins[vagrant]==23.4.1 ; python_version >= "3.9" and python_version < "4.0"
|
nodeenv==1.10.0
|
||||||
molecule==5.0.1 ; python_version >= "3.9" and python_version < "4.0"
|
packaging==26.0
|
||||||
molecule[docker]==5.0.1 ; python_version >= "3.9" and python_version < "4.0"
|
pathspec==1.0.4
|
||||||
mypy-extensions==0.4.4 ; python_version >= "3.9" and python_version < "4.0"
|
platformdirs==4.9.4
|
||||||
nodeenv==1.8.0 ; python_version >= "3.9" and python_version < "4.0"
|
pluggy==1.6.0
|
||||||
packaging==23.1 ; python_version >= "3.9" and python_version < "4.0"
|
pre-commit==2.21.0
|
||||||
pathspec==0.11.1 ; python_version >= "3.9" and python_version < "4.0"
|
pycodestyle==2.11.1
|
||||||
platformdirs==2.6.2 ; python_version >= "3.9" and python_version < "4.0"
|
pycparser==3.0
|
||||||
pluggy==0.13.1 ; python_version >= "3.9" and python_version < "4.0"
|
pyflakes==3.1.0
|
||||||
pre-commit==2.21.0 ; python_version >= "3.9" and python_version < "4.0"
|
pygments==2.19.2
|
||||||
pycodestyle==2.10.0 ; python_version >= "3.9" and python_version < "4.0"
|
pylint==2.17.7
|
||||||
pycparser==2.21 ; python_version >= "3.9" and python_version < "4.0"
|
python-dateutil==2.9.0.post0
|
||||||
pyflakes==3.0.1 ; python_version >= "3.9" and python_version < "4.0"
|
python-discovery==1.2.0
|
||||||
pygments==2.20.0 ; python_version >= "3.9" and python_version < "4.0"
|
python-slugify==8.0.4
|
||||||
pylint==2.17.4 ; python_version >= "3.9" and python_version < "4.0"
|
python-vagrant==1.0.0
|
||||||
pyrsistent==0.19.3 ; python_version >= "3.9" and python_version < "4.0"
|
pyyaml==6.0.3
|
||||||
python-dateutil==2.8.2 ; python_version >= "3.9" and python_version < "4.0"
|
referencing==0.37.0
|
||||||
python-slugify==8.0.1 ; python_version >= "3.9" and python_version < "4.0"
|
requests==2.33.0
|
||||||
python-vagrant==1.0.0 ; python_version >= "3.9" and python_version < "4.0"
|
resolvelib==1.0.1
|
||||||
pyyaml==5.4.1 ; python_version >= "3.9" and python_version < "4.0"
|
rich==14.3.3
|
||||||
requests==2.31.0 ; python_version >= "3.9" and python_version < "4.0"
|
rpds-py==0.30.0
|
||||||
resolvelib==0.5.4 ; python_version >= "3.9" and python_version < "4.0"
|
ruamel-yaml==0.17.40
|
||||||
rich==13.4.2 ; python_version >= "3.9" and python_version < "4.0"
|
ruamel-yaml-clib==0.2.15
|
||||||
ruamel-yaml-clib==0.2.7 ; platform_python_implementation == "CPython" and python_version < "3.12" and python_version >= "3.9"
|
six==1.17.0
|
||||||
ruamel-yaml==0.17.31 ; python_version >= "3.9" and python_version < "4.0"
|
subprocess-tee==0.4.2
|
||||||
setuptools==67.8.0 ; python_version >= "3.9" and python_version < "4.0"
|
text-unidecode==1.3
|
||||||
six==1.16.0 ; python_version >= "3.9" and python_version < "4.0"
|
tomlkit==0.14.0
|
||||||
subprocess-tee==0.4.1 ; python_version >= "3.9" and python_version < "4.0"
|
typing-extensions==4.15.0
|
||||||
text-unidecode==1.3 ; python_version >= "3.9" and python_version < "4.0"
|
tzdata==2025.3
|
||||||
tomli==1.2.3 ; python_version >= "3.9" and python_full_version < "3.11.0a7"
|
urllib3==2.6.3
|
||||||
tomlkit==0.11.8 ; python_version >= "3.9" and python_version < "4.0"
|
virtualenv==21.2.0
|
||||||
typing-extensions==4.6.3 ; python_version >= "3.9" and python_version < "3.11"
|
wcmatch==10.1
|
||||||
urllib3==1.26.16 ; python_version >= "3.9" and python_version < "4.0"
|
wrapt==1.17.3
|
||||||
virtualenv==20.21.1 ; python_version >= "3.9" and python_version < "4.0"
|
yamllint==1.38.0
|
||||||
wcmatch==8.4.1 ; python_version >= "3.9" and python_version < "4.0"
|
|
||||||
wrapt==1.15.0 ; python_version >= "3.9" and python_version < "4.0"
|
|
||||||
yamllint==1.32.0 ; python_version >= "3.9" and python_version < "4.0"
|
|
||||||
|
|||||||
+10
-10
@@ -1,10 +1,10 @@
|
|||||||
ansible-core==2.13.10 ; python_version >= "3.9" and python_version < "4.0"
|
ansible==8.5.0
|
||||||
ansible==6.6.0 ; python_version >= "3.9" and python_version < "4.0"
|
ansible-core==2.15.13
|
||||||
cffi==1.15.1 ; python_version >= "3.9" and python_version < "4.0"
|
cffi==2.0.0
|
||||||
cryptography==46.0.6 ; python_version >= "3.9" and python_version < "4.0"
|
cryptography==46.0.5
|
||||||
jinja2==3.1.2 ; python_version >= "3.9" and python_version < "4.0"
|
jinja2==3.1.6
|
||||||
markupsafe==2.1.3 ; python_version >= "3.9" and python_version < "4.0"
|
markupsafe==3.0.3
|
||||||
packaging==23.1 ; python_version >= "3.9" and python_version < "4.0"
|
packaging==26.0
|
||||||
pycparser==2.21 ; python_version >= "3.9" and python_version < "4.0"
|
pycparser==3.0
|
||||||
pyyaml==5.4.1 ; python_version >= "3.9" and python_version < "4.0"
|
pyyaml==6.0.3
|
||||||
resolvelib==0.5.4 ; python_version >= "3.9" and python_version < "4.0"
|
resolvelib==1.0.1
|
||||||
|
|||||||
Reference in New Issue
Block a user