I wrote a little
pyinvoke script to create a
compas dev env, with the objective of paving the way to easily build a coherent development environment, which can be involved.
- builds a
condaenv with binary modules preinstalled
- git clones’ the source code of published
- optionally creates fork’d repo’s such to facilitate pull requests
- runs a
pip install -e .which keep sources in sync with your
site-packagesvia a symbolic link
pip installis interesting, since it’ll make explicit how the various
compas_*modules are interlinked. For example
compas>=0.11,<0.14due to upstream changes in
Meshsee issue #128. It’s relevant to see
master) being uninstalled here, and good to see
compas_fabhaving pinned dependencies
- finds compas_* repo’s and performs a pull
In short, this helps to live on the bleeding edge a little easier.
Installing software is an annoying barrier to entry, if there’s a clear way how the install is put together, that helps…
Its useful to see how the different repos are interlinked.
If changes are made to
compas it’ll propagate to repos with this dependency, and thus its useful to see whether libs that depend on compas are affected by changes.
as an example:
compas_tna doesn’t specify a
compas versions in
requirements.txt, so its easy to have mistakes such as:
File "/Users/jelleferinga/Code/CADCAM/compas_tna/src/compas_tna/diagrams/formdiagram.py", line 17, in <module> from compas.datastructures import network_find_cycles ImportError: cannot import name 'network_find_cycles' from 'compas.datastructures' (/Users/jelleferinga/miniconda3/envs/compas/lib/python3.8/site-packages/compas/datastructures/__init__.py)
Two libs don’t install correct via this script as of yet:
compas_libigl( libigl only available for Linux )
conda_loadpath( missing setup.py )