roots / trellis-cli

A CLI to manage Trellis projects
https://roots.io/trellis/
MIT License
166 stars 25 forks source link

Feature Request: extending trellis check command #376

Open sangemaru opened 1 year ago

sangemaru commented 1 year ago

Terms

Summary

Extend the dependency checks the trellis check command carries out to include required provisioning/deployment checks like SSH agent, keys, Ansible.

Motivation

Why are we doing this?

Right now, trellis check looks for Python, Vagrant and Virtualbox compatibility related to local development, but some important checks would be:

What use cases does it support?

Would be nice to support checks of any known dependencies of the deploy/provision processes.

What is the expected outcome?

An output like:

Checking Trellis requirements...

Required:
[✓] Ansible [>= 2.9.7]: 2.10.0
[✓] Python [>= 3.8.0]: 3.11.2
[✓] SSH Agent [On]: Yes
[✓] SSH Agent [Loaded]: Yes

Optional:

[✓] Vagrant [>= 2.1.0]: 2.3.4
[✓] VirtualBox [>= 4.3.10]: 6.1.36r152435
...

Potential conflicts / foreseeable issues

May conflict with Ansible version in virtual environment

Additional Context

No response

swalkinshaw commented 1 year ago

check definitely needs some improvements and I like some of these ideas.

That command was also added years before the CLI could create a virtualenv for better dependency handling. It could say if you're run trellis init?

Checking Trellis requirements...

[✓] Project initialized

Required:
[✓] Ansible [>= 2.9.7]: 2.10.0
[✓] Python [>= 3.8.0]: 3.11.2
[✓] SSH Agent [On]: Yes
[✓] SSH Agent [Loaded]: Yes

Optional:

[✓] Vagrant [>= 2.1.0]: 2.3.4
[✓] VirtualBox [>= 4.3.10]: 6.1.36r152435
...

I'll give this some more thought.

sangemaru commented 10 months ago

Yeah, I use trellis init. But it doesn't check for those basic requirements, so we need to remember to do those manually. On my end, that's rarely an issue, but I usually can't hand off trellis-related processes to others because of all the details they're not aware of. So either sticking it into trellis check or trellis init works