acsys
is the interface to Fermilab data acquisition and control.
EXAMPLES: If you are looking for examples to dive in on, please see the wiki examples.
acsys
is available via a Fermi hosted pip repository.
python3 -m pip install acsys --extra-index-url https://www-bd.fnal.gov/pip3
The command above will get you up and going quickly. See usage examples in the wiki.
If you need to perform settings, you will need the optional authentication library, gssapi
.
python3 -m pip install "acsys[settings]" --extra-index-url https://www-bd.fnal.gov/pip3
Note: This package only authenticates you as a user. There are other requirements to be able to set devices. Please make a request to the Controls Department for setting access.
All dependencies are managed via pyproject.toml.
Start by creating and activating a virtual environment.
python3 -m venv venv
source ./venv/bin/activate
To build the project, ensure you have your development dependencies installed.
pip install -e ".[dev]"
This command installs your project in an editable mode along with all its development dependencies, like build
and wheel
.
Make sure pyproject.toml
has the correct version number.
make
will create a source distribution at ./dist
.
This should only be used for development.
make all
The above will generate "built distributions" as well as the source distributions from make
.
Ensure all your changes are committed to Git. Create a new Git tag for the version you are releasing. The tag name should follow the semver format vX.Y.Z
.
git tag vVID
Run the deploy
make target to build the package and push it to the pip server. This process will automatically use the new version from your Git tag.
make deploy
Finally, push the new tag to the remote repository. This makes the new version official in your project's history.
git push --tags
To get started with development, simply follow the "Building and Distributing" section. The pip install -e ".[dev]"
command will set up your virtual environment so that any changes you make to the source code will be immediately reflected in your venv
.