ansible-community / ansible-community/molecule-plugins

Incorrect installation from AUR

Open Beginner friendly
#386 0 comments 0 reactions 0 assignees View on GitHub
Dominant language
Python
Stars
164
Forks
113
Avg merge
4d 20h
Merged PRs (30d)
1

Description

Hello!
I'm using Manjaro and installing the molecule-plugins package from the AUR - [molecule-plugins](https://aur.archlinux.org/packages/molecule-plugins):

```bash
# Maintainer: Célestin Matte aur [at] ploudseeker dot com
# Contributor (former maintainer): David Runge

pkgname=molecule-plugins
pkgver=26.7.15
pkgrel=1
pkgdesc="Collection of molecule plugins"
arch=(any)
url="https://github.com/ansible-community/molecule-plugins"
license=(MIT)
depends=(
molecule
python
python-boto3 # for ec2 driver
python-cryptography # for ec2 driver
python-jinja # for vagrant driver
python-packaging # required for podman driver
)
makedepends=(
python-build
python-installer
python-setuptools
python-setuptools-scm
python-wheel
)
optdepends=(
'ansible-core: for vagrant driver and validating docker and podman playbooks'
'python-ansible-compat: for podman driver'
'python-docker: for Docker support'
'python-google-auth: for GCE playbooks'
'python-google-api-python-client: for GCE playbooks'
'python-pycryptodome: for GCE playbooks'
'python-requests: for Docker support'
'python-selinux: for SELinux and Docker support'
'python-vagrant: for vagrant module'
)
conflicts=(
molecule-containers
molecule-docker
molecule-podman
molecule-vagrant
)
replaces=(
molecule-containers
molecule-docker
molecule-podman
molecule-vagrant
)
source=(
$url/archive/v$pkgver/$pkgname-v$pkgver.tar.gz
)
sha512sums=('3ee6741f4621f3b5d571aa9c655968e447d26a1805a5e5bc0e27bd0301a0b3980a2594cd3299e900512e44864081efdda8349096d7e8e2cec1302bc9184a6826')
b2sums=('95c3aa2fe07e026bbb9bab962d92cdd052abdf57461770b9d615f2712926bbfe0d49df056be78062954854054d5f04a1e2169b23cd2f800661a5601f2cf82ae3')

build() {
export SETUPTOOLS_SCM_PRETEND_VERSION=$pkgver

cd $pkgname-$pkgver
python -m build --wheel --no-isolation
}

package() {
cd $pkgname-$pkgver
python -m installer --destdir="$pkgdir" dist/*.whl
install -vDm 644 LICENSE -t "$pkgdir/usr/share/licenses/$pkgname/"
install -vDm 644 README.md -t "$pkgdir/usr/share/doc/$pkgname/"
install -vDm 644 doc/ec2/*.rst -t "$pkgdir/usr/share/doc/$pkgname/ec2"
install -vDm 644 doc/vagrant/*.rst -t "$pkgdir/usr/share/doc/$pkgname/vagrant"
}
```

After installation, I discovered that only half of the required files are in the directories. Original package files:

```bash
./
├── azure
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   ├── converge.yml
│   │   ├── create.yml
│   │   ├── destroy.yml
│   │   └── INSTALL.rst
│   ├── driver.py
│   └── __init__.py
├── containers
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   └── converge.yml
│   ├── driver.py
│   └── __init__.py
├── docker
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   └── converge.yml
│   ├── driver.py
│   ├── __init__.py
│   ├── playbooks
│   │   ├── create.yml
│   │   ├── destroy.yml
│   │   ├── Dockerfile.j2
│   │   ├── filter_plugins
│   │   │   └── get_docker_networks.py
│   │   ├── tasks
│   │   │   ├── create_network.yml
│   │   │   └── delete_network.yml
│   │   └── validate-dockerfile.yml
│   └── schema
│   └── driver.json
├── ec2
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   ├── converge.yml
│   │   ├── create.yml
│   │   ├── destroy.yml
│   │   ├── INSTALL.rst
│   │   └── prepare.yml
│   ├── driver.py
│   └── __init__.py
├── gce
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   └── converge.yml
│   ├── driver.py
│   ├── __init__.py
│   └── playbooks
│   ├── create.yml
│   ├── destroy.yml
│   ├── files
│   │   └── windows_auth.py
│   ├── handlers
│   │   └── main.yml
│   └── tasks
│   ├── create_linux_instance.yml
│   └── create_windows_instance.yml
├── __init__.py
├── openstack
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   └── converge.yml
│   ├── driver.py
│   ├── __init__.py
│   └── playbooks
│   ├── create.yml
│   ├── destroy.yml
│   ├── prepare.yml
│   └── tasks
│   ├── server_addr.yml
│   └── vars.yml
├── podman
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   └── converge.yml
│   ├── driver.py
│   ├── __init__.py
│   ├── playbooks
│   │   ├── create.yml
│   │   ├── destroy.yml
│   │   ├── Dockerfile.j2
│   │   └── validate-dockerfile.yml
│   └── schema
│   └── driver.json
├── py.typed
└── vagrant
├── cookiecutter
│   ├── cookiecutter.json
│   └── {{cookiecutter.molecule_directory}}
│   └── {{cookiecutter.scenario_name}}
│   ├── converge.yml
│   └── INSTALL.rst
├── driver.py
├── __init__.py
├── modules
│   ├── __init__.py
│   └── vagrant.py
└── playbooks
├── create.yml
├── destroy.yml
└── prepare.yml
```


Actual on disk:

```bash
./
├── azure
│   ├── driver.py
│   ├── __init__.py
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
├── containers
│   ├── driver.py
│   ├── __init__.py
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
├── docker
│   ├── driver.py
│   ├── __init__.py
│   ├── playbooks
│   │   └── filter_plugins
│   │   ├── get_docker_networks.py
│   │   └── __pycache__
│   │   ├── get_docker_networks.cpython-314.opt-1.pyc
│   │   └── get_docker_networks.cpython-314.pyc
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
├── ec2
│   ├── driver.py
│   ├── __init__.py
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
├── gce
│   ├── driver.py
│   ├── __init__.py
│   ├── playbooks
│   │   └── files
│   │   ├── __pycache__
│   │   │   ├── windows_auth.cpython-314.opt-1.pyc
│   │   │   └── windows_auth.cpython-314.pyc
│   │   └── windows_auth.py
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
├── __init__.py
├── openstack
│   ├── driver.py
│   ├── __init__.py
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
├── podman
│   ├── driver.py
│   ├── __init__.py
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
├── __pycache__
│   ├── __init__.cpython-314.opt-1.pyc
│   ├── __init__.cpython-314.pyc
│   ├── _version.cpython-314.opt-1.pyc
│   └── _version.cpython-314.pyc
├── py.typed
├── vagrant
│   ├── driver.py
│   ├── __init__.py
│   ├── modules
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   │   ├── __init__.cpython-314.opt-1.pyc
│   │   │   ├── __init__.cpython-314.pyc
│   │   │   ├── vagrant.cpython-314.opt-1.pyc
│   │   │   └── vagrant.cpython-314.pyc
│   │   └── vagrant.py
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
└── _version.py
```

Using AI, I analyzed the results, and it suggested updating the `pyproject.toml` file by adding the following section:
```Toml
[tool.setuptools.package-data]
molecule_plugins = [
"**/*.yml",
"**/*.j2",
"**/*.json",
"**/*.rst",
"**/*.py",
"py.typed",
]
```
After adding the specified section, the plugins began to install and work correctly

```bash
./
├── azure
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   ├── converge.yml
│   │   ├── create.yml
│   │   ├── destroy.yml
│   │   └── INSTALL.rst
│   ├── driver.py
│   ├── __init__.py
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
├── containers
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   └── converge.yml
│   ├── driver.py
│   ├── __init__.py
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
├── docker
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   └── converge.yml
│   ├── driver.py
│   ├── __init__.py
│   ├── playbooks
│   │   ├── create.yml
│   │   ├── destroy.yml
│   │   ├── Dockerfile.j2
│   │   ├── filter_plugins
│   │   │   ├── get_docker_networks.py
│   │   │   └── __pycache__
│   │   │   ├── get_docker_networks.cpython-314.opt-1.pyc
│   │   │   └── get_docker_networks.cpython-314.pyc
│   │   ├── tasks
│   │   │   ├── create_network.yml
│   │   │   └── delete_network.yml
│   │   └── validate-dockerfile.yml
│   ├── __pycache__
│   │   ├── driver.cpython-314.opt-1.pyc
│   │   ├── driver.cpython-314.pyc
│   │   ├── __init__.cpython-314.opt-1.pyc
│   │   └── __init__.cpython-314.pyc
│   └── schema
│   └── driver.json
├── ec2
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   ├── converge.yml
│   │   ├── create.yml
│   │   ├── destroy.yml
│   │   ├── INSTALL.rst
│   │   └── prepare.yml
│   ├── driver.py
│   ├── __init__.py
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
├── gce
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   └── converge.yml
│   ├── driver.py
│   ├── __init__.py
│   ├── playbooks
│   │   ├── create.yml
│   │   ├── destroy.yml
│   │   ├── files
│   │   │   ├── __pycache__
│   │   │   │   ├── windows_auth.cpython-314.opt-1.pyc
│   │   │   │   └── windows_auth.cpython-314.pyc
│   │   │   └── windows_auth.py
│   │   ├── handlers
│   │   │   └── main.yml
│   │   └── tasks
│   │   ├── create_linux_instance.yml
│   │   └── create_windows_instance.yml
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
├── __init__.py
├── openstack
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   └── converge.yml
│   ├── driver.py
│   ├── __init__.py
│   ├── playbooks
│   │   ├── create.yml
│   │   ├── destroy.yml
│   │   ├── prepare.yml
│   │   └── tasks
│   │   ├── server_addr.yml
│   │   └── vars.yml
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
├── podman
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   └── converge.yml
│   ├── driver.py
│   ├── __init__.py
│   ├── playbooks
│   │   ├── create.yml
│   │   ├── destroy.yml
│   │   ├── Dockerfile.j2
│   │   └── validate-dockerfile.yml
│   ├── __pycache__
│   │   ├── driver.cpython-314.opt-1.pyc
│   │   ├── driver.cpython-314.pyc
│   │   ├── __init__.cpython-314.opt-1.pyc
│   │   └── __init__.cpython-314.pyc
│   └── schema
│   └── driver.json
├── __pycache__
│   ├── __init__.cpython-314.opt-1.pyc
│   ├── __init__.cpython-314.pyc
│   ├── _version.cpython-314.opt-1.pyc
│   └── _version.cpython-314.pyc
├── py.typed
├── vagrant
│   ├── cookiecutter
│   │   ├── cookiecutter.json
│   │   └── {{cookiecutter.molecule_directory}}
│   │   └── {{cookiecutter.scenario_name}}
│   │   ├── converge.yml
│   │   └── INSTALL.rst
│   ├── driver.py
│   ├── __init__.py
│   ├── modules
│   │   ├── __init__.py
│   │   ├── __pycache__
│   │   │   ├── __init__.cpython-314.opt-1.pyc
│   │   │   ├── __init__.cpython-314.pyc
│   │   │   ├── vagrant.cpython-314.opt-1.pyc
│   │   │   └── vagrant.cpython-314.pyc
│   │   └── vagrant.py
│   ├── playbooks
│   │   ├── create.yml
│   │   ├── destroy.yml
│   │   └── prepare.yml
│   └── __pycache__
│   ├── driver.cpython-314.opt-1.pyc
│   ├── driver.cpython-314.pyc
│   ├── __init__.cpython-314.opt-1.pyc
│   └── __init__.cpython-314.pyc
└── _version.py
```

Contributor guide

No contributing guide indexed for this repository

Research direction

Inspect pyproject.toml and the package contents produced by the existing python -m build --wheel --no-isolation command. Compare the wheel or installed package with the source tree's cookiecutter, playbook, schema, and documentation files. Done means a clean AUR-style build installs the required non-Python resources for every plugin.

Written by the indexing model from the issue text.

Assessment

Tech stack
python
Domain
build-system
Issue type
Bug
Difficulty
2/5
Estimated time
1-3 hours
Activity status
Active
Clarity
Clearly specified
Newbie friendliness
84/100

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.