Skip to content

Releases: Dallinger/Dallinger

10.0.1

04 Mar 15:04
2833946
Compare
Choose a tag to compare

Added

  • Implemented Experiment.get_status, a customizable method that reports the current status of the experiment.
  • Implemented Experiment.before_request and Experiment.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

15 Feb 23:01
62de8e0
Compare
Choose a tag to compare

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

05 Jan 03:36
09ce3cb
Compare
Choose a tag to compare
  • Removed the character limit for the type attribute on SQLAlchemy classes.
  • Infrastructure: Migrated project configuration/metadata to pyproject.toml and removed the setup.py and setup.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

19 Dec 15:07
56380f2
Compare
Choose a tag to compare
  • 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. Use base_payment instead to set base compensation for participants. Note that base_payment is written in terms of the base unit for the currency, not in cents. So, if your prolific_reward_cents was originally set to 50, then you should set your base_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 class Recruiter.
  • 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

18 Aug 21:23
58b804b
Compare
Choose a tag to compare
  • Enhancement: Added support for custom WorkerEvents allowing experiments to run
    tasks asynchronously on worker processes.
  • Fixed: Migrated experiment_server/sockets.py to use the Flask-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 to Config.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

27 Jul 12:02
a553f5a
Compare
Choose a tag to compare
  • 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 method on_assignment_submitted_to_recruiter to allow experiment authors to override the behavior when a participant finishes an experiment.
  • Enhancement: Added --update option to dallinger 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 the Participant 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 from pip-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

03 Jul 05:42
abcfb49
Compare
Choose a tag to compare
  • 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

03 Jul 05:41
be02e16
Compare
Choose a tag to compare
  • 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

05 Jun 07:29
2849764
Compare
Choose a tag to compare
  • 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 calling dallinger.createParticipant.
  • 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 using importlib.metadata.
    • Removed leftovers of support for Python 3.7 (importlib_metadata).
    • Migrated to setuptools.find_namespace_package for adding the dlgr.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 in dlgr.identity JavaScript object
    • Increase unique_id database column string size to 150
  • 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

27 Apr 20:55
7fe8d43
Compare
Choose a tag to compare
  • 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 with docker-ssh using a specified --app argument this is saved as expected in config.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 to True, then existing behavior is preserved; if set to False, then open_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.