diff --git a/.changeset/aws-sdk-migration.md b/.changeset/aws-sdk-migration.md deleted file mode 100644 index b51555ce..00000000 --- a/.changeset/aws-sdk-migration.md +++ /dev/null @@ -1,37 +0,0 @@ ---- -"pushkin-cli": major ---- - -Complete AWS Fargate deployment modernization and critical bug fixes - -This major update completely modernizes the AWS deployment infrastructure with critical bug fixes and improvements: - -**Breaking Changes:** -- Migrated from AWS CLI to AWS SDK v3 for all AWS operations -- Standardized database configuration to use `url` instead of `host` throughout - -**Critical Bug Fixes:** -- Fix #364: Replace localhost with Service Discovery DNS for RabbitMQ in Fargate awsvpc networking mode -- Fix #363: RabbitMQ passwords now persist across multiple deployments (idempotent behavior) - -**New Features:** -- Added AWS Cloud Map (Service Discovery) support for ECS Fargate service-to-service communication -- Improved DNS handling with subdomain fallback to parent hosted zones -- Enhanced OAC (Origin Access Control) handling with retry logic -- Added comprehensive CloudWatch logging for ECS tasks -- Improved database connection reliability with exponential backoff retry logic - -**Improvements:** -- Complete JSDoc documentation for all AWS-related functions -- Better error messages and logging throughout deployment process -- Standardized async/await patterns for better error handling -- Improved security group and VPC configuration handling -- Enhanced RDS instance management with proper wait conditions - -**Infrastructure Updates:** -- Modernized all AWS service clients (S3, CloudFront, RDS, ECS, EC2, Route53, etc.) -- Better handling of AWS resource lifecycle (create, update, delete) -- Improved idempotency for AWS resource creation -- Enhanced cleanup with aws armageddon command - -This update has been manually tested on AWS Fargate deployments and significantly improves the reliability and maintainability of AWS infrastructure management. \ No newline at end of file diff --git a/.changeset/fix-rabbitmq-heartbeat.md b/.changeset/fix-rabbitmq-heartbeat.md deleted file mode 100644 index 346e7aeb..00000000 --- a/.changeset/fix-rabbitmq-heartbeat.md +++ /dev/null @@ -1,18 +0,0 @@ ---- -"pushkin-worker": patch -"@pushkin-templates/site-basic": patch ---- - -Fix RabbitMQ heartbeat timeout causing worker crashes - -**Bug Fix:** -- Resolves "Heartbeat timeout" errors that prevented experiment workers from completing database operations -- Workers would crash with "Error: Heartbeat timeout at Heart." during experiment execution - -**Changes:** -- Added `heartbeat: 30` configuration to `amqp.connect()` in pushkin-worker to send heartbeats every 30 seconds -- Upgraded RabbitMQ from version 3.6 to 3.12 in docker-compose.dev.yml template -- Added `RABBITMQ_HEARTBEAT: '30'` environment variable to RabbitMQ service configuration - -**Impact:** -This fix ensures stable RabbitMQ connections during long-running experiment tasks and prevents connection timeouts that were blocking database persistence of user data and experiment results. diff --git a/.changeset/stale-brooms-count.md b/.changeset/stale-brooms-count.md deleted file mode 100644 index be9df681..00000000 --- a/.changeset/stale-brooms-count.md +++ /dev/null @@ -1,11 +0,0 @@ ---- -"pushkin-cli": patch ---- - -**Bug Fix:** -Fix Docker COPY error when running pushkin prep on a site with no experiments installed. -Fix TypeError that can be thrown when pushkin prep fails to set up the database. -Fix pushkin prep failure that results from orphaned database volumes. - -**Improvements:** -Improve error catching/handling for docker build commands. diff --git a/.changeset/thick-trees-punch.md b/.changeset/thick-trees-punch.md deleted file mode 100644 index 4bddf32a..00000000 --- a/.changeset/thick-trees-punch.md +++ /dev/null @@ -1,9 +0,0 @@ ---- -"@pushkin-templates/exp-basic": patch -"@pushkin-templates/exp-grammaticality-judgment": patch -"@pushkin-templates/exp-lexical-decision": patch -"@pushkin-templates/exp-self-paced-reading": patch ---- - -**Bug Fix:** -Fix logic error that caused the post-experiment feedback page to show the "Oops! Something went wrong" message when the percentile rank and/or summary stat values was 0, which are valid values. Now it checks for null/undefined. diff --git a/.changeset/tough-pears-drop.md b/.changeset/tough-pears-drop.md deleted file mode 100644 index 16497970..00000000 --- a/.changeset/tough-pears-drop.md +++ /dev/null @@ -1,6 +0,0 @@ ---- -"pushkin-worker": patch ---- - -**Bug Fix:** -Fix bug that caused a race condition between adding a user to the database when the experiment starts and adding stimulus/response data that references that user. diff --git a/packages/pushkin-cli/CHANGELOG.md b/packages/pushkin-cli/CHANGELOG.md index d1da8bc2..5c5f0528 100644 --- a/packages/pushkin-cli/CHANGELOG.md +++ b/packages/pushkin-cli/CHANGELOG.md @@ -1,5 +1,53 @@ # pushkin-cli +## 5.0.0 + +### Major Changes + +- [#373](https://github.com/pushkin-consortium/pushkin/pull/373) [`1d5f32e`](https://github.com/pushkin-consortium/pushkin/commit/1d5f32e165194c2d68effb772609e1649372697a) Thanks [@cherriechang](https://github.com/cherriechang)! - Complete AWS Fargate deployment modernization and critical bug fixes + + This major update completely modernizes the AWS deployment infrastructure with critical bug fixes and improvements: + + **Breaking Changes:** + - Migrated from AWS CLI to AWS SDK v3 for all AWS operations + - Standardized database configuration to use `url` instead of `host` throughout + + **Critical Bug Fixes:** + - Fix #364: Replace localhost with Service Discovery DNS for RabbitMQ in Fargate awsvpc networking mode + - Fix #363: RabbitMQ passwords now persist across multiple deployments (idempotent behavior) + + **New Features:** + - Added AWS Cloud Map (Service Discovery) support for ECS Fargate service-to-service communication + - Improved DNS handling with subdomain fallback to parent hosted zones + - Enhanced OAC (Origin Access Control) handling with retry logic + - Added comprehensive CloudWatch logging for ECS tasks + - Improved database connection reliability with exponential backoff retry logic + + **Improvements:** + - Complete JSDoc documentation for all AWS-related functions + - Better error messages and logging throughout deployment process + - Standardized async/await patterns for better error handling + - Improved security group and VPC configuration handling + - Enhanced RDS instance management with proper wait conditions + + **Infrastructure Updates:** + - Modernized all AWS service clients (S3, CloudFront, RDS, ECS, EC2, Route53, etc.) + - Better handling of AWS resource lifecycle (create, update, delete) + - Improved idempotency for AWS resource creation + - Enhanced cleanup with aws armageddon command + + This update has been manually tested on AWS Fargate deployments and significantly improves the reliability and maintainability of AWS infrastructure management. + +### Patch Changes + +- [#406](https://github.com/pushkin-consortium/pushkin/pull/406) [`7a704f2`](https://github.com/pushkin-consortium/pushkin/commit/7a704f2e2d321974481bb41e16384f5686775118) Thanks [@becky-gilbert](https://github.com/becky-gilbert)! - **Bug Fix:** + Fix Docker COPY error when running pushkin prep on a site with no experiments installed. + Fix TypeError that can be thrown when pushkin prep fails to set up the database. + Fix pushkin prep failure that results from orphaned database volumes. + + **Improvements:** + Improve error catching/handling for docker build commands. + ## 4.2.1 ### Patch Changes @@ -43,7 +91,6 @@ ### Patch Changes - [#305](https://github.com/pushkin-consortium/pushkin/pull/305) [`ffba8bb`](https://github.com/pushkin-consortium/pushkin/commit/ffba8bbbb62d901d271655d71453f95648d5f5aa) Thanks [@jessestorbeck](https://github.com/jessestorbeck)! - - Fixed issue where workers for experiments including capital letters would not be deleted by `rm exp --mode delete`. - - Fixed issue where it was possible to create two experiments which would yield workers with the same name. - [#310](https://github.com/pushkin-consortium/pushkin/pull/310) [`81d9aab`](https://github.com/pushkin-consortium/pushkin/commit/81d9aab753b85d05d8ad572329803fbdfaa2279f) Thanks [@jessestorbeck](https://github.com/jessestorbeck)! - - Added logic to front end's `config.js` to automatically detect use in GitHub Codespaces and appropriately set API endpoints diff --git a/packages/pushkin-cli/package.json b/packages/pushkin-cli/package.json index 4fc6971e..ca857549 100644 --- a/packages/pushkin-cli/package.json +++ b/packages/pushkin-cli/package.json @@ -1,6 +1,6 @@ { "name": "pushkin-cli", - "version": "4.2.1", + "version": "5.0.0", "description": "A CLI for automating basic Pushkin tasks", "main": "build/index.js", "files": [ diff --git a/packages/pushkin-worker/CHANGELOG.md b/packages/pushkin-worker/CHANGELOG.md index 096c4385..c75fa61b 100644 --- a/packages/pushkin-worker/CHANGELOG.md +++ b/packages/pushkin-worker/CHANGELOG.md @@ -1,11 +1,31 @@ # pushkin-worker +## 3.1.1 + +### Patch Changes + +- [#376](https://github.com/pushkin-consortium/pushkin/pull/376) [`a5290a0`](https://github.com/pushkin-consortium/pushkin/commit/a5290a03af2be7edf8d17b0fc0b08f5c6c796241) Thanks [@cherriechang](https://github.com/cherriechang)! - Fix RabbitMQ heartbeat timeout causing worker crashes + + **Bug Fix:** + - Resolves "Heartbeat timeout" errors that prevented experiment workers from completing database operations + - Workers would crash with "Error: Heartbeat timeout at Heart." during experiment execution + + **Changes:** + - Added `heartbeat: 30` configuration to `amqp.connect()` in pushkin-worker to send heartbeats every 30 seconds + - Upgraded RabbitMQ from version 3.6 to 3.12 in docker-compose.dev.yml template + - Added `RABBITMQ_HEARTBEAT: '30'` environment variable to RabbitMQ service configuration + + **Impact:** + This fix ensures stable RabbitMQ connections during long-running experiment tasks and prevents connection timeouts that were blocking database persistence of user data and experiment results. + +- [#373](https://github.com/pushkin-consortium/pushkin/pull/373) [`2dcff8c`](https://github.com/pushkin-consortium/pushkin/commit/2dcff8c29f7a8113f93b02b81f49f547cb4aff42) Thanks [@cherriechang](https://github.com/cherriechang)! - **Bug Fix:** + Fix bug that caused a race condition between adding a user to the database when the experiment starts and adding stimulus/response data that references that user. + ## 3.1.0 ### Minor Changes - [#359](https://github.com/pushkin-consortium/pushkin/pull/359) [`44d9667`](https://github.com/pushkin-consortium/pushkin/commit/44d9667138989717ac13f9f5144e236386ccc3d3) Thanks [@jessestorbeck](https://github.com/jessestorbeck)! - Pushkin helper packages have been updated to support new API endpoints for showing experiment feedback to participants. The client methods of interest which are used in the experiment's results page are: - - `getPercentileRank(userID, experiment)` for fetching the percentile rank of a participant in an experiment - `getExpData(userID, experiment)` for fetching all of a participant's data for an experiment - `getModelPrediction(modelInput, modelPath)` for fetching a prediction from a Python model in the experiment's worker component diff --git a/packages/pushkin-worker/package.json b/packages/pushkin-worker/package.json index 5ddeba3e..bddb359e 100644 --- a/packages/pushkin-worker/package.json +++ b/packages/pushkin-worker/package.json @@ -1,6 +1,6 @@ { "name": "pushkin-worker", - "version": "3.1.0", + "version": "3.1.1", "description": "A basic starter worker used to communicate between a Pushkin API and databases", "main": "build/index.js", "files": [ diff --git a/templates/experiments/basic/CHANGELOG.md b/templates/experiments/basic/CHANGELOG.md index e69ac5cc..60173cd1 100644 --- a/templates/experiments/basic/CHANGELOG.md +++ b/templates/experiments/basic/CHANGELOG.md @@ -1,5 +1,12 @@ # @pushkin-templates/exp-basic +## 6.3.1 + +### Patch Changes + +- [#383](https://github.com/pushkin-consortium/pushkin/pull/383) [`15ad62a`](https://github.com/pushkin-consortium/pushkin/commit/15ad62a502b2839c808f373e7850214554e2934d) Thanks [@becky-gilbert](https://github.com/becky-gilbert)! - **Bug Fix:** + Fix logic error that caused the post-experiment feedback page to show the "Oops! Something went wrong" message when the percentile rank and/or summary stat values was 0, which are valid values. Now it checks for null/undefined. + ## 6.3.0 ### Minor Changes diff --git a/templates/experiments/basic/package.json b/templates/experiments/basic/package.json index a3a236b1..b5a05405 100644 --- a/templates/experiments/basic/package.json +++ b/templates/experiments/basic/package.json @@ -1,6 +1,6 @@ { "name": "@pushkin-templates/exp-basic", - "version": "6.3.0", + "version": "6.3.1", "description": "A Pushkin experiment template containing a 'Hello, world!' jsPsych timeline. This should probably be your starting point for creating a custom experiment.", "keywords": [ "pushkin", diff --git a/templates/experiments/grammaticality-judgment/CHANGELOG.md b/templates/experiments/grammaticality-judgment/CHANGELOG.md index eff3e45b..4d5237b3 100644 --- a/templates/experiments/grammaticality-judgment/CHANGELOG.md +++ b/templates/experiments/grammaticality-judgment/CHANGELOG.md @@ -1,5 +1,12 @@ # @pushkin-templates/exp-grammaticality-judgment +## 6.3.1 + +### Patch Changes + +- [#383](https://github.com/pushkin-consortium/pushkin/pull/383) [`15ad62a`](https://github.com/pushkin-consortium/pushkin/commit/15ad62a502b2839c808f373e7850214554e2934d) Thanks [@becky-gilbert](https://github.com/becky-gilbert)! - **Bug Fix:** + Fix logic error that caused the post-experiment feedback page to show the "Oops! Something went wrong" message when the percentile rank and/or summary stat values was 0, which are valid values. Now it checks for null/undefined. + ## 6.3.0 ### Minor Changes diff --git a/templates/experiments/grammaticality-judgment/package.json b/templates/experiments/grammaticality-judgment/package.json index bcb18af1..00cee430 100644 --- a/templates/experiments/grammaticality-judgment/package.json +++ b/templates/experiments/grammaticality-judgment/package.json @@ -1,6 +1,6 @@ { "name": "@pushkin-templates/exp-grammaticality-judgment", - "version": "6.3.0", + "version": "6.3.1", "description": "A Pushkin experiment template containing a jsPsych grammaticality-judgment timeline.", "keywords": [ "pushkin", diff --git a/templates/experiments/lexical-decision/CHANGELOG.md b/templates/experiments/lexical-decision/CHANGELOG.md index 0afeb71f..fc15af54 100644 --- a/templates/experiments/lexical-decision/CHANGELOG.md +++ b/templates/experiments/lexical-decision/CHANGELOG.md @@ -1,5 +1,12 @@ # @pushkin-templates/exp-lexical-decision +## 6.3.1 + +### Patch Changes + +- [#383](https://github.com/pushkin-consortium/pushkin/pull/383) [`15ad62a`](https://github.com/pushkin-consortium/pushkin/commit/15ad62a502b2839c808f373e7850214554e2934d) Thanks [@becky-gilbert](https://github.com/becky-gilbert)! - **Bug Fix:** + Fix logic error that caused the post-experiment feedback page to show the "Oops! Something went wrong" message when the percentile rank and/or summary stat values was 0, which are valid values. Now it checks for null/undefined. + ## 6.3.0 ### Minor Changes diff --git a/templates/experiments/lexical-decision/package.json b/templates/experiments/lexical-decision/package.json index 30874d0f..88b2fcd6 100644 --- a/templates/experiments/lexical-decision/package.json +++ b/templates/experiments/lexical-decision/package.json @@ -1,6 +1,6 @@ { "name": "@pushkin-templates/exp-lexical-decision", - "version": "6.3.0", + "version": "6.3.1", "description": "A Pushkin experiment template containing a jsPsych lexical-decision timeline.", "keywords": [ "pushkin", diff --git a/templates/experiments/self-paced-reading/CHANGELOG.md b/templates/experiments/self-paced-reading/CHANGELOG.md index dee51ca9..caa2ebd3 100644 --- a/templates/experiments/self-paced-reading/CHANGELOG.md +++ b/templates/experiments/self-paced-reading/CHANGELOG.md @@ -1,5 +1,12 @@ # @pushkin-templates/exp-self-paced-reading +## 6.3.1 + +### Patch Changes + +- [#383](https://github.com/pushkin-consortium/pushkin/pull/383) [`15ad62a`](https://github.com/pushkin-consortium/pushkin/commit/15ad62a502b2839c808f373e7850214554e2934d) Thanks [@becky-gilbert](https://github.com/becky-gilbert)! - **Bug Fix:** + Fix logic error that caused the post-experiment feedback page to show the "Oops! Something went wrong" message when the percentile rank and/or summary stat values was 0, which are valid values. Now it checks for null/undefined. + ## 6.3.0 ### Minor Changes diff --git a/templates/experiments/self-paced-reading/package.json b/templates/experiments/self-paced-reading/package.json index ef05d324..1d892e0b 100644 --- a/templates/experiments/self-paced-reading/package.json +++ b/templates/experiments/self-paced-reading/package.json @@ -1,6 +1,6 @@ { "name": "@pushkin-templates/exp-self-paced-reading", - "version": "6.3.0", + "version": "6.3.1", "description": "A Pushkin experiment template containing a jsPsych self-paced-reading timeline.", "keywords": [ "pushkin", diff --git a/templates/sites/basic/CHANGELOG.md b/templates/sites/basic/CHANGELOG.md index 02eaf0c5..0d441078 100644 --- a/templates/sites/basic/CHANGELOG.md +++ b/templates/sites/basic/CHANGELOG.md @@ -1,5 +1,23 @@ # @pushkin-templates/site-basic +## 1.2.1 + +### Patch Changes + +- [#376](https://github.com/pushkin-consortium/pushkin/pull/376) [`a5290a0`](https://github.com/pushkin-consortium/pushkin/commit/a5290a03af2be7edf8d17b0fc0b08f5c6c796241) Thanks [@cherriechang](https://github.com/cherriechang)! - Fix RabbitMQ heartbeat timeout causing worker crashes + + **Bug Fix:** + - Resolves "Heartbeat timeout" errors that prevented experiment workers from completing database operations + - Workers would crash with "Error: Heartbeat timeout at Heart." during experiment execution + + **Changes:** + - Added `heartbeat: 30` configuration to `amqp.connect()` in pushkin-worker to send heartbeats every 30 seconds + - Upgraded RabbitMQ from version 3.6 to 3.12 in docker-compose.dev.yml template + - Added `RABBITMQ_HEARTBEAT: '30'` environment variable to RabbitMQ service configuration + + **Impact:** + This fix ensures stable RabbitMQ connections during long-running experiment tasks and prevents connection timeouts that were blocking database persistence of user data and experiment results. + ## 1.2.0 ### Minor Changes @@ -25,7 +43,6 @@ - [#334](https://github.com/pushkin-consortium/pushkin/pull/334) [`66b4edb`](https://github.com/pushkin-consortium/pushkin/commit/66b4edb90d1026b1f78f49b8cd303f31a05a7584) Thanks [@dependabot](https://github.com/apps/dependabot)! - Bump @babel/traverse from 7.10.5 to 7.24.1 - [#337](https://github.com/pushkin-consortium/pushkin/pull/337) [`4188d63`](https://github.com/pushkin-consortium/pushkin/commit/4188d63b4111856c0475fea80a9d6ea3b54d0528) Thanks [@dependabot](https://github.com/apps/dependabot)! - Bump API dependencies: - - json5 from 2.1.3 to 2.2.3 - decode-uri-component from 0.2.0 to 0.2.2 @@ -40,12 +57,10 @@ - [#308](https://github.com/pushkin-consortium/pushkin/pull/308) [`b028ea9`](https://github.com/pushkin-consortium/pushkin/commit/b028ea9eb9214839e7bed54db1e1eff699d48935) Thanks [@dependabot](https://github.com/apps/dependabot)! - Bump @babel/traverse from 7.10.5 to 7.24.1 in /templates/sites/basic/src/pushkin/front-end - [#310](https://github.com/pushkin-consortium/pushkin/pull/310) [`81d9aab`](https://github.com/pushkin-consortium/pushkin/commit/81d9aab753b85d05d8ad572329803fbdfaa2279f) Thanks [@jessestorbeck](https://github.com/jessestorbeck)! - - Added logic to front end's `config.js` to automatically detect use in GitHub Codespaces and appropriately set API endpoints - - Similar logic added to front end's craco config to set WebSocket URL appropriately for Codespaces - Added detection of Codespaces-specific environment variables to CLI's `setEnv()` function - [#330](https://github.com/pushkin-consortium/pushkin/pull/330) [`26a630f`](https://github.com/pushkin-consortium/pushkin/commit/26a630f9fc65fb933cd65430936a9695282a24f9) Thanks [@dependabot](https://github.com/apps/dependabot)! - Bump front-end dependencies: - - path-parse from 1.0.6 to 1.0.7 - minimatch from 3.0.4 to 3.1.2 - ansi-regex from 5.0.0 to 5.0.1 @@ -54,13 +69,11 @@ - [#310](https://github.com/pushkin-consortium/pushkin/pull/310) [`1b08109`](https://github.com/pushkin-consortium/pushkin/commit/1b0810971292c87afbb7d716469afdde7497ef11) Thanks [@jessestorbeck](https://github.com/jessestorbeck)! - Switched to self-hosting main site font - [#333](https://github.com/pushkin-consortium/pushkin/pull/333) [`7751db8`](https://github.com/pushkin-consortium/pushkin/commit/7751db8b3ebcb5a9731b13ba7a32c429c2e51365) Thanks [@dependabot](https://github.com/apps/dependabot)! - Bump front-end dependencies: - - browserslist from 4.13.0 to 4.23.0 - lodash from 4.17.19 to 4.17.21 - ini from 1.3.5 to 1.3.8 - [#318](https://github.com/pushkin-consortium/pushkin/pull/318) [`6e7335a`](https://github.com/pushkin-consortium/pushkin/commit/6e7335aed06b185b7d686147765d034c023969c6) Thanks [@dependabot](https://github.com/apps/dependabot)! - Bump front-end dependencies: - - minimist from 1.2.5 to 1.2.8 - word-wrap from 1.2.3 to 1.2.5 - lodash-es from 4.17.15 to 4.17.21 diff --git a/templates/sites/basic/package.json b/templates/sites/basic/package.json index e4a94564..6281eca7 100644 --- a/templates/sites/basic/package.json +++ b/templates/sites/basic/package.json @@ -1,6 +1,6 @@ { "name": "@pushkin-templates/site-basic", - "version": "1.2.0", + "version": "1.2.1", "description": "A template for building a bare-bones Pushkin site. No authentication, no forum, no dashboard, but everything else you need.", "keywords": [ "pushkin",