Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

java libs for within subjects #883

Conversation

jreddig
Copy link
Contributor

@jreddig jreddig commented Jun 20, 2023

updated libs to work with an array of conditions

Having some trouble with the async/caching for getting one condition after another. At what point do we rotate the array to pass on the next condition? markExperimentPoint? or getExperimentCondition? I'm having a hard time guaranteeing the global experiment list is defined by the time a condition is received or marked

Is rotating the conditions something the libs should do or can we rely on UpGrade's APIs to rotate the conditions?

@jreddig
Copy link
Contributor Author

jreddig commented Jun 22, 2023

Got something that works if you follow the assign -> mark process, but not if you get multiple assignments in a row (same condition each time). Not a fan of how I did it but its a start

@jreddig
Copy link
Contributor Author

jreddig commented Jun 26, 2023

moved popping the condition to markExperimentPoint, however in the attached Main.java, the first two conditions received are the same while the third condition is the second in the list

@jreddig
Copy link
Contributor Author

jreddig commented Jun 26, 2023

Okay, this should work, as long as the client isn't trying to do rapid-fire assign/mark calls

@jreddig jreddig marked this pull request as ready for review June 26, 2023 16:11
@jreddig jreddig linked an issue Jun 27, 2023 that may be closed by this pull request
6 tasks
@jreddig
Copy link
Contributor Author

jreddig commented Jul 12, 2023

This is my proposal on how we move mark to Assignment. We call the one ExperimentClient mark method from Assignment so we dont have to recreate the apiservices or pass any extra objects/data around. assignment.markExperimentPoint will need the ExperimentClient as a parameter in order to access this method.

We could also setup the api services in the Assignment object, just let me know!

private Condition assignedCondition;
private Map<String, Factor> assignedFactor;

public Assignment(String target, String site, ExperimentType experimentType, Condition assignedCondition) {
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what if the constructor could take client as an argument? So you don't have to pass it into markExperimentPoint at the point of calling?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

i like that idea!

@jreddig
Copy link
Contributor Author

jreddig commented Jul 12, 2023

Per Dan's suggestion, moved the ExperimentClient parameter to the Assignment constructor so we can use the ExperimentClient's api services and the client can rotate the condition array

Also renamed ExperimentPoint to DecisionPoint

@jreddig jreddig requested a review from jerith666 July 12, 2023 15:02
@jreddig
Copy link
Contributor Author

jreddig commented Jul 12, 2023

@jerith666 adding you to the pr to keep you appraised of upcoming changes and to collect your feedback (if you have any) on the updated library design

@jreddig
Copy link
Contributor Author

jreddig commented Jul 13, 2023

Included the previous usage of markDecisionPoint

Collections.rotate(rotatedList, -1);
rotatedCondition = rotatedList.toArray(rotatedCondition);
result.setAssignedCondition(rotatedCondition);
result.setAssignedFactor(result.getAssignedFactor());
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

don't have time for a full review, and I mentioned this on another PR for the JS client, but: this kind of business logic in the client library feels like a code smell to me. Why can't this condition rotation happen on the server?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

It does, but the issue is the cached condition list. The server rotates for each marked decision point, so the client could make a new API call for each getExperimentCondition to make sure the condition list is always in the appropriate order, but that seems excessive

@danoswaltCL danoswaltCL merged commit a4d6db3 into algorithms-to-generate-conditions-queue Jul 20, 2023
@danoswaltCL danoswaltCL deleted the java-libs-for-within-subject-assignment branch July 20, 2023 13:58
mfugate1 pushed a commit that referenced this pull request Jul 20, 2023
* added ENUMS and algorithm variable to experiment

* added testcases

* Add frontend changes

* Fix mock experiment for testing

* algorithm migration file

* 3 algo for conditions queue created

* added ConditionOrder migration

* reduce number of iteration in rorating condition loop

* code refactoring

* make constitancy rule optional

* getAllCondition changes for assign condition and factors

* create monitoredLog count typeORM query

* order round robine algo change

* backend changes with v5 controller

* ✨ Updated client lib bundler

Added separate bundler for browser and node

* Assigning default to the library variable

* solve v5 assign error

* solved algorithm file errors

* uniquifier migration file

* Solve sorting error for factorial experiment

* solved backend failing testcases

* added clientLib changes

* within subject assigned condition testcase, disabled condition while entrolling, code refactoring

* added clientLib changes

* added uniquifier changes to backend

* Add frontend changes (#861)

* Add frontend changes

* Fix mock experiment for testing

* added ConditionOrder migration

* make constitancy rule optional

---------

Co-authored-by: RidhamShah <[email protected]>

* mark call changes related to within-subjects

* solved uniquifier not showing error

* solved failing testcases errors

* PR review changes

* solve all git comments

* Removes unused functions from Enrollment Repository

* removed unwanted code from Enrollment Repo

* Details page enrollment by condition and DP query changes for within subject

* Update statistic and repeated measure fields

* adding separate query for  within subject enrollment by dates

* added within  testcases and solve failing testcases

* Remove Count and Percentage from Repeated Measure options

* Rename Repeated Measure and Statistic to Individual and Aggregate statistic in Metrics table

* solve failing repository test cases

* return condition for mark call in withinSubjects

* metric queries updated to support within subject experiment

* quick fix for global metrics not saving in simple experiment

* resolved mean median and mode queries for within subject exp

* fix log repository test cases

* within subject Metrics query testcases

* resolved within subjects failed test cases for rejected response

* resolved within subjects failed test case for percentage

* final working test cases for within subjects exp

* old log operation testcase changes and refactoring new queries check testcase file

* bump to new major version

* exclude test files in sonarqube

* Unit tests for within subjects (#882)

* initial commit unit test getAllExperimentConditions

* individual factorial test

* group experiments

* tests for markExperimentPoint

* within subject unit test

* within subject mark test

* update mocks

* fix for few metric queries failing for factorial experiment

* updated within subject test cases for same user mark multiple conditions and handling stddev for single row result

* bug fix for factorial standard deviation query

* some test setup for v5 browser ts lib tests

* Solved same condition occuring on mark call

* refactoring changes in query check testcase

* sovled git comments around mark call

* fixed interaction chart bug and query for multi exp enrollment for within subj exp

* mark back on client plus renaming and organization

* wip trying to fix types

* fix for standard dev for betweensubj simple exp

* reverting - removing of mark call from client

* revert wrong fix for stddev query as it works fine

* refactoring changes in query check testcase

* undo UI stepper changes

* disable groupType & consistencyRule while enrolling

* updated tests

* resolved review comments

* missing eslint-doc plugin

* comment out things throwing useless eslint errors

* Enhancement: within subject metric logs refactor and complexity reduction (#927)

* refactor and complexity reduction for log repo queries and functions

* resolved failed unit test cases for log repo code refactoring

* java libs for within subjects (#883)

* initial changes for array of conditions

* pop array when getting condition

* add uniquifier

* moved rotate to mark

* handle null condition

* Merge branch 'algorithms-to-generate-conditions-queue' of https://github.com/CarnegieLearningWeb/UpGrade into java-libs-for-within-subject-assignment

* resolve conflicts

* move mark to assignment

* move experiment client to constructor

* rename experiment point to decision point

* keep mark in experiment client

---------

Co-authored-by: RidhamShah <[email protected]>
Co-authored-by: Zack Lee <[email protected]>
Co-authored-by: Vivek Fitkariwala <[email protected]>
Co-authored-by: Zack Lee <[email protected]>
Co-authored-by: pratik <[email protected]>
Co-authored-by: Dan Oswalt <[email protected]>
Co-authored-by: jreddig <[email protected]>
Co-authored-by: danoswaltCL <[email protected]>
Co-authored-by: Pratik Prajapati <[email protected]>
danoswaltCL added a commit that referenced this pull request Nov 29, 2023
* bump to Brilliant Base release version (4.2) (#776)

* Test/bump (#791)

* test

* test bump action

* Test/bump (#792)

* test

* test bump action

* remove credential?

* Test/bump (#793)

* test

* test bump action

* remove credential?

* use user selection

* Test/bump (#794)

* test

* test bump action

* remove credential?

* use user selection

* adjust commands syntax

* Test/bump (#795)

* test

* test bump action

* remove credential?

* use user selection

* adjust commands syntax

* echo module in logs

* use manual commit and log more info

* Test/bump (#796)

* test

* test bump action

* remove credential?

* use user selection

* adjust commands syntax

* echo module in logs

* use manual commit and log more info

* bah syntax error

* Test/bump (#797)

* test

* test bump action

* remove credential?

* use user selection

* adjust commands syntax

* echo module in logs

* use manual commit and log more info

* bah syntax error

* more syntax corrections

* support for caliper graded profile (#759)

* support for caliper graded profile

* add iso duration

* remove unused imports

* export interfaces

* add caliper endpoint to v1 api

* Revert "add iso duration"

This reverts commit be6677b.

* stricter typing

* add caliper actor

* error handling for unsupported profiles and events

* update caliper data object

* add to v1

* add caliper enums to interfaces

* resolve conflicts

* add duration package

* match log file

* update version

* use upgrade types

* resolve conflicts

* update lockfile

* Build(deps): Bump yaml from 2.1.3 to 2.2.2 (#806)

Bumps [yaml](https://github.com/eemeli/yaml) from 2.1.3 to 2.2.2.
- [Release notes](https://github.com/eemeli/yaml/releases)
- [Commits](eemeli/yaml@v2.1.3...v2.2.2)

---
updated-dependencies:
- dependency-name: yaml
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Feature/752 angular 15 (#799)

* initial ng 15 update

* ngrx updates 14

* jest28 update

* ts-jest 28

* ng 14 dep updates to get test passing

* proper types for jest

* initial material commit

* lodash types and better export

* handle deprecated material lib usages

* angular 15 initial

* initial material 15 changes

* update material and ng-date-picker scss import quirk

* fixed specs after ngrx update

* Solved desgin stepper getting disabled bug (#812)

Co-authored-by: RidhamShah <[email protected]>

* remove storeModule code inserted by angular migration scripts (#811)

Co-authored-by: jreddig <[email protected]>

* ✨ Added more details to simple export (#818)

Added more information about experiment like site, target, assignmentUnit, context etc. Updated packag-lock.json for frontend and localtime zone of user which is used during export

* change markdata object (#821) (#823)

* change markdata object

* condition is an object

* rename variable for clarity

Co-authored-by: jreddig <[email protected]>

* version 4.3 bump (#824)

* put version in template (#820)

Co-authored-by: jreddig <[email protected]>

* forgot to bump pom version also (#827)

* Feature/803 - Replace moment with dayjs (#831)

* ✨ Added more details to simple export

Added more information about experiment like site, target, assignmentUnit, context etc. Updated packag-lock.json for frontend and localtime zone of user which is used during export

* Replaced monent library with devjs

* added dayjs to package.json

* added package-lock.json

---------

Co-authored-by: Vivek Fitkariwala <[email protected]>
Co-authored-by: RidhamShah <[email protected]>

* Moving payload table to design stepper scrolling (#829)

* Filtering segment based on input field value

* Removed buttons to switch between payload and condition table

* moved payload table on design stepper main view and code changes to update payload table

---------

Co-authored-by: danoswaltCL <[email protected]>

* Bugfix/664+metrics stats validation (#816)

* Statistic options showing without selecting metrics after row deletion resolved

* add error for not using metric name from drop-down

---------

Co-authored-by: Yagnik <[email protected]>
Co-authored-by: RidhamShah <[email protected]>
Co-authored-by: Pratik Prajapati <[email protected]>
Co-authored-by: danoswaltCL <[email protected]>

* clientlibs/java: document use cases for condition code vs. payload value

fixes #833

* Build(deps): Bump http-cache-semantics in /backend/packages/Upgrade (#836)

Bumps [http-cache-semantics](https://github.com/kornelski/http-cache-semantics) from 4.1.0 to 4.1.1.
- [Commits](kornelski/http-cache-semantics@v4.1.0...v4.1.1)

---
updated-dependencies:
- dependency-name: http-cache-semantics
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* 🧑‍💻 Fixing running test cases for clientlib/js (#839)

Added ts-jest for using sourcemaps to display errors. Moved dayjs from backend to Upgrade package

* 🧑‍💻 Fixing running test cases for clientlib/js (#839)

Added ts-jest for using sourcemaps to display errors. Moved dayjs from backend to Upgrade package

Co-authored-by: danoswaltCL <[email protected]>

* Temp/release4.1 (#840)

* change markdata object (#821)

* change markdata object

* condition is an object

* rename variable for clarity

* Bugfix/706: Handling old experiment json formats for importing experiments and import feature enhancement (#813)

* handling mostly all old experiment json formats for import

(cherry picked from commit fd588e6)

* scroll vertical for multiple import errors and added warnings for version mismatch

* reducing code complexity for import experiment component

* typing error corrected in import exp component

* missed import in merge

---------

Co-authored-by: jreddig <[email protected]>
Co-authored-by: Pratik Prajapati <[email protected]>

* add workflow-dispatch (#842)

* Feature/814 GitHub publish manual trigger (#843)

* add workflow-dispatch

* use actions/checkout@3 and use with ref main

* parameterize commit ref or branch name (#844)

* Resolved issue for error in multiple edit in design stepper (#846)

* Play arrow wasn't properly visible in by condition section  (#850)

* moved play arrow to left

* adjusting arrow position

* initial sonarqube config for pipeline (#851)

* Feature/604 sonarqube (#852)

* initial sonarqube config for pipeline

* skip java files for now

* skip java files for now

* Feature/604 sonarqube (#853)

* initial sonarqube config for pipeline

* skip java files for now

* skip java files for now

* update inclusions/exclusions

* Feature/604 sonarqube (#853)

* initial sonarqube config for pipeline

* skip java files for now

* skip java files for now

* update inclusions/exclusions

* Feature/604 sonarqube (#854)

* initial sonarqube config for pipeline

* skip java files for now

* skip java files for now

* update inclusions/exclusions

* revert inclusions paths

* removed row created in participarts stepper from form initialization (#849)

Co-authored-by: danoswaltCL <[email protected]>

* Bugfix/importing bulk experiments (#857)

* fixed issue coming in importing experiments in bulk

* resolve testcase fail

* updating locust scripts with updated api responses and handling factorial experiments (#855)

Co-authored-by: jreddig <[email protected]>

* Bugfix/830 - Solved no-payload in client side (#832)

* solved no-payload giving error

* changed datatype of payload to have null

* remove unwanted changes for markExperimentPoint

* removes target as an optional parameter

* add remaining datatype changes for Payload

* condition validation changes for mark call

---------

Co-authored-by: RidhamShah <[email protected]>
Co-authored-by: danoswaltCL <[email protected]>
Co-authored-by: jreddig <[email protected]>

* Updated README.md (#869)

Co-authored-by: jreddig <[email protected]>

* replace ng-datetime-picker package dependency (#858)

* replace ng-datetime-picker package dependency

* remove ng-pick-datetime-ex and its imports

---------

Co-authored-by: danoswaltCL <[email protected]>
Co-authored-by: Dan Oswalt <[email protected]>

* Bugfix/814 handle multi factor data graphs (#837)

* change markdata object (#821)

* change markdata object

* condition is an object

* rename variable for clarity

* handling main effect graphs for multi factor

* interaction graph scrolling and table for 3 or more factors

* Bugfix/706: Handling old experiment json formats for importing experiments and import feature enhancement (#813)

* handling mostly all old experiment json formats for import

(cherry picked from commit fd588e6)

* scroll vertical for multiple import errors and added warnings for version mismatch

* reducing code complexity for import experiment component

* typing error corrected in import exp component

* peer review comments and graphs ui polishing

---------

Co-authored-by: jreddig <[email protected]>
Co-authored-by: danoswaltCL <[email protected]>

* Feature/856 ts backend client lib tester (#871)

* initial client lib testing

* working hook routes with event bus

* working version before refactoring app interface ui

* refactor ui

* demo ready

* added basic scaffold for ts-backend

* user form complete

* backend models connecting

* fixed user form updating

* fixed clearing user

* refactor portal app

* post hook to backend

* add readme and stuff (#873)

* update docker local .env (#874)

* ✨ Updated client lib bundler (#868)

* ✨ Updated client lib bundler

Added separate bundler for browser and node

* Assigning default to the library variable

* Replacing isomorphic-fetch with axios

---------

Co-authored-by: danoswaltCL <[email protected]>

* Feature/add general test mocks to client tester (#877)

* start general tests mocks

* add general test mock apps

* fix v5 typo

* fix descriptions

* add general mock test backend (#878)

* add mathstream browser mock (#885)

* Feature/fix user groups and portal mock (#886)

* add mathstream browser mock

* fix group inputs and mock portal

* try node16 (#888)

* try node16

* try 16

* revert

* revert

* revert

* set node directly

* Feature/try node16 (#889)

* try node16

* try 16

* revert

* revert

* revert

* set node directly

* updaet setup-node?

* updaet setup-node?

* check latest?

* add mock for testing node client v1 (#890)

* Build(deps): Bump d3-color and @swimlane/ngx-charts in /frontend (#881)

Bumps [d3-color](https://github.com/d3/d3-color) to 3.1.0 and updates ancestor dependency [@swimlane/ngx-charts](https://github.com/swimlane/ngx-charts). These dependencies need to be updated together.


Updates `d3-color` from 2.0.0 to 3.1.0
- [Release notes](https://github.com/d3/d3-color/releases)
- [Commits](d3/d3-color@v2.0.0...v3.1.0)

Updates `@swimlane/ngx-charts` from 20.1.2 to 20.4.1
- [Changelog](https://github.com/swimlane/ngx-charts/blob/master/docs/changelog.md)
- [Commits](swimlane/ngx-charts@20.1.2...20.4.1)

---
updated-dependencies:
- dependency-name: d3-color
  dependency-type: indirect
- dependency-name: "@swimlane/ngx-charts"
  dependency-type: direct:production
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: jreddig <[email protected]>

* add v4 backend tests (#891)

* js client libs, use PATCH instead of POST (#893)

* tests for 4.1.6 (#894)

* Feature/merge release 4 into dev (#898)

* change markdata object (#821)

* change markdata object

* condition is an object

* rename variable for clarity

* Bugfix/706: Handling old experiment json formats for importing experiments and import feature enhancement (#813)

* handling mostly all old experiment json formats for import

(cherry picked from commit fd588e6)

* scroll vertical for multiple import errors and added warnings for version mismatch

* reducing code complexity for import experiment component

* typing error corrected in import exp component

* pull updates from v3 (#875)

* V4 caliper support (#876)

* support for caliper graded profile (#759)

* support for caliper graded profile

* add iso duration

* remove unused imports

* export interfaces

* add caliper endpoint to v1 api

* Revert "add iso duration"

This reverts commit be6677b.

* stricter typing

* add caliper actor

* error handling for unsupported profiles and events

* update caliper data object

* add to v1

* add caliper enums to interfaces

* resolve conflicts

* add duration package

* match log file

* update version

* use upgrade types

* resolve conflicts

* update lockfile

* add caliper to v4 controller

* revert apache connector (#880)

* ✨ Updated client lib bundler (#868)

* ✨ Updated client lib bundler

Added separate bundler for browser and node

* Assigning default to the library variable

* Replacing isomorphic-fetch with axios

---------

Co-authored-by: danoswaltCL <[email protected]>

* pip version

* use patch

* pip version after add patch

---------

Co-authored-by: jreddig <[email protected]>
Co-authored-by: Pratik Prajapati <[email protected]>
Co-authored-by: Vivek Fitkariwala <[email protected]>

* Feature/update tester npm script (#899)

* missing a step in npm script

* missing a step in npm script

* pull in bugfix 900 (#903)

* Bugfix/merge down missing docs stuff (#904)

* change markdata object (#821)

* change markdata object

* condition is an object

* rename variable for clarity

* Bugfix/706: Handling old experiment json formats for importing experiments and import feature enhancement (#813)

* handling mostly all old experiment json formats for import

(cherry picked from commit fd588e6)

* scroll vertical for multiple import errors and added warnings for version mismatch

* reducing code complexity for import experiment component

* typing error corrected in import exp component

* pull updates from v3 (#875)

* V4 caliper support (#876)

* support for caliper graded profile (#759)

* support for caliper graded profile

* add iso duration

* remove unused imports

* export interfaces

* add caliper endpoint to v1 api

* Revert "add iso duration"

This reverts commit be6677b.

* stricter typing

* add caliper actor

* error handling for unsupported profiles and events

* update caliper data object

* add to v1

* add caliper enums to interfaces

* resolve conflicts

* add duration package

* match log file

* update version

* use upgrade types

* resolve conflicts

* update lockfile

* add caliper to v4 controller

* revert apache connector (#880)

* ✨ Updated client lib bundler (#868)

* ✨ Updated client lib bundler

Added separate bundler for browser and node

* Assigning default to the library variable

* Replacing isomorphic-fetch with axios

---------

Co-authored-by: danoswaltCL <[email protected]>

* pip version

* use patch

* pip version after add patch

* add docs (#896)

* add docs

* add more to readme for npm

---------

Co-authored-by: jreddig <[email protected]>
Co-authored-by: Pratik Prajapati <[email protected]>
Co-authored-by: Vivek Fitkariwala <[email protected]>

* Build(deps): Bump @grpc/grpc-js in /backend/packages/Upgrade (#911)

Bumps [@grpc/grpc-js](https://github.com/grpc/grpc-node) from 1.5.1 to 1.8.17.
- [Release notes](https://github.com/grpc/grpc-node/releases)
- [Commits](https://github.com/grpc/grpc-node/compare/@grpc/[email protected]...@grpc/[email protected])

---
updated-dependencies:
- dependency-name: "@grpc/grpc-js"
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): Bump tough-cookie from 4.1.2 to 4.1.3 in /frontend (#914)

Bumps [tough-cookie](https://github.com/salesforce/tough-cookie) from 4.1.2 to 4.1.3.
- [Release notes](https://github.com/salesforce/tough-cookie/releases)
- [Changelog](https://github.com/salesforce/tough-cookie/blob/master/CHANGELOG.md)
- [Commits](salesforce/tough-cookie@v4.1.2...v4.1.3)

---
updated-dependencies:
- dependency-name: tough-cookie
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): Bump tough-cookie in /backend/packages/Upgrade (#915)

Bumps [tough-cookie](https://github.com/salesforce/tough-cookie) from 4.0.0 to 4.1.3.
- [Release notes](https://github.com/salesforce/tough-cookie/releases)
- [Changelog](https://github.com/salesforce/tough-cookie/blob/master/CHANGELOG.md)
- [Commits](salesforce/tough-cookie@v4.0.0...v4.1.3)

---
updated-dependencies:
- dependency-name: tough-cookie
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps): Bump semver in /backend/packages/Scheduler (#917)

Bumps [semver](https://github.com/npm/node-semver) from 5.7.1 to 5.7.2.
- [Release notes](https://github.com/npm/node-semver/releases)
- [Changelog](https://github.com/npm/node-semver/blob/v5.7.2/CHANGELOG.md)
- [Commits](npm/node-semver@v5.7.1...v5.7.2)

---
updated-dependencies:
- dependency-name: semver
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* static mark status enums (#895)

* Build(deps): Bump word-wrap in /backend/packages/Upgrade (#921)

Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](jonschlinkert/word-wrap@1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): Bump word-wrap in /backend/packages/Scheduler (#923)

Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](jonschlinkert/word-wrap@1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): Bump word-wrap from 1.2.3 to 1.2.4 in /regression (#925)

Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](jonschlinkert/word-wrap@1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): Bump word-wrap from 1.2.3 to 1.2.4 in /frontend (#924)

Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](jonschlinkert/word-wrap@1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): Bump word-wrap from 1.2.3 to 1.2.4 (#926)

Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](jonschlinkert/word-wrap@1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Build(deps-dev): Bump word-wrap from 1.2.3 to 1.2.4 in /types (#922)

Bumps [word-wrap](https://github.com/jonschlinkert/word-wrap) from 1.2.3 to 1.2.4.
- [Release notes](https://github.com/jonschlinkert/word-wrap/releases)
- [Commits](jonschlinkert/word-wrap@1.2.3...1.2.4)

---
updated-dependencies:
- dependency-name: word-wrap
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* Feature/add automated libtester scripts (#912)

* initial test setup

* fix import errors with js

* remove console

* automated test setup and v4 example

* issues creating dynamic tests still withstanding

* issues creating dynamic tests still withstanding

* correct configClientId typo (#928)

* Within subjects experiment feature (#865)

* added ENUMS and algorithm variable to experiment

* added testcases

* Add frontend changes

* Fix mock experiment for testing

* algorithm migration file

* 3 algo for conditions queue created

* added ConditionOrder migration

* reduce number of iteration in rorating condition loop

* code refactoring

* make constitancy rule optional

* getAllCondition changes for assign condition and factors

* create monitoredLog count typeORM query

* order round robine algo change

* backend changes with v5 controller

* ✨ Updated client lib bundler

Added separate bundler for browser and node

* Assigning default to the library variable

* solve v5 assign error

* solved algorithm file errors

* uniquifier migration file

* Solve sorting error for factorial experiment

* solved backend failing testcases

* added clientLib changes

* within subject assigned condition testcase, disabled condition while entrolling, code refactoring

* added clientLib changes

* added uniquifier changes to backend

* Add frontend changes (#861)

* Add frontend changes

* Fix mock experiment for testing

* added ConditionOrder migration

* make constitancy rule optional

---------

Co-authored-by: RidhamShah <[email protected]>

* mark call changes related to within-subjects

* solved uniquifier not showing error

* solved failing testcases errors

* PR review changes

* solve all git comments

* Removes unused functions from Enrollment Repository

* removed unwanted code from Enrollment Repo

* Details page enrollment by condition and DP query changes for within subject

* Update statistic and repeated measure fields

* adding separate query for  within subject enrollment by dates

* added within  testcases and solve failing testcases

* Remove Count and Percentage from Repeated Measure options

* Rename Repeated Measure and Statistic to Individual and Aggregate statistic in Metrics table

* solve failing repository test cases

* return condition for mark call in withinSubjects

* metric queries updated to support within subject experiment

* quick fix for global metrics not saving in simple experiment

* resolved mean median and mode queries for within subject exp

* fix log repository test cases

* within subject Metrics query testcases

* resolved within subjects failed test cases for rejected response

* resolved within subjects failed test case for percentage

* final working test cases for within subjects exp

* old log operation testcase changes and refactoring new queries check testcase file

* bump to new major version

* exclude test files in sonarqube

* Unit tests for within subjects (#882)

* initial commit unit test getAllExperimentConditions

* individual factorial test

* group experiments

* tests for markExperimentPoint

* within subject unit test

* within subject mark test

* update mocks

* fix for few metric queries failing for factorial experiment

* updated within subject test cases for same user mark multiple conditions and handling stddev for single row result

* bug fix for factorial standard deviation query

* some test setup for v5 browser ts lib tests

* Solved same condition occuring on mark call

* refactoring changes in query check testcase

* sovled git comments around mark call

* fixed interaction chart bug and query for multi exp enrollment for within subj exp

* mark back on client plus renaming and organization

* wip trying to fix types

* fix for standard dev for betweensubj simple exp

* reverting - removing of mark call from client

* revert wrong fix for stddev query as it works fine

* refactoring changes in query check testcase

* undo UI stepper changes

* disable groupType & consistencyRule while enrolling

* updated tests

* resolved review comments

* missing eslint-doc plugin

* comment out things throwing useless eslint errors

* Enhancement: within subject metric logs refactor and complexity reduction (#927)

* refactor and complexity reduction for log repo queries and functions

* resolved failed unit test cases for log repo code refactoring

* java libs for within subjects (#883)

* initial changes for array of conditions

* pop array when getting condition

* add uniquifier

* moved rotate to mark

* handle null condition

* Merge branch 'algorithms-to-generate-conditions-queue' of https://github.com/CarnegieLearningWeb/UpGrade into java-libs-for-within-subject-assignment

* resolve conflicts

* move mark to assignment

* move experiment client to constructor

* rename experiment point to decision point

* keep mark in experiment client

---------

Co-authored-by: RidhamShah <[email protected]>
Co-authored-by: Zack Lee <[email protected]>
Co-authored-by: Vivek Fitkariwala <[email protected]>
Co-authored-by: Zack Lee <[email protected]>
Co-authored-by: pratik <[email protected]>
Co-authored-by: Dan Oswalt <[email protected]>
Co-authored-by: jreddig <[email protected]>
Co-authored-by: danoswaltCL <[email protected]>
Co-authored-by: Pratik Prajapati <[email protected]>

* add demo app boolean check to new-relic laoder (#929)

* add demo app boolean check to new-relic laoder

* wrong spot for ?

---------

Co-authored-by: jreddig <[email protected]>

* Fix the renderGoogleSignInButton function (#937)

* Version 5.0.1 bump (#939)

* Dev release 4 resolved merge conflicts (#949)

* change markdata object (#821)

* change markdata object

* condition is an object

* rename variable for clarity

* Bugfix/706: Handling old experiment json formats for importing experiments and import feature enhancement (#813)

* handling mostly all old experiment json formats for import

(cherry picked from commit fd588e6)

* scroll vertical for multiple import errors and added warnings for version mismatch

* reducing code complexity for import experiment component

* typing error corrected in import exp component

* pull updates from v3 (#875)

* V4 caliper support (#876)

* support for caliper graded profile (#759)

* support for caliper graded profile

* add iso duration

* remove unused imports

* export interfaces

* add caliper endpoint to v1 api

* Revert "add iso duration"

This reverts commit be6677b.

* stricter typing

* add caliper actor

* error handling for unsupported profiles and events

* update caliper data object

* add to v1

* add caliper enums to interfaces

* resolve conflicts

* add duration package

* match log file

* update version

* use upgrade types

* resolve conflicts

* update lockfile

* add caliper to v4 controller

* revert apache connector (#880)

* ✨ Updated client lib bundler (#868)

* ✨ Updated client lib bundler

Added separate bundler for browser and node

* Assigning default to the library variable

* Replacing isomorphic-fetch with axios

---------

Co-authored-by: danoswaltCL <[email protected]>

* pip version

* use patch

* pip version after add patch

* add docs (#896)

* add docs

* add more to readme for npm

* fix for undefined id for shared dp mark call (#901)

* remove local time (#905)

* Fix the renderGoogleSignInButton function (#937)

* pip v 4.1.8

* use 4.1.12 instead

* remove FirstDecisionPointReachedOn_LocalTime

---------

Co-authored-by: jreddig <[email protected]>
Co-authored-by: Pratik Prajapati <[email protected]>
Co-authored-by: Vivek Fitkariwala <[email protected]>
Co-authored-by: Zack Lee <[email protected]>

* Export All segments features added and export segment api modified

* revert exportsegment api removal

* test case changes from exportSegment to exportSegments

* Sync main with dev (#951)

* change markdata object (#821)

* change markdata object

* condition is an object

* rename variable for clarity

* Bugfix/706: Handling old experiment json formats for importing experiments and import feature enhancement (#813)

* handling mostly all old experiment json formats for import

(cherry picked from commit fd588e6)

* scroll vertical for multiple import errors and added warnings for version mismatch

* reducing code complexity for import experiment component

* typing error corrected in import exp component

* pull updates from v3 (#875)

* V4 caliper support (#876)

* support for caliper graded profile (#759)

* support for caliper graded profile

* add iso duration

* remove unused imports

* export interfaces

* add caliper endpoint to v1 api

* Revert "add iso duration"

This reverts commit be6677b.

* stricter typing

* add caliper actor

* error handling for unsupported profiles and events

* update caliper data object

* add to v1

* add caliper enums to interfaces

* resolve conflicts

* add duration package

* match log file

* update version

* use upgrade types

* resolve conflicts

* update lockfile

* add caliper to v4 controller

* revert apache connector (#880)

* ✨ Updated client lib bundler (#868)

* ✨ Updated client lib bundler

Added separate bundler for browser and node

* Assigning default to the library variable

* Replacing isomorphic-fetch with axios

---------

Co-authored-by: danoswaltCL <[email protected]>

* pip version

* use patch

* pip version after add patch

* add docs (#896)

* add docs

* add more to readme for npm

* fix for undefined id for shared dp mark call (#901)

* remove local time (#905)

* Fix the renderGoogleSignInButton function (#937)

* pip v 4.1.8

* use 4.1.12 instead

* remove dupe merged code

* remove dupe merged code

* remove dupe merged code

* remove dupe merged code

---------

Co-authored-by: jreddig <[email protected]>
Co-authored-by: Pratik Prajapati <[email protected]>
Co-authored-by: Vivek Fitkariwala <[email protected]>
Co-authored-by: Zack Lee <[email protected]>

* resolved backend testcases fails

* resolved frontend testcases fails

* code refactoring and removing unnecessary code

* resolved issue of zero weight replaced by undefined (#932)

* Build(deps): Bump protobufjs in /backend/packages/Upgrade (#972)

Bumps [protobufjs](https://github.com/protobufjs/protobuf.js) from 6.11.3 to 6.11.4.
- [Release notes](https://github.com/protobufjs/protobuf.js/releases)
- [Changelog](https://github.com/protobufjs/protobuf.js/blob/master/CHANGELOG.md)
- [Commits](https://github.com/protobufjs/protobuf.js/commits)

---
updated-dependencies:
- dependency-name: protobufjs
  dependency-type: indirect
...

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>

* importing multiple segments at once (#954)

* importing multiple segments at once

* resolving testcases

* replace segment in importSegment  with segments as plural

* remove calling query in import segment loop and change in logic

* resolve failing testcases

* resolve review comments

* resolve review comments

* Added dev branch remaining migration changes (#983)

Co-authored-by: RidhamShah <[email protected]>

* upgrade to node 18 (#981)

* upgrade to node 18

* revert scheduler to node 16

* revert lambda to node 16

* use node 16 only for lambda, default to 18

* one more reversion?

* ...and here

---------

Co-authored-by: danoswaltCL <[email protected]>

* Update all Client-Controller to validate API (New) (#934)

* Update all Client-Controller to validate API

* solved failing testcases

* solved git comments changes

* solve log errors

* experiment controller DTO changes

* experiment user controller validations done

* resolved failing testcase

* segment validation related changes done

* Added APIs Class Validations for Metric, Query & Log

* Solved unit testcase

* Added all users APIs Class Validations

* Added featureFlags APIs Class-validations

* Added analytics and other remaining APIs class-validations

* updated optinal validators

* PR review change

* updated optional parameters

* Solved paginated failing errors

* remove unnecessory code

* solve failing testcases

* Completed Experiment APIs class validations

* Update date enums in testcase

---------

Co-authored-by: RidhamShah <[email protected]>
Co-authored-by: Yagnik <[email protected]>
Co-authored-by: danoswaltCL <[email protected]>

* fixed payload type error (#1007)

* try using workflow branch input as commit target in release flow (#1009) (#1010)

* Solve mark and assignment issue

* Revert "Solve mark and assignment issue"

This reverts commit 59ca301.

* Fix/issue-1000 Updated mark call related changes (#1011)

* Solve mark and assignment issue

* add v4 validator changes as well

* remove unused import

* remove payload from mark validator v5 also

---------

Co-authored-by: RidhamShah <[email protected]>
Co-authored-by: danoswaltCL <[email protected]>

* reorg ts lib as classes, webpack bundle updates, http-client-wrapper (#986)

* reorg ts lib as classes, webpack bundle updates, http-client-wrapper

* remove console.logs

* add import change to mocks

* add logic to catch if custom httpClient option utilized in non-lite bundle, also removed some unused bits

* update uuid import and correct usage for clientsessionId, updated specs

* use concurrently and break up build types scripts

* 5.1 version update (#984)

* 5.1 version update

* remove comment

* update Scheduler to webpack 5, node 18 (#990)

* fix for jumbled sorting of exp list for lower and upper case exp names (#991)

* remove auto-merge workflow (#992)

* add smarter response types

* add smarter response types

* fix error handling on bad requests or end of retries

* remove async await from most ApiService calls, can just pass Promise straight through no problem

* get api version from package json and inject via webpack

* add api_version to jest config

* clean up lib tester code, pull in correct versions

* fixed payload type error (#1007) (#1008)

Co-authored-by: Yagnik Hingrajiya <[email protected]>

* try using workflow branch input as commit target in release flow (#1009)

* remove no-assignment logic

---------

Co-authored-by: Ben Blanchard <[email protected]>
Co-authored-by: Pratik Prajapati <[email protected]>
Co-authored-by: Yagnik Hingrajiya <[email protected]>

* bump version to 5.0.6

* make mark request status a string (#1016)

* turn off validation for v1 mark endpoint (#1023)

* turn off validation for v1 mark endpoint

* revert Main.java change

* revert Main.java change

* revert Main.java change

* revert Main.java change

* add request to logging output in error middleware (#1045)

* disable db error logging for most generic error handling (#1041)

* disable experiment client controller validation (#1049)

* disable experient controller validation (#1051)

* Moving data and query in within subject code block for latency issue in QA (#1062)

* moving data and query in within subject code block for latency issue in qa

* initialize array and cleanup

* comment out within-subjects in UI

---------

Co-authored-by: danoswaltCL <[email protected]>

* version bump (#1065)

* 1080 disable errors tab

* version patch

* 🐞  Hotfix/Split getValidExperiment queries into 3 sub queries to reduce latency against Release V5 (#1083)

* split getValidExperiment queries into 3 sub queries to reduce latency

* added cache for validExperiment function

* ⚡ Fixing caching

Updating caching-manager and fixing caching bug

* Run all queries at once for getValidExperiments

* solved caching errors

* revert cache-manger to older version

* fix majority of unit test cases for cached valid experiment mocks

* solve one of the test suite failures with appropriate mock

* fix for final test suite

* remove unnecessory console.logs

* solve git comments

* remove promise.all for sigle promises and remove metrics query from getValidExps as its not being used in assign and mark

* add CACHING_TTL to env

* add omnibus-specific load-test file to the repo

---------

Co-authored-by: RidhamShah <[email protected]>
Co-authored-by: Vivek Fitkariwala <[email protected]>
Co-authored-by: danoswaltCL <[email protected]>

* Hotfix caching getValidExperiments and query performance improvements (#1121)

* missed version on root (#1123)

* appease cicd with correct versions (#1124)

* revert to correct version (#1125)

* no retries for 4xx, retry other errors once instead of 3 times (#1140)

---------

Signed-off-by: dependabot[bot] <[email protected]>
Co-authored-by: jreddig <[email protected]>
Co-authored-by: dependabot[bot] <49699333+dependabot[bot]@users.noreply.github.com>
Co-authored-by: Ridham Shah <[email protected]>
Co-authored-by: RidhamShah <[email protected]>
Co-authored-by: Vivek Fitkariwala <[email protected]>
Co-authored-by: Yagnik Hingrajiya <[email protected]>
Co-authored-by: Yagnik <[email protected]>
Co-authored-by: Pratik Prajapati <[email protected]>
Co-authored-by: Matt McHenry <[email protected]>
Co-authored-by: amurphy-cl <[email protected]>
Co-authored-by: Zack Lee <[email protected]>
Co-authored-by: Zack Lee <[email protected]>
Co-authored-by: pratik <[email protected]>
Co-authored-by: Ben Blanchard <[email protected]>
Co-authored-by: Ben Blanchard <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

Within Subject Assign & Mark Operations
3 participants