Release Notes¶
This page is no longer being maintained.
This is the summary list of changes to Girder between each release. To find information about the latest release, see the releases page at https://github.com/girder/girder/releases. For full details on changes, see the commit logs at https://github.com/girder/girder/commits.
Unreleased¶
Changes¶
Bug Fixes¶
Server¶
Fixed a bug where removing admin status from a user via the REST API did not work. (#2720).
Web Client¶
Ensure that a text input doesn’t appear after downloading checked items. (#2736)
Python Client¶
Added support for uploading empty files. (#2714).
Added Features¶
Google Storage is provisionally supported via S3 Assetstore (#2876).
Added an
NPM_EXE
environment variable and--npm
flag togirder build
to configure the npm executable used. (#2826).Added a privacy notice link to the footer which can be set on the Server Configuration view of the web client ( #2728).
Added a setting to disable the notification stream. This may improve Girder’s performance in runtime environments with fewer threads (#2712).
Added a task information panel that shows remote worker status. This is accessible from the jobs list when the remote worker plugin is enabled and also from the worker plugin configuration page. (#2678)
Allow users to login with two-factor authentication via TOTP on a mobile authenticator app. (#2655).
Python Client¶
Added a
--token
option to the girder-client command line interface to allow users to specify a pre-created authentication token. (#2689).Added a
--retry
option to the girder-client command line interface to retry connection and certain error responses (#2697).Added a
--verbose
option to the girder-client command line interface to increase the verbosity of information dumped to stderr (#2699).
Web Client¶
Filesystem and S3 assetstore imports show the selected destination resource path next to the ID when selected via the browser widget (#2775).
Changes¶
The Server FUSE plugin has been refactored into the
girder mount
command. Instead of setting a value in the configuration file and turning on a plugin, rungirder mount <mount path>
before or after starting a Girder server. (#2691)
Girder 2.5.0¶
Added Features¶
Added a new system setting that will allow admins to disable logging in via a password. If disabled, the login dialog in the web client will no longer show the password login form. (#2504)
Added a new system setting that will allow admins to disable the API key authentication functionality. (#2438)
API endpoint in the hashsum_download plugin that returns a list of files matching a given hash sum. (#2548)
Integration with
dogpile.cache
for caching key value pairs viagirder.utility._cache.cache
andgirder.utility._cache.requestCache
. (#2274)Plugins can customize the header and description on the Swagger page. (#2607)
Common Girder operations can now be executed with a top level
girder
command. (#2596)Added the server FUSE plugin that mounts Girder files in a read-only user-space filesystem. (#2521)
Added support for the
--host
flag togirder serve
to allow dynamically setting the host. (#2570)Added support for running the Python test suite via the
tox
command. (#2528)Created a new “virtual folders” plugin. This plugin allows administrators to configure special read-only folders whose list of child items comes from a custom, user-defined database query. These folders act like database “views” into the item collection. (#2620)
Added a
File().getLocalFilePath
method. (#2633)The stream logger handles more properties. (#2522)
Future-proof for CherryPy removal of response timeouts. (#2487)
Only use new style Python 2 classes. (#2656)
Allow cancellation of raw Celery tasks. (#2602)
Allow assetstore implementations from models besides the assetstore model itself. This enables assetstore adapters in plugins to be managed by users who are not necessarily site administrators. (#2599)
Add validation logic to rest endpoint paging parameters. (#2462)
Add rest endpoint to send user validation email. (#2622)
Add a search mode registry and a search mode for dicom metedata. (#2450)
Allow creation of item_tasks tasks from girder_worker describe decorators. (#2270)
New plugin to allow browsing of Girder data in a tree view. (#2086)
Python Client¶
Add a method to stream contents of a file download. (#2476)
Web Client¶
Added a new, more fully-featured view for search results. (#2347)
For added safety, when deleting a collection a user will now be required to type the name of the collection into the confirmation dialog. (#2473)
New table_view plugin renders .csv and .tsv files as tables on the item page. (#2480)
Modal dialogs have a default maximum height and will have a scroll bar if needed. (#2523)
We now use the webpack DefinePlugin to add a build-time definition of the environment. This can be used to allow for different build output in production vs. development. (#2631)
Use
href
properties for navigation links in addition to JavaScript onclick events. (#2489) (#2578)Change instances of
.g-server-config
to.g-server-config a
to enable adding ofhref
properties to those linksAdd new methods:
folder.removeContents
,item.getFiles
,user.fromTemporaryToken
. (#2615)
Swagger Client¶
Swagger now expects zip files to be binary data, allowing them to be downloaded through the Web API. (#2562)
Testing¶
PYTHONPATH
can be specified for client tests. (#2535)- Support for writing server-side tests using
pytest
. (#2412) Added the pytest-girder package for downstream packages.
Added support for the
mongomock
package in the newpytest
suite.Plugins can be enabled for Pytest. (#2634)
- Support for writing server-side tests using
Flake8 settings are now able to be automatically detected by many editors and IDEs. The
flake8
tool may now be invoked directly from the command line, without necessarily using a CMake test. (#2543)ESLint settings for plugin tests are now able to be automatically detected by many editors and IDEs. The
eslint
tool (including options such as--fix
) may now be invoked directly from the command line, without necessarily using a CMake test. (#2550)
Bug fixes¶
Server¶
Support range requests of S3 non-redirected data handling. This fixes seeking on S3 assetstore files in the file context handler. (#2468)
Pin to a specific version of CherryPy to work around upstream issues on OPTION endpoints. (#2499)
When a plugin supplying an assetstore fails to load, other assetstores could not be listed. (#2498)
Run pip installation of plugins using a subprocess rather than the pip module, for forward compatibility with pip. (#2669)
Correct complex plugin dependencies parsing. (#2496)
Security Fixes¶
The default Girder server now binds to localhost by default instead of 0.0.0.0. (#2565)
Changes¶
Exceptions are now all accessible in the
exceptions
module and are descended from theGirderBaseException
class. (#2498)Require npm 5.2+ (with npm 5.6+ strongly recommended) to build the web client
Require MongoDB 3.2+ (#2540)
Disable the background event thread in WSGI mode. (#2642)
Update imports of library from “dicom” to “pydicom”. (#2617)
A log message is now emitted whenever a file is uploaded. (#2571)
Deprecations¶
Server side tests should be written using the new
pytest
infrastructure.Move CLI commands to a “cli” module and deprecate “python -m” methods for starting Girder servers. (#2616 <https://github.com/girder/girder/pull/2616>)
Removals¶
The CMake options
PYTHON_COVERAGE
,PYTHON_BRANCH_COVERAGE
, andPYTHON_COVERAGE_CONFIG
are removed, and will have no effect if set. Python tests will always output coverage information, using a standardized configuration. If external test infrastructure needs to be run with different options, it should invokepytest -cov-config ...
orcoverage run --rcfile=...
directly. (#2517)The CMake options
COVERAGE_MINIMUM_PASS
andJS_COVERAGE_MINIMUM_PASS
are removed, and will have no effect if set. If external test infrastructure needs to set a coverage threshold, it should be done with a Codecov (or similar service) configuration. (#2545)The CMake options
ESLINT_CONFIG_FILE
andESLINT_IGNORE_FILE
are removed, and will have no effect if set. If external test infrastructure needs to override ESLint configuration, it should be done using ESLint’s built-in configuration cascading mechanisms. Most typical external plugins will continue to work with their current configuration.The deprecated
DELETE /user/password
endpoint is removed. ThePUT /user/password/temporary
endpoint should always be used to reset passwords, as it uses a secure, token-based password mechanism. (#2621)Dropped support for Python3 < 3.5. (#2572)
Girder 2.4.0¶
Added Features¶
Server¶
Support for S3 buckets in regions other than us-east-1. (#2153)
Allow S3 credentials to be inferred by Boto. (#2229)
girder-shell
console script which drops the user into a python repl with a configured webroot, giving the user the ability to import from any of the plugins specified. (#2141)Support for configuration of pymongo client options as Girder config file options. (#2380)
Support for idiomatic use of Girder’s model classes. Rather than using
ModelImporter.model
with strings for the model and plugin names, you can now use python imports of the model classes and instantiate and use them directly. (#2376)Support for mounting REST endpoints under a prefix. Useful for grouping related endpoints, such as those exposed by a plugin. (#2395)
Option in worker task input specs to use local file paths in the worker when available, to avoid downloading files. (#2356)
Core setting allowing the instance brand name to be set. (#2283)
Core setting allowing the instance contact email address to be set. (#2279)
Core setting allowing the GUI header color to be set. (#2334)
“terms” plugin, which provides the option to require users to agree to a “Terms of Use” before accessing a collection. (#2138)
Improve the “homepage” plugin’s capabilities for making in-place changes to the home page. (#2328)
API endpoint, “/user/details”, allowing site admins to list the total number of users. (#2262)
Job cancellation support to Girder Worker jobs. (#1983)
Accept metadata on item and folder creation via the REST API. (#2259)
Allow
girder-install plugin
to get dependencies from asetup.py
file. (#2370)Create a registry for adding new search modes. (#2363)
Web Client¶
Published the Girder client side code as an npm package (https://www.npmjs.com/package/girder). (#2242)
Python Client¶
DevOps¶
Deprecations¶
Python Client¶
requests.HTTPError
should be caught in places wheregirder_client.HttpError
used to. (#2223)
Bug fixes¶
Server¶
Web Client¶
Remove Bootstrap re-styling of tooltips. (#2406)
DevOps¶
Fixed an issue which disallowed provisioning with the Girder Ansible module under Python 3. (#2449)
Girder 2.3.0¶
Bug fixes¶
Fix uploading into HDFS assetstore using new upload mode
Security Fixes¶
Ensure token scopes on API keys are valid
Add secure cookie setting
Upgrade swagger-ui version to fix XSS issues
Added Features¶
Add REST endpoint for creating job models
Add graphs for Jobs status history to Admin UI
Improvements to item_tasks job execution, task import, task lists, and permission flag UIs
Show plugin load failures on plugins page
Add Candela plugin
Compute missing hashes when files are uploaded, and allow for hashsum calculation for non-filesystem assetstore files
Add support for running Girder in AWS Elastic Beanstalk
Upgrade S3 assetstore to Boto3
Add LDAP authentication plugin
Send all http server errors to the error log
Added an event when the web client connection to the server is stopped or started
Support uploading small files in a single REST call
Improved GridFS support, including better sharding support and faster writes
Add a Description method to mark a route as deprecated
Many improvements to the web client test infrastructure including
A new CMake macro,
add_standard_plugin_tests
, to enable basic tests for a typical plugin layoutA new
girderTest.importPlugin
function, to load plugin JS and CSS in web client testsA static analysis test for Stylus files
New rules for Javascript and Pug static analysis tests
A facility to initialize the database to a specific state for testing
Changes¶
Upgrade web client to use jQuery 3
Upgrade web client to use Backbone 1.3
Require Node.js 6.5+ and npm 3.10+ (with npm 5.3 strongly recommended) to build the web client
Deprecations¶
job Plugin: Python Job model
listAll
methodhashsum_download plugin: Python
HashedFile.supportedAlgorithms
symbolitem_tasks plugin:
item_task_json_description
anditem_task_json_specs
routesmodule.loaders
in webpack helper files, and the use of Webpack 1.0 syntax in plugins’ webpack helper filesrestRequest.error
in rest.jsnpm-install
in client side buildgirderTest.addCoveredScript
andgirderTest.addCoveredScripts
in testUtilities.jsaccess to file paths outside
/static/built/
in the web client test environment
Removals¶
Remove the unmaintained external web client
Remove the unmaintained jQuery “girderBrowser” client, and associated “jquery_widgets” plugin