https://github.com/NYUCCL/psiTurk
Raw File
Tip revision: af007240c6f4ee682e63dce0f40ca272913e2a18 authored by Dave Eargle on 31 October 2022, 22:34:16 UTC
bump to 3.3.1 (#552)
Tip revision: af00724
CHANGELOG.md
# Changelog
All notable changes to this project will be documented in this file.

The format is based on [Keep a Changelog](https://keepachangelog.com/en/1.0.0/),
and this project adheres to [Semantic Versioning](https://semver.org/spec/v2.0.0.html).

## [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](https://psiturk.readthedocs.io/en/latest/experiment-exchange.html). See [here](https://psiturk.readthedocs.io/en/latest/experiment-exchange.html#contributing-to-the-exchange) 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](https://psiturk.readthedocs.io/en/latest/migrating.html) 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](https://psiturk.readthedocs.io/en/latest/configuration-overview.html) 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](https://psiturk.readthedocs.io/en/latest/dashboard.html). 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](https://psiturk.readthedocs.io/en/latest/dashboard.html#tasks)

#### 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)

## [2.3.5]
### Fixed
- moved _get_local_hitids out of list comprehension (#380)


## [2.3.4]
### 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


## [2.3.3]
### 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


## [2.3.2]
### 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


## [2.3.1]
### 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 `print`ing 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.


[Unreleased 3.0.0]: https://github.com/NYUCCL/psiTurk/tree/master
[Unreleased 2.3.x]: https://github.com/NYUCCL/psiTurk/tree/python2
[2.3.5]: https://github.com/NYUCCL/psiTurk/compare/2.3.4...2.3.5
[2.3.4]: https://github.com/NYUCCL/psiTurk/compare/2.3.3...2.3.4
[2.3.3]: https://github.com/NYUCCL/psiTurk/compare/2.3.2...2.3.3
[2.3.2]: https://github.com/NYUCCL/psiTurk/compare/2.3.1...2.3.2
[2.3.1]: https://github.com/NYUCCL/psiTurk/compare/2.3.0...2.3.1
back to top