Updating PlantCV

The general procedure for updating PlantCV if you are using the master branch cloned from the danforthcenter/plantcv repository is to update your local repository and reinstall the package.

If you are not sure that you have cloned the danforthcenter/plantcv repository and are on the master branch, here is how you can tell:

cd plantcv

git remote -v

# You should see something like:
# origin    https://github.com/danforthcenter/plantcv.git (fetch)

git status

# You should see:
# On branch master
# nothing to commit, working directory clean

If the above is true, updating can be done simply by:

git pull

python setup.py install

# Or with sudo if needed

If you have put the cloned plantcv repository folder in your PYTHONPATH then pulling alone is enough to update.

Updating from v1 to v2

The setuptools installation method was not available in PlantCV v1, so users put the plantcv/lib directory in their custom PYTHONPATH. In PlantCV v2, the plantcv library directory is no longer in the lib directory, now it is in the main repository folder (plantcv/plantcv). If you want to continue to have plantcv in your PYTHONPATH you will need to update by simply removing lib from the path. You can also remove the lib folder after pulling the new version. Git will automatically remove the *.py files but because we do not track the *.pyc files they will remain behind and can technically be imported, which can cause confusion.

For Linux/Unix, PYTHONPATH can be edited in ~/.bash_profile, ~/.bashrc, ~/.profile, ~/.cshrc, ~/.zshrc, etc. For Windows, right-click on My Computer/This PC and select Properties > Advanced system settings > Environmental Variables... and edit the User variables entry for PYTHONPATH.

Also note that the method for parallelizing PlantCV has changed, please see the new parallel processing documentation for more details.

Updating to v3

In order to support the installation of optional add-on subpackages, we converted PlantCV to a namespace package. To achieve this new functionality, existing functions had to be moved into a subpackage to maintain easy importing. To maintain previous behavior, PlantCV analysis scripts simply need to have updated PlantCV import syntax. So if you were previously doing something like:

import plantcv as pcv

You would now do this instead:

from plantcv import plantcv as pcv

Another feature we will be rolling out for PlantCV v3 an update to the existing package API. The goal is to make each PlantCV function easier to use. This will be apparent in two ways at first. 1) all existing functions/functionality will remain intact but we will be adding deprecation warnings to outdated functions that are being replaced. 2) New functions will utilize a global parameters class to inherit values for standard inputs like debug and device so that these values will not need to be explicitly input to each function. An instance of the class Params as params is created automatically when PlantCV is imported and it can be imported to set global defaults. For example, to change debug from None to 'plot' or 'print':

from plantcv import plantcv as pcv
pcv.params.debug = "plot"

For more information, see the Params documentation.