juju / amulet

Testing harness and tools for Juju Charms
Other
17 stars 33 forks source link

Add juju-deployer as dependency #123

Open tvansteenburgh opened 8 years ago

tvansteenburgh commented 8 years ago

Doing so will ensure that amulet will actually work right-out-of-the-box, for example when installed from pip in a fresh container, without having to manually install other deps.

As of https://github.com/juju-solutions/bundletester/pull/42, you can replace this:

tvansteenburgh@xenial-vm:/tmp/meteor⟫ cat tests/00-setup 
#!/bin/bash

#sudo add-apt-repository ppa:juju/stable -y
#sudo apt-get update
#sudo apt-get install amulet python-requests -y

With this:

tvansteenburgh@xenial-vm:/tmp/meteor⟫ cat tests/tests.yaml
python_packages:
  - requests
  - amulet
  - juju-deployer
  - bzr
virtualenv: true

Instead of just installing amulet, you have to install juju-deployer and bzr (because juju-deployer doesn't install bzr, which we should also fix).

I know deployer will be going away, but I'd prefer to fix this papercut in the meantime anyway.

marcoceppi commented 8 years ago

Is there anyway to say that there are optional_installs in amulet? I fear that including these would make amulet heavier and fail frequently because bzr tends to fail to pip install. We should also evaluate if bzr is even needed anymore

marcoceppi commented 8 years ago

It would appear that this is only used in https://github.com/juju/amulet/blob/master/amulet/charm.py#L184 and it's used to get the metadata for a charm when the charm is branch: lp:... I wonder if we could refactor this out to use LP api instead. Furthermore, we have a GitCharm but no way to list git as a python_package since it's not one. How should we handle this case?

tvansteenburgh commented 8 years ago

I actually don't want to add git and bzr as deps of amulet, since they're not required. But juju-deployer is a mandatory runtime dep (currently) - amulet won't work at all w/o it.

I will add bzrlib as a dep of deployer. The fact that it's not already a defined dep is a long-standing bug that no one has bothered to fix.