diff --git a/README.md b/README.md index 6f7173b55073ecc6c4ce9423d3bc7104009e2881..da5807a8828751b46b0afd2c0571bfa2efba254a 100644 --- a/README.md +++ b/README.md @@ -16,6 +16,8 @@ The *LarvaTagger* project is divided into several components. Although this READ This package features a web-based graphical user interface (GUI) for visualizing the tracked larvae and assigning discrete behavior tags, at each time step. +As a web GUI, a public instance can be found at [nyx.pasteur.cloud](https://nyx.pasteur.cloud/larvatagger). Demo data can be found in the [Quick start](#quick-start-with-docker) section below. + A command-line interface (CLI) is also available for batch processing, including the automatic tagging of track data files, training new taggers from labeled data, etc. Although *LarvaTagger.jl* alone comes with no automatic tagger, it is designed to work primarily in combination with [*MaggotUBA*](https://gitlab.pasteur.fr/nyx/MaggotUBA-adapter) for the identification of larval actions or postures. @@ -53,7 +55,7 @@ Change directory (`cd`) to the Downloads directory. In this example, we will ass On macOS and Linux, change the permissions of the script file so that it can be executed: ``` -chmod a+x larvatagger.sh +chmod +x larvatagger.sh ``` The demo data can be opened in the web browser for visual inspection, on macOS and Linux with: @@ -132,12 +134,6 @@ cd LarvaTagger julia --project=. -e 'using Pkg; Pkg.instantiate()' ``` -In May 2024, the gitlab.pasteur.fr server began to request an authentication token on cloning public repositories. -If the `git clone` command requests an authentication token you do not have, do instead: -``` -curl -sSL https://gitlab.pasteur.fr/nyx/larvatagger.jl/-/archive/main/larvatagger.jl-main.tar.gz | tar zxv && mv larvatagger.jl-main LarvaTagger -``` - Calling `Pkg.instantiate` in a copy of the project is preferred over using `Pkg.add`, because *LarvaTagger.jl* depends on several unregistered packages. @@ -218,7 +214,7 @@ Feel free to adjust the value if the 2D view is too small or large. ## Automatic tagging -*LarvaTagger.jl* comes with no automatic tagger per default, unless run using Docker or installed with the *scripts/install.sh* script and the `--with-default-backend` option. +*LarvaTagger.jl* comes with no automatic tagger per default, unless you run the Docker image or you installed LarvaTagger with the *scripts/install.sh* script and the `--with-default-backend` option. To extend the editor with automatic tagging capabilities, see the [recommended installation steps for *TaggingBackends* and *MaggotUBA*](https://gitlab.pasteur.fr/nyx/TaggingBackends#recommended-installation). diff --git a/doc/develop.md b/doc/develop.md index 6648bcc4d7fc50bd7eea01fd4623dca63c3f870e..322d13fb760e0dc08b1552165cfaa3e48aca21d4 100644 --- a/doc/develop.md +++ b/doc/develop.md @@ -59,3 +59,5 @@ scripts/larvatagger-gui.jl http://localhost:9285 The `docker=docker` environment variable is required if command `podman` is available. The `scripts/larvatagger.sh` script falls back on using `podman` instead of `docker`, if `podman` is available, but it is recommended to perform tests using Docker. In addition, at present, building the image works with Docker buildx only. + +See also the `recipes/release.sh` script. diff --git a/recipes/README.md b/recipes/README.md index 5ad9e8eba19161dc6f1bc7f2593a96e387537981..f0302b08f7149ec1c08abb039558d66cb71fdd64 100644 --- a/recipes/README.md +++ b/recipes/README.md @@ -149,10 +149,6 @@ Optionally, you can also get the default backend (currently *20230311*) with: ``` scripts/larvatagger.sh build --with-default-backend ``` -Currently, Docker images on Docker Hub are built with: -``` -scripts/larvatagger.sh --target confusion build --with-default-backend -``` If you want another tagger, *e.g.* the *20230129* tagger implemented by the *20230129* branch of the *MaggotUBA-adapter* repository, do: ``` @@ -177,7 +173,7 @@ docker pull flaur/larvatagger ``` Beware that images that ship with a tagging backend are relatively large files (>5GB on disk). -If you are not interested in automatic tagging, use the `flaur/larvatagger:0.19-standalone` image instead. +If you are not interested in automatic tagging, use the `flaur/larvatagger:0.20-standalone` image instead. ### Upgrading diff --git a/recipes/release.sh b/recipes/release.sh new file mode 100755 index 0000000000000000000000000000000000000000..396d85810578e9f7385bedc97fcbf336869d495b --- /dev/null +++ b/recipes/release.sh @@ -0,0 +1,26 @@ +#!/bin/sh + +set -e + +RELEASE=$1 + +if [ -z "$RELEASE" ]; then + echo "Usage: $0 <version-number>" + exit 1 +fi + +docker=docker LARVATAGGER_IMAGE=flaur/larvatagger:$RELEASE-standalone scripts/larvatagger.sh build +docker=docker LARVATAGGER_IMAGE=flaur/larvatagger:$RELEASE-20230311 scripts/larvatagger.sh --target confusion build --with-default-backend +docker tag flaur/larvatagger:$RELEASE-20230311 flaur/larvatagger:latest +docker build -t flaur/larvatagger:$RELEASE-bigfat -f recipes/Dockerfile.pasteurjanelia --no-cache . + +test/predict_and_retrain.sh + +cat <<EOF +Next steps are: +docker login +docker push flaur/larvatagger:$RELEASE-standalone +docker push flaur/larvatagger:$RELEASE-20230311 +docker push flaur/larvatagger:$RELEASE-bigfat +docker push flaur/larvatagger:latest +EOF diff --git a/test/deploy_and_test.sh b/test/deploy_and_test.sh index b0c01135993e026b23fa15c76f0603cb7648b8f2..0de55088c010f5f1ddc210710a850c58bf671e46 100755 --- a/test/deploy_and_test.sh +++ b/test/deploy_and_test.sh @@ -23,7 +23,8 @@ if ! [ -f scripts/install.sh ]; then fi scripts/install.sh --uninstall -scripts/install.sh --with-default-backend +LARVATAGGER_BRANCH=dev \ + scripts/install.sh --with-default-backend ############# ## Maestro ## diff --git a/test/predict_and_retrain.sh b/test/predict_and_retrain.sh index 771145dbfda52ccd5b086d616f5d6abdd89a7ffb..fd68d62e626d057d0301b9fdeff312f3c97ca3bd 100755 --- a/test/predict_and_retrain.sh +++ b/test/predict_and_retrain.sh @@ -3,6 +3,8 @@ # this script performs a few tests with the Docker image # TODO: implement more use cases as in scenarii.sh +set -e + trap 'rm -rf "$TMPDIR"' EXIT TMPDIR=$(mktemp -d) || exit 1