hi,
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.
functionality
- builds a
conda
env with binary modules preinstalled - git clones’ the source code of published
compas
repo’s- optionally creates fork’d repo’s such to facilitate pull requests
- runs a
pip install -e .
which keep sources in sync with yoursite-packages
via a symbolic link - running
pip install
is interesting, since it’ll make explicit how the variouscompas_*
modules are interlinked. For examplecompas_fab
requirescompas>=0.11,<0.14
due to upstream changes inMesh
see issue #128. It’s relevant to seecompas
( frommaster
) being uninstalled here, and good to seecompas_fab
having pinned dependencies
- finds compas_* repo’s and performs a pull
- run
pytests
in allcompas_*
modules
why?
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 )