Consider child iterations while counting (total, closed) Work Items in an iteration

Fixes #1032
Consider child iterations while counting WorkItems (total, closed).
Tests updated.
No changes required on UI.

@kwk : i would like to have your thoughts on DB queries 1 , 2 thank you in advance.

Codecov Report

Merging #1151 into master will increase coverage by 0.03%.
The diff coverage is 92.85%.

@@            Coverage Diff            @@
##           master   #1151      +/-   ##
=========================================
+ Coverage   60.47%   60.5%   +0.03%
=========================================
  Files         113     113
  Lines        9883    9896      +13
=========================================
+ Hits         5977    5988      +11
- Misses       3285    3286       +1
- Partials      621     622       +1

Impacted Files
Coverage Δ

controller/iteration.go
85.5% <100%> (ø)
:arrow_up:

workitem/workitem_repository.go
67.93% <92.3%> (+0.5%)
:arrow_up:

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 49e3018...90bc014. Read the comment docs.

@sbose78 @aslakknutsen @kwk  I have updated the branch, would like to have your reviews.

Yes @kwk I have added comments about how and what is done in that test. Thanks.

Added important label because this needs to go in soon.

@pranavgore09 apart from my recent requests, the code looks good.

Thank you @kwk : updated the code as per comments.. https://github.com/almighty/almighty-core/pull/1151/commits/f11d893ea23493f2a73f28b4fed578a77331e80c

Thank you @hectorj2f @kwk for reviews. Now code is updated and it is good to merge. :)

@kwk @hectorj2f can you please approve if there are no other changes required ?

@kwk I have updated my code and now using ? to insert query params as much as possible.
But I could not get rid of fmt.Sprintf() because table names were not replaceable using ? as I checked with GORM DB.
Please, can you take a loot at it once?  https://github.com/almighty/almighty-core/pull/1151/commits/1884943f3c313565b2c9666af0c70c20db0de3e8 and https://github.com/almighty/almighty-core/pull/1151/commits/a392c0f3b2d4c650e54199cee65b42373ee7e216

But I could not get rid of fmt.Sprintf() because table names were not replaceable using ? as I checked with GORM DB.

@pranavgore09 That is correct and fine for now. As long as you only have placeholders for table names and no other stuff, that is fine.

Tested with the latest planner (new runtime).
Found that count for closed items are not updated on item creation.
And X of Y completed string for current iteration too is not updated when the item is closed.
No changes needed in the backend.
Changes needed on UI are here.

[test]

I have added a test scenario for verifying the PR. I will merge PR after this.
Scenario of nested iterations is designed like -
Root Iteration : e7aaa526-4605-4de9-a173-edef53068c51
   Iteration 1 : 1e72147a-1948-42b6-9f2a-00433525af34
   	Iteration 1.1 : cfdae07c-3426-4ff2-9d4e-0840b6a4fc43
   		Iteration 1.1.1 : cd6560d8-c51d-438a-bc03-42735fa93f7d
   		Iteration 1.1.2 : a1dec442-4347-4c2b-ab75-062110529f88
   		Iteration 1.1.3 : 4bdd5473-07ea-4412-ab10-a81fbe58367d
   	Iteration 1.2 : b3b97d7d-c9db-4b14-9ced-15fc1de8ac62
   		Iteration 1.2.1 : e61be2bd-3819-4644-a0ad-63e1841784aa
   		Iteration 1.2.2 : 0cf59fce-28ed-49e8-97f2-4d01fceaf828
   Iteration 2 : df816bd5-7eb6-4748-b7e4-a5885de4b2dd
   	Iteration 2.1 : 8f4de8a7-8ef5-428f-a47f-9210dc9d695b
   		Iteration 2.1.1 : c8c5e92a-9e87-46e9-acc2-4903019869dc
   			Iteration <IP_ADDRESS> : 6220f329-383c-4225-8056-d617849797d0

Then work items with state=closed are created in each of the iteration and counts are -
postgres=# select  count(*) as closed_count, fields->>'system.iteration' as iteration_id from work_items where fields->>'system.state' = 'closed' group by fields->>'system.iteration';
 total |             iteration_id
-------+--------------------------------------
     1 | 0cf59fce-28ed-49e8-97f2-4d01fceaf828
     2 | 1e72147a-1948-42b6-9f2a-00433525af34
     1 | 4bdd5473-07ea-4412-ab10-a81fbe58367d
     3 | 6220f329-383c-4225-8056-d617849797d0
     2 | b3b97d7d-c9db-4b14-9ced-15fc1de8ac62
     2 | c8c5e92a-9e87-46e9-acc2-4903019869dc
     3 | cd6560d8-c51d-438a-bc03-42735fa93f7d
     2 | cfdae07c-3426-4ff2-9d4e-0840b6a4fc43
     1 | df816bd5-7eb6-4748-b7e4-a5885de4b2dd
     3 | e61be2bd-3819-4644-a0ad-63e1841784aa
     2 | e7aaa526-4605-4de9-a173-edef53068c51
(11 rows)

Then work items with state other than closed are created and total WI count for that iterations is
postgres=# select  count(*) as total, fields->>'system.iteration' as iteration_id from work_items group by fields->>'system.iteration';
 total |             iteration_id
-------+--------------------------------------
     5 | 6220f329-383c-4225-8056-d617849797d0
     3 | 1e72147a-1948-42b6-9f2a-00433525af34
     3 | a1dec442-4347-4c2b-ab75-062110529f88
     6 | e61be2bd-3819-4644-a0ad-63e1841784aa
     2 | cfdae07c-3426-4ff2-9d4e-0840b6a4fc43
     1 | 4bdd5473-07ea-4412-ab10-a81fbe58367d
     1 | df816bd5-7eb6-4748-b7e4-a5885de4b2dd
     3 | c8c5e92a-9e87-46e9-acc2-4903019869dc
     4 | cd6560d8-c51d-438a-bc03-42735fa93f7d
     3 | b3b97d7d-c9db-4b14-9ced-15fc1de8ac62
     3 | 0cf59fce-28ed-49e8-97f2-4d01fceaf828
     5 | e7aaa526-4605-4de9-a173-edef53068c51
(12 rows)

Above data is considered as truth and response of our API is verified aginst the truth.
{
  "data": [
    {
      "attributes": {
        "created-at": "2017-06-15T03:59:51.448609Z",
        "name": "Project 1",
        "parent_path": "/",
        "resolved_parent_path": "/",
        "state": "new",
        "updated-at": "2017-06-15T03:59:51.448609Z"
      },
      "id": "e7aaa526-4605-4de9-a173-edef53068c51",
      "links": {
        "self": "http://localhost:8080/api/iterations/e7aaa526-4605-4de9-a173-edef53068c51"
      },
      "relationships": {
        "space": {
          "data": {
            "id": "3365d380-62ae-47af-96e7-228b2dcbf401",
            "type": "spaces"
          },
          "links": {
            "self": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401"
          }
        },
        "workitems": {
          "links": {
            "related": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401/workitems/?filter[iteration]=e7aaa526-4605-4de9-a173-edef53068c51"
          },
          "meta": {
            "closed": 22,
            "total": 39
          }
        }
      },
      "type": "iterations"
    },
    {
      "attributes": {
        "created-at": "2017-06-15T04:02:12.813187Z",
        "name": "Iteration 1",
        "parent_path": "/e7aaa526-4605-4de9-a173-edef53068c51",
        "resolved_parent_path": "/Project 1",
        "state": "new",
        "updated-at": "2017-06-15T04:02:12.813187Z"
      },
      "id": "1e72147a-1948-42b6-9f2a-00433525af34",
      "links": {
        "self": "http://localhost:8080/api/iterations/1e72147a-1948-42b6-9f2a-00433525af34"
      },
      "relationships": {
        "parent": {
          "data": {
            "id": "e7aaa526-4605-4de9-a173-edef53068c51",
            "type": "iterations"
          },
          "links": {
            "self": "http://localhost:8080/api/iterations/e7aaa526-4605-4de9-a173-edef53068c51"
          }
        },
        "space": {
          "data": {
            "id": "3365d380-62ae-47af-96e7-228b2dcbf401",
            "type": "spaces"
          },
          "links": {
            "self": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401"
          }
        },
        "workitems": {
          "links": {
            "related": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401/workitems/?filter[iteration]=1e72147a-1948-42b6-9f2a-00433525af34"
          },
          "meta": {
            "closed": 14,
            "total": 25
          }
        }
      },
      "type": "iterations"
    },
    {
      "attributes": {
        "created-at": "2017-06-15T04:02:18.267873Z",
        "name": "Iteration 2",
        "parent_path": "/e7aaa526-4605-4de9-a173-edef53068c51",
        "resolved_parent_path": "/Project 1",
        "state": "new",
        "updated-at": "2017-06-15T04:02:18.267873Z"
      },
      "id": "df816bd5-7eb6-4748-b7e4-a5885de4b2dd",
      "links": {
        "self": "http://localhost:8080/api/iterations/df816bd5-7eb6-4748-b7e4-a5885de4b2dd"
      },
      "relationships": {
        "parent": {
          "data": {
            "id": "e7aaa526-4605-4de9-a173-edef53068c51",
            "type": "iterations"
          },
          "links": {
            "self": "http://localhost:8080/api/iterations/e7aaa526-4605-4de9-a173-edef53068c51"
          }
        },
        "space": {
          "data": {
            "id": "3365d380-62ae-47af-96e7-228b2dcbf401",
            "type": "spaces"
          },
          "links": {
            "self": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401"
          }
        },
        "workitems": {
          "links": {
            "related": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401/workitems/?filter[iteration]=df816bd5-7eb6-4748-b7e4-a5885de4b2dd"
          },
          "meta": {
            "closed": 6,
            "total": 9
          }
        }
      },
      "type": "iterations"
    },
    {
      "attributes": {
        "created-at": "2017-06-15T04:05:17.21256Z",
        "name": "Iteration 1.1",
        "parent_path": "/e7aaa526-4605-4de9-a173-edef53068c51/1e72147a-1948-42b6-9f2a-00433525af34",
        "resolved_parent_path": "/Project 1/Iteration 1",
        "state": "new",
        "updated-at": "2017-06-15T04:05:17.21256Z"
      },
      "id": "cfdae07c-3426-4ff2-9d4e-0840b6a4fc43",
      "links": {
        "self": "http://localhost:8080/api/iterations/cfdae07c-3426-4ff2-9d4e-0840b6a4fc43"
      },
      "relationships": {
        "parent": {
          "data": {
            "id": "1e72147a-1948-42b6-9f2a-00433525af34",
            "type": "iterations"
          },
          "links": {
            "self": "http://localhost:8080/api/iterations/1e72147a-1948-42b6-9f2a-00433525af34"
          }
        },
        "space": {
          "data": {
            "id": "3365d380-62ae-47af-96e7-228b2dcbf401",
            "type": "spaces"
          },
          "links": {
            "self": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401"
          }
        },
        "workitems": {
          "links": {
            "related": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401/workitems/?filter[iteration]=cfdae07c-3426-4ff2-9d4e-0840b6a4fc43"
          },
          "meta": {
            "closed": 6,
            "total": 10
          }
        }
      },
      "type": "iterations"
    },
    {
      "attributes": {
        "created-at": "2017-06-15T04:06:03.907685Z",
        "name": "Iteration 1.2",
        "parent_path": "/e7aaa526-4605-4de9-a173-edef53068c51/1e72147a-1948-42b6-9f2a-00433525af34",
        "resolved_parent_path": "/Project 1/Iteration 1",
        "state": "new",
        "updated-at": "2017-06-15T04:06:03.907685Z"
      },
      "id": "b3b97d7d-c9db-4b14-9ced-15fc1de8ac62",
      "links": {
        "self": "http://localhost:8080/api/iterations/b3b97d7d-c9db-4b14-9ced-15fc1de8ac62"
      },
      "relationships": {
        "parent": {
          "data": {
            "id": "1e72147a-1948-42b6-9f2a-00433525af34",
            "type": "iterations"
          },
          "links": {
            "self": "http://localhost:8080/api/iterations/1e72147a-1948-42b6-9f2a-00433525af34"
          }
        },
        "space": {
          "data": {
            "id": "3365d380-62ae-47af-96e7-228b2dcbf401",
            "type": "spaces"
          },
          "links": {
            "self": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401"
          }
        },
        "workitems": {
          "links": {
            "related": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401/workitems/?filter[iteration]=b3b97d7d-c9db-4b14-9ced-15fc1de8ac62"
          },
          "meta": {
            "closed": 6,
            "total": 12
          }
        }
      },
      "type": "iterations"
    },
    {
      "attributes": {
        "created-at": "2017-06-15T04:06:32.509775Z",
        "name": "Iteration 1.1.1",
        "parent_path": "/e7aaa526-4605-4de9-a173-edef53068c51/1e72147a-1948-42b6-9f2a-00433525af34/cfdae07c-3426-4ff2-9d4e-0840b6a4fc43",
        "resolved_parent_path": "/Project 1/Iteration 1/Iteration 1.1",
        "state": "new",
        "updated-at": "2017-06-15T04:06:32.509775Z"
      },
      "id": "cd6560d8-c51d-438a-bc03-42735fa93f7d",
      "links": {
        "self": "http://localhost:8080/api/iterations/cd6560d8-c51d-438a-bc03-42735fa93f7d"
      },
      "relationships": {
        "parent": {
          "data": {
            "id": "cfdae07c-3426-4ff2-9d4e-0840b6a4fc43",
            "type": "iterations"
          },
          "links": {
            "self": "http://localhost:8080/api/iterations/cfdae07c-3426-4ff2-9d4e-0840b6a4fc43"
          }
        },
        "space": {
          "data": {
            "id": "3365d380-62ae-47af-96e7-228b2dcbf401",
            "type": "spaces"
          },
          "links": {
            "self": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401"
          }
        },
        "workitems": {
          "links": {
            "related": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401/workitems/?filter[iteration]=cd6560d8-c51d-438a-bc03-42735fa93f7d"
          },
          "meta": {
            "closed": 3,
            "total": 4
          }
        }
      },
      "type": "iterations"
    },
    {
      "attributes": {
        "created-at": "2017-06-15T04:07:07.876502Z",
        "name": "Iteration 1.1.2",
        "parent_path": "/e7aaa526-4605-4de9-a173-edef53068c51/1e72147a-1948-42b6-9f2a-00433525af34/cfdae07c-3426-4ff2-9d4e-0840b6a4fc43",
        "resolved_parent_path": "/Project 1/Iteration 1/Iteration 1.1",
        "state": "new",
        "updated-at": "2017-06-15T04:07:07.876502Z"
      },
      "id": "a1dec442-4347-4c2b-ab75-062110529f88",
      "links": {
        "self": "http://localhost:8080/api/iterations/a1dec442-4347-4c2b-ab75-062110529f88"
      },
      "relationships": {
        "parent": {
          "data": {
            "id": "cfdae07c-3426-4ff2-9d4e-0840b6a4fc43",
            "type": "iterations"
          },
          "links": {
            "self": "http://localhost:8080/api/iterations/cfdae07c-3426-4ff2-9d4e-0840b6a4fc43"
          }
        },
        "space": {
          "data": {
            "id": "3365d380-62ae-47af-96e7-228b2dcbf401",
            "type": "spaces"
          },
          "links": {
            "self": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401"
          }
        },
        "workitems": {
          "links": {
            "related": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401/workitems/?filter[iteration]=a1dec442-4347-4c2b-ab75-062110529f88"
          },
          "meta": {
            "closed": 0,
            "total": 3
          }
        }
      },
      "type": "iterations"
    },
    {
      "attributes": {
        "created-at": "2017-06-15T04:07:21.022888Z",
        "name": "Iteration 1.1.3",
        "parent_path": "/e7aaa526-4605-4de9-a173-edef53068c51/1e72147a-1948-42b6-9f2a-00433525af34/cfdae07c-3426-4ff2-9d4e-0840b6a4fc43",
        "resolved_parent_path": "/Project 1/Iteration 1/Iteration 1.1",
        "state": "new",
        "updated-at": "2017-06-15T04:07:21.022888Z"
      },
      "id": "4bdd5473-07ea-4412-ab10-a81fbe58367d",
      "links": {
        "self": "http://localhost:8080/api/iterations/4bdd5473-07ea-4412-ab10-a81fbe58367d"
      },
      "relationships": {
        "parent": {
          "data": {
            "id": "cfdae07c-3426-4ff2-9d4e-0840b6a4fc43",
            "type": "iterations"
          },
          "links": {
            "self": "http://localhost:8080/api/iterations/cfdae07c-3426-4ff2-9d4e-0840b6a4fc43"
          }
        },
        "space": {
          "data": {
            "id": "3365d380-62ae-47af-96e7-228b2dcbf401",
            "type": "spaces"
          },
          "links": {
            "self": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401"
          }
        },
        "workitems": {
          "links": {
            "related": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401/workitems/?filter[iteration]=4bdd5473-07ea-4412-ab10-a81fbe58367d"
          },
          "meta": {
            "closed": 1,
            "total": 1
          }
        }
      },
      "type": "iterations"
    },
    {
      "attributes": {
        "created-at": "2017-06-15T04:08:20.770632Z",
        "name": "Iteration 1.2.1",
        "parent_path": "/e7aaa526-4605-4de9-a173-edef53068c51/1e72147a-1948-42b6-9f2a-00433525af34/b3b97d7d-c9db-4b14-9ced-15fc1de8ac62",
        "resolved_parent_path": "/Project 1/Iteration 1/Iteration 1.2",
        "state": "new",
        "updated-at": "2017-06-15T04:08:20.770632Z"
      },
      "id": "e61be2bd-3819-4644-a0ad-63e1841784aa",
      "links": {
        "self": "http://localhost:8080/api/iterations/e61be2bd-3819-4644-a0ad-63e1841784aa"
      },
      "relationships": {
        "parent": {
          "data": {
            "id": "b3b97d7d-c9db-4b14-9ced-15fc1de8ac62",
            "type": "iterations"
          },
          "links": {
            "self": "http://localhost:8080/api/iterations/b3b97d7d-c9db-4b14-9ced-15fc1de8ac62"
          }
        },
        "space": {
          "data": {
            "id": "3365d380-62ae-47af-96e7-228b2dcbf401",
            "type": "spaces"
          },
          "links": {
            "self": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401"
          }
        },
        "workitems": {
          "links": {
            "related": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401/workitems/?filter[iteration]=e61be2bd-3819-4644-a0ad-63e1841784aa"
          },
          "meta": {
            "closed": 3,
            "total": 6
          }
        }
      },
      "type": "iterations"
    },
    {
      "attributes": {
        "created-at": "2017-06-15T04:08:43.766509Z",
        "name": "Iteration 1.2.2",
        "parent_path": "/e7aaa526-4605-4de9-a173-edef53068c51/1e72147a-1948-42b6-9f2a-00433525af34/b3b97d7d-c9db-4b14-9ced-15fc1de8ac62",
        "resolved_parent_path": "/Project 1/Iteration 1/Iteration 1.2",
        "state": "new",
        "updated-at": "2017-06-15T04:08:43.766509Z"
      },
      "id": "0cf59fce-28ed-49e8-97f2-4d01fceaf828",
      "links": {
        "self": "http://localhost:8080/api/iterations/0cf59fce-28ed-49e8-97f2-4d01fceaf828"
      },
      "relationships": {
        "parent": {
          "data": {
            "id": "b3b97d7d-c9db-4b14-9ced-15fc1de8ac62",
            "type": "iterations"
          },
          "links": {
            "self": "http://localhost:8080/api/iterations/b3b97d7d-c9db-4b14-9ced-15fc1de8ac62"
          }
        },
        "space": {
          "data": {
            "id": "3365d380-62ae-47af-96e7-228b2dcbf401",
            "type": "spaces"
          },
          "links": {
            "self": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401"
          }
        },
        "workitems": {
          "links": {
            "related": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401/workitems/?filter[iteration]=0cf59fce-28ed-49e8-97f2-4d01fceaf828"
          },
          "meta": {
            "closed": 1,
            "total": 3
          }
        }
      },
      "type": "iterations"
    },
    {
      "attributes": {
        "created-at": "2017-06-15T04:09:20.124932Z",
        "name": "Iteration 2.1",
        "parent_path": "/e7aaa526-4605-4de9-a173-edef53068c51/df816bd5-7eb6-4748-b7e4-a5885de4b2dd",
        "resolved_parent_path": "/Project 1/Iteration 2",
        "state": "new",
        "updated-at": "2017-06-15T04:09:20.124932Z"
      },
      "id": "8f4de8a7-8ef5-428f-a47f-9210dc9d695b",
      "links": {
        "self": "http://localhost:8080/api/iterations/8f4de8a7-8ef5-428f-a47f-9210dc9d695b"
      },
      "relationships": {
        "parent": {
          "data": {
            "id": "df816bd5-7eb6-4748-b7e4-a5885de4b2dd",
            "type": "iterations"
          },
          "links": {
            "self": "http://localhost:8080/api/iterations/df816bd5-7eb6-4748-b7e4-a5885de4b2dd"
          }
        },
        "space": {
          "data": {
            "id": "3365d380-62ae-47af-96e7-228b2dcbf401",
            "type": "spaces"
          },
          "links": {
            "self": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401"
          }
        },
        "workitems": {
          "links": {
            "related": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401/workitems/?filter[iteration]=8f4de8a7-8ef5-428f-a47f-9210dc9d695b"
          },
          "meta": {
            "closed": 5,
            "total": 8
          }
        }
      },
      "type": "iterations"
    },
    {
      "attributes": {
        "created-at": "2017-06-15T04:09:45.762156Z",
        "name": "Iteration 2.1.1",
        "parent_path": "/e7aaa526-4605-4de9-a173-edef53068c51/df816bd5-7eb6-4748-b7e4-a5885de4b2dd/8f4de8a7-8ef5-428f-a47f-9210dc9d695b",
        "resolved_parent_path": "/Project 1/Iteration 2/Iteration 2.1",
        "state": "new",
        "updated-at": "2017-06-15T04:09:45.762156Z"
      },
      "id": "c8c5e92a-9e87-46e9-acc2-4903019869dc",
      "links": {
        "self": "http://localhost:8080/api/iterations/c8c5e92a-9e87-46e9-acc2-4903019869dc"
      },
      "relationships": {
        "parent": {
          "data": {
            "id": "8f4de8a7-8ef5-428f-a47f-9210dc9d695b",
            "type": "iterations"
          },
          "links": {
            "self": "http://localhost:8080/api/iterations/8f4de8a7-8ef5-428f-a47f-9210dc9d695b"
          }
        },
        "space": {
          "data": {
            "id": "3365d380-62ae-47af-96e7-228b2dcbf401",
            "type": "spaces"
          },
          "links": {
            "self": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401"
          }
        },
        "workitems": {
          "links": {
            "related": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401/workitems/?filter[iteration]=c8c5e92a-9e87-46e9-acc2-4903019869dc"
          },
          "meta": {
            "closed": 5,
            "total": 8
          }
        }
      },
      "type": "iterations"
    },
    {
      "attributes": {
        "created-at": "2017-06-15T04:10:16.245169Z",
        "name": "Iteration <IP_ADDRESS>",
        "parent_path": "/e7aaa526-4605-4de9-a173-edef53068c51/df816bd5-7eb6-4748-b7e4-a5885de4b2dd/8f4de8a7-8ef5-428f-a47f-9210dc9d695b/c8c5e92a-9e87-46e9-acc2-4903019869dc",
        "resolved_parent_path": "/Project 1/Iteration 2/Iteration 2.1/Iteration 2.1.1",
        "state": "new",
        "updated-at": "2017-06-15T04:10:16.245169Z"
      },
      "id": "6220f329-383c-4225-8056-d617849797d0",
      "links": {
        "self": "http://localhost:8080/api/iterations/6220f329-383c-4225-8056-d617849797d0"
      },
      "relationships": {
        "parent": {
          "data": {
            "id": "c8c5e92a-9e87-46e9-acc2-4903019869dc",
            "type": "iterations"
          },
          "links": {
            "self": "http://localhost:8080/api/iterations/c8c5e92a-9e87-46e9-acc2-4903019869dc"
          }
        },
        "space": {
          "data": {
            "id": "3365d380-62ae-47af-96e7-228b2dcbf401",
            "type": "spaces"
          },
          "links": {
            "self": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401"
          }
        },
        "workitems": {
          "links": {
            "related": "http://localhost:8080/api/spaces/3365d380-62ae-47af-96e7-228b2dcbf401/workitems/?filter[iteration]=6220f329-383c-4225-8056-d617849797d0"
          },
          "meta": {
            "closed": 3,
            "total": 5
          }
        }
      },
      "type": "iterations"
    }
  ]
}

This is a huge data response, but I had to paste the whole (that was easy.)

[test]

@pranavgore09 please, address my minor comments. lgtm otherwise.

I made few minor comments

yes @hectorj2f , thanks
I have addressed those comments, facing conflicts & test fails, will push soon. !

[test]

[test]

[test]

[test]

Build failed with the following error
Resetting dropped connection: admin.ci.centos.org
The requested operation failed as no inventory is available.

[test]

[test]

[test]

@pranavgore09 snapshot fabric8-wit image is available for testing.  docker pull docker.io/fabric8/fabric8-wit:SNAPSHOT-PR-1151-4


Item: Update to v1 API

WIP
Update Item component to v1 API.

@levithomason Item.Items was remove, what I must do with this?

Current coverage is 96.30% (diff: 96.37%)

Merging #431 into master will increase coverage by 1.15%

@@             master       #431   diff @@
==========================================
  Files            91         85     -6
  Lines          1175       1244    +69
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           1118       1198    +80
+ Misses           57         46    -11
  Partials          0          0

Powered by Codecov. Last update 4e2d4bf...aa9e42b

Finished :v:
Can be merged after issue will be solved and code review :smiley_cat:

Taking a look...

I've added a ui prop (and tests) to Image to allow turning off the ui className:
<Image {...rest} as={ElementType} ui={false} />

This seems to solve the issue with the ui className simply.  We may add this feature for all components, though for now it will just be on the Image.

There are a couple warnings to solve, looks like we're spreading props we shouldn't be:
Warning: Failed prop type: Invalid prop `items[0].childKey` of type `number` supplied to `ItemGroup`, expected `string`.

Warning: Unknown prop `childKey` on <div> tag. Remove this prop from the element.
in ItemGroup

Seems, it fixed :+1:

Will merge/release once tests pass

Released in v0.38.0, we're getting closer to v1 :D 🎉


Nfultz/oauth

Somewhere in merging from one branch to another, the body line got deleted. :(
Restoring it seems to have fixed everything for me.

Thanks, I’ll verify again today! I tried briefly the other day, but wasn’t able to investigate in detail.


ddlManager (ticdc): add bootstrap sending function

What problem does this PR solve?

Issue Number: ref #9898 close #10107
What is changed and how it works?
Check List
Tests

Unit test
Integration test
Manual test (add detailed scripts or steps below)
No code

Questions
Will it cause performance regression or break compatibility?
Do you need to update user documentation, design documentation or monitoring documentation?
Release note
None

/retest

/retest


Repo feedback

Add a custom description of you web app at the top of your repo.
You could also start with information about your API

For example: Fetch limits

Do I need a key?
Is the API free and open for usage?
What kinds of data do you fetch?
What is the data structure?

You can implement all this in your readme

Added a description of my web app. Will be expanded in the future.

Added a API explaination for my API database


Clouds should cast shadows on the ground

But the biggest problem is that we can't easily scale the size of clouds casting shadows. If we do it with the origin being the view position, the position of shadows will be view-dependent which isn't what happens in reality.
And also it is probably very laggy...

This is technicly impossible

@MrAgentBlaze Fine then


Fix excessive rebuilds

https://github.com/AmbientRun/Ambient/issues/835
This works almost like the git-version macro, the main difference being: it keeps only the .git/logs/HEAD as a dependency for rebuilds while git-version also tracks .git/index.

LGTM, does it resolve the issue?

It does. I'll do some more testing on Windows.


Issue with TextField and DatePicker

For DatePicker, I'm getting this warning:
`import DatePicker from 'material-ui/DatePicker'`
....
Warning: Unknown props `input`, `meta` on <input> tag. Remove these props from the element. For details, see https://fb.me/react-unknown-prop
    in input (created by TextField)
    in div (created by TextField)
    in TextField (created by DatePicker)
    in div (created by DatePicker)
    in DatePicker (created by ConnectedField)
    in ConnectedField (created by Connect(ConnectedField))
    in Connect(ConnectedField) (created by Field)
    in Field (at Create.js:69)
   ....

And if I do import DatePicker from redux-form-material-ui
I get hit with ➡ #37
And for TextField,  I'm getting this warning:
warning.js:36 Warning: TextField contains an input of type text with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://fb.me/react-controlled-components

Import DatePicker from redux-form-material-ui and add the following to your Field component:
format={(v) => ((v === '') ?  null : v)}

The component should look like:
<Field
  component={DatePicker}
  name={this.props.name}
  format={(v) => ((v === '') ?  null : v)}
/>

@eL-HaXo Your answer helped me. Otherwise I was getting warning. Can you please explain how adding format prop fixes the warning?
Warning: Failed prop type: Invalid prop `value` of type `string` supplied to `DatePicker`, expected `object`.
    in DatePicker (created by renderDateField)
    in renderDateField (created by ConnectedField)
    in ConnectedField (created by Connect(ConnectedField))
    in Connect(ConnectedField) (created by Field)
    in Field (created by AddStudentInternal)

@talha131 The component is not expecting an empty string. The anonymous function that I pass to the format prop returns null (the expected type) if the value is an empty string.

Any fix for the TextField warning?

@eL-HaXo Thanks a lot. Makes sense.
To any one else, this is what my final version looks like
<Field
  name="enrollmentyear"
  component={renderDateField}
  label="Date of Enrollment"
  format={v => (v === '' || v === undefined ? new Date() : new Date(v))} // Important
/>

@advance512 have you tried the solution @eL-HaXo suggested? Which warning you are getting?

@eL-HaXo's fix seems to be related to the DatePicker, not the TextField.
I am getting the following warning:
warning.js:36 Warning: TextField contains an input of type text with both value and defaultValue props. Input elements must be either controlled or uncontrolled (specify either the value prop, or the defaultValue prop, but not both). Decide between using a controlled or uncontrolled input element and remove one of these props. More info: https://fb.me/react-controlled-components

You need to remove the defaultValue={null} on TimePicker' and DatePicker'.
#113

Just run into this and solved it using reduxForm initialValues as mention in the "No Default Values" of the README.
<Field name='birthday' component={DatePicker} hintText='Birthday' />

function mapStateToProps ({ auth: { authenticated } }) {
  return {
    initialValues: {
      birthday: {}
    },
    authenticated
  }
}

export default connect(mapStateToProps, actions)(
  reduxForm({
    form: 'signup'
  })(SignUp)
)


LEVEL OF DETAIL MODELS

Some flickering were noticeable when a model changes from one LOD to another

Fixed dbcc0674249c69238ce0f0a590986c5a1483cefe

Not solved for ModelInstanced class

Does not reproduce


IOS: Fix #88: PowerAuthSDK doesn't depend on shared configs.

See issue #88 for more details

We should change documentation a bit - currently, the code uses shared instances that can change over the time and change is reflected. This is no longer the case since we use copies.

You're right. I'll update documentation and mention this fact in release notes for 0.18.0


Consider auto-configuring Refinery memory consumption tunables by default

Is your feature request related to a problem? Please describe.
I've seen the tuning for MaxAlloc and CacheCapacity cause some confusion for operators of Refinery in Kubernetes.
Since sane default configs are documented here, why not leverage Helm to configure these?
Describe the solution you'd like
Since Refinery pods should get Guaranteed QoS in K8s anyway (requests and limits on RAM should be matching values), we could use those RAM allocation values to calculate the default values for both MaxAlloc and CacheCapacity. I think we'd want these to be overridable, however, via something like a custom values.yaml file.
Describe alternatives you've considered
I'm considering opening a PR on this myself, but need to negotiate for the time to do so from $job.

You can push the memory limit value down into the Refinery container via the Kubernetes Downward API.
For now, we generate the Refinery configuration from the same program that generates a kustomize patch to set the memory request and limit, so we perform the recommended 80% calculation when writing the configuration file, but it would be nice to have Refinery derive these values from a memory limit supplied via environment variable.

Thanks for the suggestion. We'll add this to our backlog for prioritisation, or if you feel inclined we're always open to PRs.

With Refinery 2.0's introduction of AvailableMemory and MaxMemoryPercentage the chart is now setting some memory defaults using the resource limits:
Collection:
    # AvailableMemory is the amount of system memory available to the Refinery process.
    AvailableMemory: '{{ .Values.resources.limits.memory }}'
    MaxMemoryPercentage: 75


Update ImagePicker.md

The usage example for ImagePicker contains improper indentation that may be confusing to some readers. Originally, the indentations in the SwiftUI sample code in this file implied that Image belonged within a closure of ImagePicker; however, this creates an issue. Image should not be within a closure of ImagePicker, hence the change made.

Thanks!

Thanks!


Leave the icon up to the developers

/usr/share/applications/quickgui.desktop
use this code
Icon=quickgui
no png svg or anything
loose the number (_512) so that icon themes can use their own creation for your application
Test it out and you will see this works.

Thanks for your contribution. I shall have a look after the end-of-year festivities !

did you check?
Can we close if implemented?


Feature/92-Change favicon

Is your feature request related to a problem? Please describe.
Not applicable
Describe the solution you'd like
The favicon right now shown it is the one given by default by react. This issue objective consist on changing it so the our logo it is use instead.
Describe alternatives you've considered
Not applicable
Additional context
Not applicable

Story Points: 2
See the discussion in Frontend S2
Powered by Parabol


Replace flags.FULL_REFRESH with should_full_refresh()

Hey, in relation to https://github.com/Datavault-UK/dbtvault/pull/100, there are a few examples of flags.SHOULD_FULL_REFRESH remaining. We ran into a bug while trying to use the is_any_incremental() macro because of this. It would be great to update accordingly so that the full refresh state is properly transmitted.
Also, I noticed a bug in the documentation for the vault_insert_by_period documentation. I believe the Idempotent Loads section should be updated to:
{%- if dbtvault.is_any_incremental() %}
LEFT JOIN {{ this }} AS d
ON a.CUSTOMER_HK = d.CUSTOMER_HK
WHERE d.CUSTOMER_HK IS NULL
{%- endif %}

To better reflect the hub materialization:
https://github.com/Datavault-UK/dbtvault/blob/2e2b72a73fec84d9fb6fc01ffcd227ab338cc054/macros/tables/bigquery/hub.sql#L93-L97

Hi thanks for this! We currently do not have a public contribution process (we're working on it!).
This means your contribution will not have had our tests executed against them. Your initial PR also used master as the base, which will cause problems with the merge as master is a small subset of files curated for the release of the package, and develop has our full test harness and more.
I'd also like to ask for some more detail on what bugs you were encountering as this is not something we've come across, and would like to reproduce it so we can add regression tests if possible.
Once we're able to reproduce we can then make the change in the develop branch and attribute your contribution in our release notes, however the commits and code will not be attributed to you. Sorry, we know this is not ideal!


Ban 0.3.3.x

There's still some COMPAT code in the tpool that we should consider removing.

hmm. Getting nondeterministic panic: consensus checksum mismatch after reverting


gatehost: document deployment

update / document more setup parts of
gatehost1 and gatehost2 Nuremberg infrastructure nodes

@nicolasbock issue addressed, please rereview


feat(gen): improve bearer security template.

Verify auth scheme and populate correct token value.

Hi! Sorry for messed up pipeline. Tried to fix reported warnings

Please re-generate


Unknown / Blank tag in browse by language pointing to Page not found

Hi,
Under the Browse by language section, there is a tag with count 3 but nothing written in it,

When you click on it, a 404 page not found response is thrown.

What should be expected behaviour?

@dpuljic01 projects like:

https://github.com/LappleApple/feedmereadmes
https://github.com/neutraltone/awesome-stock-resources
https://github.com/rust-lang/rust-by-example

are expected to show.
Why?
Because these repos are markdown based and GFI does not point out markdown as language.
@jaipradeesh what do you think?

please assign this issue to me and provide some guidance, my first time

@pnijhara shall I make a markdown tab with the aforementioned repos? (as part of hacktoberfest)

@jai-deepsource @jaipradeesh can you look into this?

I've added "Unknown" as a tag for these repos in PR #162 - not fully happy with it but these tags come from the GitHub API, so if GitHub doesn't know what language the repo is in, there's not really much to do but assign it to "Unknown". What does everyone think?

This has been fixed in a recent release. Thanks!


Match blocks returning matched expression when no branch matches

local a = match "d" {
	1 => 2,
	true => false
}
print(a)

This is compiled to:
local _internal0 = "d";
if (_internal0 == 1) then
	_internal0 = 2;
elseif (_internal0 == true) then
	_internal0 = false;
end
local a = _internal0;
print(a);

Which means a will become "d", as "d" did not match with any of the branches.
Should we leave this in? Or should we fix it somehow?

Maybe in the future, but since this is quite an issue we should fix it in 3.3 (maybe...)
An easy solution is to set _internal0 to nil using an else at the end, but should we?

That may be the right solution for now, but probably will break compatibility with 4.0 (if a better match will be implemented, but that's not so much a problem)

The main worry I have is that it technically could break compatibility with 3.2 as well, since some code may actually rely on this bug

It was never documented to do such a thing so I'd say that's better changing than not

Hm, true, we should fix it then yeah

Since this is intended behavior and is considered a bug we can fix it. I would say just set it to nil if nothing matches with an else block

I think you meant to say "Since this is not intended behaviour"?

Absolutely agree that if no cases match, the expression should evaluate to nil. Of all things that could happen, having it evaluate to the scrutinee probably has the highest "WTF" factor!

As for implementation, I imagine it shouldn't be too difficult as it is equivalent to there being an implicit:
_ => nil,

…at the end of every match block.

I think it should be easy enough to do, but I'm not sure.

a...warning?

at least if I made a linter it would be a warning, but to the context of only the compiler I guess it wouldn't be required

It should be best to just fix it altogether by setting it to nil, I think

It should be best to just fix it altogether by setting it to nil, I think

It should be fixed but using this is sort of bad code

Clue never complains about bad code anywhere else, so...

Clue never complains about bad code anywhere else, so...

on this should we make a linter for 4.0?

I think 4.0 is already a daunting task as is, maybe later on..

You could have a warning for cases where the user is clearly doing something that doesn't make sense (like the example in the original post), but it's more commonly going to happen accidentally. What's the use case for matching on a constant? If you're matching on a variable, then without a type system, you're not going to know if the match could fail.

having the fail be shown by returning the matched variable also doesn't help

This issue has now been fixed.


Program Unstable

I liked that the program works like a Swiss army knife, I hope you take user comments into consideration and continue to improve it.

The program's shortcut key is not working stably. For example, I assigned WinL + Left click, but sometimes the menu opens and sometimes it does not. It was not stable with default keys either. The shortcut keys in the alignment assignment also do not work stably.
Shortcut keys starting with Alt type characters when on a text document, this should not happen.
The settings of the program should be kept in the folder where it runs, so that I can use the program with the same settings on my other laptop.
It should be possible to prevent another copy of the program from being run, and it should not continue to be opened more than once while it is open.
When I double click on the Tray icon, the settings window should open.

These are my suggestions for now, good luck.

Hi @kenanunkesti,

Is it true for all the windows or some specific ones?

Could you please provide the example or more details.

If you plan to use SCM as a portable app, then you should copy the settings file from your roaming profile
(c:\Users\USER_NAME\AppData\Roaming\SmartContextMenu\X.Y.Z\SmartContextMenu.xml) to the directory with SmartContextMenu.exe

Ok. I will fix it in the next version.

Ok. I will fix it in the next version.

Thank you for your helpful suggestions.

Unfortunately, I can't reproduce this bug yet.
I can't also reproduce this bug yet. Do you enable the numeric keypad on your keyboard? This might be the reason.
Fixed in the version 1.3.5
Fixed in the version 1.3.5

I'm currently using it with default settings and it seems to be working stably.
However, finding the settings and transferring them to the folder path of the program is very troublesome. I think such a software should keep its settings in its own folder. Please fix this too :)
Thanks.

The idea was that SmartContextMenu could be used by users with minimal rights (read only) to the directory. I'll consider your proposal.

Version 1.3.5

In my system the hotkeys work properly. Windows 10 22H2. Version 1.4.0

The situation is the same in Windows 11. Resize menu shortcuts do not work.

Thank you for highlighting the issue. Could you check one thing please? Do the hotkeys refuse to work at once as SCM starts or after you call some menu item with some hotkey? Try to choose "Information" menu item with a hotkey and close the information window in 5 seconds, then repeat the same action and close the window in more than 10 seconds. Will all the hotkeys work at the first or second attempt? Unfortunately, I will be able to check this only in two weeks.


TensorFlow: lack of repeatability in tf.estimator.DNNClassifier

Please go to Stack Overflow for help and support:
https://stackoverflow.com/questions/tagged/tensorflow
If you open a GitHub issue, here is our policy:

It must be a bug or a feature request.
The form below must be filled out.
It shouldn't be a TensorBoard issue. Those go here.

Here's why we have that policy: TensorFlow developers respond to issues. We want to focus on work that benefits the whole community, e.g., fixing bugs and adding features. Support only helps individuals. GitHub also notifies thousands of people when issues are filed. We want them to see you communicating an interesting problem, rather than being redirected to Stack Overflow.

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow):
OS Platform and Distribution (e.g., Linux Ubuntu 16.04):
TensorFlow installed from (source or binary):
TensorFlow version (use command below):
Python version:
Bazel version (if compiling from source):
CUDA/cuDNN version:
GPU model and memory:
Exact command to reproduce:

custom code: no, it is the one in https://www.tensorflow.org/get_started/estimator
system: Apple
OS: Mac OsX 10.13
TensorFlow version: 1.3.0
Python version: 3.6.3
GPU model: AMD FirePro D700 (actually, two such GPUs)
You can collect some of this information using our environment capture script:
https://github.com/tensorflow/tensorflow/tree/master/tools/tf_env_collect.sh
You can obtain the TensorFlow version with
python -c "import tensorflow as tf; print(tf.GIT_VERSION, tf.VERSION)"
Describe the problem
Describe the problem clearly here. Be sure to convey here why it's a bug in TensorFlow or a feature request.
Dear all,
I wish to use TensorFlow to perform classification on medical datasets.
To do this, I am using exactly the same code as that proposed in https://www.tensorflow.org/get_started/estimator, the only difference being that I face medical datasets rather than the Iris database. So, it is not custom code.
I do need help about the following problem: if I run the same code on the same data with the same parameters for the network configuration (number of layers, number of neurons in each layer, and so on) , the results are different. I mean, I run the same code ten times, and I obtain ten different values for the accuracy. These values are even largely different, as they range from 73% up to 83%.
This means that the subjects considered suffering from a given disease vary from a run to another. Differently said, once set a network structure, there are several subjects who are considered either healthy or sick depending on the run only.
As you can imagine, this lack of repeatability makes that code useless from both scientific and medical viewpoints: another user, running the same configuration over the same data set, would find a different model and different results, so would cure different subjects.
I have noticed that for the Iris database the problem seems not to take place, and accuracy is always 0.9666. This depends on the problem being very easy (linearly separable for all but one items, and very small data set).
I have carried out a search on the internet, and I have found several other people who have noted the same problem. As for the possible solutions, I have read several as well, I have implemented them all, with no result.
Here I add a short list of some suggested remedies that failed in my case:
os.environ['PYTHONHASHSEED'] = '0'
np.random.seed(0)
tf.set_random_seed(0)
rn.seed(0)
tf.reset_default_graph()
session_conf = tf.ConfigProto(
intra_op_parallelism_threads=1,
inter_op_parallelism_threads=1
)
sess = tf.Session(graph=tf.get_default_graph(), config=session_conf)
Is there any chance to fix this problem? It is a pity that such an excellent tool, as TensorFlow is, cannot guarantee repeatibility.
I am using TensorFlow 1.3.0, Python 3.6.3, and an Apple with Mac OsX 10.13.
Thank you very much!
Best regards
Ivanoe De Falco
Source code / logs
Include any logs or source code that would be helpful to diagnose the problem. If including tracebacks, please include the full traceback. Large logs and files should be attached. Try to provide a reproducible test case that is the bare minimum necessary to generate the problem.
Source code is in:
https://www.tensorflow.org/get_started/estimator

Do you shuffle input data?

Dear facaiy,
thank you very much for your fast reply!
Actually, yesterday evening I noticed the same issue, so I set shuffle=False, and performed several tests.
Now all the runs yield the same result, so your idea is good and very helpful for my goal, thank you!
Actually, generally speaking, setting shuffle=False is just a way to get around the real problem, because the problem still exists: even if one sets all the random seeds fixed, the shuffling still produces different results.
I feel there should be an easy way to declare whether or not a DNN run should be based on a fixed seed so as to make it repeatable. This would be, I believe, a great improvement in the ease of use of TensorFlow, and I hope you good guys will work on it.
By now, thanks a lot for your cooperation!
Ivan

Hi, @IvanDeFalco . If I understand you correctly, you want a global seed setter for random, like numpy.random.seed(0), right?
Sounds reasonable, however, it goes beyond my scope and perhaps difficult to implement. Let's wait for reply from official tensorflowers.

yes @facaiy it is exactly what I am looking for.
Let's hope somebody will start working on this.
Again, thanks :)

Perhaps it is nearly impossible for multiple thread or distributed environment.

Just to double check - you're running this on the CPU? Or using OpenCL on the AMD GPUs?

Dear  @ekelsen Currently the program is running on the CPU.

@mrry do you know if there's a way to deterministically seed shuffled input data?

@skyewm: Yes, the Dataset.shuffle() transformation will pick up the graph seed, if one is specified (or you can pass an explicit seed as an optional argument).

@IvanDeFalco, does this suggestion resolve your issue.

Closing this due to lack of activity.

Without tf.set_random_seed, running multiple training in the same model_dir cause a fake accuracy improvement. But with tf.set_random_seed, it's fine. Why is this related with tf.set_random_seed?
Here is the question I asked on SO: python - Weird accuracy improvement by multiple small epochs training - Stack Overflow
Thanks.


Add 'http://host:8083/mqtt/status' page for health check

Fixed. PR: https://github.com/emqtt/emqttd/pull/263

This endpoint is not available anymore. which url should be used instead?


[PowerRename] allow to increment found numbers

Hey yall,
I love this. I use it daily.  But there is one function that I would love to see that isn't currently in the program.
I produce plans for construction, and one of the most annoying things in the world is when I have to add a sheet to the beginning of a large set.  We use DIESEL expressions in AutoCAD to pull sheet info (page number and name) from the file name.
I read up that it uses Regex to create variables for the strings but would love to see something that gave PowerRename basic math functionality.  For example 'Search: n', 'Replace: n+1'. This would vastly reduce annoying file renaming for my plan sets. I am not sure this is feasible, but figure I'd at least put it out there.
Thanks! Still a fan even if this isn't possible.
Sam

would be really hard to make this straight forward and approachable.  I'd suggest powershell.

reason being is you'd have to do something like this via regex no matter what via rename.  At that point, powershell would give you more control for what you want.

Actually this wouldn't be too hard to implement at all - I'm sure there'll be a library that covers substitutions similar to how node does it - e.g. ${group[1]-10} where group is the substitution group of items found in parenthesis and 1 is the item index number. I had just this requirement where I wanted to rename a bunch of files and wanted to make their index start at 1. Writing a script was more work than just doing it manually, but if it had been a feature within PowerRename, I'd have used that because it's something that does crop up from time to time


[Dropdown Menu] Opening focus and arrow keys does not work

Bug report
Current Behavior
Version 0.0.2 only. When opening a menu and pressing the down arrow, the focus is not moved to the first item.
Expected behavior
Opening a menu dropdown and immediately pressing the down arrow should move focus to the first non-disabled item.
Reproducible example
https://codesandbox.io/s/great-shannon-d6smv?file=/src/App.tsx
Suggested solution
Arrow down should focus the first non-disabled item in the menu.
Additional context
N/A
Your environment

Software
Name(s)
Version

Radix Package(s)
@radix-ui/react-dropdown-menu
0.0.2

React
n/a

Browser
All

Assistive tech
n/a

Node
n/a

npm/yarn
n/a

Operating System
n/a

Hey @pacocoursey, thanks for spotting this and opening an issue quickly!
I've found what the issue is, we'll have a fix out shortly.

Hey @pacocoursey, thanks for spotting this and opening an issue quickly!
I've found what the issue is, we'll have a fix out shortly.

Version 0.0.3 was published with a fix.

Version 0.0.3 was published with a fix.


ci: Use rustc docker image for x86_64 and i686 linux

cc @kinnison , @alexcrichton
So the effort of improving CI time is zero for now (#1760)

Blocked by rust-lang/rust#60366

Ok. Ready to merge :tada:


Word-level timestamp? Translation?

Great to see this in an easy to use ready to go package!
Is it possible to output word-level timestamps etc like in the examples? How about translating? Thanks
./main -m ./models/ggml-base.en.bin -f ./samples/jfk.wav -ml 1

whisper_model_load: loading model from './models/ggml-base.en.bin'
...
system_info: n_threads = 4 / 10 | AVX2 = 0 | AVX512 = 0 | NEON = 1 | FP16_VA = 1 | WASM_SIMD = 0 | BLAS = 1 |

main: processing './samples/jfk.wav' (176000 samples, 11.0 sec), 4 threads, 1 processors, lang = en, task = transcribe, timestamps = 1 ...

[00:00:00.000 --> 00:00:00.320]
[00:00:00.320 --> 00:00:00.370]   And
[00:00:00.370 --> 00:00:00.690]   so
[00:00:00.690 --> 00:00:00.850]   my
[00:00:00.850 --> 00:00:01.590]   fellow
[00:00:01.590 --> 00:00:02.850]   Americans
[00:00:02.850 --> 00:00:03.300]  ,
[00:00:03.300 --> 00:00:04.140]   ask
[00:00:04.140 --> 00:00:04.990]   not
[00:00:04.990 --> 00:00:05.410]   what
[00:00:05.410 --> 00:00:05.660]   your
[00:00:05.660 --> 00:00:06.260]   country
[00:00:06.260 --> 00:00:06.600]   can
[00:00:06.600 --> 00:00:06.840]   do
[00:00:06.840 --> 00:00:07.010]   for
[00:00:07.010 --> 00:00:08.170]   you
[00:00:08.170 --> 00:00:08.190]  ,
[00:00:08.190 --> 00:00:08.430]   ask
[00:00:08.430 --> 00:00:08.910]   what
[00:00:08.910 --> 00:00:09.040]   you
[00:00:09.040 --> 00:00:09.320]   can
[00:00:09.320 --> 00:00:09.440]   do
[00:00:09.440 --> 00:00:09.760]   for
[00:00:09.760 --> 00:00:10.020]   your
[00:00:10.020 --> 00:00:10.510]   country
[00:00:10.510 --> 00:00:11.000]  .

-tr,       --translate         [false  ] translate from source language to english

Hello, Thanks for you proposals !
For the timestamps I will look at the possibilities when I have available time !
For the translation there is a parameter but I didn't test it for the moment

https://github.com/krikristoophe/whisper_flutter_plus/issues/2

https://github.com/krikristoophe/whisper_flutter_plus/issues/3

@jtkeyva I published a new version with both of your proposals. You can use version 1.0.0 and use it like the README.md exemple :
Quickstart
// Prepare wav file
final Directory documentDirectory = await getApplicationDocumentsDirectory();
final ByteData documentBytes = await rootBundle.load('assets/jfk.wav');

final String jfkPath = '${documentDirectory.path}/jfk.wav';

await File(jfkPath).writeAsBytes(
    documentBytes.buffer.asUint8List(),
);

// Begin whisper transcription
final Whisper whisper = Whisper(
    model: WhisperModel.base,
);

final String? whisperVersion = await whisper.getVersion();
print(whisperVersion);

final String transcription = await whisper.transcribe(
    transcribeRequest: TranscribeRequest(
        audio: jfkPath,
        isTranslate: true, // Translate result from audio lang to english text
        isNoTimestamps: false, // Get segments in result
        splitOnWord: true, // Split segments on each word
    ),
);
print(transcription);

@krikristoophe awesome thank you very much!!


Add deletion authorization

One thing I'd like close review of is the fact that I don't validate the token at the registry against a whitelist of issuers because I'm not sure where such a whitelist would come from. AFAIK, the issuer isn't something that gets stored in the pubkeys that are looked up at the registry.

Fixes #55


Support Branch Reset Groups

As far as I can see, we do not have the support of branch reset groups.
If you are not familiar with it, you can find the description here: https://www.regular-expressions.info/branchreset.html
A very short version of the description:
It's so similar to ?:, but ?| will reset the group number in every branch, also you can use the same variable name in all branches.

Doesn't seem worth it to me personally. Seems overly complicated.

Doesn't seem worth it to me personally. Seems overly complicated.


Invalid Bindings are silently ignored

@davidebbo noticed this. In the below example, a binding of type 'invalid' is declared. This binding is skipped with no error log, and the function runs successfully. The logic that does this is here: https://github.com/Azure/azure-webjobs-sdk-script/blob/3b3e8cb8312060a475d4eb0418fafb4d80f12326/src/WebJobs.Script/Binding/FunctionBinding.cs#L46.
We likely can't change to errors at this point, but we can emit warning logs so people know something is wrong. We should make this error easily searchable in logs so we can scan for it.
{
    "bindings": [
        {
            "type": "timerTrigger",
            "name": "timerInfo",
            "direction": "in",
            "schedule": "0 * * * * *"
        },
        {
            "type": "invalid",
            "name": "outBlob",
            "direction": "out",
            "path": "samples-output/test"
        }
    ]
}

Yep, a warning would be great, thanks!

This is a duplicate of #1503 , correct?

Right, we both ended up opening it.


Enhancement: allow_unauthorized

Summary
Add an allow_unauthorized option that does not bypass the middleware, but also does not raise NotAuthorized if auth fails.
Discord thread
Basic Example
Route that returns the current authenticated user or None:
@get("/user", allow_unauthorized=True)
async def get_user(request: Request) -> dict[str, User | None]:
    return {"user": request.user}

Drawbacks and Impact
No response
Unresolved questions
No response

[!NOTE]
While we are open for sponsoring on GitHub Sponsors and
OpenCollective, we also utilize Polar.sh to engage in pledge-based sponsorship.
Check out all issues funded or available for funding on our Polar.sh dashboard

If you would like to see an issue prioritized, make a pledge towards it!
We receive the pledge once the issue is completed & verified
This, along with engagement in the community, helps us know which features are a priority to our users.

I would like to take this issue.
In the authentication middleware, inside the not should_bypass_middleware block we can check if allow unauthorized option is true if its not that we can normally authenticate the user as it is happening now. otherwise we will set user and auth to None. we will get allow_unauthorized option from route handler handler options, from scope. something like this...

        allow_unauthorized = getattr(scope.get("route_handler", {}), "handler_opts", {}).get("allow_unauthorized", False)
        if not should_bypass_middleware(
            exclude_http_methods=self.exclude_http_methods,
            exclude_opt_key=self.exclude_opt_key,
            exclude_path_pattern=self.exclude,
            scope=scope,
            scopes=self.scopes,
        ):
            if allow_unauthorized:
                scope["user"] = None
                scope["auth"] = None
            else:
                auth_result = await self.authenticate_request(ASGIConnection(scope))
                scope["user"] = auth_result.user
                scope["auth"] = auth_result.auth
        await self.app(scope, receive, send)

someoen please assign me this.


[base-ui][material-ui] Uncontrolled RadioGroup component do not fully reset when inside a  with a reset button

Duplicates

[X] I have searched the existing issues

Latest version

[X] I have tested the latest version

Steps to reproduce 🕹
Link to live example without using state: https://codesandbox.io/p/sandbox/agitated-bogdan-dx9dvn
Link to live example using state: https://codesandbox.io/p/sandbox/brave-chandrasekhar-3h9gdv
Current behavior 😯
When using Radio Group component, Pressing the reset button in a form does not revert value of the Radio Group to its default value.
If I use Radio Group with state then it will work properly.
Expected behavior 🤔
Changes in the value of the Radio Group will get reset while clicking on the reset button when we are not using the state (for the first codesandbox).
Context 🔦
No response
Your environment 🌎

npx @mui/envinfo
  System:
    OS: Windows 10 10.0.19045
  Binaries:
    Node: 20.9.0 - C:\Program Files\nodejs\node.EXE
    Yarn: 1.22.19 - ~\AppData\Roaming\npm\yarn.CMD
    npm: 10.1.0 - C:\Program Files\nodejs\npm.CMD
  Browsers:
    Chrome: Not Found
    Edge: Chromium (120.0.2210.77)
  npmPackages:
    @emotion/react: ^11.11.1 => 11.11.1
    @emotion/styled: ^11.11.0 => 11.11.0
    @mui/base:  5.0.0-beta.28
    @mui/core-downloads-tracker:  5.15.1
    @mui/material: ^5.15.1 => 5.15.1
    @mui/private-theming:  5.15.1
    @mui/styled-engine:  5.15.1
    @mui/system:  5.15.1
    @mui/types:  7.2.11
    @mui/utils:  5.15.1
    @types/react: ^18.2.45 => 18.2.45
    react: ^18.2.0 => 18.2.0
    react-dom: ^18.2.0 => 18.2.0
    typescript: ^4.9.5 => 4.9.5

This should be supported in Base UI first, and then in Material UI after refactoring to use Base UI's RadioGroup.


Fix filter for getChatMembers

@smaznet im wondering why nobody didn't know this bug this exist from first release😂


[core] Fix generation of package.json file on Windows

The path for the module in v4.12.0 version was broken, as it was released from Windows. For example - https://unpkg.com/browse/<EMAIL_ADDRESS>The correct one should look like - https://unpkg.com/browse/<EMAIL_ADDRESS>Fixes https://github.com/mui-org/material-ui/issues/27147
We should do a new release once this is merged.

Seems like it's working, I've got this by building locally:

Thank you @mnajdova

For build related fixes we should start to consider if we need to backport/forward port them. This fix here could've been backported 6 months ago: https://github.com/mui-org/material-ui/pull/24223


Fix the docstring of BasisSetRepresentation

Fix a formatting error that led to a doctest not being executed.

Pull Request Test Coverage Report for Build<PHONE_NUMBER>
Details

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.04%) to 94.88%

Totals

Change from base Build<PHONE_NUMBER>:
0.04%

Covered Lines:
6856

Relevant Lines:
7226

💛  - Coveralls


Revert Obfuscate Preprocessor Rules

This was done as POC for a customer, but we didn't get feedback, so reverting for now.


Add Technical People Lead @developmentseed

Wasn't sure about ordering. Defaulted to "newest on top", but feel free to bump if there is a preferred ordering.

Looks great! I'll update readme about ordering. On top is :+1:


[Bug][LogServer] LoggerRequestProcessor incorrect word and improper use of StringBuilder

Search before asking

[X] I had searched in the issues and found no similar issues.

What happened
Describe the question:
org.apache.dolphinscheduler.server.log.LoggerRequestProcessor#process
on line 72, it  has Dangling Javadoc comment and misspelling the word request
/**
 * reuqest task log command type
 */

Replace with the following
//request task log command type

on line 97, string concatenation as argument to 'StringBuilder.append()' call
for (String line : lines) {
    builder.append(line + "\r\n");
}

Replace with the following
for (String line : lines) {
    builder.append(line).append("\r\n");
}

on line 109, type status can be primitive
Boolean status = true;

Replace with the following
boolean status = true;

org.apache.dolphinscheduler.server.log.LoggerRequestProcessor#getFileContentBytes
on line 131, misspelling the word download, and @throws Exception is redundant
/**
 * get files content bytes，for down load file
 *
 * @param filePath file path
 * @return byte array of file
 * @throws Exception exception
 */

Replace with the following
/**
 * get files content bytes for download file
 *
 * @param filePath file path
 * @return byte array of file
 */

What you expected to happen
Obvious code exception
How to reproduce
In the latest dev branch
module: dolphinscheduler-log-server
class: org.apache.dolphinscheduler.server.log.LoggerRequestProcessor
Anything else
No response
Version
dev
Are you willing to submit PR?

[X] Yes I am willing to submit a PR!

Code of Conduct

[X] I agree to follow this project's Code of Conduct

I want to deal with this problem


Do not merge: Test runs for cilium-cli v0.5

This PR has the temporary GH action changes necessary to test the workflow changes in #15948.

@joestringer first patch looks good can we merge it? This increases the coverage on tests significantly.

One random failure on GKE this time:
🔌 [pod-to-pod] Testing cilium-test/client2-75c9979459-mm6rq -> cilium-test/echo-other-node-86774f89b9-7mcr8:8080...
---------------------------------------------------------------------------------------------------------------------
✅ curl command "curl -w %***local_ip***:%***local_port*** -> %***remote_ip***:%***remote_port*** = %***response_code***\n --show-error --silent --fail --show-error --connect-timeout 5 --output /dev/null <IP_ADDRESS>:8080" succeeded
❌ Unable to retrieve flows of pod "cilium-test/client2-75c9979459-mm6rq": timeout while waiting for condition, last error: no flows returned
✅ Flow validation successful for pod cilium-test/echo-other-node-86774f89b9-7mcr8 (first: 0, last: 14, matched: 3, nlog: 0)
📄 Flow logs of pod cilium-test/echo-other-node-86774f89b9-7mcr8:
✅Apr 30 22:20:29.034: cilium-test/client2-75c9979459-mm6rq:51460 -> cilium-test/echo-other-node-86774f89b9-7mcr8:8080 from-endpoint FORWARDED (TCP Flags: SYN)
❓Apr 30 22:20:29.034: cilium-test/client2-75c9979459-mm6rq:51460 -> cilium-test/echo-other-node-86774f89b9-7mcr8:8080 to-endpoint FORWARDED (TCP Flags: SYN)
✅Apr 30 22:20:29.034: cilium-test/echo-other-node-86774f89b9-7mcr8:8080 -> cilium-test/client2-75c9979459-mm6rq:51460 from-endpoint FORWARDED (TCP Flags: SYN, ACK)
❓Apr 30 22:20:29.034: cilium-test/echo-other-node-86774f89b9-7mcr8:8080 -> cilium-test/client2-75c9979459-mm6rq:51460 to-endpoint FORWARDED (TCP Flags: SYN, ACK)
❓Apr 30 22:20:29.034: cilium-test/client2-75c9979459-mm6rq:51460 -> cilium-test/echo-other-node-86774f89b9-7mcr8:8080 from-endpoint FORWARDED (TCP Flags: ACK)
❓Apr 30 22:20:29.034: cilium-test/client2-75c9979459-mm6rq:51460 -> cilium-test/echo-other-node-86774f89b9-7mcr8:8080 to-endpoint FORWARDED (TCP Flags: ACK)
❓Apr 30 22:20:29.034: cilium-test/client2-75c9979459-mm6rq:51460 -> cilium-test/echo-other-node-86774f89b9-7mcr8:8080 from-endpoint FORWARDED (TCP Flags: ACK, PSH)
❓Apr 30 22:20:29.034: cilium-test/client2-75c9979459-mm6rq:51460 -> cilium-test/echo-other-node-86774f89b9-7mcr8:8080 to-endpoint FORWARDED (TCP Flags: ACK, PSH)
❓Apr 30 22:20:29.034: cilium-test/echo-other-node-86774f89b9-7mcr8:8080 -> cilium-test/client2-75c9979459-mm6rq:51460 from-endpoint FORWARDED (TCP Flags: ACK)
❓Apr 30 22:20:29.034: cilium-test/echo-other-node-86774f89b9-7mcr8:8080 -> cilium-test/client2-75c9979459-mm6rq:51460 to-endpoint FORWARDED (TCP Flags: ACK)
❓Apr 30 22:20:29.038: cilium-test/echo-other-node-86774f89b9-7mcr8:8080 -> cilium-test/client2-75c9979459-mm6rq:51460 from-endpoint FORWARDED (TCP Flags: ACK, PSH)
❓Apr 30 22:20:29.038: cilium-test/echo-other-node-86774f89b9-7mcr8:8080 -> cilium-test/client2-75c9979459-mm6rq:51460 to-endpoint FORWARDED (TCP Flags: ACK, PSH)
❓Apr 30 22:20:29.038: cilium-test/client2-75c9979459-mm6rq:51460 -> cilium-test/echo-other-node-86774f89b9-7mcr8:8080 from-endpoint FORWARDED (TCP Flags: ACK)
❓Apr 30 22:20:29.038: cilium-test/client2-75c9979459-mm6rq:51460 -> cilium-test/echo-other-node-86774f89b9-7mcr8:8080 to-endpoint FORWARDED (TCP Flags: ACK)
✅Apr 30 22:20:29.038: cilium-test/client2-75c9979459-mm6rq:51460 -> cilium-test/echo-other-node-86774f89b9-7mcr8:8080 from-endpoint FORWARDED (TCP Flags: ACK, FIN)
❌ [pod-to-pod] cilium-test/client2-75c9979459-mm6rq (<IP_ADDRESS>) -> cilium-test/echo-other-node-86774f89b9-7mcr8 (<IP_ADDRESS>)

@jrfastab yeah #15948 (which is the first patch only) should be good to go, the only thing I'm confused about is whether the above GKE failure is a known flake or whether it could reliably break CI runs in the tree if we merge it.

That looks like a flake to me but not one I'm aware of. I guess we could spin up a GKE cluster and run the test a few times to see if it reproduces.


Memory calibration

@slaskawi actually, it looks like CI doesn't like concreate from the console output

@ryanemerson OMG.. I remember @tristantarrant installing some weird packages on CI...

@ryanemerson May I ask you to integrate this manually? I think we have a clash in python libraries... Probably the easiest way to solve it is to use Concreate delivered via an RPM (I hope I'll have some time to implement this this week).

@slaskawi I was waiting to speak to you this morning before merging as I couldn't get my environment to play nicely with test-ci yesterday, but no worries as I think the issue is once again with my machine


Test app doesn't work.

The project seems a bit stale? For the test app:
I had to upgrade nodemon for yarn to install. Then a yarn start yields:
Error: Cannot find module 'apollo-cursor-pagination/orm-implementations/knex'

I think this has changed to apollo-cursor-pagination/orm-connectors/knex in the actual package.
Is there a current example of using the knex connector? using the paginate example in the README yields a knex.default is not a function TypeError when passing in a knex query.

Hello @haruska ,
Thanks for your report. Indeed, the test app had an incorrect import. This was just fixed in PR #3 .
Can you pull the changes and check if it runs correctly for you now? The knex connector should be used just like the test app or the readme example. The test app is now passing successfully in my machine when running yarn test.
Let me know if you run into any issues to better troubleshoot them.

Thanks! still fails with default custom-pagination ... however, using the offset-based-pagination knex connector seems to work fine.

I see... Offset based should be fine if you don't worry about stable pagination (unstable pagination means that if you add a new record cursors might change).
The knex.default is not a function  sounds like a babel issue with the ES6 import syntax, but the dist version should have that transpiled.
Will try to replicate the issue. Which version of node are you using?

I'm using typescript v3.2.2 and node v8.14
$ ts-node -v
ts-node v7.0.1
node v8.14.0
typescript v3.2.2

Similar problem on node v11. I'm locked into v8 due to AWS Lambda constraints.
There must be something different on the transpile between custom and offset-based

Thanks for your help on debugging the issue!
We just published a new version (0.2.0) that should fix this. Could you please update your package.json to point to the new one to check if it's fixed for you?

And thank you for the fix!
I can't seem to import the knex connector anymore with 0.2.0. My import statement in TypeScript is:
import * as paginate from 'apollo-cursor-pagination/orm-connectors/knex/offset-based-pagination'

Which works fine in 0.1.0. Is there a different export to use?
Ideally, it would be cleaned up that you could do something like
import { paginate } from 'apollo-cursor-pagination/orm/knex'

or similar.

Closing for inactivity


Clarification on the example code for retrieving remote data please ?

The documentation isn't clear on this ...
In the code you have the following to retrieve the ToDoItems ...

I wrote this and it works but ... where is the data "filtered" .. on the server or on the client after all items are retrieved ?

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 0dd09c5f-3fe9-e58c-69d0-fa55157524f0
Version Independent ID: 6d02e799-215b-6d05-8c43-edde20f68280
Content: How to use the .NET SDK for Azure Mobile Apps
Content Source: articles/mobile-apps/azure-mobile-apps/howto/client/dotnet.md
Service: mobile-services
GitHub Login: @adrianhall
Microsoft Alias: adhal

Anyone ?
I need to know if all the data is pulled and filtered on the client before I continue building my app / system.

Hi @stephenhauck, thanks for posting this issue. It looks like this source code is open source for the SDK, so I'm taking a look to see what I can figure out. Which exact NuGet package are you using?

The code is from the examples ...
In the RemoteToDoService.cs it has this private variable ...

Then in the constructor it has the following ...

Then the actual call ...

if the "local store" is empty .. what happens ..  does it pull all of them then filter the local store ?
Does it pass only parameters to pull only the incomplete items ?
it's not clear how and when the local talks to the remote and such and how do I know the local data is stale and cannot be refreshed ?

Hi again @stephenhauck, I think I found the answer you're looking for. There is a QueryTranslator, so this would mean it passes the query to the server, runs the query there (including filtering) and then returns the results to the client.
https://github.com/Azure/azure-mobile-apps/blob/main/sdk/dotnet/src/Microsoft.Datasync.Client/Query/Linq/QueryTranslator.cs
As for answering how data is synchronized, and how to determine if things are stale. I'm not sure, and the lead dev is out for a month I heard. With that said, "offline synchronization" is most commonly opaque to the author, meaning, that you would only have stale data when the client is unable to connect to the server. Otherwise, it is always the latest data. Does that make sense?

To pile on here, there is a lot of information on this in the client HOW TO area.  The tutorial really does not go into detail - it's enough to get you to a working app.  Feel free to join us in the discussions on https://github.com/azure/azure-mobile-apps as well, where we often answer these sorts of questions.
#please-close


Custom primitive docstrings don't make it into the html documentation

Bug/Feature Request Description
In the API reference page of the docs (generated by docs/source/api_reference.rst), custom primitives have their description as simply "alias of python.path.to.primitive", rather than their actual description. I'm referring specifically Min, which we define using make_agg_primitive().

Issues created here on Github are for bugs or feature requests. For usage questions and questions about errors, please ask on Stack Overflow with the featuretools tag. Check the documentation for further guidance on where to ask your question.

Interesting. Same with IsIn which is made with make_trans_primitive.

@Seth-Rothschild this look fixed on docs.featuretools.com, right?

Seems as though Min is fixed but IsIn is not

TimeSince isn't working either. So it's actually not fixed.

This has been fixed. Closing


Remove metric suffix from input before multiplication

Eliminates notice on php 7.1 caused by invalid string in arithmetic
Due to this RFC pass - https://wiki.php.net/rfc/invalid_strings_in_arithmetic code like below produces notice on php 7.1:
$a = "5k" * "5";

This commit removes metric suffix (k or m or g) from multiplied numbers in getValueInBytes method of bundle's Symfony extension.

Thanks for the fix!


Implement a path-aware HasPrefix function

The HasPrefix function determines whether a given path is contained in
another, being careful to take into account that "/foo" doesn't contain
"/foobar" and that there are case-sensitive and case-insensitive
fileystems out there.
This addresses issue #296. In the current state it does not really fix
it because it needs support and testing for non-Unix platforms.
Signed-off-by: Marcelo E. Magallon<EMAIL_ADDRESS>

Consider this an initial draft. I saw the issue about an hour ago and wrote this implementation.
This is very likely going to fail on Windows (because of the paths used to test).
Things that need addressing:

The tests need to be fixed to create a temporary directory and create the directories in there to perform tests.
Figure out if this implementation is enough for Microsoft Windows, or what else needs to be covered
I'm guessing it should work on OSX, but I have no idea.

The tests are using a temporary directory.
Should be fine on Microsoft Windows as it's using os.SameFile now.
Should be fine on OSX.
Still needs fixing the existing code that uses filepath.HasPrefix.

Can you please delete the -ignore flag from the .travis.yml file?
# Ignore the deprecation warning about filepath.HasPrefix (SA1019). This flag
# can be removed when issue #296 is resolved.
- staticcheck -ignore='github.com/golang/dep/context.go:SA1019 github.com/golang/dep/cmd/dep/init.go:SA1019' $PKGS

This flag tells the staticcheck code analyzer to ignore deprecation warnings about filepath.HasPrefix.  I've fixed that in master.
Meantime, if you could just push one last commit that makes the change to travis.yml requested by @y0ssar1an, then I think we'll be in good shape!

As indicated in the travis configuration file, there are two uses of filepath.HasPrefix:
github.com/golang/dep/context.go:SA1019
github.com/golang/dep/cmd/dep/init.go:SA1019
To fix the second one, I need to export the function from dep.
Should I do that or move the function to internal?
The latest version only fixes context.go, it doesn't touch init.go.

@mem Ahh, right. I forgot about that.
Let's put it in the internal package, for now.

Awesome! Finally ready for merge 🎉 🎉


Test against Oracle JDK 8 in Travis

This was removed in ae571be57fc03b27e09f3dfe09f8c2d03ee90b0d, maybe travis is in better shape these days?

Coverage increased (+0.05%) to 92.205% when pulling 72725c1f5a6580f4c9d7407f89eab0f73da2871a on travis-oracle-8 into 75e19ad2500109146be44b00e0583f40c7caf3bc on master.


[Bug] Folder icon not visible

utils folder icon not visible, visible in v5.5.1

v5.6.0

v5.5.1

Closing as duplicate #2428


"Invalid Draw Range" error when trying to use BeginPopupModal

Hello,
I'm working on porting an app from your earlier love-imgui library to cimgui-love, as the old library stopped working under LÖVE 11.4. It's been a bit of a learning curve as I am not very familiar with C or the FFI, but for the most part things have been going smoothly.
The first roadblock I've run into has been getting popups to work. If I define a new popup using the BeginPopupModal function, and attempt to open it using the OpenPopup_Str function, I get the following "Invalid Draw Range" error:
Error: cimgui/love.lua:189: Invalid draw range.
stack traceback:
	[love "boot.lua"]:345: in function <[love "boot.lua"]:341>
	[C]: in function 'setDrawRange'
	cimgui/love.lua:189: in function 'RenderDrawLists'
	main.lua:27: in function 'draw'
	[love "callbacks.lua"]:168: in function <[love "callbacks.lua"]:144>
	[C]: in function 'xpcall'

Here is a love.draw() method that raises the above error:
love.draw = function()
    if imgui.Begin("testing") then
        if imgui.Button("Open Popup") then
            imgui.OpenPopup_Str("Popup")
        end
        if imgui.BeginPopupModal("Popup") then
            imgui.Text("This is in a popup")
            imgui.EndPopup()
        end
    end
    imgui.End()

    -- code to render imgui
    imgui.Render()
    imgui.RenderDrawLists()
end

I'm not sure if this is a bug with the library, or if it's just something that I'm doing wrong. Interestingly, if I use BeginPopup instead of BeginPopupModal it works correctly (although the popup is not a modal window, which is what I want).
I'm using an Intel Mac running MacOS 12.1 and Love 11.4, with the cimgui-love 1.86-1 release.
Thanks so much for your hard work on this library (and the last one)!

This seems to be a problem with version 1.86, as I tested your code with 1.85 and it works without problems. I believe the problem is with the rendering code on the lua side, I'll look into it and report back. In the meantime you can use the 1.85 release.

Thanks, I just tested with the 1.85 release and can confirm that it is working.

It turns out this was bug in Dear ImGui 1.86. I updated to the 1.87 WIP release that has the necessary patches and should fix the problem.


Add KerasNLP integration in ArgillaTrainer

Describe the solution you'd like
I think it'll be nice to integrate KerasNLP as another integrated framework for the ArgillaTrainer to also allow users train/fine-tune Keras models.
More information at https://keras.io/keras_nlp/

Thanks for closing @davidberenstein1957 we may eventually come back to this, but I think that due to the complexity of the installation is better to keep it away for the moment.

No problem, I trimmed down some of the open issues with very low prio.


[Feature Request]Rename repo/API or tool

There are imo too many different naming conventions across our repos. However, some patterns have emerged, which i quite like:

PascalCase for libraries, but with ARC in all caps.
examples:

ARCtrl
ARCTokenization

kebap-case for tools
examples:

arc-validate
arc-to-invenio
arc-export
arc-from-insdc

so my suggestion would be renaming the API from ArcCommander to ARCCommander, and the tool from arc to arc-commander.
If these changes are too big, I think we should at least rename the repo accordingly, since the current name - arcCommander - does not follow any pattern mentioned above, but is also differing from the current tool name (arc) and API namespace (ArcCommander).

See also https://github.com/nfdi4plants/arc-validate/issues/42

I agree with renaming the repo to ARCCommander. But I think we should stick with the tool name arc for ease of use.

@HLWeil do you intend to publish the API used by the tool as nuget package? If so, i think you should also rename the API namespace. Otherwise it does not really matter.

https://github.com/nfdi4plants/arcCommander/tree/developer/src/ArcCommander/APIs

namespace ArcCommander.APIs

or is that basically obsoloete now that ARCtrl exists?

or is that basically obsolete now that ARCtrl exists?

That was the plan (at least to my knowledge).

Ah I see. Yeah this definitely won't make it into its own nuget package. It will just be a thin layer combining ARCtrl top-level functions.

Renamed repository to ARCCommander


Improve WebAPI flow with middleware

Right now, the caching system is hardwired into the Connection class, which makes it difficult to implement custom logic like delaying the request when the rate limit has been hit.
Using a middleware-like system will make it easier to do that. It will also improve a few current systems in place:

Calls to .ManyAsync(...) that are currently automatically split into multiple requests if they exceed the max page size of 200. Right now it sends all the requests at once through the ThreadPool, but a middleware would allow easy customization.
Caching can be implemented through middleware as well.

Referenced wrong PR number from commit.

This is currently being worked on in the middleware branch.


How to reinit ?

I got the problem after I push new data (load more). What should I do?

@zhuxiaoyu88
rematched in the following way.
  updated () {
    document.dispatchEvent(new CustomEvent('matchheight', {}))
  },


Map display für Cap Alert Messages

Background:

Alert has list of info objects, each info has list of areas, each area is either polygon (closed list of points) or circle (lat, lon, radius - 0 if point)
Points are WGS84

Tasks:

Render geometries

Polygon
Circle
Point

Use styling from geocode, valueName = "style" - should be openlayers styling

Example data:

ClientID = socrates

Done.
@thoobr: Can you please test, in particular for "circles" - i did not find any samples for that when skimming through data, plus i dont know about the unit that is used for "radius". Let's see if openlayers does it correctly.

Basically the circles are working, I need to check the radius.
But I found one error, i the info object as not area then the client throws an error to the console that null is not iterable.

Handled null.
And also the (kind of weird) aspect that area can be either directly an object or an object array. @thoobr: Is this intended?

Yes, I can happend that the area is only one object or an array of objects.


Problem with linking behaviors and states

Hello everyone,
Two months ago, I had a perfectly working FlexBE installation. However, I tried to launch it back a few days ago and it doesn't seem to find the behaviours and states packages.
This is how my Configuration tab looks like:

I've removed my custom packages and tried to reinstall it only with the generic_flexbe_states but it neither works. I have followed the tutorial step by step and the packages show no error when building with catkin_make  :/
Has anybody experienced anything similar?
Thanks in advance!!

Hi AlvaroFerGar. I also experienced this problem now. I can't find the state library panel too.

Hi AlvaroFerGar. I also experienced this problem now. I can't find the state library panel too.

Hi KuKuXia!
Unfortunately I haven't figured out what is the problem. I have tested different releases of flexbe_behavior_engine  and flexbe_app but nothing has worked :(

Sorry to hear that you face problems!
In order to help you, can you provide some additional information? In
particular, is the ROS workspace sourced in the terminal where you run the
app? Can you roscd to the state packages that are not found? Do the
package.xml files of the state packages contain the export statement?

Hi  pschillinger
Thanks for your reply!

...In particular, is the ROS workspace sourced in the terminal where you run the app? Can you roscd to the state packages that are not found?

I can't check it today but I source my workspace in the .bashrc file and I think that I could roscd to the state packages without any problem. I will post another comment tomorrow if I'm not remembering well.

...Do the package.xml files of the state packages contain the export statement?

I didn't edit the original downloaded files  so the export tag should be where it's needed.

Hi again!
I have checked and my workspace is properly sourced, the .xml looks fine and roscd founds all my flexbe_* packages. I have tried with old releases and with the new ones but nothing appears to work.
Flexbe_app appears to find all the behavior packages int the start.
....
[INFO] [1559567857.135413]: 3 behaviors available, ready for start request.
[INFO] [1559567857.668265]: --- Behavior Engine ready! ---
[INFO] [1559567857.669219]: No onboard behavior is active.
[INFO] [1559567857.669896]: --- Behavior Mirror ready! ---

I edited the line 34 in io_packageparser.js to see if my state packages are detected with a log message and, surprisingly, yes they are!
After some research I reactivated(in window.html and events.js) the Force Discover button in the Configuration tab. When pressed, "No Behavior Packages" and "No State Packages" messages appear and i can't do anything to solve it.
Does this give anyone more information? Does someone have a clue of where my flexbe "loses" his related packages?

I also have found that the discover  in  ui/ui_settings.js (line 129) doesn't appear to be executed. The "after" and "before" messages are displayed but not the "inside" one,
T.logInfo("After PackageParser");

IO.PackageParser.discover(ros_pkg_cache, (new_packages, added_states, added_behaviors) => {
	T.logInfo("Inside PackageParser");
	ros_pkg_cache = ros_pkg_cache.concat(new_packages);
	state_pkg_cache = state_pkg_cache.concat(added_states);

        ....
});
T.logInfo("Before PackageParser");

Sorry if this isn't related with my problem. I'm not a js expert :/

Well, so I've reinstalled ALL my ROS distro and packages and now it seems to work well. I think we can assume that it was a weird bug in my installation :)
Thanks to everyone who tried to help!

Great to hear that it works now and thank you for the above information. I will further investigate to see what was going on. Even if something is weird with the installation, a specific error message should be provided.

The only way I found to achieve the reported observations was the case that one of the ROS packages (not necessarily containing states or behaviors) would have a malformed package.xml. Then, the process of parsing the packages would be stopped due to Javascript's way of handling exceptions in asynchronous background calls.
I added an exception handling for this case now and print a warning message as feedback. This means that even in the case of the error (as long as it's a different package), states and behaviors will be found regardless.

I followed the tutorial step by step and I got the same error.

i got the same problem,you can delete the flexbe_app,and redownload it. it seems something wrong about flexbe_app.

@pschillinger reinstallation does not work !! Please guide

Sloved :
I used the flexbe behavior_engine version 1.2.1 and flexbe_app version 2.2.1
(works fine it detects all the behaviour )

So do I correctly understand that version 1.2.2 / 2.2.2 do not work, also not after re-installing, but 1.2.1 / 2.2.1 do work as expected?


Align table column header with data when window is resized

User Story
As a user, I want the table data to continue aligning with their headers when I resize the window.
Acceptance Criteria
Given a data table is displayed
When the user resizes the window
The table's data continues aligning with their headers.

OBE by USWDS work


Clarify 'authorization' status with Adyen

When notification module receives a notification with type 'Authorization', it creates a new transaction with type 'Authorization'. In this case, it should update Charge transaction instead as for Adyen, 'authorization' means charge.
Task: clarify the statement above with Adyen and update the modules accordingly.

Hey, is there any chance that this can be prioritised and followed up with adyen? It doesn't make sense to have two separate transactions on the payment when the card has only been charged once. Would be preferable if we could just update the charge transaction.

After clarification with Adyen if transaction of type Charge exists in CTP then notification from Adyen with type Authorization should result in an update of Charge transaction status.
It is still unclear what notifications we would receive if we would first create authorisation/reservation with Adyen and charge it later (not really relevant for now as this process is not supported yet, see: #78)

Note: it does not matter if transaction in CTP is of type Charge or Authorization as request to Adyen will alsways look the same. It's back office setting within Adyen which decides if our request will end up as valid reservation or charge right away.
Current process:
Adyen's AUTOCAPTURE is active:

We process CTP Charge transaction and send credit card payment to Adyen
On successful authorisation Adyen will send notification with eventCode AUTHORISATION
Notification module will add new transaction with type Authorization

Adyen's MANUAL CAPTURE is active:

We process CTP Charge transaction and send credit card payment to Adyen
On successful authorisation Adyen will send notification with eventCode AUTHORISATION
Notification module will add new transaction with type Authorization
On successful manual capture Adyen will send notification with eventCode CAPTURE
Notification module will update transaction status of transaction with type Charge

New process:
By default we should expect CTP transaction to be supplied by the user with type Authorization only (right now it is Charge). This change would allow us to process transactions as follows:
Adyen's AUTOCAPTURE or MANUAL CAPTURE is active

We process CTP Authorization transaction and send credit card payment to Adyen
On successful authorisation Adyen will send notification with eventCode AUTHORISATION which will change status of existing Authorization transaction.
On successful manual capture Adyen will send additional notification with eventCode CAPTURE which will result in addition of new transaction of type Charge with the status from notification.

@zackpollard Would the above new process also meet your expectations?

Hey @butenkor
So in the case of auto-capture, we would simply just see the Authorization transaction and never see Charge? This sounds like a much better solution to me and would meet our expectations of the extension and notification modules. Thanks for looking into this.

Hi @zackpollard. Yes, you would see both Charge and Authorization only if manual capture was used. It also means that new process would be a breaking change as you front end would need to create first transaction of type Authorization and not Charge


[HF] Let server decide default repo visibility

Until now, all repos were public by default when created without passing the private argument. This meant that passing private=False or private=None was strictly the same. This is not the case anymore. Enterprise Hub offers organizations to set a default visibility setting for new repos. This is useful for organizations forbidding public repos for security matters. This PR updates the default value to follow this principle.
Related to https://github.com/huggingface/huggingface_hub/pull/2679 and https://github.com/AnswerDotAI/fastdata/pull/9

Hey @Wauplin , thanks so much for the PR!! However, since this is an nbdev project, development is a bit different than from what you are probably use to. You need to make changes to the jupyter notebooks and then export them in order for it to work properly. You can read more about it in this awesome CONTRIBUTING.md file (I'll add one here for future people!) https://github.com/AnswerDotAI/fasthtml/blob/main/CONTRIBUTING.md.
Could you please update your PR to work with nbdev?

@ncoop57 Done!

Awesome, thanks so much @Wauplin !!