Skip to content

Latest commit

 

History

History
245 lines (195 loc) · 11 KB

CHANGELOG.md

File metadata and controls

245 lines (195 loc) · 11 KB

Changelog

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog, and this project adheres to Semantic Versioning.

[3.3.1]

Fixed

  • Bumped pyOpenSSL to 22.0.0 to fix a problem with its cryptography package requirement.

[3.3.0]

Added

  • Separate config settings for mturk qualifications for live and sandbox modes (#505)
  • Added configuration option for changing autogenerated dashboard-related tables to be unique per experiment -- for use when a single database is shared across multiple experiments (#495)

Updated

  • Facelift for dashboard

Fixed

  • Fix backwards-compat bug for assignments-table (#528) -- Thanks @jacob-lee!

[3.2.2]

Fixed

  • Pin markupsafe to 2.0.1 (#541) -- Thanks for the report @jmuchovej

[3.2.1]

Fixed

  • Fix SSTI vulnerability in ad and consent pages (#517)

[3.2.0]

Added

  • Add custom MTurk qualification support (#493)

  • /dashboard/campaigns and /dashboard/tasks now warn if do_scheduler is False (#502)

  • amt_services_wrapper's _get_local_hitids no longer queries the Participants table for hitids. Instead, it wholly relies on the Hit table (amt_hits by default). (#498) -- Thanks @evankirkiles!

    Experiments that are migrating from psiturk v2 should run the new psiturk migrate db command when migrating to this release.

Fixed

  • user_utils.PsiTurkAuthorization should not allow empty username or password! (#492)
  • aws env vars AWS_ACCESS_KEY_ID and AWS_SECRET_ACCESS_KEY are now preferred over anything set in a config file somewhere (#496, #500)
  • Dashboard will refuse to start if secret_key is missing or if no valid mturk credentials (#497)
  • Scheduler is started "paused" if do_scheduler is False, so that tasks can still be created, modified, and destroyed (#502)
  • Campaigns' "update goal" functionality fixed -- the associated task is updated with the new goal (#502)
  • example template for thanks-mturksubmit was missing a call to {{ super() }}, leading to no styles being loaded by default (#503)

Changed

  • Migrate from Travis CI to Github Actions (#500)
  • API now uses a custom error handler to pass sometimes-gory exception messages back to the api user (#502)
  • Change the Participant.datastring column to be lazy-loaded, causing the datastring to not be loaded by the sqlalchemy model until explicitly requested. Leads to massive speed increases for any query involving the Participant table for cases where the datastring is large. (Thanks @evankirkiles!)(#504)

[3.1.0]

Added

  • ability to launch the experiment server from a subdirectory instead of just the default directory by passing app_dir keyword argument to experiment_server.launch() (#484)

Fixed

  • Flask's StreamLogger is now used by default when ON_CLOUD=1, assuming no errorlog is set in the config file (#483)
  • fix download_datafiles scoping error (#487)

3.0.6

Added

  • added backwards compatibility for class InvalidUsage exception in experiment_errors.py, for custom.py files generated by old version of psiturk. This was previously throwing an exception in versions 3.0.0 – 3.0.5 (#479)

Fixed

  • fix bonus_message config.get section reference (3219016)
  • fix another reference to a config section name that doesn't exist, apparently the unit tests are horrible

3.0.5

Fixed

  • Fixed backwards compatibility for translating ON_HEROKU=1 to ON_CLOUD=1

3.0.4

Fixed

  • fix shell's error during hit_create that prevented ad url from showing.
  • fix shell's messaging about invalid aws credentials

3.0.3

Fixed

  • Changed default ad url port to 443 instead of 80

3.0.2

Changed

The currently-undocumented psiturk-heroku-config command no longer attaches a postgresql addon by default. I'm calling this just a bugfix because (1) the docs assume that it doesn't attach the psql database, and (2) that command isn't even documented anyway. Will version-feature-bump when this feature is better thought through.

3.0.1

Fixed & Changed

  • fixed an inconsistency between shell usage of "allowlist-qualification-ids" and and config file calling the same "require_quals", same for "blocklist" and "block_quals". Also, documentation incorrectly described the config file accepting "allowlist_qualification_ids", while it only actually accepted "require_quals." Standardized on "require" and "block" throughout. Maintained backwards compatibility except in shell usage since docopt doesn't seem to allow it in the way it parses the usage string, but no way am I going to bump to 4.0.0 just because of that!

3.0.0

Changed

  • Drop support for all psiturk.org-related services, including the psiturk Secure Ad Server, psiturk.org api keys, and the experiment-exchange
  • moved the experiment exchange into the docs. See here for how to contribute a project to the new exchange.
  • Drop support for python2 -- only python > 3.6 is supported.
  • upgrade boto to boto3, as boto dropped support for python2.
  • upgrade cmd2 to 0.9 (only supports python3)
  • a jinja "layout" is used for many of the bundled experiment pages, making general changes to standard pages easier
  • def regularpage in experiment.py no longer calls flask's render_template -- instead, it sends the file as-is. If you need a custom template to be rendered, then create a route for your template in custom.py, and call render_template() on it yourself.
  • psiturk.js preloadPages() now returns a Promise. See the migration guide for links to examples of using the new approach.
  • psiturk exception InvalidUsage changed to InvalidUsageError. Breaks custom.py files generated under psiturk v2.
  • moved psiturk.db.Base class to psiturk.models file

Configuration files

  • the configuration file created by running psiturk-setup-example now comments out default settings by prepending ; -- this makes it so that environment variables can override defaults not specified in config.txt. See the configuration overview page in the documentation for more information.
  • changed the default tablename to be assignments instead of turkdemo
  • changed the amt_keywords key to be just keywords
  • moved contact_email_on_error, browser_exclude_rule, cutoff_time, and allow_repeats under the Task Parameters section.
  • Renamed launch_in_sandbox (True, False) to be launch_in_mode (Sandbox, Live)

Added

  • add ability to customize participant condition assignment. (see 309a623)
  • if a commonly-forgotten required template is missing when not using the psiturk ad server, raise an exception

Dashboard

  • add a dashboard and the beginnings of a sort-of REST API that the dashboard uses. See the dashboard configuration overview in the documentation. The dashboard currently includes features such as the following:
    • view all participants by condition and status
    • launch "campaigns," which registers a scheduled event to keep posting rounds of HITs with 9 assignments each until a campaign goal is met
    • enable a "auto approve all participants" scheduled event
    • tasks only run if do_scheduler is True, see the tasks setting

Scheduler

  • added a task-runner setting, which wh

[2.3.12]

  • avoid owasp ad post block
    • set content-type application/json on post
    • remove all comments from example ad.html

[2.3.11]

Fixed

  • fix unable to do non-aws things on without aws credentials (#427)

[2.3.10]

Fixed

-- patch pass bonus amount as shell arg

[2.3.9]

Fixed

  • fix extend hit (#421)

[2.3.8]

Fixed

  • specified setproctitle in requirements.txt, to fix "server blocked" status message. Necessary for gunicorn < 20.0, but gunicorn >=20.0 requires python3

[2.3.7]

Fixed

  • requirements.txt generated with help of pipreqs instead of pip freeze, removing stale child dependencies, one of which was breaking zsh on osx catalina (#386)

[2.3.6]

Fixed

  • download_datafiles works on both python2 and python3 (#375)
  • gnureadline not forced onto macosx users (#371)

Fixed

  • moved _get_local_hitids out of list comprehension (#380)

Fixed

  • worker bonus didn't do anything because of shell parsing bug (see #377)
  • (probably) fixed utf-8 encoding issue when opening consent.html or ad.html

Fixed

  • datastring encoding to db was wrong
  • for python2, needed to check against six.string_types instead of str
  • worker approve <assignmentid | hitid> was incorrectly looking for already-credited local submissions instead of just submitted ones
  • worker approve --hitid was not filtering to just the local study

Added

  • add explanation for non-aws-users for how to use psiturk server commands without launching the shell

Fixed

  • psiturk hit create with use_psiturk_ad_server was throwing an error when trying to create a hit because of a missing success attribute on wrapperresponsesuccess

Added

  • test suite to pave the way for migrating to Python 3 (woo!)
  • Support for Python 3.6 and 3.7
  • travis CI runs setup.py tests for python 2.7, 3.6, and 3.7
  • table that tracks psiturk-created HITids in local db

Changed

  • psiturk_shell file does all printing through cmd2's .poutput so that stuff can be redirected
  • amt_services_wrapper and amt_services functions are wrapped via decorator so that they return a consistent Response-type object. This effectively separates the printing of any psiturk_shell data from the core psiturk functions. This will make a web interface doable. Also, it allows for the core functions to throw meaningful exceptions, which are caught by the wrapper and returned.
  • psiturk status message is pulled from github repo instead of from an api call to the psiturk.org api server. Also, the call to load this does not depend directly on urllib2 anymore.
  • update many dependencies because why not

Removed

  • Shell support for EC2 MySQL

Fixed

  • #352 - expiring a hit didn't push far enough into the past to actually expire instead of extend on the mturk side

[2.3.0]

Fixed

  • moved AWS mturk api to 2017–01–17 via a move to boto3. No psiturk version prior to 2.3.0 will work.