Skip to content
Draft
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
167 commits
Select commit Hold shift + click to select a range
8f700d9
WSGI module
zachmullen Feb 22, 2023
97059a5
Allow setting broker URI from environment
zachmullen Mar 28, 2023
bb02ff1
Appease isort
zachmullen Mar 28, 2023
aafe816
Fix typo
zachmullen Mar 28, 2023
8217a3c
Must set setting value after plugins are loaded
zachmullen Mar 28, 2023
072bd7f
Configure sentry in WSGI wrapper
zachmullen May 15, 2023
b3af3c9
Run annotation processing in the worker
zachmullen May 19, 2023
04cea81
Install girder-worker plugin for HistomicsUI tasks
zachmullen Jun 6, 2023
cd95cef
Merge pull request #306 from DigitalSlideArchive/annotation-processin…
zachmullen Jun 6, 2023
267ed18
Workaround Girder assetstore's file read size limit
zachmullen Jun 7, 2023
70d0e80
Correctly add job title to annotation processing task
zachmullen Jun 7, 2023
7dbad32
Use annotation file name in follow-up task
zachmullen Jun 7, 2023
64d5787
Merge branch 'honor-the-wsgi' into girder-5
zachmullen Apr 15, 2024
394c7ce
Use Girder 5 WSGI infrastructure
zachmullen Apr 15, 2024
789f2b8
Front-end conversion
zachmullen Jun 27, 2024
e521c5a
Alternate method for getting front-end settings
zachmullen Jul 18, 2024
dd3ccfd
Add front-end watch commands
zachmullen Jul 24, 2024
aa162c9
Restore views imported for wrapping side-effects
zachmullen Jul 25, 2024
a8caac9
Web client test infrastructure
zachmullen Oct 5, 2024
98232ba
Make test relevant to Histomics functionality
zachmullen Oct 9, 2024
0579336
Support playwright test recording
zachmullen Oct 9, 2024
728e5ab
Detach subprocess for test recording
zachmullen Oct 16, 2024
9dc52b0
Ignore SIGHUP from parent test process
zachmullen Oct 16, 2024
d53812c
Use `nohup` for playwright dev test env
naglepuff Oct 17, 2024
eb5aaae
add tailwind
jeffbaumes Oct 17, 2024
8ad50fd
Merge branch 'master' into update-with-master
naglepuff Oct 17, 2024
0b08a89
Don't import `girder.logger`
naglepuff Oct 17, 2024
611380c
Add and support app buttons.
manthey Oct 11, 2024
b181334
Merge remote-tracking branch 'origin/app-button' into wip-style
jeffbaumes Oct 22, 2024
6c9e86b
Merge branch 'master' into update-with-master
naglepuff Oct 31, 2024
dc43dfc
Use max annotations size config
naglepuff Oct 31, 2024
6958733
Fix imports for login view
naglepuff Nov 18, 2024
b691b9a
WIP Ensure apiRoot is defined before API calls
naglepuff Nov 18, 2024
fd21996
Merge branch 'master' into update-with-master
naglepuff Nov 18, 2024
58732cf
Remove console log statements
naglepuff Nov 18, 2024
7b99f18
Merge branch 'master' into update-with-master
naglepuff Dec 6, 2024
b97ad40
Merge branch 'master' into update-with-master
naglepuff Dec 12, 2024
2339ca9
Merge pull request #425 from DigitalSlideArchive/update-with-master
naglepuff Dec 12, 2024
85de0c4
Update requirements
naglepuff Jan 14, 2025
53080c6
Remove existing client tests
naglepuff Jan 14, 2025
8a21312
Fix webroot test
naglepuff Jan 14, 2025
e56ab37
Use env var to set webroot path
naglepuff Jan 14, 2025
237be0e
Run celery tasks synchronously in testing
naglepuff Jan 15, 2025
1accee1
Update annotation with girder ID tests
naglepuff Jan 15, 2025
55aea8f
Ignore lint rules related to logging formatted strings
naglepuff Jan 15, 2025
d184bf1
Format
naglepuff Jan 15, 2025
8d9d4ae
Ignore lint error
naglepuff Jan 15, 2025
5c3272e
Make linter aware of the `girder` global
naglepuff Jan 15, 2025
6e108c0
Don't lint files in `/dist-app`
naglepuff Jan 15, 2025
0e0e600
Format client files
naglepuff Jan 15, 2025
0e93644
Add format commits to blame ignore
naglepuff Jan 22, 2025
74a6a20
Build histomics client for tests and release
naglepuff Jan 22, 2025
9562724
Format circleci config
naglepuff Jan 22, 2025
dc30d62
Use prerelease packages instead of files
naglepuff Jan 27, 2025
8da4b82
Go back to root directory after client build
naglepuff Jan 27, 2025
01f9694
Make nvm available in switch step
naglepuff Jan 27, 2025
a45b0ac
Use correct nvm directory
naglepuff Jan 27, 2025
bba7c42
Update package-lock.json
naglepuff Jan 27, 2025
cbc3c39
Fix comment formatting
naglepuff Jan 27, 2025
b629e34
Build client for noanalysis test env
naglepuff Jan 27, 2025
0a06c09
Ignore formatting fix in git blame
naglepuff Jan 27, 2025
ed68ae5
Pin large-image packages
naglepuff Jan 29, 2025
d0fbb73
Run pre-commit in CI linting phase
zachmullen Jan 28, 2025
157c593
Make pre-commit CI pass
zachmullen Jan 29, 2025
4a6788f
Enable web client testing in CI
zachmullen Jan 29, 2025
b15606c
Use correct mongodb URL in playwright testing in CI
zachmullen Jan 29, 2025
08a2299
Install playwright in CI
zachmullen Jan 29, 2025
6b8d4ca
Remove screenshot from repo
zachmullen Jan 30, 2025
bc1fb91
Merge pull request #444 from DigitalSlideArchive/playwright-in-ci
zachmullen Jan 30, 2025
af1396d
Merge branch 'master' into girder-5-update-from-main-20250204
naglepuff Feb 4, 2025
72af200
Bump large_image packages
naglepuff Feb 4, 2025
37817cd
Move access of widgets to be post import time
naglepuff Feb 5, 2025
89fa1de
Merge pull request #443 from DigitalSlideArchive/girder-5-ci-updates
naglepuff Feb 5, 2025
a758635
Merge pull request #449 from DigitalSlideArchive/girder-5-update-from…
naglepuff Feb 5, 2025
59afb4d
Make sure colorpicker exists before destroying
naglepuff Nov 18, 2024
c038f25
Don't rely on moment.js for timestamp
naglepuff Jan 28, 2025
bad22b2
Use eastdesire/jscolor color picker
naglepuff Jan 28, 2025
442620d
Use JsColor for all colorpickers
naglepuff Jan 29, 2025
2da5598
Merge pull request #446 from DigitalSlideArchive/g5-fix-color-picker
naglepuff Feb 6, 2025
8432b14
Fix accessing things in large_image namespace
naglepuff Feb 12, 2025
0e3768f
Use latest large image prerelease versions
naglepuff Feb 12, 2025
713f8fa
Merge pull request #451 from DigitalSlideArchive/fix-importing-vue-co…
naglepuff Feb 12, 2025
b4d846a
Run annotation ingestion in request thread
zachmullen Mar 4, 2025
0d33fb5
Merge pull request #452 from DigitalSlideArchive/annotations-in-reque…
zachmullen Mar 4, 2025
6540b59
Add submenu plugin to correct jQuery
naglepuff Mar 4, 2025
698cdd4
Update package-lock
naglepuff Mar 5, 2025
08b67ec
Reference related GH issue in comments
naglepuff Mar 5, 2025
bab7b64
Use non-girder.$ jquery for plugin
naglepuff Mar 5, 2025
0486292
Make sure menu fully collapses when closed
naglepuff Mar 5, 2025
73f42d3
Merge pull request #453 from DigitalSlideArchive/fix-submenupicker
naglepuff Mar 5, 2025
3ea7535
Merge branch 'master' into update-master-20250306
manthey Mar 6, 2025
1ec5d7f
Merge pull request #455 from DigitalSlideArchive/update-master-20250306
manthey Mar 6, 2025
82ef6ef
Add PR #456 to girder-5
manthey Mar 10, 2025
185b86e
Merge pull request #457 from DigitalSlideArchive/add-456-girder-5
manthey Mar 10, 2025
ec521ae
Merge branch 'master' into girder-5
manthey Apr 8, 2025
9823644
Fix including plotly and select2
manthey Apr 9, 2025
d3f4536
Merge pull request #465 from DigitalSlideArchive/fix-plot
manthey Apr 11, 2025
95d666c
Fix annotation handler
manthey Apr 11, 2025
e74d7cc
Let large_image_annotations ingest annotations
manthey Apr 14, 2025
9be452e
Merge pull request #467 from DigitalSlideArchive/ingest-annotations
manthey Apr 16, 2025
1abc32f
Fix event stream reference
manthey Apr 16, 2025
d3f1296
Merge branch 'master' into girder-5
manthey Apr 16, 2025
7996c8c
Export HeaderImageView
bnmajor May 4, 2025
da0025c
Export the ColorPickerInput component
bnmajor May 4, 2025
3922ade
Run release job on girder-5
naglepuff May 7, 2025
a8eae23
Include built client code in girder 5 releases
naglepuff May 7, 2025
3e0157b
Merge branch 'master' into wip-style
manthey May 8, 2025
7c555d5
Generate correct tag names on release
naglepuff May 12, 2025
0522158
Merge pull request #470 from DigitalSlideArchive/update-exports
bnmajor May 14, 2025
3cd231a
Merge pull request #471 from DigitalSlideArchive/publish-on-girder-5-…
naglepuff May 14, 2025
b87de85
Merge branch 'wip-style' into v5-wip-style
naglepuff May 21, 2025
9fda2bc
Merge branch 'master' into wip-style
manthey May 23, 2025
4007d0e
Unpin large image plugin dependencies
naglepuff May 27, 2025
a1e8dd3
Merge branch 'master' into wip-style
manthey Jun 5, 2025
f1a147c
Merge branch 'master' into girder-5
manthey Jun 5, 2025
31db25b
Merge branch 'master' into wip-style
manthey May 23, 2025
594a90d
Merge branch 'wip-style' into v5-wip-style
naglepuff May 27, 2025
87999a7
Merge branch 'wip-style' into v5-wip-style
naglepuff Jun 5, 2025
7d51791
Bump large-image pinned prerelease dependencies
zachmullen Jun 24, 2025
42d2fa3
Bump large-image dependency version
zachmullen Jun 24, 2025
7995180
Merge branch 'master' into girder-5
manthey Jun 24, 2025
caa4c23
Merge branch 'master' into girder-5
manthey Jul 29, 2025
fd74525
Fix merge of annotation history PR
manthey Jul 30, 2025
fc9def0
Merge branch 'master' into girder-5
manthey Jul 30, 2025
d603b3a
Update setup.py for girder-5
manthey Jul 31, 2025
8405f15
Update for changes to notification system
manthey Jul 31, 2025
c3153c6
Merge pull request #493 from DigitalSlideArchive/update-girder-5
manthey Jul 31, 2025
07c6646
Inline the favicon as part of the vite build
manthey Aug 1, 2025
e1af1c6
Merge pull request #494 from DigitalSlideArchive/inline-favicon
manthey Aug 4, 2025
8d3eb45
Remove a debug line
manthey Aug 7, 2025
444b5dd
Update girder-5 version
manthey Aug 8, 2025
3976017
Merge pull request #496 from DigitalSlideArchive/update-girder-5
manthey Aug 8, 2025
1ccb2ee
Add tailwind to build, remove CDN usage
naglepuff Aug 20, 2025
cc14324
Merge branch 'girder-5' into v5-wip-style
naglepuff Aug 21, 2025
21c7b15
Update node modules lockfile
naglepuff Aug 21, 2025
4d19d45
Format postcss/tailwind config files
naglepuff Aug 21, 2025
4f5f7c3
Merge branch 'master' into girder-5
naglepuff Aug 27, 2025
e731186
Merge branch 'girder-5' into v5-wip-style
naglepuff Aug 27, 2025
1e70d6e
Merge branch 'master' into girder-5
manthey Sep 3, 2025
ad6caef
Fix serving from something other than the default root
manthey Sep 3, 2025
904ec4b
Merge pull request #501 from DigitalSlideArchive/alternate-root
manthey Sep 3, 2025
8ef8eb9
Merge branch 'girder-5' into v5-wip-style
manthey Sep 11, 2025
82ad878
Update girder version
manthey Sep 18, 2025
f610a01
Merge branch 'master' into girder-5
manthey Sep 18, 2025
502799b
Merge branch 'girder-5' into v5-wip-style
manthey Sep 19, 2025
6e6fe9a
Merge branch 'master' into girder-5
manthey Oct 6, 2025
8dc76c7
Merge branch 'girder-5' into v5-wip-style
manthey Oct 6, 2025
49467cb
Merge branch 'master' into girder-5
manthey Oct 10, 2025
a48d68e
Merge branch 'girder-5' into v5-wip-style
manthey Oct 10, 2025
aabba90
Merge branch 'master' into girder-5
manthey Oct 15, 2025
88369f9
Merge branch 'girder-5' into v5-wip-style
manthey Oct 15, 2025
6d30c9d
Merge branch 'master' into girder-5
manthey Oct 16, 2025
74dc3ee
Merge branch 'master' into girder-5
manthey Nov 17, 2025
8c6af48
Merge branch 'girder-5' into v5-wip-style
manthey Nov 17, 2025
3e9851d
Merge branch 'master' into girder-5
manthey Nov 21, 2025
383177b
Merge branch 'girder-5' into v5-wip-style
manthey Nov 21, 2025
e1be23f
Merge branch 'master' into girder-5
manthey Nov 25, 2025
b4aa66f
Merge branch 'girder-5' into v5-wip-style
manthey Nov 25, 2025
ce0f069
Merge branch 'master' into girder-5
manthey Dec 2, 2025
0166b66
Merge branch 'girder-5' into v5-wip-style
manthey Dec 2, 2025
1eab12b
Merge branch 'master' into girder-5
manthey Dec 3, 2025
cbfebdc
Merge branch 'girder-5' into v5-wip-style
manthey Dec 3, 2025
600d5ba
Merge branch 'master' into girder-5
manthey Dec 5, 2025
11f241c
Merge branch 'girder-5' into v5-wip-style
manthey Dec 5, 2025
0c7bd06
Merge branch 'master' into girder-5
manthey Jan 12, 2026
9fc8f9d
Merge branch 'girder-5' into v5-wip-style
manthey Jan 12, 2026
3dc9683
Fix a style in the wip-style branch
manthey Jan 12, 2026
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
86 changes: 82 additions & 4 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -10,15 +10,59 @@ executors:
- image: rabbitmq
resource_class: large
commands:
use_nvm:
description: "Use nvm"
parameters:
node:
type: string
default: v20
steps:
- run:
name: Use nvm
# see https://discuss.circleci.com/t/nvm-does-not-change-node-version-on-machine/28973/14
command: |
echo 'export NVM_DIR="/root/.nvm"' >> $BASH_ENV
echo '[ -s "$NVM_DIR/nvm.sh" ] && \. "$NVM_DIR/nvm.sh"' >> $BASH_ENV
- restore_cache:
name: Restore nvm cache
key: v1-nvm-cache-<< parameters.node >>
- run:
name: Switch node versions
command: |
nvm install << parameters.node >>
nvm alias default << parameters.node >>
NODE_DIR=$(dirname $(which node))
echo "export PATH=$NODE_DIR:\$PATH" >> $BASH_ENV
- run:
name: Check node versions
command: |
node --version
npm --version
build_client:
description: "Build HistomicsUI client"
steps:
- run:
name: Build client
command: |
pushd histomicsui/web_client
npm ci
npm run build
popd
install_playwright:
description: "Install playwright"
steps:
- run:
name: Install playwright with dependencies
command: |
pushd histomicsui/web_client
npx playwright install --with-deps
popd
tox:
description: "Run tox"
parameters:
env:
type: string
steps:
- run:
name: Preinstall phantomjs to work around an npm permission issue
command: npm install -g phantomjs-prebuilt --unsafe-perm
- run:
name: Run tests via tox
# Piping through cat does less buffering of the output but can
Expand All @@ -42,34 +86,57 @@ jobs:
executor: toxandnode
steps:
- checkout
- use_nvm
- build_client
- tox:
env: py310
- coverage
py311:
executor: toxandnode
steps:
- checkout
- use_nvm
- build_client
- tox:
env: py311
- coverage
py312:
executor: toxandnode
steps:
- checkout
- use_nvm
- build_client
- tox:
env: py312
- coverage
py313:
executor: toxandnode
steps:
- checkout
- use_nvm
- build_client
- tox:
env: py313
- coverage
web_client:
executor: toxandnode
environment:
CI: "true"
HEADLESS: "true"
GIRDER_CLIENT_TESTING_MONGO_URI: mongodb://localhost:27017
steps:
- checkout
- use_nvm
- build_client
- install_playwright
- tox:
env: webtest
noanalysis:
executor: toxandnode
steps:
- checkout
- use_nvm
- build_client
- tox:
env: noanalysis
- coverage
Expand All @@ -84,6 +151,8 @@ jobs:
- image: girder/tox-and-node
steps:
- checkout
- use_nvm
- build_client
- deploy:
name: Run tests via tox
# Piping through cat does less buffering of the output but can
Expand Down Expand Up @@ -136,6 +205,13 @@ workflows:
branches:
ignore:
- gh-pages
- web_client:
filters:
tags:
only: /^v.*/
branches:
ignore:
- gh-pages
- release:
requires:
- py310
Expand All @@ -147,4 +223,6 @@ workflows:
tags:
only: /^v.*/
branches:
only: master
only:
- master
- girder-5
19 changes: 19 additions & 0 deletions .circleci/get_version.py
Original file line number Diff line number Diff line change
@@ -0,0 +1,19 @@
import re

import setuptools_scm


def main():
version = setuptools_scm.get_version()
expected_version_regex = r'(\d+\.\d+\.\d+)a(\d+).+$'
match = re.match(expected_version_regex, version)
if not match:
error_message = f'Version {version} does not match the expected format'
raise ValueError(error_message)
base_version = match.group(1)
alpha_version = match.group(2)
print(f'{base_version}a{alpha_version}')


if __name__ == '__main__':
main()
16 changes: 16 additions & 0 deletions .circleci/publish_pypi.sh
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
#!/bin/bash

set -e

export SETUPTOOLS_SCM_PRETEND_VERSION=`python -m setuptools_scm | sed "s/.* //"`
if [ "${CIRCLE_BRANCH-:}" = "master" ]; then
export SETUPTOOLS_SCM_PRETEND_VERSION=`echo $SETUPTOOLS_SCM_PRETEND_VERSION | sed "s/\+.*$//"`
elif [ "${CIRCLE_BRANCH-:}" = "girder-5" ]; then
SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)"
pip install setuptools-scm
export SETUPTOOLS_SCM_PRETEND_VERSION=$(python "$SCRIPT_DIR/get_version.py")
fi

python -m build
twine check dist/*
twine upload --skip-existing dist/*
4 changes: 4 additions & 0 deletions .git-blame-ignore-revs
Original file line number Diff line number Diff line change
Expand Up @@ -13,3 +13,7 @@ f1c2190ab04ab867c655b4217f807e9f567772c8
9475b89640a6de84788b79ba68d5ed9aeb1a9ff4
# PR 359: Apply ruff formatting and linting
97b21f031e4769043b2c3a464ea4cf8e9a60c219
# PR 443: Format Girder 5
d184bf1c2d5c12e643f8e5536c7707744c72e7ba
0e0e6009391bcbf9bde7be6ebbb121cf84ae1f32
cbc3c3952acef976b7b0be732e9ebb7686e98c8e
1 change: 1 addition & 0 deletions .gitignore
Original file line number Diff line number Diff line change
Expand Up @@ -12,6 +12,7 @@ env/
build/
develop-eggs/
dist/
dist-app/
downloads/
eggs/
.eggs/
Expand Down
3 changes: 2 additions & 1 deletion .pre-commit-config.yaml
Original file line number Diff line number Diff line change
Expand Up @@ -48,7 +48,8 @@ repos:
- id: codespell
args:
- --ignore-words-list
- "hist,indext,pixelx,thex,subtile"
- "hist,indext,pixelx,thex,subtile,afterAll"
- --exclude-file=histomicsui/web_client/package-lock.json
- repo: https://github.com/syntaqx/git-hooks
rev: v0.0.18
hooks:
Expand Down
3 changes: 3 additions & 0 deletions MANIFEST.in
Original file line number Diff line number Diff line change
Expand Up @@ -6,3 +6,6 @@ graft histomicsui
graft docs
prune test
global-exclude *.py[co] *.cmake __pycache__ node_modules

prune histomicsui/web_client
recursive-include histomicsui/web_client/dist/*
6 changes: 6 additions & 0 deletions README.rst
Original file line number Diff line number Diff line change
Expand Up @@ -68,6 +68,12 @@ Now install the histomicsui package, have Girder build its UI, and start the Gir
girder build
girder serve

Note that ``girder serve`` should only be used in development. In production, use a WSGI server such as gunicorn, e.g.::

.. code-block:: bash

gunicorn girder.wsgi:app --bind=localhost:8080 --workers=4 --preload

To use Girder Worker:

.. code-block:: bash
Expand Down
Loading