React-based frontend extension for the Fileglancer app.
Clone the repo to your local environment and change directory to the new repo folder.
git clone [email protected]:JaneliaSciComp/fileglancer.git
cd fileglancer
Copy the .env example and edit the environmental variable values for your setup:
cp .env.example .env
If this is your first time installing the extension in dev mode, install package in development mode.
pixi run dev-install
You can build the frontend extension in watch mode - it will automatically rebuild when there are file changes to the frontend:
pixi run dev-watch
In new terminal, run JupyterLab in autoreload mode - it will automatically rebuild when there are file changes to the backend:
pixi run dev-launch
Saved changes in your directory should now be automatically built locally and available in your running JupyterLab. Refresh JupyterLab to load the change in your browser (you may need to wait several seconds for the extension to be rebuilt).
If everything has worked so far, you should see the Fileglancer widget on the Launcher pane:
If you run into any build issues, the first thing to try is to clear the build directories and start from scratch:
./clean.sh
If you're still having issues, try manually deleting the symlink at .pixi/envs/share/jupyter/labextensions/fileglancer
inside the fileglancer repo directory. Then, reinstall the extension using pixi run dev-install
, and follow the steps above from there.
By default, no Fileglancer Central server will be used. You can configure the URL of a Fileglancer Central server with traitlets, in several ways:
pixi run dev-launch --Fileglancer.central_url=http://0.0.0.0:7878
You can create a file at ~/.jupyter/jupyter_server_config.py
(or in any of the paths reported by pixi run jupyter --paths
) and add your configuration there, e.g.:
c.Fileglancer.central_url='http://0.0.0.0:7878'
pixi run pip-uninstall
In development mode, you will also need to remove the symlink created by jupyter labextension develop
command. To find its location, you can run jupyter labextension list
to figure out where the labextensions
folder is located. Then you can remove the symlink named fileglancer
within that folder.
To run backend tests using pytest:
pixi run test-backend
This extension is using Vitest for JavaScript code testing.
To execute the unit tests:
pixi run test-frontend
This extension uses Playwright for the integration tests (aka user level tests). More precisely, the JupyterLab helper Galata is used to handle testing the extension in JupyterLab. More information are provided within the ui-tests README.
To execute the UI integration test, run:
pixi run ui-test
You can also run these in headed or debug mode using:
pixi run ui-test -- --headed --debug
or to run only a specific test:
pixi run ui-test -- --headed tests/fgzones.spec.ts
You can also use the name of the test:
pixi run ui-test -- -g "the test description"
See RELEASE