Development environment for working with Intelligent Instruments Lab tools and repos. Use this environment if you anticipate editing multiple Python packages, otherwise it might be simpler for you to pip install the individual package(s).
Each project is included as a git submodule. This means each project has its own separate git repo and history. You can also make commits to iil-dev which track which commit of each submodule is currently checked out. When you commit to iil-dev, you aren't committing your work on any of the projects -- you are committing a record of their current state in git.
So, always remember to commit your changes within each submodule. If you want to pin dev versions of several projects together, make a commit to iil-dev on your own branch. If you want to change this README or environment.yml, then commit to main of iil-dev.
Clone with submodules:
git clone --recurse-submodules [email protected]:Intelligent-Instruments-Lab/iil-dev.git
cd iil-devClone without submodules and then clone the submodules separately:
git clone [email protected]:Intelligent-Instruments-Lab/iil-dev.git
cd iil-dev
git submodule update --init --recursiveWe manage Python versions, non-python dependencies and environments with conda. If you don't have an anaconda/miniconda/miniforge python install already, download a miniforge installer and run it in a terminal (we recommend miniconda). Afterwards, verify with which python -- it should have miniforge in the path.
Now set up the conda Python environment (from within the iil-dev directory):
conda env create -f environment.yml
conda activate iil-dev-envThis will create a conda environment called iil-dev with the poetry tool installed.
Now that you have gotten this far, you can make with editable installs of the git submodules in this repo by running poetry install inside of each project, e.g.:
cd anguilla
git checkout main
poetry installWe use poetry to manage other dependencies. To add a new dependency to a project, cd into the project (e.g., anguilla, tolvera) and use poetry add, or edit pyproject.toml, then use poetry install.
In a project directory, run pytest.
If you are an owner of a project on PyPI, to make a release:
- within the project submodule, make a branch for the release, e.g.
git checkout -b v0.1.2 - edit
pyproject.tomlto change any path dependencies to normal pypi dependencies, and update the version number - use
poetry buildto make sure the project builds - add your PyPI API key to poetry using
poetry config pypi-token.pypi <token> - double check the current version number and use
poetry publish --build
Developed by the Intelligent Instruments Lab. Get in touch to collaborate:
◦ iil.is ◦ Facebook ◦ Instagram ◦ X (Twitter) ◦ YouTube ◦ Discord ◦ GitHub ◦ LinkedIn ◦ Email ◦
The Intelligent Instruments project (INTENT) is funded by the European Research Council (ERC) under the European Union’s Horizon 2020 research and innovation programme (Grant agreement No. 101001848).