Codeceptjs Terminal Error Output Format Has Changed

I am trying to get the regular error messages after test fails.
I get the error messages as given below. The last part where the summary is problematic.

Provide console output if related. Use --verbose mode for more details.

[Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    --- ENDED "after each" hook: After for "User should be added from Ldap" ---
 › [Dir] /Users/bugrahandurukan/code/mdm-server/e2eTest
    --- STARTED "before each" hook: Before for "User should be added from Ldap" ---
    I am on page "/"
    › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    › [Browser:Error] Found a 'popover' attribute. If you are testing the popover API, you must enable Experimental Web Platform Features. If not, note that custom attributes must start with 'data-': https://html.spec.whatwg.org/multipage/dom.html#custom-data-attribute. This usage will *likely cause site breakage* when the popover API ships: https://chromestatus.com/feature/5463833265045504.
    --- ENDED "before each" hook: Before for "User should be added from Ldap" ---
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    On NavbarFragment: dont see authenticated user
      I dont see element "#authenticationUser"
    I wait for element "#username", 3
    I fill field "#username", "admin"
    I wait for element "#password"
    I fill field "#password", "testpass"
    I wait 1
    I wait for element {"xpath":"//button[@type='submit']"}, 3
    I wait 1
    I force click {"xpath":"//button[@type='submit']"}
    I wait 1
    › [Browser:Error] Error: <svg> attribute width: Unexpected end of attribute. Expected length, "".
    On NavbarFragment: see authenticated user
      I wait for element "#authenticationUser", 20
    I wait 1
    I login as admin
      I wait 1
      I wait for element "#Users_MAIN_MENU_7", 7
      I click "#Users_MAIN_MENU_7"
      I wait for element "#Usersadd_SUB_MENU", 3
      I force click "#Usersadd_SUB_MENU"
      I wait for element "//li[@select='selectedTab=1']/*"
      I force click "//li[@select='selectedTab=1']/*"
      I wait 1
      I see element "//button[@id='addByLdap' and @disabled='disabled']"
      I wait for element<EMAIL_ADDRESS>      I clear field<EMAIL_ADDRESS>      I wait 0.5
      I fill field<EMAIL_ADDRESS>"ldap"
      I wait for element "//strong[contains(text(),'ldap')]", 5
      › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error (Non-Terminated) | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ | (err) => { step.status = 'failed'; step.endTime = ...
    [3] Error | Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================ undefined...
    [3] <teardown> Stopping recording promises
 › <screenshotOnFail> Test failed, try to save a screenshot
 › Screenshot is saving to /Users/bugrahandurukan/code/mdm-server/e2eTest/output/User_should_be_added_from_Ldap.failed.png
  ✖ User should be added from Ldap in 13928ms
    --- STARTED "after each" hook: After for "User should be added from Ldap" ---
    [4]  Starting recording promises
    I signout
      I wait for element "#authenticationUser", 20
      I wait for element "#authenticationUser", 3
      I force click "#authenticationUser"
      I wait for element "#signout", 3
      I force click "#signout"
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    --- ENDED "after each" hook: After for "User should be added from Ldap" ---
  Testing groups functions
 › [Dir] /Users/bugrahandurukan/code/mdm-server/e2eTest
    --- STARTED "before each" hook: Before for "Testing groups functions" ---
    I am on page "/"
    › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    › [Browser:Error] Found a 'popover' attribute. If you are testing the popover API, you must enable Experimental Web Platform Features. If not, note that custom attributes must start with 'data-': https://html.spec.whatwg.org/multipage/dom.html#custom-data-attribute. This usage will *likely cause site breakage* when the popover API ships: https://chromestatus.com/feature/5463833265045504.
    --- ENDED "before each" hook: Before for "Testing groups functions" ---
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    On NavbarFragment: dont see authenticated user
      I dont see element "#authenticationUser"
    I wait for element "#username", 3
    I fill field "#username", "admin"
    I wait for element "#password"
    I fill field "#password", "testpass"
    I wait 1
    I wait for element {"xpath":"//button[@type='submit']"}, 3
    I wait 1
    I force click {"xpath":"//button[@type='submit']"}
    I wait 1
    › [Browser:Error] Error: <svg> attribute width: Unexpected end of attribute. Expected length, "".
    On NavbarFragment: see authenticated user
      I wait for element "#authenticationUser", 20
    I wait 1
    I login as admin
      I wait 1
      I wait for element "#Users_MAIN_MENU_7", 7
      I click "#Users_MAIN_MENU_7"
      I wait for element "#Usersgroups_SUB_MENU", 3
      I force click "#Usersgroups_SUB_MENU"
      I wait for element "#firstAddButton"
      I force click "#firstAddButton"
      I wait for element "#groupName", 3
      I fill field "#groupName", "Test Group"
      I wait 1
      I wait for element "#lastAddButton", 3
      I force click "#lastAddButton"
      I wait for element ".glyphicon-pencil", 3
      I force click ".glyphicon-pencil"
      I wait 2
      I wait for element<EMAIL_ADDRESS>      I fill field<EMAIL_ADDRESS>"burak"
      I wait for element<EMAIL_ADDRESS>3
      I force click<EMAIL_ADDRESS>      I wait for element "//button[contains(@ng-click,'groups.saveGroupUsers(groups.groupId, groups.addUser.selectedUsersCheckboxes, groups.addUser.toAll);')]", 3
      I force click "//button[contains(@ng-click,'groups.saveGroupUsers(groups.groupId, groups.addUser.selectedUsersCheckboxes, groups.addUser.toAll);')]"
      I wait for element ".glyphicon-pencil", 3
      I force click ".glyphicon-pencil"
      › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
      I wait 2
      I wait for element<EMAIL_ADDRESS>= 5']", 3
      I force click<EMAIL_ADDRESS>= 5']"
      I wait for element<EMAIL_ADDRESS>      I fill field<EMAIL_ADDRESS>"begum"
      I wait for element<EMAIL_ADDRESS>3
      I force click<EMAIL_ADDRESS>      I wait for element "//button[contains(@ng-click,'groups.saveGroupUsers(groups.groupId, groups.addUser.selectedUsersCheckboxes, groups.addUser.toAll);')]", 3
      I force click "//button[contains(@ng-click,'groups.saveGroupUsers(groups.groupId, groups.addUser.selectedUsersCheckboxes, groups.addUser.toAll);')]"
      I wait for element ".glyphicon-pencil", 3
      I force click ".glyphicon-pencil"
      I wait 2
      I wait 2
      I click "#refreshPage"
      › [Browser:Error] TypeError: Cannot read properties of undefined (reading 'type')
    at groups.loadGroupUsers (http://localhost:3002/modules/groups/controllers/groups.client.controller.js:110:47)
    at groups.editInit (http://localhost:3002/modules/groups/controllers/groups.client.controller.js:582:12)
    at fn (eval at compile (http://localhost:3002/angular-hacked/angular.js:15126:15), <anonymous>:4:882)
    at ChildScope.$eval (http://localhost:3002/angular-hacked/angular.js:17994:28)
    at Object.pre (http://localhost:3002/angular-hacked/angular.js:27510:15)
    at http://localhost:3002/angular-hacked/angular.js:1259:18
    at invokeLinkFn (http://localhost:3002/angular-hacked/angular.js:10152:9)
    at nodeLinkFn (http://localhost:3002/angular-hacked/angular.js:9528:11)
    at compositeLinkFn (http://localhost:3002/angular-hacked/angular.js:8810:13)
    at compositeLinkFn (http://localhost:3002/angular-hacked/angular.js:8813:13)
TypeError: Cannot read properties of undefined (reading 'type')
    at groups.loadGroupUsers (http://localhost:3002/modules/groups/controllers/groups.client.controller.js:110:47)
    at groups.editInit (http://localhost:3002/modules/groups/controllers/groups.client.controller.js:582:12)
    at fn (eval at compile (http://localhost:3002/angular-hacked/angular.js:15126:15), <anonymous>:4:882)
    at ChildScope.$eval (http://localhost:3002/angular-hacked/angular.js:17994:28)
    at Object.pre (http://localhost:3002/angular-hacked/angular.js:27510:15)
    at http://localhost:3002/angular-hacked/angular.js:1259:18
    at invokeLinkFn (http://localhost:3002/angular-hacked/angular.js:10152:9)
    at nodeLinkFn (http://localhost:3002/angular-hacked/angular.js:9528:11)
    at compositeLinkFn (http://localhost:3002/angular-hacked/angular.js:8810:13)
    at compositeLinkFn (http://localhost:3002/angular-hacked/angular.js:8813:13)

      › [Browser:Error] ProtractorStats Watches:2239ProtractorStats Watches:2239
      I wait 1
      I wait for text "Test Group", 3
      I force click "Test Group"
      I wait 1
      I wait for text "burak", 3
      I wait for text "begum", 3
  ✔ OK in 20224ms

    --- STARTED "after each" hook: After for "Testing groups functions" ---
    I signout
      I wait for element "#authenticationUser", 20
      I wait for element "#authenticationUser", 3
      I force click "#authenticationUser"
      I wait for element "#signout", 3
      I force click "#signout"
      › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    --- ENDED "after each" hook: After for "Testing groups functions" ---
  Give role permissions
 › [Dir] /Users/bugrahandurukan/code/mdm-server/e2eTest
    --- STARTED "before each" hook: Before for "Give role permissions" ---
    I am on page "/"
    › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    › [Browser:Error] Found a 'popover' attribute. If you are testing the popover API, you must enable Experimental Web Platform Features. If not, note that custom attributes must start with 'data-': https://html.spec.whatwg.org/multipage/dom.html#custom-data-attribute. This usage will *likely cause site breakage* when the popover API ships: https://chromestatus.com/feature/5463833265045504.
    --- ENDED "before each" hook: Before for "Give role permissions" ---
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    On NavbarFragment: dont see authenticated user
      I dont see element "#authenticationUser"
    I wait for element "#username", 3
    I fill field "#username", "admin"
    I wait for element "#password"
    I fill field "#password", "testpass"
    I wait 1
    I wait for element {"xpath":"//button[@type='submit']"}, 3
    I wait 1
    I force click {"xpath":"//button[@type='submit']"}
    I wait 1
    › [Browser:Error] Error: <svg> attribute width: Unexpected end of attribute. Expected length, "".
    On NavbarFragment: see authenticated user
      I wait for element "#authenticationUser", 20
    I wait 1
    I login as admin
      I wait 1
      I wait for element "#Users_MAIN_MENU_7", 7
      I click "#Users_MAIN_MENU_7"
      I wait for element "(//*[@id='Usersadd_SUB_MENU'])[2]", 3
      I force click "(//*[@id='Usersadd_SUB_MENU'])[2]"
      I wait 1
      I wait for element "#roleName"
      I fill field "#roleName", "Group Admin"
      I wait for element "#sessionTimeout"
      I fill field "#sessionTimeout", 10
      I wait for element "#readSelectAll"
      I force click "#readSelectAll"
      I wait for element "#writeSelectAll"
      I force click "#writeSelectAll"
      I wait for element "//button[@ng-click='roleCtrl.saveRole()']"
      I force click "//button[@ng-click='roleCtrl.saveRole()']"
      I wait 1.5
      I wait 1
      I wait for element "#Users_MAIN_MENU_7", 7
      I click "#Users_MAIN_MENU_7"
      I wait for element "#Userslist_SUB_MENU", 3
      I click "#Userslist_SUB_MENU"
      I force click "#refreshPage"
      › [Browser:Error] ProtractorStats Watches:2127ProtractorStats Watches:2127
      I wait 1
      I wait for element "//input[contains(@data-ng-model, 'addUser.search.username')]", 5
      I fill field "//input[contains(@data-ng-model, 'addUser.search.username')]", "begum"
      I wait 1
      I wait for element ".glyphicon-pencil", 3
      I force click ".glyphicon-pencil"
      I wait for element "//td[contains(text(),'Group Admin')]/preceding-sibling::td/input[@type='checkbox']"
      I force click "//td[contains(text(),'Group Admin')]/preceding-sibling::td/input[@type='checkbox']"
      I wait 1
      › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "username"): (More info: https://goo.gl/9p2vKq) %o
      I scroll page to bottom
      I wait for element "//button[@type='submit']", 3
      I click "//button[@type='submit']"
  ✔ OK in 15318ms

    --- STARTED "after each" hook: After for "Give role permissions" ---
    I signout
      I wait for element "#authenticationUser", 20
      I wait for element "#authenticationUser", 3
      I force click "#authenticationUser"
      I wait for element "#signout", 3
      I force click "#signout"
      › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    --- ENDED "after each" hook: After for "Give role permissions" ---
  Edit users in the group
 › [Dir] /Users/bugrahandurukan/code/mdm-server/e2eTest
    --- STARTED "before each" hook: Before for "Edit users in the group" ---
    I am on page "/"
    › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    › [Browser:Error] Found a 'popover' attribute. If you are testing the popover API, you must enable Experimental Web Platform Features. If not, note that custom attributes must start with 'data-': https://html.spec.whatwg.org/multipage/dom.html#custom-data-attribute. This usage will *likely cause site breakage* when the popover API ships: https://chromestatus.com/feature/5463833265045504.
    --- ENDED "before each" hook: Before for "Edit users in the group" ---
    I login<EMAIL_ADDRESS>"testpass"
      I dont see element "#authenticationUser"
      I wait for element "#username", 3
      I fill field "#username"<EMAIL_ADDRESS>      › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
      I wait for element "#password"
      I fill field "#password", "testpass"
      I wait 1
      I wait for element {"xpath":"//button[@type='submit']"}, 3
      I wait 1
      I force click {"xpath":"//button[@type='submit']"}
      I wait 1
      I wait for element "#authenticationUser", 20
    On NavbarFragment: click user main menu button
      I wait 1
      I wait for element "#Users_MAIN_MENU_7", 7
      I click "#Users_MAIN_MENU_7"
    On NavbarFragment: click user list button
      I wait for element "#Userslist_SUB_MENU", 3
      I click "#Userslist_SUB_MENU"
    I wait 1
    On UserListPage: fill username field "begum"
      I force click "#refreshPage"
      I wait 1
      I wait for element "//input[contains(@data-ng-model, 'addUser.search.username')]", 5
      I fill field "//input[contains(@data-ng-model, 'addUser.search.username')]", "begum"
    On UserListPage: click edit button
      I wait 1
      I wait for element ".glyphicon-pencil", 3
      I force click ".glyphicon-pencil"
    On EditUserPage: fill username field "begum1"
      I wait for element "#username", 5
      I fill field "#username", "begum1"
      › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "username"): (More info: https://goo.gl/9p2vKq) %o
      I wait 2
    On EditUserPage: click save button
      I wait 1
      I scroll page to bottom
      I wait for element "//button[@type='submit']", 3
      I click "//button[@type='submit']"
    On NavbarFragment: click user main menu button
      I wait 1
      I wait for element "#Users_MAIN_MENU_7", 7
      I click "#Users_MAIN_MENU_7"
    On NavbarFragment: click user list button
      I wait for element "#Userslist_SUB_MENU", 3
      I click "#Userslist_SUB_MENU"
    I wait 1
    On UserListPage: fill username field "begum"
      I force click "#refreshPage"
      I wait 1
      I wait for element "//input[contains(@data-ng-model, 'addUser.search.username')]", 5
      I fill field "//input[contains(@data-ng-model, 'addUser.search.username')]", "begum"
    On UserListPage: click edit button
      I wait 1
      I wait for element ".glyphicon-pencil", 3
      I force click ".glyphicon-pencil"
    I wait 1
    On EditUserPage: confirm new username
      I wait 1
      I wait for element "#username"
      I wait for value "#username", "begum1", 3
  ✔ OK in 18747ms

    --- STARTED "after each" hook: After for "Edit users in the group" ---
    I signout
      I wait for element "#authenticationUser", 20
      I wait for element "#authenticationUser", 3
      I force click "#authenticationUser"
      I wait for element "#signout", 3
      I force click "#signout"
      › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    --- ENDED "after each" hook: After for "Edit users in the group" ---
  Add applications to the group
 › [Dir] /Users/bugrahandurukan/code/mdm-server/e2eTest
    --- STARTED "before each" hook: Before for "Add applications to the group" ---
    I am on page "/"
    › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    › [Browser:Error] Found a 'popover' attribute. If you are testing the popover API, you must enable Experimental Web Platform Features. If not, note that custom attributes must start with 'data-': https://html.spec.whatwg.org/multipage/dom.html#custom-data-attribute. This usage will *likely cause site breakage* when the popover API ships: https://chromestatus.com/feature/5463833265045504.
    --- ENDED "before each" hook: Before for "Add applications to the group" ---
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    On NavbarFragment: dont see authenticated user
      I dont see element "#authenticationUser"
    I wait for element "#username", 3
    I fill field "#username", "admin"
    I wait for element "#password"
    I fill field "#password", "testpass"
    I wait 1
    I wait for element {"xpath":"//button[@type='submit']"}, 3
    I wait 1
    I force click {"xpath":"//button[@type='submit']"}
    I wait 1
    › [Browser:Error] Error: <svg> attribute width: Unexpected end of attribute. Expected length, "".
    › [Browser:Error] Error: <svg> attribute width: Unexpected end of attribute. Expected length, "".
    On NavbarFragment: see authenticated user
      I wait for element "#authenticationUser", 20
    I wait 1
    I login as admin
      I wait 1
      I wait for element "#Users_MAIN_MENU_7", 7
      I click "#Users_MAIN_MENU_7"
      I wait for element "#Usersgroups_SUB_MENU", 3
      I force click "#Usersgroups_SUB_MENU"
      I wait for element ".glyphicon-pencil", 3
      I force click ".glyphicon-pencil"
      I wait 2
      I wait for element ".e2e-applications", 3
      I force click ".e2e-applications"
      I wait for element "//input[@type='checkbox']", 3
      I force click "//input[@type='checkbox']"
      › [Browser:Error] TypeError: Cannot set properties of undefined (setting 'selectableEnvironmentAtTheSameTime')
    at mobileapp.setSelectableAtTheSameTimeKeys (http://localhost:3002/modules/mobileapps/controllers/mobileapps.client.controller.js:390:57)
    at fn (eval at compile (http://localhost:3002/angular-hacked/angular.js:15126:15), <anonymous>:4:342)
    at http://localhost:3002/lib/checklist-model/checklist-model.js:94:9
    at Scope.$digest (http://localhost:3002/angular-hacked/angular.js:17836:23)
    at t.$digest (http://localhost:3002/lib/ng-stats/dist/ng-stats.min.js:2:676)
    at ChildScope.$apply (http://localhost:3002/angular-hacked/angular.js:18102:24)
    at NgModelController.$$debounceViewValueCommit (http://localhost:3002/angular-hacked/angular.js:28488:14)
    at NgModelController.$setViewValue (http://localhost:3002/angular-hacked/angular.js:28460:12)
    at HTMLInputElement.listener (http://localhost:3002/angular-hacked/angular.js:25016:10)
    at defaultHandlerWrapper (http://localhost:3002/angular-hacked/angular.js:3546:11)TypeError: Cannot set properties of undefined (setting 'selectableEnvironmentAtTheSameTime')
    at mobileapp.setSelectableAtTheSameTimeKeys (http://localhost:3002/modules/mobileapps/controllers/mobileapps.client.controller.js:390:57)
    at fn (eval at compile (http://localhost:3002/angular-hacked/angular.js:15126:15), <anonymous>:4:342)
    at http://localhost:3002/lib/checklist-model/checklist-model.js:94:9
    at Scope.$digest (http://localhost:3002/angular-hacked/angular.js:17836:23)
    at t.$digest (http://localhost:3002/lib/ng-stats/dist/ng-stats.min.js:2:676)
    at ChildScope.$apply (http://localhost:3002/angular-hacked/angular.js:18102:24)
    at NgModelController.$$debounceViewValueCommit (http://localhost:3002/angular-hacked/angular.js:28488:14)
    at NgModelController.$setViewValue (http://localhost:3002/angular-hacked/angular.js:28460:12)
    at HTMLInputElement.listener (http://localhost:3002/angular-hacked/angular.js:25016:10)
    at defaultHandlerWrapper (http://localhost:3002/angular-hacked/angular.js:3546:11)
      I wait for element "//button[@ng-click='groups.saveGroupsApplications(groups.groupId, groups.mobileapp.selectedAppsCheckboxes)']", 3
      I force click "//button[@ng-click='groups.saveGroupsApplications(groups.groupId, groups.mobileapp.selectedAppsCheckboxes)']"
      I wait for element "//a[contains(@confirmed-click,'groups.removeGroup(group)')]", 3
      I dont see element "//*[@class='align_center text-muted']"
  ✔ OK in 9447ms

    --- STARTED "after each" hook: After for "Add applications to the group" ---
    I signout
      I wait for element "#authenticationUser", 20
      I wait for element "#authenticationUser", 3
      I force click "#authenticationUser"
      I wait for element "#signout", 3
      I force click "#signout"
      › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    --- ENDED "after each" hook: After for "Add applications to the group" ---
  Change group name
 › [Dir] /Users/bugrahandurukan/code/mdm-server/e2eTest
    --- STARTED "before each" hook: Before for "Change group name" ---
    I am on page "/"
    › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    › [Browser:Error] Found a 'popover' attribute. If you are testing the popover API, you must enable Experimental Web Platform Features. If not, note that custom attributes must start with 'data-': https://html.spec.whatwg.org/multipage/dom.html#custom-data-attribute. This usage will *likely cause site breakage* when the popover API ships: https://chromestatus.com/feature/5463833265045504.
    --- ENDED "before each" hook: Before for "Change group name" ---
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    On NavbarFragment: dont see authenticated user
      I dont see element "#authenticationUser"
    I wait for element "#username", 3
    I fill field "#username", "admin"
    I wait for element "#password"
    I fill field "#password", "testpass"
    I wait 1
    I wait for element {"xpath":"//button[@type='submit']"}, 3
    I wait 1
    I force click {"xpath":"//button[@type='submit']"}
    I wait 1
    › [Browser:Error] Error: <svg> attribute width: Unexpected end of attribute. Expected length, "".
    On NavbarFragment: see authenticated user
      I wait for element "#authenticationUser", 20
    I wait 1
    I login as admin
      I wait 1
      I wait for element "#Users_MAIN_MENU_7", 7
      I click "#Users_MAIN_MENU_7"
      I wait for element "#Usersgroups_SUB_MENU", 3
      I force click "#Usersgroups_SUB_MENU"
      I wait for element ".glyphicon-pencil", 3
      I force click ".glyphicon-pencil"
      I wait 2
      I wait for element ".glyphicon-th-list", 3
      I force click ".glyphicon-th-list"
      I wait for element "#groupName", 3
      I fill field "#groupName", "New Name Test Group"
      I wait for element ".glyphicon-floppy-disk", 3
      I force click ".glyphicon-floppy-disk"
      I see "New Name Test Group"
    [4] Error (Non-Terminated) | Error | (err) => { step.status = 'failed'; step.endTime = ...
    [4] Error | Error undefined...
    [4] <teardown> Stopping recording promises
 › <screenshotOnFail> Test failed, try to save a screenshot
 › Screenshot is saving to /Users/bugrahandurukan/code/mdm-server/e2eTest/output/Change_group_name.failed.png
    --- STARTED "after each" hook: After for "Change group name" ---
    [5]  Starting recording promises
    I signout
      I wait for element "#authenticationUser", 20
      I wait for element "#authenticationUser", 3
      I force click "#authenticationUser"
      I wait for element "#signout", 3
      I force click "#signout"
      › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    --- ENDED "after each" hook: After for "Change group name" ---
 › [Dir] /Users/bugrahandurukan/code/mdm-server/e2eTest
    --- STARTED "before each" hook: Before for "Change group name" ---
    I am on page "/"
    › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    › [Browser:Error] Found a 'popover' attribute. If you are testing the popover API, you must enable Experimental Web Platform Features. If not, note that custom attributes must start with 'data-': https://html.spec.whatwg.org/multipage/dom.html#custom-data-attribute. This usage will *likely cause site breakage* when the popover API ships: https://chromestatus.com/feature/5463833265045504.
    --- ENDED "before each" hook: Before for "Change group name" ---
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    On NavbarFragment: dont see authenticated user
      I dont see element "#authenticationUser"
    I wait for element "#username", 3
    I fill field "#username", "admin"
    I wait for element "#password"
    I fill field "#password", "testpass"
    I wait 1
    I wait for element {"xpath":"//button[@type='submit']"}, 3
    I wait 1
    I force click {"xpath":"//button[@type='submit']"}
    I wait 1
    › [Browser:Error] Error: <svg> attribute width: Unexpected end of attribute. Expected length, "".
    On NavbarFragment: see authenticated user
      I wait for element "#authenticationUser", 20
    I wait 1
    I login as admin
      I wait 1
      I wait for element "#Users_MAIN_MENU_7", 7
      I click "#Users_MAIN_MENU_7"
      I wait for element "#Usersgroups_SUB_MENU", 3
      I force click "#Usersgroups_SUB_MENU"
      I wait for element ".glyphicon-pencil", 3
      I force click ".glyphicon-pencil"
      I wait 2
      I wait for element ".glyphicon-th-list", 3
      I force click ".glyphicon-th-list"
      I wait for element "#groupName", 3
      I fill field "#groupName", "New Name Test Group"
      I wait for element ".glyphicon-floppy-disk", 3
      I force click ".glyphicon-floppy-disk"
      I see "New Name Test Group"
  ✔ Change group name in 9722ms
    --- STARTED "after each" hook: After for "Change group name" ---
    I signout
      I wait for element "#authenticationUser", 20
      I wait for element "#authenticationUser", 3
      I force click "#authenticationUser"
      I wait for element "#signout", 3
      I force click "#signout"
      › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    --- ENDED "after each" hook: After for "Change group name" ---
  Delete group
 › [Dir] /Users/bugrahandurukan/code/mdm-server/e2eTest
    --- STARTED "before each" hook: Before for "Delete group" ---
    I am on page "/"
    › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
    › [Browser:Error] Found a 'popover' attribute. If you are testing the popover API, you must enable Experimental Web Platform Features. If not, note that custom attributes must start with 'data-': https://html.spec.whatwg.org/multipage/dom.html#custom-data-attribute. This usage will *likely cause site breakage* when the popover API ships: https://chromestatus.com/feature/5463833265045504.
    --- ENDED "before each" hook: Before for "Delete group" ---
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    On NavbarFragment: dont see authenticated user
      I dont see element "#authenticationUser"
    I wait for element "#username", 3
    I fill field "#username", "admin"
    I wait for element "#password"
    I fill field "#password", "testpass"
    I wait 1
    I wait for element {"xpath":"//button[@type='submit']"}, 3
    I wait 1
    I force click {"xpath":"//button[@type='submit']"}
    I wait 1
    › [Browser:Error] Error: <svg> attribute width: Unexpected end of attribute. Expected length, "".
    On NavbarFragment: see authenticated user
      I wait for element "#authenticationUser", 20
    I wait 1
    I login as admin
      I wait 1
      I wait for element "#Users_MAIN_MENU_7", 7
      I click "#Users_MAIN_MENU_7"
      I wait for element "#Usersgroups_SUB_MENU", 3
      I force click "#Usersgroups_SUB_MENU"
      I wait for element "//input[contains(@data-ng-model,'groups.search.$')]", 3
      I fill field "//input[contains(@data-ng-model,'groups.search.$')]", "New Name Test Group"
      I wait for element "//a[contains(@confirmed-click,'groups.removeGroup(group)')]", 3
      I force click "//a[contains(@confirmed-click,'groups.removeGroup(group)')]"
      I wait for visible "//button[@ng-click='ok()']", 3
      I force click "//button[@ng-click='ok()']"
      › [Browser:Error] Failed to load resource: the server responded with a status of 400 (Bad Request)
  ✔ OK in 7544ms

    --- STARTED "after each" hook: After for "Delete group" ---
    I signout
      I wait for element "#authenticationUser", 20
      I wait for element "#authenticationUser", 3
      I force click "#authenticationUser"
      I wait for element "#signout", 3
      I force click "#signout"
    I wait 1
    › [Browser:Verbose] [DOM] Input elements should have autocomplete attributes (suggested: "current-password"): (More info: https://goo.gl/9p2vKq) %o
    --- ENDED "after each" hook: After for "Delete group" ---

-- FAILURES:

  1) groups
       User should be added from Ldap:
     Error: element (//strong[contains(text(),'ldap')]) still not present on page after 5 sec
locator.waitFor: Timeout 5000ms exceeded.
=========================== logs ===========================
waiting for locator('xpath=//strong[contains(text(),\'ldap\')]').first()
============================================================
      at Playwright.waitForElement (node_modules/codeceptjs/lib/helper/Playwright.js:2493:13)

  FAIL  | 7 passed, 1 failed   // 3m
    started teardown hook
profile: undefined
    finished teardown hook

I used to get error in the format where I could see the code pieces' location within the file system, the fail screenshot location and so on. I do not know what has changed. Please help me out.

CodeceptJS version: 3.5.11
NodeJS Version: v20.10.0
Operating System: Mac
playwright
Configuration file:

/** @type {CodeceptJS.MainConfig} */
const { exec } = require("child_process");
var bluebird = require("bluebird");
const { event } = require("codeceptjs");
const { error } = require("console");
var execAsync = bluebird.promisify(exec);
exports.config = {
  tests: "./tests/*_test.js",
  output: "./output",
  retry: 3,
  helpers: {
    Playwright: {
      url: "http://localhost:3002/#!",
      show: true,
      browser: "chromium",
      ignoreHTTPSErrors: true,
      restart: "keep",
      keepBrowserState: true,
    },
    LocatorOperationsHelper: {
      require: "./locatoroperations_helper.js",
    },
    MobileOperations: {
      require: "./mobileoperations_helper.js",
    },
    FileSystem: {},
    AssertWrapper: {
      require: "codeceptjs-assert",
    },
    KeepLogin: {
      require: "./keeplogin_helper.js",
    },
  },
  plugins: {
    subtitles: {
      enabled: true,
    },
    pauseOnFail: {},
    tryTo: {
      enabled: true,
    },
    coverage: {
      enabled: false,
    },
    allure: {
      enabled: true,
      require: "@codeceptjs/allure-legacy",
    },
  },
  async bootstrap() {
    // exec("node ../e2e/reset-db.js");
    execAsync("node deleteFailScreenshots.js");
    execAsync("node deleteCoverageJsons.mjs ");
    // exec('mongo "mongodb://mongo/mean-protractor" e2e/mongo.js');
    await execAsync(
      " docker cp ../e2e/ mdm-server-mongo-1:/ ; docker exec mdm-server-mongo-1  mongo mean-protractor e2e/mongo.js"
    );
  },

  async teardown() {
    console.log("profile: " + process.env.profile);
    if (process.env.profile === "coverageen") {
      console.log("!!!!!!!!!!!!!!!!!");
      exec("sh 'ls e2eTest/coverage'");
      exec("node convertCodeCoverageFormat.mjs");
      exec("npx nyc report --reporter html -t coverage");
      exec("sh 'ls e2eTest/output/coverage'");
    }
  },

  include: {
    I: "./steps_file.js",
    LoginPage: "./pages/LoginPage.js",
    NavbarFragment: "./fragments/NavbarFragment.js",
    AddUserPage: "./pages/AddUserPage.js",
    UserListPage: "./pages/UserListPage.js",
    LdapAddUserPage: "./pages/LdapAddUserPage.js",
    LdapSettingsPage: "./pages/LdapSettingsPage.js",
    CsvAddUserPage: "./pages/CsvAddUserPage.js",
    GroupsPage: "./pages/GroupsPage.js",
    EditUserPage: "./pages/EditUserPage.js",
    AddRolePage: "./pages/AddRolePage.js",
    ChangePasswordPage: "./pages/ChangePasswordPage.js",
    EditProfilePage: "./pages/EditProfilePage.js",
    RoleListPage: "./pages/RoleListPage.js",
    DevicesPage: "./pages/DevicesPage.js",
    PoliciesPage: "./pages/PoliciesPage.js",
    ApnPage: "./pages/ApnPage.js",
    ExchangeConfigurationsPage: "./pages/ExchangeConfigurationsPage.js",
    KioskPage: "./pages/KioskPage.js",
    HomeScreenLayoutsPage: "./pages/HomeScreenLayoutsPage.js",
    WifiConfigurationsPage: "./pages/WifiConfigurationsPage.js",
    KeyguardFeaturesPage: "./pages/KeyguardFeaturesPage.js",
    PermissionGrantStatesPage: "./pages/PermissionGrantStatesPage.js",
    WebContentFiltersPage: "./pages/WebContentFiltersPage.js",
    PasscodePoliciesPage: "./pages/PasscodePoliciesPage.js",
    SingleAppModesPage: "./pages/SingleAppModesPage.js",
    WallpapersPage: "./pages/WallpapersPage.js",
    VpnConfigurationsPage: "./pages/VpnConfigurationsPage.js",
    SharedDeviceConfigurationsPage: "./pages/SharedDeviceConfigurationsPage.js",
    SystemUpdatePoliciesPage: "./pages/SystemUpdatePoliciesPage.js",
    IosAccountsPage: "./pages/IosAccountsPage.js",
    IosAppNotificationSettingsPage: "./pages/IosAppNotificationSettingsPage.js",
    FirewallRulesPage: "./pages/FirewallRulesPage.js",
    PredefinedAppsPage: "./pages/PredefinedAppsPage.js",
    CallBlacklistsPage: "./pages/CallBlacklistsPage.js",
    MyLocationsPage: "./pages/MyLocationsPage.js",
    CriteriaPage: "./pages/CriteriaPage.js",
    ApplicationsPage: "./pages/ApplicationsPage.js",
    BooksPage: "./pages/BooksPage.js",
    GeneralDeviceConfigPage: "./pages/GeneralDeviceConfigPage.js",
    AssignPoliciesPage: "./pages/AssignPoliciesPage.js",
    LicenseInfoPage: "./pages/LicenseInfoPage.js",
    AppleConfiguratorProfilesPage: "./pages/AppleConfiguratorProfilesPage.js",
    CertificatesPage: "./pages/CertificatesPage.js",
    DeviceFilePage: "./pages/DeviceFilePage.js",
    ProxyConfigurationPage: "./pages/ProxyConfigurationPage.js",
    CommandsPage: "./pages/CommandsPage.js",
    SecureExchangeSettingsPage: "./pages/SecureExchangeSettingsPage.js",
    CloudConnectPage: "./pages/CloudConnectPage.js",
    KibanaDashboardsPage: "./pages/KibanaDashboardsPage.js",
    UserSpecificVpnPage: "./pages/UserSpecificVpnPage.js",
    UpdateMdmAgentsPage: "./pages/UpdateMdmAgentsPage.js",
    SimCardNumbersPage: "./pages/SimCardNumbersPage.js",
    SystemSettingsPage: "./pages/SystemSettingsPage.js",
    LandingDashboardPage: "./pages/LandingDashboardPage.js",
    AgreementPage: "./pages/AgreementPage.js",
    AndroidEnterprisePage: "./pages/AndroidEnterprisePage.js",
    APNSCertificatePage: "./pages/APNSCertificatePage.js",
    DeviceOwnerQrGeneratePage: "./pages/DeviceOwnerQrGeneratePage.js",
    RemovedDevicesPage: "./pages/RemovedDevicesPage.js",
    WebsiteThemesPage: "./pages/WebsiteThemesPage.js",
    MessagesPage: "./pages/MessagesPage.js",
    ViolationsPage: "./pages/ViolationsPage.js",
    TailLogsPage: "./pages/TailLogsPage.js",
    HealthCheckPage: "./pages/HealthCheckPage.js",
    SamsungKnoxPage: "./pages/SamsungKnoxPage.js",
    IntroPage: "./pages/IntroPage.js",
    IOSEnterprisePage: "./pages/IOSEnterprisePage.js",
    BugReportFragment: "./fragments/BugReportFragment.js",
    SpotlightFragment: "./fragments/SpotlightFragment.js",
    MobivisorMainMobilePage: "./mobilePages/MobivisorMainMobilePage.js",
    VestelLockedScreenPage: "./mobilePages/VestelLockedScreenPage.js",
    MobileChromePage: "./mobilePages/MobileChromePage.js",
    MobivisorLockedScreenPage: "./mobilePages/MobivisorLockedScreenPage.js",
    MobivisorLoginPage: "./mobilePages/MobivisorLoginPage.js",
    MobivisorInformationPage: "./mobilePages/MobivisorInformationPage.js",
    MobivisorLostModePage: "./mobilePages/MobivisorLostModePage.js",
    GeneralLockedScreenPage: "./mobilePages/GeneralLockedScreenPage.js",
    MobivisorAppCatalogPage: "./mobilePages/MobivisorAppCatalogPage.js",
    VestelSettingsPage: "./mobilePages/VestelSettingsPage.js",
    VestelAppMenuPage: "./mobilePages/VestelAppMenuPage.js",
    AndroidSettingsPage: "./mobilePages/AndroidSettingsPage.js",
    AndroidKeyEventsPage: "./mobilePages/AndroidKeyEventsPage.js",
    CameraPage: "./mobilePages/CameraPage.js",
    AndroidLandingPage: "./mobilePages/AndroidLandingPage.js",
    AndroidGeneralActions: "./mobilePages/AndroidGeneralActions.js",
    GooglePlay: "./mobilePages/GooglePlay.js",
    AndroidFileManager: "./mobilePages/AndroidFileManager.js",
    KioskModePage: "./mobilePages/KioskModePage.js",
    ChromePage: "./mobilePages/ChromePage.js",
    GooglePage: "./mobilePages/GooglePage.js",
    MobivisorSetupPage: "./mobilePages/MobivisorSetupPage.js",
  },
  name: process.env.profile, //en, de, tr
  mobivisorCookieHolder: undefined,
};

Thanks for your response.

I also tried to reinitiate the project on a different directory the problem still persists.


feat(@angular-devkit/build-angular): support custom headers in dev-server

Make it possible to configure dev-server to send custom HTTP headers on
every client request. These headers can be specified as a key-value map
under the new "headers" property of the dev-server builder in
angular.json. These headers are then passed on to the webpack devserver.
An example use case for this is to enable various security features,
such as CSP and Trusted Types, both in local application development and
in integration tests, by setting appropriate HTTP headers.
This is part of an effort to add support for Trusted Types in Angular.
The ability to enforce Trusted Types during development and integration
tests is essential, as this can help detect Trusted Types violations
that might otherwise break applications when they're pushed to
production where such security features may be enforced.
This change is completely backwards compatible, and does not change
any behavior before the "headers" property is set.

CC @engelsdamien @koto


Minor improvements in Sentinel-2 Inference Example

Following https://github.com/allenai/satlas/issues/13 I note a couple of minor improvements

from osgeo import gdal is not required for this example and can be removed (somehow this always gives headaches on mac)
device = torch.device("cuda") -> preferable to use device = torch.device("cuda" if torch.cuda.is_available() else "cpu") to avoid errors on CPU

Thanks, made these changes (updated the device in the other scripts as well)


HDDS-6360. Create stack dump on acceptance test failure

What changes were proposed in this pull request?
Sometimes acceptance test fails with timeout while writing data. Creating a stack dump for each container on test failure may be useful to debug the problem.
https://issues.apache.org/jira/browse/HDDS-6360
How was this patch tested?
Induced timeout in Freon test, verified stack dumps were taken and included in the acceptance bundles.
https://github.com/adoroszlai/hadoop-ozone/actions/runs/1923597482
Regular CI:
https://github.com/adoroszlai/hadoop-ozone/actions/runs/1923899545

Thanks @smengcl for the review.


Official role suggestion menu does not support keyboard navigation

If you start typing in the name of a Role then the autocomplete list appears, however when you use the arrow keys to try to move to the list they do not highlight.

Believed fixed by a95c28dc31e2c6e80ab88bcfa1bf5752edc7dad9


Convert to Maven Multi Module project.

See #40.

[Current coverage][cc-pull] is 90.78%

Merging [#45][cc-pull] into [master][cc-base-branch] will decrease coverage by 4.40%

@@             master        #45   diff @@
==========================================
  Files            70         74     +4
  Lines           769        901   +132
  Methods           0          0
  Messages          0          0
  Branches        160        160
==========================================
+ Hits            732        818    +86
- Misses           37         59    +22
- Partials          0         24    +24

Powered by Codecov. Last updated by [7b878e1...b6a6db4][cc-compare]
[cc-base-branch]: https://codecov.io/gh/parsingdata/metal/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/parsingdata/metal/compare/7b878e197214711a014ac29f6c96b4c94723ce71...b6a6db4c57f6b233a95b92f3c2a50095db384717
[cc-pull]: https://codecov.io/gh/parsingdata/metal/pull/45?src=pr


flutter run doesn't unforward ports used for remote debugging.

Steps to Reproduce

flutter run -v in  examples/hello_world

Target Platform: android
Unlike flutter attach, flutter run never calls device.unforward(..) which removes the port binding.
I tested on v1.9.1+hotfix.6 and master.
Logs
[STDERR] [   +6 ms] Error waiting for a debug connection: ProcessException: Process exited abnormally:2019-12-02T14:07:18.406306:
2019-12-02T14:07:18.406419: [STDERR]            adb: error: cannot bind listener: Too many open files
[STDERR]              Command: /usr/local/share/android-sdk/platform-tools/adb -s ZY22458D8C forward tcp:0 tcp:44386

Full log: https://gist.github.com/blasten/2845cae36c8d238a760a1b91a39ed9ab
cc @zanderso

Cocoon may kill the adb server, which releases the file descriptors. https://github.com/flutter/cocoon/blob/1cb0d9fb0d28a1302c6f0585c7a53174503cc50b/agent/lib/src/adb.dart#L123. This might be the reason why the test is flaky.


add multi-format utilities to aid in prompt building

This is some of the outstanding work from the old repo that I thought would be helpful to integrate into the new repo.
I found these tools helpful in work on more complex recipes; I wanted to support all of the prompt styles I had written, as well as easier experimentation with, e.g., ordering and selection of few-shot examples.
@stuhlmueller for feedback on the overall API; leaving as a draft PR for now.
As a follow-up, I'll add a function to pull cases back out of a completion to aid in iterative prompting (e.g., chain-of-thought).
@CG80499 had also expressed interest in using this, perhaps in Elicit as well -- would appreciate your comments, too.

I have read the CLA Document and I hereby sign the CLA


Feat/dawn

Implement DAWN watermarking technique for Sklearn and Pytorch + fix minor bugs

Hello @sofianelounici! Thanks for opening this PR.

In the file examples/marklearn/malware_detection_dawn.py:

Line 49:39: E226 missing whitespace around arithmetic operator

In the file examples/marktorch/mnist_dawn.py:

Line 50:35: E226 missing whitespace around arithmetic operator

In the file examples/marktorch/mnist_selected.py:

Line 42:1: W293 blank line contains whitespace

In the file mlmodelwatermarking/marktorch.py:

Line 667:37: E226 missing whitespace around arithmetic operator

In the file mlmodelwatermarking/training_args.py:

Line 37:46: E226 missing whitespace around arithmetic operator

Do see the Hitchhiker's guide to code style


invoke: system-probe: add test-debug task

What does this PR do?

This PR adds the system-probe.test-debug task. Its goal is to help with running delve on a specific test, and is made to be called with the same arguments as the system-probe.test task, so that one can simply add the -debug part to re-run the test under delve.
One thing to note is that the command requires the --run option to be provided. This is part of the reason being it being a separate task, and not an additional flag. The task works a bit differently too, as it won't loop through packages to test, won't call the go binary (and the arguments to delve are not the same as the go test command, nor report the failed packages at the end.
Usage example:
# Standard test run
 inv -e system-probe.test --skip-linters -p ./pkg/network/protocols/grpc --run 'TestGRPCScenarios'

# Debugging the same test - just add debug to the command name
 inv -e system-probe.test-debug --skip-linters -p ./pkg/network/protocols/grpc --run 'TestGRPCScenarios'

Motivation

Additional Notes

Possible Drawbacks / Trade-offs

Describe how to test/QA your changes

Reviewer's Checklist

[ ] If known, an appropriate milestone has been selected; otherwise the Triage milestone is set.
[ ] Use the major_change label if your change either has a major impact on the code base, is impacting multiple teams or is changing important well-established internals of the Agent. This label will be use during QA to make sure each team pay extra attention to the changed behavior. For any customer facing change use a releasenote.
[ ] A release note has been added or the changelog/no-changelog label has been applied.
[ ] Changed code has automated tests for its functionality.
[ ] Adequate QA/testing plan information is provided if the qa/skip-qa label is not applied.
[ ] At least one team/.. label has been applied, indicating the team(s) that should QA this change.
[ ] If applicable, docs team has been notified or an issue has been opened on the documentation repo.
[ ] If applicable, the need-change/operator and need-change/helm labels have been applied.
[ ] If applicable, the k8s/<min-version> label, indicating the lowest Kubernetes version compatible with this feature.
[ ] If applicable, the config template has been updated.

/merge


How can we save and get our data from local database if phone was offline in our repository ?

my problem is that I want to have an offline application that works online if the network is available and work offline if the phone network is online, and i want to save data for times that the phone network is not available

I think some kind of cached would do. I think this is not implemented on this app so far.

Sorry man for reply your comment too late.
Sound good! I will do it as soon as I can :D


Attributes transclussion on functional components

Vue.js version
2.0.0b4
Reproduction Link
https://jsfiddle.net/miljan/Lof3r8pb/
Steps to reproduce
Open the jsfiddle and examine the rendered buttons code.
What is Expected?
I expect the aria attribute to be set on both components, as per transclusion feature.
What is actually happening?
The transclusion doesn't works on functional components.

Functional components do not have auto attribute transclusion, you get exactly what you returned from its render function. To "pass down" the raw data, do:
render (h, ctx) {
  return h(
    'button',
    ctx,data, // use "transcluded data"
    ['Button']
}


Support to cancel the execution of a command

I am running a long-running command from the exec SDK, and my extension should allow the users to cancel the execution at any time. This is not supported at the moment

Hi, long running commands started with streaming optionsreturn an object allowing you to close the long running process (since SDK 0.2.3).
Note also that when users exit the extension tab, these processes will be closed automatically.


[BC] fix HoleM57

There are some label issues with HoleM57 that raised some FEMM model build issues. With this PR this should be fix.
Nevertheless, I seems we need to discuss the line labels with respect to 'get_mesh_param' FEMM function.

Thank you for this correction.
Maybe on this Friday I will try, once and for all, to write the "label guidelines" documentation and update the code accordingly. I will open an issue this week to gather all the previous discussions.


Trackers persist while outTxs have already been paid.

Take Mumbi testnet for an example. The trackers with smaller nonces (2527, 2596, 2655...) still exists in tracker store while pending cctx's low nonce already reaches **18279**. The small-nonce tracker will never get the chances to be cleaned up.

pending cctxs and garbage trackers had been cleaned up with hotfix release v11.0.4


Test deployment with render

Generate a docker image to be fetched by render
https://docs.github.com/en/packages/working-with-a-github-packages-registry/working-with-the-container-registry
Test create a web service based on this docker image
Configure environment to match the

# build image
docker-compose up

# find image
docker image ls

# push image
docker push ghcr.io/NAMESPACE/IMAGE_NAME:latest

Set permissions to give access to render
https://docs.github.com/en/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility

Constraint on the image for render:
https://docs.github.com/en/packages/learn-github-packages/configuring-a-packages-access-control-and-visibility

Deploy docker image.
Web service was killed or considered inactive -> missing configuration?
Next step configure the environment variables and test to run it locally.


feat: add test for combine tools script

This PR adds test for combine tools script.

Summary by CodeRabbit

New Features

Enhanced error handling in the tool combining process, providing descriptive error messages for exceptions.
Introduced new tools and categories in JSON files, including "Tool A" and "Tool B" with specific metadata.

Bug Fixes

Improved validation and logging for tools with missing or invalid data.

Tests

Added a comprehensive suite of unit tests for the tool combining functionality, covering various scenarios and ensuring robustness.

@vishvamsinh28 You need to check what caused this workflow to fail
Additionally, can we upload base reports for each PR, or does that work as a one time process for a new repo. Kindly research on that and fix

@coderabbitai resolve

@coderrabbitai full review

@akshatnema applied suggested changes

/rtm


Improve HTTP::Server docs

This is a general overhaul of the HTTP::Server API docs, describing the updated behaviour after #5776.
It adds some more details and structures the text.
I've left out the section about reusing connections which will be added with the changed behaviour in #7055.

Thanks @r00ster91 for prove reading! ❤

I think I'd prefer the ordering to talk about how the block form works first, and the role of HTTP::Context and then digress into HTTP::Handler, followed by talking about binding. I think this order reflects the order which a newbie would want to explore the server: first how to integrate your logic, since that's the interesting part. Then only after how to actually use the interface.


[docs-infra] Fix display of empty default props

This regression has been visible for a while, e.g. in https://github.com/mui/material-ui/pull/39689#pullrequestreview-1709217787. Looks like a quick win to me. I saw this in https://github.com/mui/mui-x/pull/11996.
Before

After

https://ant.design/components/alert/#api, deal?

Deal 😃 👍


test: Delete DNS pods in AfterAll for datapath tests

Commit a0e77127dcd7 ("test: Redeploy DNS after changing endpointRoutes")
didn't go quite far enough: It ensured that between individual tests in
a given file, the DNS pods would be redeployed during the next run if
there were significant enough datapath changes. However, the way it did
this was by storing state within the 'kubectl' variable, which is
recreated in each test file. So if the last test in one CI run enabled
endpoint routes mode, then the DNS pods would not be redeployed to
disable endpoint routes mode as part of the next test.
Fix it by just deleting the overall kube-dns deployment at the end of
any test files which reconfigure this datapath option. I assume that the
next test will set up DNS again if it's not available.
Reported-by: Chris Tarazi<EMAIL_ADDRESS>Fixes: 0e77127dcd7 ("test: Redeploy DNS after changing endpointRoutes")
Fixes: #16717

test-me-please

I manually tried this out by just running:
CNI_INTEGRATION=minikube K8S_VERSION=1.20 ginkgo --focus="K8sCustom*" -- -cilium.provision=false -cilium.kubeconfig=`echo ~/.kube/config` -cilium.image="quay.io/cilium/cilium-ci" -cilium.operator-image="quay.io/cilium/operator" -cilium.operator-suffix="-ci" -cilium.passCLIEnvironment=true

And sure enough, kube-dns was gone at the end along with Cilium.
I'm not the biggest fan of how the testsuite leaves your cluster in a broken state after it completes (rather than returning to where it started), but I think that's already the case so if we want to fix that we can follow up separately.

Cilium init pods went into crashloopbackoff, many of the jobs seem to have the same issue:
https://jenkins.cilium.io/job/Cilium-PR-K8s-1.21-kernel-4.9/1018/testReport/junit/Suite-k8s-1/21/K8sHubbleTest_Hubble_Observe_Test_L3_L4_Flow/
	 kube-system         cilium-5jwhk                       0/1     Init:CrashLoopBackOff   5          4m2s    <IP_ADDRESS>   k8s1     <none>           <none>
	 kube-system         cilium-fz9m9                       0/1     Init:CrashLoopBackOff   5          4m2s    <IP_ADDRESS>   k8s2     <none>           <none>

cilium-combined-logs-previous.txt shows that it's a problem with the mount init container:
2021-07-09T00:25:29.978691280Z cp: cannot stat '/usr/bin/cilium-mount': No such file or directory
2021-07-09T00:25:29.979226735Z rm: cannot remove '/hostbin/cilium-mount': No such file or directory
Error from server (BadRequest): previous terminated container "clean-cilium-state" in pod "cilium-5jwhk" not found

I'll try rebasing to see whether I just need to pull in https://github.com/cilium/cilium/pull/16815 to resolve the issue.

test-me-please

cilium-combined-logs-previous.txt shows that it's a problem with the mount init container:

2021-07-09T00:25:29.978691280Z cp: cannot stat '/usr/bin/cilium-mount': No such file or directory

2021-07-09T00:25:29.979226735Z rm: cannot remove '/hostbin/cilium-mount': No such file or directory

Error from server (BadRequest): previous terminated container "clean-cilium-state" in pod "cilium-5jwhk" not found

I'll try rebasing to see whether I just need to pull in https://github.com/cilium/cilium/pull/16815 to resolve the issue.

This init container change was introduced in #16815. Looks like there is a mismatch between cilium daemonset (up-to-date with master) used and image built on your PR (not up-to-date). Yeah, please rebase your PR.

Also hit https://github.com/cilium/cilium/issues/16846 .

Evidently not all of the tests ensure that DNS is deployed before running, so the current version of the fix breaks those tests because they're relying on DNS from previous runs.
Maybe I'll just do a complete Cilium + DNS forced redeploy in the AfterAll of the relevant test suites (K8sCustomCalls, K8sDatapathConfig). It may take a few minutes longer but should do the trick.

OK, turns out Cilium was already getting removed at the end of the tests, we just weren't cleaning up the DNS pods. My previous iteration removed the DNS deployment, and apparently subsequent tests wouldn't ensure this was available. But if Cilium has been removed, it should be sufficient to simply delete the DNS pods and let them get rescheduled into the cluster (then hopefully the next iteration of Cilium will provision the networking for them).

test-me-please

Triage:

CI 3.0 did not run because only test/  code changes were made here.
Travis failed with known flake #12756
Cilium-PR-K8s-1.16-net-next failed with what looks like https://github.com/cilium/cilium/issues/16399
All other Ginkgo runs were successful.

This is addressing a known flake in the tree and is now only hitting other known flakes. Good to merge.

Marking for backport to 1.9 following discussion here: https://github.com/cilium/cilium/pull/18031#issuecomment-991084995


Feature: API Pane Redesign

@all-contributors add @devrk96 for code

@all-contributors add @devrk96 for code


rotation: added another missing rotation

The CI systems are currently messed up, will fix them when I get back. Thanks!


Switch  _  NEW changes to first opened elem if no popups have happened

Fixed in:
https://github.com/MarketSquare/robotframework-browser/commit/4e44fa9d081687464fb44da9f86f919fcfd689c2


version 0.2.10

@JuliaRegistrator register

Registration pull request updated: JuliaRegistries/General/118643
Tip: Release Notes
Did you know you can add release notes too? Just add markdown formatted text underneath the comment after the text
"Release notes:" and it will be added to the registry PR, and if TagBot is installed it will also be added to the
release that TagBot creates. i.e.
@JuliaRegistrator register

Release notes:

## Breaking changes

- blah

To add them here just re-invoke and the PR will be updated.
Tagging
After the above pull request is merged, it is recommended that a tag is created on this repository for the registered package version.
This will be done automatically if the Julia TagBot GitHub Action is installed, or can be done manually through the github interface, or via:
git tag -a v0.2.10 -m "<description of version>"<PHONE_NUMBER>1f1b9e83fe1b5173bbddc8825050ea
git push origin v0.2.10

Also, note the warning: Version 0.2.10 skips over 0.2.0
This can be safely ignored. However, if you want to fix this you can do so. Call register() again after making the fix. This will update the Pull request.


Use TSLint language plugin instead of TSLint itself

I'm wondering if it is possible to use typescript-tslint-plugin instead of a standalone TSLint.
I'm assuming that performance can be better. Also, this could provide users a way, how to enable TSLint  without touching the build configuration. A good example is create-react-app, which recently got a TS support. However, to be able to enable TSLint, one must change the build configuration.
With this plugin, it should be easy to enable TSLint just by editing the tsconfig file.
I already tried to add this plugin to tsconfig and omit the tslint property in fork-ts-checker-webpack-plugin options but I cannot see any tslint warnings so I'm not sure if it is even possible to use language plugins with fork-ts-checker-webpack-plugin.

Hi @deftomat, check out Rescripts if you're using CRA. There's a use-tslint-config rescript, which I think is what you're looking for :)

@harrysolovay Thanks, it looks good.
However, I'm more interested in typescript language plugin as we have a custom CRA fork with TSLint enabled and CRA team is also considering to include TSLint but it is not ready right now.
What I find out is that TypeScript is ignoring the language plugins in type-checks and it using them only when you start a language-server itself.
So, I just wanted to know, if it is possible to use TSLint as a TS plugin right now or not.

@deftomat I don't know about using it as a TS plugin –– sorry about that :(
I'd love to float something by you though: if you're using a custom CRA fork, you're likely either keeping it in sync with the upstream via a service like Backstroke, or you're manually updating it?
Neither of these approaches feel great; you end up dealing with more code than you need to, and updating react-scripts isn't nearly as seamless. I just released Rescripts to solve these problems, and would love to help you get set up if you're willing to give it a go. Please let me know what your needs are and I'll see if I can make a "rescript" (like a plugin) for it. I think Rescripts could make handling configuration much easier for you and your team. I'd love to hear your thoughts!

@harrysolovay
Rewiring the react-scripts is not enough for us, we have a custom react-dev-utils too.
Anyway, it's not related to this issue. If you want to talk about it, please contact me through the email or create an issue in your repo and mention me.

@harrysolovay gotcha. Thought it might be helpful. Sorry that it was not.

I already tried to add this plugin to tsconfig and omit the tslint property in fork-ts-checker-webpack-plugin options but I cannot see any tslint warnings

I tried with webpack and with 'bare' tsc and had no success at all - seems like TypeScript compiler silently ignored passed plugins o_O
Idea overall seems awesome though.

Oops, silly me:
TypeScript Language Service Plugins ("plugins") are for changing the editing experience only.

@0xorial Yes, it is not possible as TypeScript is ignoring it. I totally forgot that I created this issue.
Looks like I can close it as it is a limitation of TypeScript and there is nothing which we can do in this repo about it 😞


[Vertex AI] Add README for unit test mock files

Added a README.md with instructions for running the update_vertexai_responses.sh script. This file was also added as a resource in the FirebaseVertexAIUnit testTarget ensuring that a Bundle.module will always be generated by Swift Package Manager. This prevents the following build error if the script has not yet been run:

#no-changelog

Maybe the text in README.md#firebase-vertex-ai should be replaced with a link to this README?

Agreed. Also I think people are more likely to land on the README in the top-level FirebaseVertexAI directory so I've moved this new content into there. I updated the README in the Unit subdirectory to link to it as well -- easier to maintain if it's all in one place. I should also add a section for the integration tests but will leave that for a follow-up PR.

And should we add the script to scripts/README.md as well?

Good catch, @tanzimfh! Added one there.


[DOC-3207] Delegate release notes page - Add note and links to release notes

Delegate release notes page - Add note and links to release notes
For reviewers, a preview is available.
What Type of PR is This?

[ ] Issue
[ ] Feature
[x] Maintenance/Chore

If tied to an Issue, list the Issue(s) here:

Issue(s)

House Keeping
Some items to keep track of. Screen shots of changes are optional but would help the maintainers review quicker.

[x] Tested Locally
[ ] Optional Screen Shoot.

Please check the Execution Link of the Pipeline for the Website Draft URL. This is located in the Preview Step and also is available in #hdh_alerts. E.g Website Draft URL: https://unique-id--harness-developer.netlify.app


Inject custom rewards?

Add ability to inject rewards.

Inject custom rewards
All rewards to be injected (besides basic reward structure)

Sweet! :P

I know, I hope this work out the way I want.


reverse-iterate meta_range

There is a way to reverse-iterate basic_view like this:
auto view = registry.view<Component>(); for (auto entity : view | std::views::reverse) {     //... }
But I didn't figure out how to reverse-iterate meta_range, I want something like this:
for (auto data : entt::resolve<Component>().data() | std::views::reverse) {     //... }
Is there any way to do it?

That's funny because I'm (heavily) reworking meta and this is easy to add now.
Briefly, the current implementation doesn't allow a reverse iteration. It's literally a single linked list of static objects (as in a templated static T variable). We can add a back link in theory but it's a lot of overhead for a corner case.
The new implementation removes all the static-ness and stores meta objects in a (dense) map. The iterators of the latter are bidirectional by design. It goes without saying that we can have what you mentioned for free then.

That's great. I'm looking forward to your update~

Most of the changes are already on a branch, meta. If you want to give it a look and give me a feedback, you're welcome. 🙂


Write React Quick Start Guide

We should have an early Quick Start guide in the style of our Forms docs that includes a demo codebase for store like a counter or something similar.
File to edit: https://github.com/TanStack/store/blob/main/docs/framework/react/quick-start.md

@crutchcorn
I am picking this one first.


useQuery outside of component crashes hydration

Describe the bug
Since 4.0.0-beta.2 using useQuery outside of a component, for example in router middleware, will prevent hydration entirely without any noticeable error. Changing the fetch policy to prevent caching prevents the issue, as well as using useAsyncQuery instead.
To Reproduce
Create a router middleware that calls useQuery, for example:
import pageQuery from '~/graphql/queries/pages/page.gql';

export default defineNuxtRouteMiddleware((route) => {
  const currentPage = useState('currentPage', () => ({}));

  return new Promise((resolve, reject) => {
    const slug = route.path.replace(/^\//, '');
    const {onResult, onError} = useQuery(pageQuery, {segments: slug === '' ? 'home' : slug});

    onResult((pageResult) => {
      currentPage.value = pageResult.data.page;

      resolve();
    });

    onError(reject);
  });
});

Expected behavior
In 4.0.0-beta.1 this code would work.
Versions
vue: 3.2.47
vue-apollo: 3.7.7
@apollo/client: 3.7.7
Additional context
It probably isn't desirable to use useQuery for this use case and I was better off using useAsyncQuery instead. However the issue that hydration is prevented entirely without error did cause my colleagues and I to lose quite a few hours debugging.

I am using queries and mutations without without any issue. you just have to use apoloInstance and use it in native way
example mutation

import { provideApolloClient } from '@vue/apollo-composable'
import { apolloDefaultClient } from '@/plugins/apollo/vue-apollo'
import NotificationDeleteAll from '../graphql/mutations/notificationDeleteAll.gql'
import { toRawRecursive } from '@/modules/home/utils'
import { DocumentNode } from 'graphql/index'
import { TypedDocumentNode } from '@graphql-typed-document-node/core'

provideApolloClient(apolloDefaultClient)
const notification = useNotification()
const defaultClient = useApolloClient('default').client

const { mutate, loading, onError, onDone } = useMutation(NotificationDeleteAll)

onDone(() => {
  notification.success('All Notifications Deleted')
})

export default function useMutationNotificationDeleteAll() {
  const notificationDeleteAll = (query: DocumentNode | TypedDocumentNode, variables: object) => {
    mutate(
      {},
      {
        update: () => {
          const rawVariables = toRawRecursive(variables)
          const apolloCachedData = defaultClient.cache.readQuery({ query, variables: rawVariables })
          if (!apolloCachedData) return

          const newData = {
            myNotifications: {
              ...apolloCachedData.myNotifications,
              total: 0,
              hasMorePages: false,
              data: [],
            },
          }
          defaultClient.cache.writeQuery({ query, variables: rawVariables, data: newData })
        },
      }
    )
  }

  return { notificationDeleteAll, mutate, loading, onError, onDone }
}

the same with queries


[App Check] Remove Firebase specifics from Device Check Provider

Removed Firebase-specific symbols and implementation details from the generic Device Check Provider (GACDeviceCheckProvider).
#no-changelog

Rebased on appcheck-lite.


Embed footer's icon_url fix?

Possible fix for issue #2544
Before:

And after:

I'll close it since it seems like you fixed it already.


Flatten the directory structure

Replace directories containing only a single index.md by a md file.
Should be trivial to automate this in sh or python.

Added %base_url% to all internal links starting with /
Created a python script to perform the update

Linkchecker confirms all internal links are still ok.


[ARROW-3175][Java] Move to official flatbuffers Java artifact

The existing flatbuffer we use from com.vlkan is quite old and since flatbuffer now publishes official maven artifact, we should those.
One caveats is that the flatc we use is not available in the official release, so we stil use com.vlkan for that.

cc @BryanCutler @jacques-n

Codecov Report

Merging #2515 into master will increase coverage by 1.04%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master    #2515      +/-   ##
==========================================
+ Coverage   86.26%   87.31%   +1.04%
==========================================
  Files         308       13     -295
  Lines       47103     1356   -45747
==========================================
- Hits        40634     1184   -39450
+ Misses       6399      172    -6227
+ Partials       70        0      -70

Impacted Files
Coverage Δ

python/pyarrow/ipc.pxi

go/arrow/array/bufferbuilder.go

go/arrow/math/uint64_amd64.go

cpp/src/arrow/status.h

python/pyarrow/tests/test_deprecations.py

cpp/src/plasma/client.cc

cpp/src/arrow/io/test-common.h

cpp/src/arrow/pretty_print.h

cpp/src/arrow/ipc/ipc-read-write-test.cc

cpp/src/arrow/io/hdfs-internal.cc

... and 285 more

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 3eaf46e...d8915a3. Read the comment docs.

This seems fine. Maybe we can get feedback from people who were having the issue?

What's the story with no flatc in the Maven release? We could use flatc from conda-forge instead if we want to have a newer compiler available

I don't think we should continue to use the old flatc if we are using the newer artifacts. We should be able to use the same flatc as C++ right?

@icexelloss If the C++ build produces flatc from source anyway, what's the reason we can't use that binary for the Java build as well?

@saudet: The java build doesn't depend on the C++ build today and I don't think we should change that.

Would it be reasonable to require flatc installed when running the Java build? Or do we want the mvn build to handle installing of flatc?

From my previous experience, we should have Java build automatically manage.  Otherwise, the number email question we'll get on Java development will be "my build didn't work".

What is the path forward here?

Can we just shade our flatbuffer artifacts and continue using the old version? We could then wait for a flatc artifact to be available in central before upgrading.

We should bug folks on https://github.com/google/flatbuffers/issues/4482 as this has been outstanding for a long time

@wesm @jacques-n My current thoughts are we can build statically-linked flatc executable from source (for osx-x86_64 and linux-x86_64, same as the current artifact that we are using) and check in the executable in the Arrow repo. Does that sound a reasonable approach?

How large are the executables? It's not a very satisfying solution

The one for osx is 4.2M. I could looked into putting that on Maven central if that's preferred.

@wesm @jacques-n what namespace in maven do you guys think we should publish our flatc executables under?

Yeah, 4+ megs is too much. git is forever! We could also look into bundling as part of the release process.

I am going to taking a look into publishing our own maven artifact for flatc 1.9.0
Also pinged flatbuffer folks about it.

I tried to build a executable for Linux but unfortunately the binary I build is not cross-platform..
It's complaining about GLICXX version
/home/travis/build/apache/arrow/java/format/flatc/flatc-linux-x86_64-1.9.0.exe: /usr/lib/x86_64-linux-gnu/libstdc++.so.6: version `GLIBCXX_3.4.21' not found (required by /home/travis/build/apache/arrow/java/format/flatc/flatc-linux-x86_64-1.9.0.exe)

I am not familiar with C++ dynamic linking / crossplatfrom build. What's usually the way to build a executable that doesn't require a specific version of things like GLICXX? (Sorry tried to google around but no luck)

@icexelloss, I suggest you just do this in a personal repo instead of doing Arrow repo. If you want, I can create a collaborative repo under Dremio if that will work better. We don't really want to have to do releases of this as part of the ASF release process.

You can build the Linux executable using the Docker base image we use for the manylinux1 Python wheels that will be portable to a lot of Linuxes

@jacques-n I am currently doing this under my personal repo https://github.com/icexelloss/flatc and was thinking about publishing the artifact under "com.github.icexelloss", I am happy to use a Dremio one if you think that's better.
@wesm Thanks! I will try the docker image.

I think the linux executable passes Travis build. @BryanCutler @jacques-n @siddharthteotia Could you guys help trying out the flatc executable? You can test this by checkout the branch from this PR and run "mvn package" under arrow/java. If you do, please let me know what system did you test on. I haven't found a way to test the osx executable on another osx so if anyway can test on Mac that would be very helpful.
If this goes well I can proceed to publishing the artifact..

Works for me on Ubuntu 16.04 LTS.  I still wonder if we should still shade our flatbuffer dependency so more user incompatibilities don't come up, but I guess we can look into that as a separate issue.

Yeah I am not sure about shade vs non-shade but we can discuss separately..

There seems to be an unrelated failure in the flight test:
[ERROR] Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 0.156 s <<< FAILURE! - in org.apache.arrow.flight.example.TestExampleServer
[ERROR] putStream(org.apache.arrow.flight.example.TestExampleServer)  Time elapsed: 0.156 s  <<< ERROR!
java.lang.IllegalStateException:
Memory was leaked by query. Memory leaked: (66)
Allocator(flight-server) 0/66/134/9223372036854775807 (res/actual/peak/limit)
	at org.apache.arrow.flight.example.TestExampleServer.after(TestExampleServer.java:66)

Otherwise I think this PR is ready to go. @jacques-n @BryanCutler could you guys please take a look again?

gentle ping @BryanCutler and @jacques-n

@icexelloss could you update the description about the flatc artifact?

Thanks @BryanCutler updated.

merged to master, thanks @icexelloss !

@BryanCutler thanks for review and test!


FR / Design idea : Custom Component Extractors

I have a style system for my widgets which is different than the Look and Feel. It has pros and cons but I'm using it in a couple of places. Cool
What I'd like is to be able to see that custom style info in melatonin. I can easily write this code to get items given a Component * and a dynamic cast.
But that made me think it would be great if we could add per-application component extractors into the properties pane. I'm considering something like this (but haven't read the code enough to know exact syntax)
Add to Inspector addCustomComponentExtractor(const juce::String &name, std::function<some_t(juce::Component *)>). When you make the properties plane, call the list of custom functions and put them as sub-trees or some such in the properties list under name.
That would let me do something like
inspector = std::make_unique<Inspector>(*this);
inspector->addCustomCompoenntExtractor("set-stylesheets", [](auto *c) { if (auto s = dynamic_cast<stylething*>(c)) { return { {"style", c->style()->blah}, {"this that", theother}}

then i can make it so i can extend melatonin for particular application or widget set views from the outside.
Thoughts?

oh i'm happy to code up all these things by the way but want to ask before i dive into them.

Yeah I saw that! It useful but would have me lift loads of information into properties just for melatonin which is why I thought of a custom lambda
I’ll ponder also as I poke around

I like this idea! Seems like feature that will make melatonin more extensible and will cover more ways for 'styling' apps.

Thanks!
From poking around I think the right function for the callback function is
std::function<bool(juce::Array<juce::Var> &, juce::Array<PropertyComponent *>&)

that is you get sent a Var and Component array to populate and return whether or not you added anything.


CI: inverse workflows for branch protection

This is the official technique, see https://docs.github.com/en/repositories/configuring-branches-and-merges-in-your-repository/defining-the-mergeability-of-pull-requests/troubleshooting-required-status-checks

(Unrelated: probably all should run if workflows are touched, currently eve and storage don't run because of positive filters)


Enhanced on_redirect closure

Description
Currently, you can pass a closure which is called when redirects are allowed and at least one occurs:
https://docs.guzzlephp.org/en/stable/request-options.html#allow-redirects
The closure can only read the request, response and target URI objects but cannot modify them so it's use is limited. If it can return a modified URI object instead which is used for the next request or NULL if no more request should be made, then custom security policies for redirects could be implemented.
Example
$onRedirect = function(
    RequestInterface $request,
    ResponseInterface $response,
    UriInterface $uri
) {
    return in_array( $uri->getHost(), ['secure.com'] ) ? $uri : null;
};

Additional context
Affected lines:
https://github.com/guzzle/guzzle/blob/1dd98b0564cb3f6bd16ce683cb755f94c10fbd82/src/RedirectMiddleware.php#L99-L107
The relevant change would be:
        $uri = $nextRequest->getUri();
        if (isset($options['allow_redirects']['on_redirect'])) {
            $uri =  ($options['allow_redirects']['on_redirect'])(
                $request,
                $response,
                $uri
            );
        }

        if(!$uri) {
            return $response;
        }

        $promise = $this($nextRequest->withUri($uri), $options);

As this would be a breaking change, it can be implemented for Guzzle 8.0 earliest (because if no Uri object is returned by the closures like now, redirects are not followed any more),

Any comments for the proposed change?


Plutip: fix psql: server closed the connection unexpectedly

Error: Command failed: psql -h <IP_ADDRESS> -p 5433 -d postgres
psql: error: server closed the connection unexpectedly
        This probably means the server terminated abnormally
        before or while processing the request.

    at checkExecSyncError (child_process.js:790:11)
    at Object.execSync (child_process.js:863:15)
    at /nix/store/blib5lc6glrrn11gmr86v64bbrv2d8m9-cardano-transaction-lib/output/Node.ChildProcess/foreign.js:60:39
    at runSync (/nix/store/blib5lc6glrrn11gmr86v64bbrv2d8m9-cardano-transaction-lib/output/Effect.Aff/foreign.js:90:20)
    at run (/nix/store/blib5lc6glrrn11gmr86v64bbrv2d8m9-cardano-transaction-lib/output/Effect.Aff/foreign.js:328:22)
    at /nix/store/blib5lc6glrrn11gmr86v64bbrv2d8m9-cardano-transaction-lib/output/Effect.Aff/foreign.js:348:19
    at drain (/nix/store/blib5lc6glrrn11gmr86v64bbrv2d8m9-cardano-transaction-lib/output/Effect.Aff/foreign.js:120:9)
    at Object.enqueue (/nix/store/blib5lc6glrrn11gmr86v64bbrv2d8m9-cardano-transaction-lib/output/Effect.Aff/foreign.js:141:11)
    at Timeout._onTimeout (/nix/store/blib5lc6glrrn11gmr86v64bbrv2d8m9-cardano-transaction-lib/output/Effect.Aff/foreign.js:339:27)
    at listOnTimeout (internal/timers.js:557:17) {

https://ci.staging.mlabs.city/build/242730/nixlog/1/tail

We now retry the first attempt


Using GUID instead of int

Hi,
I tried setting up my project to use GUID instead of int on User and Role tables, however, I encounter the following error:

System.TypeLoadException: GenericArguments[0], 'Identity.Dapper.Entities.DapperIdentityUser1[System.Guid]', on 'Identity.Dapper.Stores.DapperUserStore7[TUser,TKey,TUserRole,TRoleClaim,TUserClaim,TUserLogin,TRole]' violates the constraint of type parameter 'TUser'.
at System.RuntimeTypeHandle.Instantiate(RuntimeTypeHandle handle, IntPtr* pInst, Int32 numGenericArgs, ObjectHandleOnStack type)
at System.RuntimeTypeHandle.Instantiate(Type[] inst)
at System.RuntimeType.MakeGenericType(Type[] instantiation)

I followed your instructions by adding the following to Startup.cs
services.AddIdentity<DapperIdentityUser<Guid>, DapperIdentityRole<Guid>>

Can't you use string instead?

You know, I am sorry, this works as intended. I missed one of your instructions.
services.AddIdentity<DapperIdentityUser<Guid>, DapperIdentityRole<Guid>>()
        .AddDapperIdentityFor<T, Guid>();

I didn't add Guid on the last call. Please close/trash this.

@grandchamp Since this is still open, just wanted to ask you a side question. Where do you bind your SignInManager? Is it in Transient or Scoped? I believe there is a bug with this, but can't find this info to confirm.
What happens is I logout in a method and return the page to the user, however, the SignInManager injected in the view still thinks the user is loged in. If I refresh the page then it shows logged out in the view. I really think its something to do with how its bound, Scope vs Transient.

I'm using scoped. I'll take a look on how MAS Identity registers things.
You can take a look on https://github.com/grandchamp/Identity.Dapper/blob/master/src/Identity.Dapper/Extensions/ServiceCollectionExtensions.cs AddStores

MS uses scoped too.
https://github.com/aspnet/Identity/blob/669aaea3f3d9e55f8edb33679910a49bdebfd9fc/src/Microsoft.AspNetCore.Identity.EntityFrameworkCore/IdentityEntityFrameworkBuilderExtensions.cs#L72


FIX: Intermittent spec failure

First run, all pass
> rspec
............................................................................................................................................................................................

Finished in 12.18 seconds (files took 2.8 seconds to load)
188 examples, 0 failures

Second run, several fail
> rspec
WARN: Unresolved specs during Gem::Specification.reset:
      diff-lcs (< 2.0, >= 1.2.0)
WARN: Clearing out unresolved specs.
Please report a bug if this causes problems.
...................................................FFF....................................................................................................................FFFFFFFFFF..F.....

Failures:

  1) Setting and changing an articles published_at date updating an existing article
     Failure/Error: expect(page).to have_content 'Logged in!'
       expected to find text "Logged in!" in "Retry later"
     # ./spec/spec_helper.rb:31:in `login_user'
     # ./spec/features/article_datetime_settings_spec.rb:38:in `block (2 levels) in <top (required)>'

  2) Setting and changing an articles published_at date Saving an article without entering publication date info
     Failure/Error:
       within('main') do
         fill_in 'username', with: 'user1'
         fill_in 'password', with: 'c'*31
       end

     Capybara::ElementNotFound:
       Unable to find visible css "main"
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/node/finders.rb:313:in `block in synced_resolve'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/node/base.rb:85:in `synchronize'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/node/finders.rb:302:in `synced_resolve'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/node/finders.rb:37:in `find'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/session.rb:776:in `block (2 levels) in <class:Session>'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/session.rb:333:in `within'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/dsl.rb:50:in `block (2 levels) in <module:DSL>'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/rspec/matcher_proxies.rb:14:in `within'
     # ./spec/spec_helper.rb:26:in `login_user'
     # ./spec/features/article_datetime_settings_spec.rb:62:in `block (2 levels) in <top (required)>'

  3) Setting and changing an articles published_at date Using 'PUBLISH NOW' feature
     Failure/Error:
       within('main') do
         fill_in 'username', with: 'user1'
         fill_in 'password', with: 'c'*31
       end

     Capybara::ElementNotFound:
       Unable to find visible css "main"
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/node/finders.rb:313:in `block in synced_resolve'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/node/base.rb:85:in `synchronize'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/node/finders.rb:302:in `synced_resolve'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/node/finders.rb:37:in `find'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/session.rb:776:in `block (2 levels) in <class:Session>'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/session.rb:333:in `within'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/dsl.rb:50:in `block (2 levels) in <module:DSL>'
     # /Users/s/.gem/ruby/2.4.1/gems/capybara-2.15.1/lib/capybara/rspec/matcher_proxies.rb:14:in `within'
     # ./spec/spec_helper.rb:26:in `login_user'
     # ./spec/features/article_datetime_settings_spec.rb:81:in `block (2 levels) in <top (required)>'

  4) Pagination Redirects archives redirects on page 1
     Failure/Error: expect(response).to redirect_to("/2017/01/01/")

       Expected response to be a <3XX: redirect>, but was a <429: Too Many Requests>
       Response body: Retry later
     # ./spec/requests/paginations_spec.rb:8:in `block (3 levels) in <top (required)>'

  5) Pagination Redirects archives redirects when no page number given
     Failure/Error: expect(response).to redirect_to("/2017/01/01/")

       Expected response to be a <3XX: redirect>, but was a <429: Too Many Requests>
       Response body: Retry later
     # ./spec/requests/paginations_spec.rb:14:in `block (3 levels) in <top (required)>'

  6) Pagination Redirects categories redirects on page 1
     Failure/Error: expect(response).to redirect_to("/categories/slug/")

       Expected response to be a <3XX: redirect>, but was a <429: Too Many Requests>
       Response body: Retry later
     # ./spec/requests/paginations_spec.rb:22:in `block (3 levels) in <top (required)>'

  7) Pagination Redirects categories redirects when no page number given
     Failure/Error: expect(response).to redirect_to("/categories/slug/")

       Expected response to be a <3XX: redirect>, but was a <429: Too Many Requests>
       Response body: Retry later
     # ./spec/requests/paginations_spec.rb:28:in `block (3 levels) in <top (required)>'

  8) Pagination Redirects tags redirects on page 1
     Failure/Error: expect(response).to redirect_to("/tags/slug/")

       Expected response to be a <3XX: redirect>, but was a <429: Too Many Requests>
       Response body: Retry later
     # ./spec/requests/paginations_spec.rb:36:in `block (3 levels) in <top (required)>'

  9) Pagination Redirects tags redirects when no page number given
     Failure/Error: expect(response).to redirect_to("/tags/slug/")

       Expected response to be a <3XX: redirect>, but was a <429: Too Many Requests>
       Response body: Retry later
     # ./spec/requests/paginations_spec.rb:42:in `block (3 levels) in <top (required)>'

  10) Pagination Redirects videos redirects on page 1
      Failure/Error: expect(response).to redirect_to("/videos/")

        Expected response to be a <3XX: redirect>, but was a <429: Too Many Requests>
        Response body: Retry later
      # ./spec/requests/paginations_spec.rb:50:in `block (3 levels) in <top (required)>'

  11) Pagination Redirects videos redirects when no page number given
      Failure/Error: expect(response).to redirect_to("/videos/")

        Expected response to be a <3XX: redirect>, but was a <429: Too Many Requests>
        Response body: Retry later
      # ./spec/requests/paginations_spec.rb:56:in `block (3 levels) in <top (required)>'

  12) Pagination Redirects admin redirects on page 1
      Failure/Error: expect(response).to redirect_to("/admin/videos/")

        Expected response to be a <3XX: redirect>, but was a <429: Too Many Requests>
        Response body: Retry later
      # ./spec/requests/paginations_spec.rb:64:in `block (3 levels) in <top (required)>'

  13) Pagination Redirects admin redirects when no page number given
      Failure/Error: expect(response).to redirect_to("/admin/videos/")

        Expected response to be a <3XX: redirect>, but was a <429: Too Many Requests>
        Response body: Retry later
      # ./spec/requests/paginations_spec.rb:70:in `block (3 levels) in <top (required)>'

  14) Rack::Redirect doesn't redirect when not found
      Failure/Error: expect(response.status).to eq(200)

        expected: 200
             got: 429

        (compared using ==)
      # ./spec/requests/redirects_spec.rb:19:in `block (2 levels) in <top (required)>'

Finished in 8.15 seconds (files took 2.95 seconds to load)
188 examples, 14 failures

Failed examples:

rspec ./spec/features/article_datetime_settings_spec.rb:33 # Setting and changing an articles published_at date updating an existing article
rspec ./spec/features/article_datetime_settings_spec.rb:61 # Setting and changing an articles published_at date Saving an article without entering publication date info
rspec ./spec/features/article_datetime_settings_spec.rb:75 # Setting and changing an articles published_at date Using 'PUBLISH NOW' feature
rspec ./spec/requests/paginations_spec.rb:5 # Pagination Redirects archives redirects on page 1
rspec ./spec/requests/paginations_spec.rb:11 # Pagination Redirects archives redirects when no page number given
rspec ./spec/requests/paginations_spec.rb:19 # Pagination Redirects categories redirects on page 1
rspec ./spec/requests/paginations_spec.rb:25 # Pagination Redirects categories redirects when no page number given
rspec ./spec/requests/paginations_spec.rb:33 # Pagination Redirects tags redirects on page 1
rspec ./spec/requests/paginations_spec.rb:39 # Pagination Redirects tags redirects when no page number given
rspec ./spec/requests/paginations_spec.rb:47 # Pagination Redirects videos redirects on page 1
rspec ./spec/requests/paginations_spec.rb:53 # Pagination Redirects videos redirects when no page number given
rspec ./spec/requests/paginations_spec.rb:61 # Pagination Redirects admin redirects on page 1
rspec ./spec/requests/paginations_spec.rb:67 # Pagination Redirects admin redirects when no page number given
rspec ./spec/requests/redirects_spec.rb:16 # Rack::Redirect doesn't redirect when not found

Not sure if this is just me or if I did something to cause it. Or if it's intermittent for everyone.

This may be obvious, but have you tried bundle exec rspec ? If it's selecting wrong gems, you can also remove non relevant gems with bundle install --clean

I got this too after 4-5 repeated runs (@shushugah, even with bundle exec rspec)
@veganstraightedge if you look at the failed specs they are all something like:
Expected response to be a <3XX: redirect>, but was a <429: Too Many Requests>

pretty sure this is rack-attack detecting the test suite as a ddos.
Will look into how to disable rack-attack in test


Murdock: Kin Terms - codes EA societies

See World Cultures Vol. 11 No. 1 for files.

This is included in kinbank, which will be out soon.