Releases: Dallinger/Dallinger
Releases · Dallinger/Dallinger
10.0.1
Added
- Implemented
Experiment.get_status
, a customizable method that reports the current status of the experiment. - Implemented
Experiment.before_request
andExperiment.after_request
, customizable hooks for running code before and after HTTP requests.
Fixed
- Fixed Chrome and ChromeDriver download link in Dockerfile.
- Fixed dallinger requirement in demos and updated demos' constraints.
Removed
- Removed unused numpy and pandas dependencies.
Updated
- Infrastructure: Updated dependencies; pin pytest == 8.0.0.
10.0.0
Breaking
- Removed support for Python 3.8.
Added
- Added support for Python 3.12.
- Remove version pinning for numpy, panda, pre-commit, sphinx, and sphinx-related packages.
- CI: Added Python 3.12 to GitHub workflow matrix and run Full tox tests for both Python 3.11 and 3.12.
- CI: Use Docker image python:3.12-bullseye.
- The config parameter
num_dynos_worker
(default:1
) which allows for the configuration of the number of workers can now also be used in SSH deployments. This change is beneficial for parallellizing heavy background worker processes. Previously, this config parameter only worked for Heroku deployments. - Added
grace_period 30s
to Caddy HTTP server configuration to prevent the Caddy server from 'getting stuck' sometimes. - Added better checks in
dallinger docker-ssh
for pre-existing apps with the same name. - Added Dozzle service to
dallinger docker-ssh
deployments.
Changed
- Revised logging text for Prolific.
- Improve
handle_launch_data
error reporting and use it also for docker-ssh deployments.
Updated
- Infrastructure: Updated dependencies; pin ipython < 8.19.
9.12.0
- Removed the character limit for the
type
attribute on SQLAlchemy classes. - Infrastructure: Migrated project configuration/metadata to
pyproject.toml
and removed thesetup.py
andsetup.cfg
files; moved flake8 config to new.flake8
file. - Infrastructure: Updated dependencies; pinned version of
pre-commit
package in order to be compatible with Python 3.8.
9.11.0
- Fixed bug where the dashboard URL was no longer printed in the
dallinger develop
command. - Fixed bug where participant IDs weren't always displaying properly in the dashboard network visualization. In particular, this fix concerns the labelling of edges between nodes and infos.
- Fixed bug in
get_polymorphic_mapping
which was causing the experiment dashboard to fail when two classes of the same name were registered both in the local experiment and in another package. - Fixed and refactored Chrome/ChromeDriver download and installation to resolve failing docker CI job.
- Removed the
prolific_reward_cents
config variable. Usebase_payment
instead to set base compensation for participants. Note thatbase_payment
is written in terms of the base unit for the currency, not in cents. So, if yourprolific_reward_cents
was originally set to 50, then you should set yourbase_payment
to 0.5. - Enhancement: Added a pgbouncer container/proxy that will pool postgresql connections to solve problems with too many PostgreSQL connections in docker-ssh deployments.
- Enhancement: Added 'Support Slack channel' advert to documentation index page and README.
- Enhancement: Allow recruiters to be instantiated outside active experiments by making
completion_code
a property of classRecruiter
. - Infrastructure: Updated the packages used in GitHub workflow configurations (ci.yml, deploy.yml) to their latest versions.
- Deprecated the
prolific_maximum_allowed_minutes
config variable.
9.10.0
- Enhancement: Added support for custom WorkerEvents allowing experiments to run
tasks asynchronously on worker processes. - Fixed: Migrated
experiment_server/sockets.py
to use theFlask-Sock
library. - Enhancement: Added a control channel that all socket enabled experiments will
listen on for "administrative" messages (e.g. connect/disconnect). - Enhancement: Updated WebSocket experiment integraton to use Async processing
by default and update documentation. - Enhancement: Added boolean
include_sensitive
param toConfig.as_dict
. - Fixed: Corrected waiting room url issue.
- Fixed: Fixed the display of participant IDs in the dashboard monitor.
- Infrastructure: Updated
setup-chromedriver
to v2.1.2. - Infrastructure: Updated dependencies; pinned versions of
sphinxcontrib-*
packages
in order to be compatible with Python 3.8.
9.9.0
- Fixed: Added check for dependencies using
pkg_resources
. - Fixed: Fixed issues where CI jobs were failing due to changes of how ChromeDriver needs to be downloaded for Chrome versions >= 115.
- Enhancement: Added new
Experiment
methodon_assignment_submitted_to_recruiter
to allow experiment authors to override the behavior when a participant finishes an experiment. - Enhancement: Added
--update
option todallinger docker-ssh deploy
. - Enhancement: Make it possible to destroy a partially deployed app.
- Enhancement: Added new config variable
lock_table_when_creating_participant
to prevent possible deadlocks on theParticipant
table. - Enhancement: Added sanity checks for
dallinger docker-ssh deploy
to fail early in case the option--dns-host
doesn't refer to a properly configured name and issue a warning that some browsers might deem the domain insecure. - Removed: Removed
--resolver=backtracking
frompip-compile
commands as it became the default in pip-tools 7.0.0. - Documentation: Updated section on releasing a new version of Dallinger.
- Infrastructure: Updated dependencies; replaced bumpversion with bump2version.
9.8.2
- Fixed a bug in dlgr.submitAssignment that was causing MTurk HIT submission to fail. This bug was introduced in v.9.8.0 when fixing another bug. The bug meant that
externalSubmit
was being called in the popup window, not the MTurk iframe, causing submission to fail.
9.8.1
- Fixed deployment to Heroku due to Heroku now appending identifiers to subdomains.
- Fixed indentation bug writing Docker volumes in docker-compose.yml.j2.
- Fixed visualization bug in dashboard monitor.
- Fixed previously skipped Redis message queue test.
- Fixed some typos.
- Infrastructure: Updated dependencies; require numpy < 1.25.
9.8.0
- Fixed several bugs that were manifesting on SSH deployments, some of which were specific to Prolific:
- Fixed wrong signature for
executor.run(
) call in docker_ssh.py. - Ensured that config is loaded before every Flask request; previously config was not loading in advance of the serving of static files and this was causing server errors.
- Fixed a bug in parent window closing which was preventing Prolific experiments from completing.
- Ensured that all fields in
dallinger.identity
are set properly when callingdallinger.createParticipant
.
- Fixed wrong signature for
- Fixed bug in Docker SSH when removing a pre-existing app with the same name.
- Fixed various deprecation warnings:
- Fixed 'DeprecationWarning: use options instead of chrome_options'.
- Removed
distutils
. - Removed
pkg_resources
by replacing corresponding code usingimportlib.metadata
. - Removed leftovers of support for Python 3.7 (
importlib_metadata
). - Migrated to
setuptools.find_namespace_package
for adding thedlgr.demos
namespace.
- Removed all mentions of Python 3.7; updated other Python version mentions consistently to 3.8, 3.9, and 3.10.
- Fixed: Make sure
docker_volumes
is not empty when adding additional volumes to docker-compose.yml. - Fixed deprecation warning 'Rename method_whitelist to allowed_methods' (
urllib3.util.retry.Retry
) incl. compatibility for urllib3 < 1.26.0. - Fixed tests for mock 5.0.2.
- Improvements to 'unique ID' storage:
- Save
uniqueId
indlgr.identity
JavaScript object - Increase
unique_id
database column string size to 150
- Save
- Infrastructure:
- Added Python 3.11 to list of supported programming languages
- Added Python 3.11 to CI workflow and updated Dockerfile to use Python 3.11
- Infrastructure: Updated dependencies; require ipython < 8.13.
9.7.0
- Fixed: Fixed failure in
docker-ssh deploy
that occurred when the app existed already. - Fixed: Fixed a bug where config dashboard credentials weren't being propagated to Docker deployments.
- Fixed: Fixed a bug where app name / ID (
app_name
) was not set appropriately in config during Docker deployment. Now when deploying withdocker-ssh
using a specified--app
argument this is saved as expected inconfig.heroku_app_id
. - Fixed: Fixed a bug where dollar signs weren't being escaped in docker-compose.yml.
- Fixed: Fixed a bug where the dashboard tab was closed on
submitAssignment()
. - Fixed: Replace Heroku obsolete dyno type 'hobby' with 'basic'.
- Enhancement: Added UI switch to the dashboard's experiment monitoring tab to toggle auto recruitment (
auto_recruit
) on/off. - Enhancement: Added new boolean config variable
activate_recruiter_on_start
(default:True
). If the variable is set toTrue
, then existing behavior is preserved; if set toFalse
, thenopen_recruitment()
is skipped when the experiment launches. This means that the user has to manually initialize recruitment (e.g. via the Prolific panel). - Infrastructure: Updated dependencies.