Combined query criteria through Java API produces Invalid parameter: Invalid combined search

Refer to test-complete's TestQueryByExample.java class and test case method :
testBug22179 for this error
Here is a sample code snippet from the above method that produces this error.
This is the combinedCriteria  String (I removed the additional quotes of Java String):
{"search":{"options":{"constraint":[{"name":"para", "word":{"term-option":["case-insensitive"], "field":{"name":"para"}}},{"name":"id", "value":{"element":{"ns":"", "name":"id"}}}], "return-metrics":false, "debug":true, "return-qtext":false, "transform-results":{"apply":"snippet"}}, "query":{"queries":[{"or-query":{"queries":[{"and-query":{"queries":[{"word-constraint-query":{"text":["Bush"], "constraint-name":"para"}},{"not-query":{"word-constraint-query":{"text":["memex"], "constraint-name":"para"}}}]}},{"and-query":{"queries":[{"value-constraint-query":{"text":["0026"], "constraint-name":"id"}},{"term-query":{"text":["memex"]}}]}}]}}]}}}
StringHandle combinedHandle = new StringHandle(combinedCriteria).withFormat(Format.JSON);
RawCombinedQueryDefinition querydef = queryMgr.newRawCombinedQueryDefinition(combinedHandle);
This is the stack error when
String output = queryMgr.search(querydef, new StringHandle()).get(); is executed
com.marklogic.client.FailedRequestException: Local message: search failed: Bad Request. Server Message: REST-INVALIDPARAM: (err:FOER0000) Invalid parameter: Invalid combined search
REST-INVALIDPARAM: (err:FOER0000) Invalid parameter: Invalid query: XDMP-VALIDATEUNEXPECTED: (err:XQDY0027) validate strict { $q } -- Invalid node: Found search:text but expected (search:constraint-name,search:text*,search:weight?) at /search:search/search:query/search:or-query/search:and-query[1]/search:word-constraint-query/search:text using schema "search.xsd"
at com.marklogic.client.impl.JerseyServices$JerseySearchRequest.getResponse(JerseyServices.java:2206)
at com.marklogic.client.impl.JerseyServices.search(JerseyServices.java:1986)
Here is the Wire Trace:
Running testBug22179
[DEBUG] wire - >> "HEAD /v1/ping HTTP/1.1[\r][\n]"
[DEBUG] wire - >> "Host: localhost:8011[\r][\n]"
[DEBUG] wire - >> "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - << "HTTP/1.1 401 Unauthorized[\r][\n]"
[DEBUG] wire - << "Server: MarkLogic[\r][\n]"
[DEBUG] wire - << "WWW-Authenticate: Digest realm="public", qop="auth", nonce="d29c4f379c5dfb2306cabcd7e00ad830", opaque="24d0d3299e46da97"[\r][\n]"
[DEBUG] wire - << "Content-Type: application/json; charset=utf-8[\r][\n]"
[DEBUG] wire - << "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - << "Keep-Alive: timeout=5[\r][\n]"
[DEBUG] wire - << "[\r][\n]"
[DEBUG] wire - >> "HEAD /v1/ping HTTP/1.1[\r][\n]"
[DEBUG] wire - >> "Authorization: Digest username="rest-writer",realm="public",nonce="d29c4f379c5dfb2306cabcd7e00ad830",opaque="24d0d3299e46da97",qop=auth,uri="/v1/ping",cnonce="612fa3dd",nc=00000001,response="3d8bad565087e1c88b0899909f31d76b"[\r][\n]"
[DEBUG] wire - >> "Host: localhost:8011[\r][\n]"
[DEBUG] wire - >> "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - << "HTTP/1.1 204 No Content[\r][\n]"
[DEBUG] wire - << "Server: MarkLogic[\r][\n]"
[DEBUG] wire - << "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - << "Keep-Alive: timeout=5[\r][\n]"
[DEBUG] wire - << "[\r][\n]"
[DEBUG] wire - >> "PUT /v1/documents?category=content&uri=/qbe/constraint1.json HTTP/1.1[\r][\n]"
[DEBUG] wire - >> "Content-Type: application/json[\r][\n]"
[DEBUG] wire - >> "Authorization: Digest username="rest-writer",realm="public",nonce="d29c4f379c5dfb2306cabcd7e00ad830",opaque="24d0d3299e46da97",qop=auth,uri="/v1/documents",cnonce="4d620e5b",nc=00000002,response="0b8e33552e5f240c81b3cab715f0a886"[\r][\n]"
[DEBUG] wire - >> "Transfer-Encoding: chunked[\r][\n]"
[DEBUG] wire - >> "Host: localhost:8011[\r][\n]"
[DEBUG] wire - >> "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - >> "ac[\r][\n]"
[DEBUG] wire - >> "{"root":{"title":"Vannevar Bush", "popularity":"5", "id":"0011", "date":"2005-01-01", "price":{"amt":"0.1"}, "p":"Vannevar Bush wrote an article for The Atlantic Monthly"}}"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - >> "0[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - << "HTTP/1.1 201 Created[\r][\n]"
[DEBUG] wire - << "Location: /v1/documents?uri=/qbe/constraint1.json[\r][\n]"
[DEBUG] wire - << "Server: MarkLogic[\r][\n]"
[DEBUG] wire - << "Content-Length: 0[\r][\n]"
[DEBUG] wire - << "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - << "Keep-Alive: timeout=5[\r][\n]"
[DEBUG] wire - << "[\r][\n]"
Write /qbe/constraint1.json to database
[DEBUG] wire - >> "PUT /v1/documents?category=content&uri=/qbe/constraint2.json HTTP/1.1[\r][\n]"
[DEBUG] wire - >> "Content-Type: application/json[\r][\n]"
[DEBUG] wire - >> "Authorization: Digest username="rest-writer",realm="public",nonce="d29c4f379c5dfb2306cabcd7e00ad830",opaque="24d0d3299e46da97",qop=auth,uri="/v1/documents",cnonce="b158edb3",nc=00000003,response="407bf948b95356fe10b57675c48ec154"[\r][\n]"
[DEBUG] wire - >> "Transfer-Encoding: chunked[\r][\n]"
[DEBUG] wire - >> "Host: localhost:8011[\r][\n]"
[DEBUG] wire - >> "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - >> "ac[\r][\n]"
[DEBUG] wire - >> "{"root":{"title":"The Bush article", "popularity":"4", "id":"0012", "date":"2006-02-02", "price":{"amt":"0.12"}, "p":"The Bush article described a device called a Memex."}}"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - >> "0[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - << "HTTP/1.1 201 Created[\r][\n]"
[DEBUG] wire - << "Location: /v1/documents?uri=/qbe/constraint2.json[\r][\n]"
[DEBUG] wire - << "Server: MarkLogic[\r][\n]"
[DEBUG] wire - << "Content-Length: 0[\r][\n]"
[DEBUG] wire - << "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - << "Keep-Alive: timeout=5[\r][\n]"
[DEBUG] wire - << "[\r][\n]"
Write /qbe/constraint2.json to database
[DEBUG] wire - >> "PUT /v1/documents?category=content&uri=/qbe/constraint3.json HTTP/1.1[\r][\n]"
[DEBUG] wire - >> "Content-Type: application/json[\r][\n]"
[DEBUG] wire - >> "Authorization: Digest username="rest-writer",realm="public",nonce="d29c4f379c5dfb2306cabcd7e00ad830",opaque="24d0d3299e46da97",qop=auth,uri="/v1/documents",cnonce="92668cb5",nc=00000004,response="63e4e30f74bb0460ec109183028a0e13"[\r][\n]"
[DEBUG] wire - >> "Transfer-Encoding: chunked[\r][\n]"
[DEBUG] wire - >> "Host: localhost:8011[\r][\n]"
[DEBUG] wire - >> "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - >> "be[\r][\n]"
[DEBUG] wire - >> "{"root":{"title":"For 1945", "popularity":"3", "id":"0113", "date":"2007-03-03", "price":{"amt":"1.23"}, "p":"For 1945, the thoughts expressed in The Atlantic Monthly were groundbreaking."}}"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - >> "0[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - << "HTTP/1.1 201 Created[\r][\n]"
[DEBUG] wire - << "Location: /v1/documents?uri=/qbe/constraint3.json[\r][\n]"
[DEBUG] wire - << "Server: MarkLogic[\r][\n]"
[DEBUG] wire - << "Content-Length: 0[\r][\n]"
[DEBUG] wire - << "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - << "Keep-Alive: timeout=5[\r][\n]"
[DEBUG] wire - << "[\r][\n]"
Write /qbe/constraint3.json to database
[DEBUG] wire - >> "PUT /v1/documents?category=content&uri=/qbe/constraint4.json HTTP/1.1[\r][\n]"
[DEBUG] wire - >> "Content-Type: application/json[\r][\n]"
[DEBUG] wire - >> "Authorization: Digest username="rest-writer",realm="public",nonce="d29c4f379c5dfb2306cabcd7e00ad830",opaque="24d0d3299e46da97",qop=auth,uri="/v1/documents",cnonce="a75586eb",nc=00000005,response="a99ccab6889af7582898df6f1bbde0e0"[\r][\n]"
[DEBUG] wire - >> "Transfer-Encoding: chunked[\r][\n]"
[DEBUG] wire - >> "Host: localhost:8011[\r][\n]"
[DEBUG] wire - >> "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - >> "bc[\r][\n]"
[DEBUG] wire - >> "{"root":{"title":"Vannevar served", "popularity":"5", "id":"0024", "date":"2008-04-04", "price":{"amt":"12.34"}, "p":"Vannevar served as a prominent policymaker and public intellectual."}}"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - >> "0[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - << "HTTP/1.1 201 Created[\r][\n]"
[DEBUG] wire - << "Location: /v1/documents?uri=/qbe/constraint4.json[\r][\n]"
[DEBUG] wire - << "Server: MarkLogic[\r][\n]"
[DEBUG] wire - << "Content-Length: 0[\r][\n]"
[DEBUG] wire - << "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - << "Keep-Alive: timeout=5[\r][\n]"
[DEBUG] wire - << "[\r][\n]"
Write /qbe/constraint4.json to database
[DEBUG] wire - >> "PUT /v1/documents?category=content&uri=/qbe/constraint5.json HTTP/1.1[\r][\n]"
[DEBUG] wire - >> "Content-Type: application/json[\r][\n]"
[DEBUG] wire - >> "Authorization: Digest username="rest-writer",realm="public",nonce="d29c4f379c5dfb2306cabcd7e00ad830",opaque="24d0d3299e46da97",qop=auth,uri="/v1/documents",cnonce="6d89deef",nc=00000006,response="92db18e7beacb17d95740554408eac5d"[\r][\n]"
[DEBUG] wire - >> "Transfer-Encoding: chunked[\r][\n]"
[DEBUG] wire - >> "Host: localhost:8011[\r][\n]"
[DEBUG] wire - >> "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - >> "ae[\r][\n]"
[DEBUG] wire - >> "{"root":{"title":"The memex", "popularity":"5", "id":"0026", "date":"2009-05-05", "price":{"amt":"123.45"}, "p":"The Memex, unfortunately, had no automated search feature."}}"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - >> "0[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - << "HTTP/1.1 201 Created[\r][\n]"
[DEBUG] wire - << "Location: /v1/documents?uri=/qbe/constraint5.json[\r][\n]"
[DEBUG] wire - << "Server: MarkLogic[\r][\n]"
[DEBUG] wire - << "Content-Length: 0[\r][\n]"
[DEBUG] wire - << "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - << "Keep-Alive: timeout=5[\r][\n]"
[DEBUG] wire - << "[\r][\n]"
Write /qbe/constraint5.json to database
[DEBUG] wire - >> "POST /v1/search HTTP/1.1[\r][\n]"
[DEBUG] wire - >> "Content-Type: application/json[\r][\n]"
[DEBUG] wire - >> "Accept: application/xml[\r][\n]"
[DEBUG] wire - >> "Authorization: Digest username="rest-writer",realm="public",nonce="d29c4f379c5dfb2306cabcd7e00ad830",opaque="24d0d3299e46da97",qop=auth,uri="/v1/search",cnonce="72489f3a",nc=00000007,response="c4f8ea068983792211d6968a7ce0ad06"[\r][\n]"
[DEBUG] wire - >> "Transfer-Encoding: chunked[\r][\n]"
[DEBUG] wire - >> "Host: localhost:8011[\r][\n]"
[DEBUG] wire - >> "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - >> "288[\r][\n]"
[DEBUG] wire - >> "{"search":{"options":{"constraint":[{"name":"para", "word":{"term-option":["case-insensitive"], "field":{"name":"para"}}},{"name":"id", "value":{"element":{"ns":"", "name":"id"}}}], "return-metrics":false, "debug":true, "return-qtext":false, "transform-results":{"apply":"snippet"}}, "query":{"queries":[{"or-query":{"queries":[{"and-query":{"queries":[{"word-constraint-query":{"text":["Bush"], "constraint-name":"para"}},{"not-query":{"word-constraint-query":{"text":["memex"], "constraint-name":"para"}}}]}},{"and-query":{"queries":[{"value-constraint-query":{"text":["0026"], "constraint-name":"id"}},{"term-query":{"text":["memex"]}}]}}]}}]}}}"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - >> "0[\r][\n]"
[DEBUG] wire - >> "[\r][\n]"
[DEBUG] wire - << "HTTP/1.1 400 Bad Request[\r][\n]"
[DEBUG] wire - << "Content-type: application/xml; charset=UTF-8[\r][\n]"
[DEBUG] wire - << "Server: MarkLogic[\r][\n]"
[DEBUG] wire - << "Content-Length: 652[\r][\n]"
[DEBUG] wire - << "Connection: Keep-Alive[\r][\n]"
[DEBUG] wire - << "Keep-Alive: timeout=5[\r][\n]"
[DEBUG] wire - << "[\r][\n]"
[DEBUG] wire - << "[\n]"
[DEBUG] wire - << "  400[\n]"
[DEBUG] wire - << "  Bad Request[\n]"
[DEBUG] wire - << "  REST-INVALIDPARAM[\n]"
[DEBUG] wire - << "  REST-INVALIDPARAM: (err:FOER0000) Invalid parameter: Invalid combined search[\n]"
[DEBUG] wire - << "REST-INVALIDPARAM: (err:FOER0000) Invalid parameter: Invalid query: XDMP-VALIDATEUNEXPECTED: (err:XQDY0027) validate strict { $q } -- Invalid node: Found search:text but expected (search:constraint-name,search:text*,search:weight?) at /search:search/search:query/search:or-query/search:and-query[1]/search:word-constraint-query/search:text using schema "search.xsd"[\n]"
[DEBUG] wire - << "[\n]"

Had REST API QA to test the criteria string and it seemed to work fine.

Ajit, I cannot duplicate this issue.  What version of ML Server are you running?  I get exactly the same response from running the test in eclipse, maven, and curl (straight REST w/out Java).  I do have to create the field "para" first or I get an error on that.  Here's what I see using curl:
$ curl -i --digest --user admin:admin -H 'Content-Type: application/json' -H 'Accept: application/xml' -d '{"search":{"options":{"constraint":[{"name":"para", "word":{"term-option":["case-insensitive"], "field":{"name":"para"}}},{"name":"id", "value":{"element":{"ns":"", "name":"id"}}}], "return-metrics":false, "debug":true, "return-qtext":false, "transform-results":{"apply":"snippet"}}, "query":{"queries":[{"or-query":{"queries":[{"and-query":{"queries":[{"word-constraint-query":{"text":["Bush"], "constraint-name":"para"}},{"not-query":{"word-constraint-query":{"text":["memex"], "constraint-name":"para"}}}]}},{"and-query":{"queries":[{"value-constraint-query":{"text":["0026"], "constraint-name":"id"}},{"term-query":{"text":["memex"]}}]}}]}}]}}}' -X POST 'http://rh6-intel64-80-qa-dev-1:8000/v1/search'
HTTP/1.1 401 Unauthorized
Server: MarkLogic
WWW-Authenticate: Digest realm="public", qop="auth", nonce="d9519a994708b9a2142d0882c002a6f2", opaque="c2ec02b84243b6dc"
Content-Type: application/xml; charset=utf-8
Content-Length: 178
Connection: Keep-Alive
Keep-Alive: timeout=5

HTTP/1.1 200 OK
Content-type: application/xml; charset=utf-8
Server: MarkLogic
Content-Length: 633
Connection: Keep-Alive
Keep-Alive: timeout=5

<search:response snippet-format="snippet" total="0" start="1" page-length="10" xmlns:search="http://marklogic.com/appservices/search">
  <search:report id="SEARCH-FLWOR">(cts:search(fn:collection(), cts:or-query((cts:and-query((cts:field-word-query("para", "Bush", ("case-insensitive","lang=en"), 1), cts:not-query(cts:field-word-query("para", "memex", ("case-insensitive","lang=en"), 1), 1)), ()), cts:and-query((cts:element-value-query(fn:QName("","id"), "0026", ("lang=en"), 1), cts:word-query("memex", ("lang=en"), 1)), ())), ()), ("score-logtfidf",cts:score-order("descending")), 1))[1 to 10]</search:report>
</search:response>

And maven:
$ mvn -Dtest=CombinedQueryBuilderTest test
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building MarkLogic Java Client API 3.0.1
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- maven-resources-plugin:2.6:resources (default-resources) @ java-client-api ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 37 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:compile (default-compile) @ java-client-api ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-resources-plugin:2.6:testResources (default-testResources) @ java-client-api ---
[INFO] Using 'UTF-8' encoding to copy filtered resources.
[INFO] Copying 49 resources
[INFO]
[INFO] --- maven-compiler-plugin:2.3.2:testCompile (default-testCompile) @ java-client-api ---
[INFO] Nothing to compile - all classes are up to date
[INFO]
[INFO] --- maven-surefire-plugin:2.12.4:test (default-test) @ java-client-api ---
[INFO] Surefire report directory: E:\marklogic\projects\java-client-api-dev\target\surefire-reports

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running com.marklogic.client.test.CombinedQueryBuilderTest
14:55:43.421 [main] DEBUG c.m.client.DatabaseClientFactory - Creating new database client for server at localhost:8012
14:55:43.485 [main] DEBUG c.m.client.impl.JerseyServices - Connecting to localhost at 8012 as rest-writer
Running test248
14:55:44.942 [main] DEBUG c.m.client.DatabaseClientFactory - Creating new database client for server at localhost:8011
14:55:44.943 [main] DEBUG c.m.client.impl.JerseyServices - Connecting to localhost at 8011 as rest-writer
14:55:45.224 [main] INFO  c.m.client.impl.DocumentManagerImpl - Writing content for /qbe/constraint1.json
14:55:45.230 [main] DEBUG c.m.client.impl.JerseyServices - Sending /qbe/constraint1.json document in transaction null
Write /qbe/constraint1.json to database
14:55:46.272 [main] INFO  c.m.client.impl.DocumentManagerImpl - Writing content for /qbe/constraint2.json
14:55:46.272 [main] DEBUG c.m.client.impl.JerseyServices - Sending /qbe/constraint2.json document in transaction null
Write /qbe/constraint2.json to database
14:55:46.284 [main] INFO  c.m.client.impl.DocumentManagerImpl - Writing content for /qbe/constraint3.json
14:55:46.284 [main] DEBUG c.m.client.impl.JerseyServices - Sending /qbe/constraint3.json document in transaction null
Write /qbe/constraint3.json to database
14:55:46.301 [main] INFO  c.m.client.impl.DocumentManagerImpl - Writing content for /qbe/constraint4.json
14:55:46.301 [main] DEBUG c.m.client.impl.JerseyServices - Sending /qbe/constraint4.json document in transaction null
Write /qbe/constraint4.json to database
14:55:46.324 [main] INFO  c.m.client.impl.DocumentManagerImpl - Writing content for /qbe/constraint5.json
14:55:46.324 [main] DEBUG c.m.client.impl.JerseyServices - Sending /qbe/constraint5.json document in transaction null
Write /qbe/constraint5.json to database
14:55:46.358 [main] DEBUG c.m.client.impl.JerseyServices - Raw search
<search:response snippet-format="snippet" total="0" start="1" page-length="10" xmlns:search="http://marklogic.com/appservices/search">
  <search:report id="SEARCH-FLWOR">(cts:search(fn:collection(), cts:or-query((cts:and-query((cts:field-word-query("para", "Bush", ("case-insensitive","lang=en"), 1), cts:not-query(cts:field-word-query("para", "memex", ("case-insensitive","lang=en"), 1), 1)), ()), cts:and-query((cts:element-value-query(fn:QName("","id"), "0026", ("lang=en"), 1), cts:word-query("memex", ("lang=en"), 1)), ())), ()), ("score-logtfidf",cts:score-order("descending")), 1))[1 to 10]</search:report>
</search:response>

14:55:46.419 [main] INFO  c.m.client.impl.DatabaseClientImpl - Releasing connection
14:55:46.419 [main] DEBUG c.m.client.impl.JerseyServices - Releasing connection
Tests run: 2, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 3.971 sec

Results :

Tests run: 2, Failures: 0, Errors: 0, Skipped: 0

[INFO] ------------------------------------------------------------------------
[INFO] BUILD SUCCESS
[INFO] ------------------------------------------------------------------------
[INFO] Total time: 13.700 s
[INFO] Finished at: 2015-01-28T14:55:46-07:00
[INFO] Final Memory: 10M/155M
[INFO] ------------------------------------------------------------------------

FYI, this line is doing nothing: 	confMgr.setQueryValidation(true);
To do something you'd want to call confMgr.readConfiguration() first, then confMgr.writeConfiguration() after confMgr.setQueryValidation(true).

I was able to dup it.  It requires /v1/config/properties/validate-queries to be true, which I thought I had, but perhaps I accidentally set it to true on the wrong port.

Ok, the issue with the test is that "constraint-name" must come before "text" within a "word-constraint-query".  I think that's an issue because JSON objects should not require any order, so I'll log it against the REST API.  But the issue isn't in the Java API, so I'll close this.

The test works as expected as of 03/12/2015 with Java-client API develop branch on MarkLogic Server 8.0 nightly build (20150312).


README.md missing info on resources

Currently information on these resources is not included in the readme file:
-xIisFeatureDelegation
-xIisHandler
-xIisMimeTypeMapping
-xWebAppPoolDefaults
-xWebSiteDefaults

I checked my logs and found some information I wrote when I created some of those resource, due to some merging conflicts they never made it into the pull request:
xIisFeatureDelegation

SectionName: relative path of the section to delegate such as security/authentication
OverrideMode: Mode of that section { Allow | Deny }

xIisMimeTypeMapping

Extension: The file extension to map such as .html
MimeType: The MIME type to map that extension to such as text/html
Ensure: Ensures that the MIME type mapping is Present or Absent.

xWebAppPoolDefaults

ApplyTo: Required Key value, always Machine
ManagedRuntimeVersion: CLR Version {v2.0|v4.0|} empty string for unmanaged.
ApplicationPoolIdentity: {ApplicationPoolIdentity | LocalService |LocalSystem | NetworkService}

Great! Thank you for re-providing this information. Yeah, we recently updated the way that we merge PRs, we've had a few issues in the past about changes being overwritten.

If you have time, could you open a PR for this with these changes and I can get it merged?

Hi Maria,
I think I tried that before and I just tried again now. I merged my fork with the latest dev branch, updated the readme.md and committed back into my fork. After creating a Pull Request, I have three tests failing in appveyor. I expected using the lastest dev and not changing any code, the tests should pass. I'm not sure what I'm doing wrong. This is PR #237

@hahndorf - Yes, it looks like you also changed the mof for xWebApplication - AuthenticationInfo used to be a String, but now it's an array of Strings so there's a mismatch between the mof and the .psm1

To me all properties are present in the README.md, this was fixed in PR #237. Closing this issue as resolved.


StringValues Improvements

The first commit adds more StringValues tests.
The second commit includes the following improvements:

Add public struct Enumerator and public GetEnumerator method. This avoids enumerator allocations when foreaching over StringValues.

Implement IReadOnlyList<string>, because why not? It's a subset of IList<T>, which StringValues already implements, and aligns with other collections that implement both IList<T> and IReadOnlyList<T>, like T[] and List<T>.

Rename the indexer's parameter from key to index to be consistent with the naming used on other (all?) collections, like T[] and List<T>.

More efficient IList<T>.IndexOf: it was previously implemented using foreach over itself, which was resulting in an enumerator allocation. Instead, it's more performant to loop over the _values array directly, when _values isn't null, avoiding the enumerator overhead altogether.

More efficient ICollection<T>.Contains: it was previously casting itself to IList<string> to call IList<string>.IndexOf, which results in a box allocation. Now, IndexOf has been separated out into a private method that Contains calls directly, without boxing.

More efficient ICollection<T>.CopyTo: similar to the IndexOf improvement, it was previously using foreach over itself, resulting in an enumerator allocation. Now it makes use of the faster Array.CopyTo when _values isn't null.

More efficient Concat: similar to IndexOf and CopyTo this was using foreach over two StringValues, resulting in two enumerator allocations. Now it uses the more efficient CopyTo to copy the values directly into the new array.

I addressed the feedback. Not sure what's going on with the Travis CI build, looks like its failing for unrelated reasons. Any way to force it to try another build?

@Tratcher :shipit:

Rebased and merged.


Spurious lower tropospheric warm biases over Antarctica due to post-processing

It has been a persistent feature since v1that substantial lower-tropospheric warm biases are present in the zonal-pressure plots.
Below is a difference plot of v2.LR.historical ensemble versus ERA-Interim

Investigation led by @zhangshixuan1987 found it is mostly an artifact of post-processing.
The spurious biases are due to how the zonal mean difference plots are computed. Typically zonal means for computed first for model and obs (reanalysis), separately, which are then used to compute the differences. The root cause is the reanalysis data used utilize extrapolation to fill grids at all pressure levels, including below the ground surface, while the model data only include those above surface (pressure < PS). There would be no problem when at a certain level, the model has zero valid points (as seen in the blank space below around 875 hPa). When the model has grids partially masked out for a pressure level, the data points used to compute zonal mean could be very different between model and obs, let alone the reanalysis data contain extrapolated data.
The problem can be eliminated by computing the differences between model and obs first, using consistent masks, then deriving the zonal means.

Thank you @zhangshixuan1987 for a nice and thorough investigation. And thank you @wlin7 to summarize and file an issue. The proposed change seems reasonable and will reduce the selection bias with current post-processing order (computing zonal mean first for model and reanalysis and then take the difference) I will try to push in a change soon.

Thank you for taking care of this issue, @chengzhuzhang .


Set exit code bits depending on severity

OK, but then if you care about the exact number of warnings, you need to grep luacheck output anyway, because these 6 bits only go up to 63. Think of a system that only relies on such exit code as a counter for anything. "Um, there's like 63 of things, or actually maybe more, I'm not sure".

OK, but then if you care about the exact number of warnings, you need to grep luacheck output anyway, because these 6 bits only go up to 63. Think of a system that only relies on such exit code as a counter for anything. "Um, there's like 63 of things, or actually maybe more, I'm not sure".

@antonv6 I agree, parsing output seems like a better idea to get warning counts. Even better, JUnit XML formatter or a custom one can be used for reliability.
Currently exit codes are not documented except for "0 if OK, not 0 otherwise", so I'm going to merge this PR and include it in 0.17.1 and document it in 0.18.0. One problem with it is that there are also various errors related to command-line argument parsing, and also opening and parsing of config, cache, and custom formatter files. These could use another exit code bit, preferably 1 as that's what argparse uses on errors. @antonv6 could you shift the other exit code bits up?

@antonv6 merging this now, thanks! I'll shift the codes and release 0.17.1 later today.


Revert "Merge pull request #1512 from firebase/next"

Reverts firebase/extensions#1586

closing as spam...


for some reason my monster statblocks are having trouble saving

Error Code
Error: Forbidden

Error: Forbidden
    at Request.<anonymous> (https://homebrewery.naturalcrit.com/homebrew/bundle.js:75006:19)
    at Emitter.emit (https://homebrewery.naturalcrit.com/homebrew/bundle.js:1966:20)
    at xhr.onreadystatechange (https://homebrewery.naturalcrit.com/homebrew/bundle.js:75315:10)
{
  "status": 403,
  "method": "PUT",
  "url": "/api/update/gO1mAaP3Y090"
}

### Your description of what happened:

all the website said was that it is having a problem saving and to report it here

Is this still happening? We may have had a temporary hiccup on our servers being too busy.

no, its no longer happening. it seems to have fixed itself. But thank you for making such an incredible website.


go/acme/acmego: cope with missing final newline

Currently when a file doesn't have a final newline, acmego will always
say there's a difference because goimports always adds a newline
and 9 diff doesn't report the difference. This change fixes that.

CC @rsc


add missing "organizationId" type

add missing "organizationId" type to solve the TS issue of undefined "organizationId" inside "authenticateWithRefreshToken()"

Can you elaborate what issue you're trying to fix? Support for organizationId was added in 7.22.0 of the SDK.

sorry I forget to update my package


Use const context in intersections containing const type variables

fixes https://github.com/microsoft/TypeScript/issues/55778

This feels almost too simple... I feel like I remember the original PR not doing this on purpose. @ahejlsberg
@typescript-bot test top200
@typescript-bot user test this
@typescript-bot run dt
@typescript-bot perf test this
@typescript-bot pack this

I will note that perf/DT don't really have const type params, and they don't have high usage yet, so it's hard to say if we'll get any feedback for this within the PR now. Probably we should just merge it and then wait for someone to come up with a bad case.


Live Server: This page isn’t working <IP_ADDRESS> didn’t send any data. ERR_EMPTY_RESPONSE

still cannot run the Live Server  in google chrome

Please tell us what your settings are in the browser add-on, and in the settings.json. What server are you running?
I do not understand what the image should show. You should fill in the proxy settings into the .vscode/settings.json. Not in the browser.
See: Proxy setup

I got this same error - "Live Server: This page isn’t working <IP_ADDRESS> didn’t send any data. ERR_EMPTY_RESPONSE".
After I unchecked "Use a proxy server for your LAN (These settings will not apply to dial-up or VPN connections)", live-server started responding.

I have the same exact issue but the "Use a proxy server for your LAN ...." didn't work for me.

I am dealing with the same problem , and I unable to use many other useful extensions  cause they are dependent on this. For eg : live scss watcher etc. A fix is highly appreciated.

I experienced this on Windows today. I thought it may have been due to WSL but even without running remote VSCode I get the same issue.

I experienced this on Windows today. I thought it may have been due to WSL but even without running remote VSCode I get the same issue.

Kindly interact with the stack overflow post , so as to increase visibility and activity.

I am currently experiencing same issue.
any fix?

@IkennaChuks I have been making do with the cli version that you can download from npm

I am currently experiencing same issue.
any fix?
so i found a way out

Thanks buddy , this solved my issue.

thanks a lot. this was a great solution

I am currently experiencing same issue.
any fix?
so i found a way out

Thank you! this solved it

I am currently experiencing same issue.
any fix?
so i found a way out

Thanks a lot! Its running well now :)

I am currently experiencing same issue.
any fix?
so i found a way out

I love you. it worked for me. Good vibes from Uruguay

I am currently experiencing same issue.
any fix?
so i found a way out

Thanks man, this solved my issue!

I am currently experiencing same issue.
any fix?
so i found a way out

Thankyou , It worked

I am currently experiencing same issue.
any fix?
so i found a way out

Thank You!!! This Works <3

@IkennaChuks
Gracias! amigo eso resolvió mi problema!
También otra manera de corregirlo es cambiando el HOST y el PROXY

Quedaría así el JSON

This answer goes through the solution in detail :

This answer goes through the solution in detail :
https://stackoverflow.com/questions/61169067/live-server-vscode-this-page-isn-t-working-127-0-0-1-didn-t-send-any-data-err/61733333#61733333

I am currently experiencing same issue.
any fix?
so i found a way out

Thank you thank you thank you
I spent hours researching.
Your solution fixed it.
Yahoooooooooooo

I experienced this on Windows today. I thought it may have been due to WSL but even without running remote VSCode I get the same issue.

You got it right

Fix WSL or just reinstall everything and it starts to work fine

The complete detailed solution is here: https://stackoverflow.com/questions/61169067/live-server-vscode-this-page-isn-t-working-127-0-0-1-didn-t-send-any-data-err

I am currently experiencing same issue.
any fix?
so i found a way out

thank you, man
Your solution fixed it !
Everyone should follow upper solution please!
Very helpful~

I am currently experiencing same issue.
any fix?
so i found a way out

Thanks man


Incorrect inverse with swapped power and log

Example: expressions -:8 °(-:8) 3 and ÷:8 °(÷:8) 3 return 3 but ⁿ:8 °(ⁿ:8) 3 and ₙ:8 °(ₙ:8) 3 don't. It seems °(ⁿ:8) 3 is computed as °(ⁿ3) 8 and similarly for log, but the inverses should be ₙ8 for ⁿ:8 and ⁿ:8÷:1 for ₙ:8.
(Found while checking if Uiua would do better than BQN on an inverse I had to back out, that is, Tr 440 with Tr ← ×⊙(ⁿ:2÷12). Not at the moment it seems.)

They should invert correctly now.
Not sure if this makes your case work though.


Go to Symbol

Hi,
I've just added the extension and it works fine, but when tested Go to definition or go to symbol, it doesn't recognize procedure or function name if surrounded by double quotations.
I am using ODP.NET on Visual Studio which generates script files with qualified object names, e.g., PROCEDURE "HELLO".
Is there any configuration to support that? or current version (1.6.5) doesn't support it?
Thanks

Give me an example of what exactly doesn't work, in order to fix regExpParser.

sample.zip
Attached sample file contains a procedure "VALIDATE_DATES".
FUNCTION "APPOINTMENT_BYCATEGORY" invokes VALIDATE_DATES(R1, R2, ISTIME, NR1, NR2); at line 60.
Now, if you peek definition for VALIDATE_DATES you will get no definition found message.
Try rename PROCEDURE "VALIDATE_DATES" to PROCEDURE VALIDATE_DATES (just delete double quotations), then peek definition works.

Thanks for the sample. This is currently not supported by regExpParser neither by .tmLanguage (colorization failed too)
I'll fix to support this feature.

Fix in version 1.7.0


Introduce JMH Benchmarks

Part of #33 involves adding JMH-backed benchmarks so we can keep track of performance. This PR aims to introduce some.
To run benchmarks:
$ ./run-benchmarks
Changes:

Add a subproject for running benchmarks called 'benchmarks'
Add an SBT Plugin dependency on SBT-JMH
Add tests for the blocking actions exposed by Shade.Memcached
Add a script for running the benchmarks

Coverage remained the same at 85.892% when pulling 149aff0b2f95334a14081dd9ef4b64867eb3ede3 on lloydmeta:feature/benchmarking into 90fbbaeadb2cebab1e789ba5a8a60434800b55ea on alexandru:master.


Setup Dockunit for More Comprehensive Continuous Tests

Dockunit is a continuous integration service built to be container based. It is super helpful because you can build and distribute your test environments from scratch and run tests locally with ease.
This PR tests Gulp in Node.js latest, 5.0.0, 4.2.1, 0.12.7, and 0.10.40. The versions available on Dockunit are much more extensive than that of Travis CI. Assuming the PR is accepted, I'll send another with the Dockunit status badge for the README.md. You can see the current Dockunit status of Gulp here.

I don't think we want to add another test service currently.  If we were to add one, it would probably be appveyor for Windows CI.


[BUG]  Mouse Cursor Flashes Repeatedly when Launching Bloxstrap

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.

What problem did you encounter?
When opening bloxstrap or pressing play roblox the app closes and spams the mouse cursor to hell, restart fixes this issue it's just really annoying when I'm trying to play roblox, has anyone got a fix or have seen this issue?

What do you mean by "the app closes"? What app? Additionally, have you confirmed that this happens only with Bloxstrap?

Issue has been awaiting clarification for over a month, closing as stale. If you have anything further to add, just respond and I'll reopen.


Parallel Inference

Hi there!
Great library! I was wondering if parallel inferencing is possible or a planned feature as llamacpp supports it.

Hello, and thanks!
What do you mean exactly by parallel inferencing?

I mean batched inference, i.e. submitting two or more requests at once to the LLM. Sorry for the confusion.

Ah, it isn't supported at the moment no, but it's definitely something that could be added I think.

one way you can achieve it is by spawning multiple contexts I believe, multithreading should help as workaround for now

Concurrent execution with multiple sessions should work as long they are executed in different threads. But I thought author of this issue was asking about batching multiple prompts in the same session, am I wrong?

Hi guys, somehow llama.cpp has already in the server -np N, --parallel N: Set the number of slots for process requests. Default: 1 handle parallel request already only the server


blogs backend completed

blogs backend is done.
Issue number #197 is now completed.
https://github.com/abhay-raj19/FitBody/assets/126085856/135e6321-c714-4a2f-84ef-ceee9900e1fb
I have done this under gssoc'24.

would be looking for the frontend for the same !!


Support SignalR trigger return value

Fix the return value of SignalR trigger not working issue
resolves #1496
Pull request checklist

[x] My changes do not require documentation changes

[ ] Otherwise: Documentation issue linked to PR

[ ] My changes should not be added to the release notes for the next release

[x] Otherwise: I've added my notes to release_notes.md

[x] My changes do not need to be backported to a previous version

[ ] Otherwise: Backport tracked by issue/PR #issue_or_pr

[x] I have added all required tests (Unit tests, E2E tests)

@Y-Sindo Can you merge main to your branch to make sure you have this change included which will allow the pipeline to run? Thanks!

The fixes have been applied to .NET6 package: Microsoft.Azure.WebJobs.Extensions.SignalRService whereas the same issue exists in .NET8 version of this package: Microsoft.Azure.Functions.Worker.Extensions.SignalRService. Please kindly confirm when will the fix be propagated to this library for .NET8 applications

@waqarzafar The fix is already released. Please update your SignalR worker extensions to 1.15.0. Thanks!


Edit endpoint checks integration

Documentation checklist

[ ] I have updated CHANGELOG.txt if appropriate
[ ] I have updated the release notes document if appropriate, with:

[ ] general notes
[ ] bug-fixes
[ ] improvements/new features
[ ] backwards-incompatible changes
[ ] required upgrade steps
[ ] names of contributors

[ ] I have updated other documentation
[ ] I have added my name to the AUTHORS file
[ ] This PR's documentation has been approved by Daniele Procida

Coverage remained the same at 77.671% when pulling d52324ac2a84356a99fce6321f81b9b80d09e7f4 on FidelityInternational:feature/edit-endpoint-checks-integration into aa363d356667836ad553688be00e111324a29f1e on divio:release/4.0.x.

Closing this for now

@FinalAngel You haven't checked with us if this should be closed, We are currently moving sites into Production with CMS4, this feature will be needed for this work piece. Can you please re open this.

Half finished solution fixed by Choask.


Intercom / Crisp style popup from button embed

Is there way to embed as an open/close chat button like many chatbots ?
https://react-chatbotify.tjtanjin.com/docs/api/bot_options#chatbutton
(See also bottom right of page for example)

Hi @Matt2012.
This is something that we consider adding in the future but are currently working on other more immediate priorities.
Nevertheless, there is another issue which encourages other community members to try implementing this and we would gladly give a shoutout for their work.

Because this issue is referenced in another one, I will close it and any further comments should go in there. Thankyou!


Mitigate CredScan Erros

Contributing to the Azure SDK
Please see our CONTRIBUTING.md if you are not familiar with contributing to this repository or have questions.
For specific information about pull request etiquette and best practices, see this section.

/azp run net - aggregate-reports

@hallipr - It looks like the Aggregate Reports are now failing on something in the dependency tracking tools. Any chance you're able to take a look?

PR https://github.com/Azure/azure-sdk-for-net/pull/36478 should take care of that issue.

@ArthurMa1978 can you also clean up the policheck warnings? They look to be in the mgmt libraries as well.

@ArthurMa1978 can you also clean up the policheck warnings? They look to be some in mgmt libraries as well.

The warning from Azure.ResourceManager.SecurityCenter is the word coming from REST uri which we can't fix.

@ArthurMa1978 can you also clean up the policheck warnings? They look to be some in mgmt libraries as well.

The warning from Azure.ResourceManager.SecurityCenter is the word coming from REST uri which we can't fix.

I assume it is in the rest api spec. Can we not change that? If not then we will need to baseline it here to get that to go away.


Add host-config files to blt-test

It would be helpful if there were a few simple host-config files for the blt-test project embedded in ./cmake/blt-test/.
I'd like to add a simple host-config file for a simple gcc-based configuration as well as a file for a bg/q based configuration.

Fixed at some point.


neon-system-db: pod not starting due to bad node selector?

Cluster setup is failing when deploying neon-system-db due to no nodes being selected by the node selector.
Here's some debug info:
λ neon get deployments -A
NAMESPACE      NAME                                             READY   UP-TO-DATE   AVAILABLE   AGE
kube-system    calico-kube-controllers                          1/1     1            1           28m
kube-system    metrics-server                                   1/1     1            1           27m
neon-ingress   cert-manager                                     1/1     1            1           26m
neon-ingress   cert-manager-cainjector                          1/1     1            1           26m
neon-ingress   cert-manager-webhook                             1/1     1            1           26m
neon-ingress   istio-operator                                   1/1     1            1           27m
neon-ingress   istiod                                           1/1     1            1           27m
neon-ingress   neon-acme                                        1/1     1            1           26m
neon-monitor   blackbox-exporter-prometheus-blackbox-exporter   1/1     1            1           26m
neon-monitor   grafana-agent-operator                           1/1     1            1           26m
neon-storage   openebs-jiva-operator-operator                   1/1     1            1           23m
neon-storage   openebs-localpv-provisioner                      1/1     1            1           23m
neon-storage   openebs-ndm-cluster-exporter                     1/1     1            1           23m
neon-storage   openebs-ndm-operator                             1/1     1            1           23m
neon-storage   openebs-nfs-provisioner                          1/1     1            1           22m
neon-system    kubernetes-dashboard                             1/1     1            1           23m
neon-system    neon-system-db-postgres-operator                 1/1     1            1           22m
neon-system    reloader                                         1/1     1            1           22m

C:\src\personal-tools (master -> origin)
λ neon get statefulsets -A
NAMESPACE      NAME                                   READY   AGE
neon-monitor   grafana-agent                          1/1     27m
neon-storage   openebs-jiva-operator-csi-controller   1/1     23m
neon-system    neon-system-db                         0/1     22m

C:\src\personal-tools (master -> origin)
λ neon get pods -A
NAMESPACE      NAME                                                              READY   STATUS    RESTARTS      AGE
kube-system    calico-kube-controllers-594bf97b46-7pv7z                          1/1     Running   1 (29m ago)   30m
kube-system    calico-node-xrkxh                                                 1/1     Running   0             30m
kube-system    coredns-pzt9t                                                     1/1     Running   0             30m
kube-system    etcd-control-0                                                    1/1     Running   0             31m
kube-system    istio-cni-node-fnrbb                                              1/1     Running   0             29m
kube-system    kube-apiserver-control-0                                          1/1     Running   0             30m
kube-system    kube-controller-manager-control-0                                 1/1     Running   1 (31m ago)   31m
kube-system    kube-proxy-8fmrd                                                  1/1     Running   0             30m
kube-system    kube-scheduler-control-0                                          1/1     Running   1 (31m ago)   31m
kube-system    metrics-server-58d446984f-lc7rm                                   1/1     Running   0             29m
kube-system    neon-etcd-proxy-control-0                                         1/1     Running   0             31m
neon-ingress   cert-manager-8678c8c597-jc6tj                                     1/1     Running   0             29m
neon-ingress   cert-manager-cainjector-ddbcdf9dd-v25kc                           1/1     Running   0             29m
neon-ingress   cert-manager-webhook-7bf967bfd4-59w65                             1/1     Running   0             29m
neon-ingress   istio-ingressgateway-hr99b                                        1/1     Running   0             29m
neon-ingress   istio-operator-66bd48c8f9-hjm96                                   1/1     Running   0             29m
neon-ingress   istiod-857994fc9d-5vv28                                           1/1     Running   0             29m
neon-ingress   neon-acme-87cdb8d9d-h64gw                                         1/1     Running   0             28m
neon-monitor   blackbox-exporter-prometheus-blackbox-exporter-56ff858b77-2x26t   1/1     Running   0             29m
neon-monitor   grafana-agent-0                                                   2/2     Running   0             29m
neon-monitor   grafana-agent-node-48rrm                                          1/1     Running   0             29m
neon-monitor   grafana-agent-operator-59b68888c-fqk4d                            1/1     Running   0             29m
neon-storage   openebs-jiva-operator-csi-controller-0                            5/5     Running   0             25m
neon-storage   openebs-jiva-operator-csi-node-q2d7v                              3/3     Running   0             25m
neon-storage   openebs-jiva-operator-operator-5dbcf88d4c-5hsj6                   1/1     Running   0             25m
neon-storage   openebs-localpv-provisioner-6484589b4c-khq7t                      1/1     Running   0             25m
neon-storage   openebs-ndm-cluster-exporter-846b6679c6-lbdkn                     1/1     Running   0             25m
neon-storage   openebs-ndm-mnzs5                                                 1/1     Running   0             25m
neon-storage   openebs-ndm-node-exporter-l5mkb                                   1/1     Running   0             25m
neon-storage   openebs-ndm-operator-86497b5679-hxrmn                             1/1     Running   0             25m
neon-storage   openebs-nfs-provisioner-79d77cddfc-hwbsb                          1/1     Running   0             25m
neon-system    kubernetes-dashboard-b5688559d-jhmgr                              3/3     Running   0             25m
neon-system    neon-system-db-0                                                  0/2     Pending   0             24m
neon-system    neon-system-db-postgres-operator-6d979db98f-8qfh8                 1/1     Running   2 (24m ago)   25m
neon-system    reloader-7f967b5c8f-jxjgk                                         1/1     Running   0             25m

C:\src\personal-tools (master -> origin)
λ neon describe pod neon-system-db-0 -A
error: a resource cannot be retrieved by name across all namespaces

C:\src\personal-tools (master -> origin)
λ neon describe pod neon-system-db-0 -n=neon-system
Name:                 neon-system-db-0
Namespace:            neon-system
Priority:             900005000
Priority Class Name:  neon-data
Node:                 <none>
Labels:               app=neon-system-db
                      cluster-name=neon-system-db
                      controller-revision-hash=neon-system-db-69bfcbd8f7
                      statefulset.kubernetes.io/pod-name=neon-system-db-0
                      team=neon-system
Annotations:          sidecar.istio.io/inject: false
Status:               Pending
IP:
IPs:                  <none>
Controlled By:        StatefulSet/neon-system-db
Containers:
  postgres:
    Image:       registry.neon.local/neonkube/zalan-spilo-14:2.1-p6
    Ports:       8008/TCP, 5432/TCP, 8080/TCP
    Host Ports:  0/TCP, 0/TCP, 0/TCP
    Limits:
      cpu:     500m
      memory:  512Mi
    Requests:
      cpu:      50m
      memory:   64Mi
    Readiness:  http-get http://:8008/readiness delay=6s timeout=5s period=10s #success=1 #failure=3
    Environment:
      SCOPE:                      neon-system-db
      PGROOT:                     /home/postgres/pgdata/pgroot
      POD_IP:                      (v1:status.podIP)
      POD_NAMESPACE:              neon-system (v1:metadata.namespace)
      PGUSER_SUPERUSER:           postgres
      KUBERNETES_SCOPE_LABEL:     cluster-name
      KUBERNETES_ROLE_LABEL:      spilo-role
      PGPASSWORD_SUPERUSER:       <set to the key 'password' in secret 'postgres.neon-system-db.credentials.postgresql'>  Optional: false
      PGUSER_STANDBY:             standby
      PGPASSWORD_STANDBY:         <set to the key 'password' in secret 'standby.neon-system-db.credentials.postgresql'>  Optional: false
      PAM_OAUTH2:                 https://info.example.com/oauth2/tokeninfo?access_token= uid realm=/employees
      HUMAN_ROLE:                 zalandos
      PGVERSION:                  14
      KUBERNETES_LABELS:          {"app":"neon-system-db"}
      SPILO_CONFIGURATION:        {"postgresql":{"pg_hba":["local     all             all                             trust","host      all             all          all                md5","local     replication     standby                         trust","ho
ation     standby      all                md5","local     replication     postgres                        trust","hostssl   replication     postgres     all                md5","local     replication     standby                         trust","hostssl   repl
andby      all                md5","hostssl   all             +zalandos    all                pam","hostssl   all             all          all                md5"]},"bootstrap":{"initdb":[{"auth-host":"md5"},{"auth-local":"trust"},"data-checksums",{"encoding
cale":"en_US.UTF-8"}],"users":{"zalandos":{"password":"","options":["CREATEDB","NOLOGIN"]}},"dcs":{"ttl":30,"loop_wait":10,"retry_timeout":10,"maximum_lag_on_failover":33554432}}}
      DCS_ENABLE_KUBERNETES_API:  true
      SSL_CERTIFICATE_FILE:       /tls/tls.crt
      SSL_PRIVATE_KEY_FILE:       /tls/tls.key
    Mounts:
      /dev/shm from dshm (rw)
      /home/postgres/pgdata from pgdata (rw)
      /tls from neon-system-db (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-fvvtt (ro)
  metrics:
    Image:      registry.neon.local/neonkube/prometheuscommunity-postgres-exporter:v0.10.0
    Port:       9187/TCP
    Host Port:  0/TCP
    Limits:
      cpu:     100m
      memory:  128Mi
    Requests:
      cpu:     50m
      memory:  32Mi
    Environment:
      POD_NAME:           neon-system-db-0 (v1:metadata.name)
      POD_NAMESPACE:      neon-system (v1:metadata.namespace)
      POSTGRES_USER:      postgres
      POSTGRES_PASSWORD:  <set to the key 'password' in secret 'postgres.neon-system-db.credentials.postgresql'>  Optional: false
      DATA_SOURCE_URI:    localhost/postgres?sslmode=disable
      DATA_SOURCE_USER:   <set to the key 'username' in secret 'neon-admin.neon-system-db.credentials.postgresql'>  Optional: false
      DATA_SOURCE_PASS:   <set to the key 'password' in secret 'neon-admin.neon-system-db.credentials.postgresql'>  Optional: false
      LOG_LEVEL:          info
    Mounts:
      /home/postgres/pgdata from pgdata (rw)
      /var/run/secrets/kubernetes.io/serviceaccount from kube-api-access-fvvtt (ro)
Conditions:
  Type           Status
  PodScheduled   False
Volumes:
  pgdata:
    Type:       PersistentVolumeClaim (a reference to a PersistentVolumeClaim in the same namespace)
    ClaimName:  pgdata-neon-system-db-0
    ReadOnly:   false
  dshm:
    Type:       EmptyDir (a temporary directory that shares a pod's lifetime)
    Medium:     Memory
    SizeLimit:  <unset>
  neon-system-db:
    Type:        Secret (a volume populated by a Secret)
    SecretName:  neon-system-db
    Optional:    false
  kube-api-access-fvvtt:
    Type:                    Projected (a volume that contains injected data from multiple sources)
    TokenExpirationSeconds:  3607
    ConfigMapName:           kube-root-ca.crt
    ConfigMapOptional:       <nil>
    DownwardAPI:             true
QoS Class:                   Burstable
Node-Selectors:              <none>
Tolerations:                 node-role.kubernetes.io/control-plane:NoSchedule op=Exists
                             node-role.kubernetes.io/master:NoSchedule op=Exists
                             node.kubernetes.io/not-ready:NoExecute op=Exists for 30s
                             node.kubernetes.io/unreachable:NoExecute op=Exists for 30s
Events:
  Type     Reason            Age               From               Message
  ----     ------            ----              ----               -------
  Warning  FailedScheduling  0s (x6 over 25m)  default-scheduler  0/1 nodes are available: 1 node(s) didn't match Pod's node affinity/selector. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling.

Note the last line:
Warning  FailedScheduling  0s (x6 over 25m)  default-scheduler  0/1 nodes are available: 1 node(s) didn't match Pod's node affinity/selector. preemption: 0/1 nodes are available: 1 Preemption is not helpful for scheduling.
...and there's no node selector specified

@marcusbooyah wasn't able to repro this when using --upload-charts and then I was able deploy a cluster with that switch too.
I'm sure I pulled and rebuilt the node images on the build machine, so I'm not sure what happened here.  I've since pulled and rebuilt these again and I'll try cluster setup without --upload-charts and see what happens.

CLOSING: cluster setup is working fine now.  I mustn't have pulled before the last image build.


fix(login): escape quotes in names

Description
Escape quotes in company names.
Why
Company names with character " (") broke the central custom login theme. We escape them so they get displayed correctly " -> \"
Issue
n/a
Checklist

[x] I have followed the contributing guidelines
[x] I have performed a self-review of my changes
[x] I have successfully tested my changes

@oyo, this issue with the escape characters only seems to be a problem with the custom themes. For example, the Keycloak base theme handles the escape characters just fine. Is there a way we can handle this in such a fashion, or is your work around our only option you see here?

@JordanGerada3 Keycloak provides a customization machanism using Apache Freemarker (.ftl). It is a simple scripting language that allows composing server side generated pages. The Catena-X central login page is quite different from other login pages that usually render a username+password dialog plus eventually redirecting to a small selection of IdP providers. We have ONLY federated IdPs and a lot of them - that's why we decided to create our own Iogin page from scatch. So we don't bother using anything of the Keycloak UI and use the Freemarker script only to generate a JSON array of all exising IdPs and include our custom JS and CSS that will build the UI from scratch in the user browser. Here the according parts in the source - Keycloak server side executed Freemarker script and client side executed Javascript:
https://github.com/eclipse-tractusx/portal-iam/blob/main/import/keycloak-themes/catenax-central/login/login.ftl#L27-L34
https://github.com/eclipse-tractusx/portal-iam/blob/main/import/keycloak-themes/catenax-central/login/resources/js/Main.js#L274-L282
Since Freemarker is assuming to generate HTML content and not JSON the names are encoded for HTML and not JSON. So a double quote character is output as is not escaped and the client side JSON parser breaks with an error message. In this PR we provide the fix to escape the names manually.

@oyo, this issue with the escape characters only seems to be a problem with the custom themes. For example, the Keycloak base theme handles the escape characters just fine. Is there a way we can handle this in such a fashion, or is your work around our only option you see here?

@JordanGerada3 Keycloak provides a customization machanism using Apache Freemarker (.ftl). It is a simple scripting language that allows composing server side generated pages. The Catena-X central login page is quite different from other login pages that usually render a username+password dialog plus eventually redirecting to a small selection of IdP providers. We have ONLY federated IdPs and a lot of them - that's why we decided to create our own Iogin page from scatch. So we don't bother using anything of the Keycloak UI and use the Freemarker script only to generate a JSON array of all exising IdPs and include our custom JS and CSS that will build the UI from scratch in the user browser. Here the according parts in the source - Keycloak server side executed Freemarker script and client side executed Javascript:
https://github.com/eclipse-tractusx/portal-iam/blob/main/import/keycloak-themes/catenax-central/login/login.ftl#L27-L34 https://github.com/eclipse-tractusx/portal-iam/blob/main/import/keycloak-themes/catenax-central/login/resources/js/Main.js#L274-L282
Since Freemarker is assuming to generate HTML content and not JSON the names are encoded for HTML and not JSON. So a double quote character is output as is not escaped and the client side JSON parser breaks with an error message. In this PR we provide the fix to escape the names manually.

@oyo thank you for your response, it makes total sense. Then your solution escaping the quotations client side seems like the go!
@jjeroch in regards to our conversation last week, please refer to Martins reply. We have a custom filter logic in our implementation where we convert html to json objects. We don't really have another way around this, we need to escape the characters ("") in the frontend within our custom JS.


except_on and also_on seem to not be working as intended

The test calendar makes use of this feature and compiles, so I'm not sure what's up yet.
Here's the failing calendar:
name: scikit-image Community Calendar
events:
  - summary: scikit-image Community Call (Europe/Africa)
    description: |
      The scikit-image Community Call. Timezone-friendly for Europe/Africa.

      Meeting notes: https://hackmd.io/@scientific-python/HJWUBDVNi
      Archive: https://github.com/scikit-image/meeting-notes
    begin: 2022-09-13 17:00:00 +00:00
    end: 2022-09-13 18:00:00 +00:00
    url: https://us06web.zoom.us/j/88060567580?pwd=THRpaWFnSFNwK0Fycy9FVk5RYnV5UT09
    repeat:
      interval:
        days: 14
      until: 2025-01-01 00:00:00 +00:00
  - summary: scikit-image Community Call (Americas/Oceania)
    description: |
      The scikit-image Community Call. Timezone-friendly for Americas/Oceania.

      Meeting notes: https://hackmd.io/@scientific-python/HJWUBDVNi
      Archive: https://github.com/scikit-image/meeting-notes
    begin: 2022-09-20 23:00:00 +00:00
    end: 2022-09-21 00:00:00 +00:00
    url: https://us06web.zoom.us/j/88060567580?pwd=THRpaWFnSFNwK0Fycy9FVk5RYnV5UT09
    repeat:
      interval:
        days: 14
      until: 2025-01-01 00:00:00 +00:00
      except_on:
        - 2023-05-30
      also_on:
        - 2023-05-31

This error comes up when the timezone is missing.


[DEVSECOPS BLOG] - @iddlep and @philrod blog updates to include first…

… stage test of an encrypted volume. Then a secondary post deployment test to ensure the S3 bucket policy does not have any rules allowing public access

pulling into master branch


fix: content empty when importing dupe

Currently when a file Y is imported twice from a file X. Then the full content of X will be empty. The import statement should be just removed, and the content of file X should still exist.
Not really 100% sure about it, but this fixes the issue I ran into.

Maybe we should indicate that an import was deduped at a particular place? A comment as with an unfound import could be better than just an empty string, don't you think?
It wouldn't take much space and would be quite functional.

I'm not really sure. I'm worried about replacing with comments because some people don't run a minimizer after (Material 2 intentionally) and therefore the SCSS bundle would look dirty.
How about warnings that can be silenced? Same for not found comments.

Maybe adding yet another configuration point, e.g. outputVerbosity would do?
The CLI gets a bit cluttered, but I suppose if you're using all of the options, you either use the configuration file or consume scss-bundle via TypeScript either way.
What do you think?

Another wild idea would be adding a --debug flag that enables --verbosity Verbose and outputVerbosity Verbose too. That might make it easier to use it when needed and skip it when releasing the bundled SCSS.

Yeah I think having both would be a good idea.

I've opened the issues for both --debug flag ( #30) and --outputVerbosity (#29).
I've also merged and published this fix so that you can use it right away.
It's 3:49am at my place, so I'm gonna call it a day 😄  Cheers!

Thanl you very much! Yeah 2:50am for me as well 😄 Sleep well!


Portal - Marketplace: support best practices for categories (ext: CXAR-992)

+Benefit Hypothesis+
< What´s the purpose, what´s the expected result. You can use User Story Format and Gherkin or following simple approach: If (proposition), then (benefit)>

+Beneficiaries+
< Who will benefit for that feature>

Components: CPLP
Sprints: N/A
Fix Versions: N/A
StoryPoints: N/A
Attachments: N/A

Closed by NSC because no progress. Please reopen and assign an upcoming release if needed.


How do I enter free text in a TID 1501?

In row 12 of TID 1501 it appears that text entries can be added to the object; the Content Item Description for this line states Allows encoding a flat list of name-value pairs that are coded questions with coded or text answers, for example, to record categorical observations related to the subject of the measurement group. A single level of coded modifiers may be present.. What is the recommended way to add these values?
If I create a MeasurementsAndQualitativeEvaluations object containing QualitativeEvaluations of the sort
    text_item = QualitativeEvaluation(
        name=CodedConcept(
            value='121071',
            meaning='Finding',
            scheme_designator='DCM',
        ),
        value=CodedConcept(
            value=text,
            meaning='Finding',
            scheme_designator='DCM',
        )
    )

this will work (and pass SR validation) until the size of the text exceeds 16 characters (after that there is an exception in coding.py). This may also be considered an abuse of CodedConcept?  Or perhaps there is a way to include aTextContentItem but I don't see the way to do this.
The use case is to permit free text additions to an SR by a radiologist for findings not present in the original SR generated by the model output. These text findings are at coded anatomic finding sites.

Yes, @CPBridge is right. I wanted to strongly discourage the use of free text for qualitative evaluations.

Thanks - I agree in general with discouraging free text but the app that I'm creating permits radiologists to enter text (this is their requirement) and don't want to generate a second data object for capturing their output. I'll try @CPBridge's approach and validate it with the pixelmed SR validator.

Using codes (private or public) assumes that you know what you expect to find in advance. Using private codes just eliminates the burden of finding a standard code. How would you, for example, solve the issue of describing incidental findings using private codes?

I have only really considered automated systems, which need to choose terms from a predefined terminology. This may be different for user interfaces, which need to handle arbitrary user input.

Implementing this in a backwards compatible way could get a bit messy. We'd probably need to create a new, alternative TextQualitativeEvaluation, or similar, and then accept Sequence[Union[QualitativeEvaluation, TextQualitativeEvaluation]] for the qualitative_evaluations parameter of the measurement group constructors. It's also true that currently the parsing API won't return content items of value type TEXT for the get_qualitative_evaluations method

We could call those TEXT content items "descriptions" rather than "evaluations" and add a descriptions parameter to the constructor as well as a corresponding get_descriptions method to the class.


Higher level draggable component

This works:
@DragSource(type, cardSource, (connect, monitor) => ({
    connectDragSource: connect.dragSource(),
    isDragging: monitor.isDragging()
  }))
  @DropTarget(type, cardTarget, connect => ({
    connectDropTarget: connect.dropTarget()
  }))
  class SortableItem extends Component {

    render() {
      const {connectDragSource, connectDropTarget, ...rest} = this.props;
      return (
        <SourceComponent
          ref={instance => connectDragSource(findDOMNode(instance))}
          {...rest}
        />
      );
    }
  }

... but when I add connectDropTarget, the target methods are not called (i.e. hover)
ref={instance => connectDropTarget(connectDragSource(findDOMNode(instance)))}

I took this workaround from the 2.0.0 release notes (https://github.com/gaearon/react-dnd/releases), not sure why it wouldn't work when passing the connectDropTarget function too.

This works though, as connectDragSource(domNode) returns undefined, not the node.
ref={instance => {
            var domNode = findDOMNode(instance);
            connectDragSource(domNode);
            connectDropTarget(domNode);
            return domNode;
          }}

What you described is the correct solution.


Concept - Understanding Tokens

Summary
Add concept doc: Understanding Tokens

Internal previews

📄 File
🔗 Preview link

docs/ai/conceptual/understanding-tokens.md
Understanding tokens

The article also needs to be added to the TOC.

The article also needs to be added to the TOC.

Well handle TOC updates after we are closer to complete on the rest of the doc set

The article also needs to be added to the TOC.

Well handle TOC updates after we are closer to complete on the rest of the doc set

We do have a cleanup script that runs every so often that removes orphaned articles, i.e. articles that aren't tethered to a TOC.
Also a request for the future - can you batch the suggestions into a single commit (you can do that if you accept the suggestions on the "Files changed" tab)? Our build kicks off every time something is committed.

The article also needs to be added to the TOC.

Well handle TOC updates after we are closer to complete on the rest of the doc set

We do have a cleanup script that runs every so often that removes orphaned articles, i.e. articles that aren't tethered to a TOC.
Also a request for the future - can you batch the suggestions into a single commit (you can do that if you accept the suggestions on the "Files changed" tab)? Our build kicks off every time something is committed.

I'll check with the team about what TOC updates they want.
I'll also batch the suggestions next time. Didn't realize it kicked off a build each time.

@catbutler tagging for review

Looks great overall, very informative! I left some general and some specific feedback.

Thanks for the review, I've incorporated your feedback!

The article also needs to be added to the TOC.

Well handle TOC updates after we are closer to complete on the rest of the doc set

We do have a cleanup script that runs every so often that removes orphaned articles, i.e. articles that aren't tethered to a TOC.
Also a request for the future - can you batch the suggestions into a single commit (you can do that if you accept the suggestions on the "Files changed" tab)? Our build kicks off every time something is committed.

I'll also batch the suggestions next time! Didn't realize it kicked off a build each time.
@alexwolfmsft is there a plan for the TOC updates? Are we concerned with the cleanup script remove articles if we don't add one now?

@gewarren TOC update is now included in this PR!


Bug fix/fix remote executor races

Scope & Purpose
Fix some races in the RemoteExecutor

[X] Bug-Fix for devel-branch (no need for backports)

http://jenkins01.arangodb.biz:8080/view/PR/job/arangodb-matrix-pr/6661/


Switch to graphql-parser

Hi,
Since there is no activity in #32 I've decided to write a separate crate for graphql-parser.
It's not based on code here but built using excellent combine crate (making the grammar more readable in my opinion). So in a weekend project I could build the parser for the whole graphql grammar. Which means it should be on par with this crate for features (I've not checked every feature, but we also have subscriptions and triple-quoted strings already implemented).
What do you think about integrating with the graphql-parser crate instead of keeping custom parser?

That looks much better than my half-baked Pest parser (although I still prefer pest to combine but that's not important)!
It would be really neat for the Rust ecosystem to standardise on a single parser so at least every crate wanting to do something with GraphQL doesn't have to rewrite it and it has many eyes on it.

@tailhook I'll look over the code, but in principle, as long as the AST produced is decent and can easily be converted (without much cloning) I'd definitely be in favour.
This also concers  https://github.com/nrc/graphql and https://github.com/nrc.
We've already talked about sharing fundamental infrastructure like the parser.
We'd also need the parser to handle parsing the GraphQL schema definition language.

@tailhook also, it's important to have great error reporting for parsing errors and to be able to map each ast node to the query location.

This also concers https://github.com/nrc/graphql and @nrc.
We've already talked about sharing fundamental infrastructure like the parser.

Sure, here is the issue: https://github.com/nrc/graphql/issues/36

it's important to have great error reporting for parsing errors

I think it's good enough. Of course, we have positions of all the errors. And "unexpected A, expected B, C". I'm not sure what else to say. Perhaps, there aren't much test for error reporting yet.
Currently, we don't have decent API for the error besides: format me a string, but it should be easy to add just need to figure out how it might look like.

and to be able to map each ast node to the query location.

We have positions for all important elements. The approach is different that one here, but we can discuss details.

We'd also need the parser to handle parsing the GraphQL schema definition language.

Surely, on a todo list. Does seem like another weekend project in it's size. The good thing that tokenizer may be reused entirely.

@tailhook all sounds great, I'll look over the code!
Would you be interested in moving the parser into the graphql-rust organization?
It would be cool to have all GraphQL related stuff under one hood, and it would ensure that someone else can maintain the parser if you need a break or whatever.
That's not in any way a requirement for me, though.

Would you be interested in moving the parser into the graphql-rust organization?

I'm fine with that. Should it be done now?

SDL is implemented and pushed to crates.io as v0.2.0

Is there anything blocking that?

@Keats I haven't had time to look over the code.
Ee will probably want to have a custom-tailored ast for Juniper.
I'm perfectly fine with getting an AST from the parser and mapping over it to get the custom one.
It should be as efficient as possible to do so, though.
@mhallin had some concerns, so we probably want his input here.

Hello, and thanks for bringing this up to the table!
While the parser part looks good, I've got some reservations for giving up control over the AST data structures to a general-purpose library. The issue I see is that we won't be able to model the data the way that suits a server application best.
For example, our AST of today uses Cow<&str> references everywhere into the original query source to avoid allocating tons of very small strings. This works today because the main execute function executes the entire query and returns when everything has been resolved. To support async code, where the AST needs to outlive the scope of the execute call, our probable AST of tomorrow has a special string type that works like a &str with a reference counted parent string.
I believe you could switch over graphql-parser to use this code, or build even better versions of all of this, but my reluctance comes from the fact that we now can do that without having to think about other use cases than ours.

Well, AST in graphql-parser is currently owned, so works fine for async code right now.
Then we can try to benchmark and optimize things. Usually, rust/jemalloc is very good, so allocations themselves are rarely problem. Given that request processing does lots of validation and probably has a bunch of hashmaps the overhead of allocations may be amortized. Also if serde_json can afford owned strings I think graphql library can too.
Another point of view is that size of  Spanning<SharedStr> is 72 bytes. I would rather try some kind of "inline string" library instead of that, given that most strings like type names and field names are much smaller than that. (But I'm not sure there is established "inline string" library in the community)

IMO it's fine if we start from what's there and optimize later, especially if @tailhook is fine with moving the repo into the graphql-rust org.
I also agree that the AST is probably a minuscule part of the work that happens when executing a resolver.
But:
Let's consider this relatively straight-forward query, executed with a traditional relational database under the hood:
query {
    users(page: 2, pagesize: 100) {
        id
        username
        posts(max: 20) {
          name
          comments(limit: 5) {
                id
                title
          }
        }
        likes(max: 50) {
            post {
                id
                title
            }
            time
        }
    }
}

Let's assume that the posts, posts.comments,  likes, likes.posts queries are run as futures.
That means:
users: 1 + 100 clones
posts: 1 + 100
posts.comments: 100 * 20
likes: 1 + 100
likes.post: 100 * 50
Now let's think about 100 of those queries running concurrently...
That's a lot of cloning of at least nested parts of the AST.
Execution of the futures can be batched quite easily, but the creation of the futures much less so, and those futures will need to know the query.
So I think this can become a significant overhead.
There are a lot of possible optimizations, like just unsafely passing around references to the full AST, using an Arc of the initial query string like mhallin has tried, using some kind of per-query interner, ...
But it's something that we'll need to think about.

Execution of the futures can be batched quite easily, but the creation of the futures much less so, and those futures will need to know the query.

I expect this to work by wrapping an Arc around a part of query. I think current SelectionSet which is basically a Vec<Selection> will be more like Arc<FnvHashSet<Field>> where fragments are already populated. So each resolver doesn't need to repeat fragment logic, and subselections can be referred to on their own.
I.e. the AST after validation/optimization is a bit different from what we have right after parsing anyway.

Some progress: https://github.com/graphql-rust/graphql-parser/pull/19

@tailhook considering this issue was opened more than 2 years ago. Would the progress on graphql-parser be sufficient to fully replace the the current parser? I.e. what is the current status of this issue?


can you let buffer sort like unite.vim

it's better to sort buffer like unite.vim  when open the buffer list.
unite.vim let the buffer list to view more humanized,  it's  very convenient to hit the 'enter' key to go prev buffer when open the buffer list.

I don't understand what you mean.

Sorry，my english writing ability is not very good.
I mean, i just press the 'enter' key it can be go back to last modified buffer when i open the buffer list.

Maybe it's not necessary. let the 'bm' action do the thing if just want to go to next modified buffer.


A tiny code style fix

This is a bug of black, for more detailed info, go to https://github.com/psf/black/issues/768
Master branch of black already solve this issue but not release yet. When it releases, if this bug indeed fixed by the new version of black. Someone or I should close this PR then.
Proposed changes:

A tiny code style fix

Status (please check what you already did):

[x] made PR ready for code review
[ ] added some tests for the functionality
[ ] updated the documentation
[ ] updated the changelog
[ ] reformat files using black (please check Readme for instructions)

The code is automatically formatted using black. And black formats print statements in this odd way as long as we need to support 3.5 - nothing we can do about this (this is also why the travis test failed - black is complaining that the code needs to be formatted...)


Prevent multiple activitystream entries for token use

Adds overridden bearer token validator to prevent multiple calls to is_valid, which in turn was causing multiple updates of last_used on the token and multiple activitystream entries reflecting that.

This does fix the issue I can see and fixes the double entry seen in the gateway dev environment.  There is still the issue of the 4 entries seen in QE's dev system, but since it's a challenge to get access and/or replicate the environment, we could go ahead and merge this fix and follow up with another one if something is found there.  So setting this one ready for review.

It seems suspicious that calling is_valid should produce any activity stream entries. It would be good to paste a test case and show what activity stream entries that generates.
Also, anecdotally, I have found that unit tests are very useful for testing activity stream. Either API actions can be mocked, or ORM-only actions can be done and then just check what was added in the activity stream at the end, according to the expectation. I'm fairly sure this same type of token can be created in test_app, which would be good to see.

yeah sure, I can do that.  It is the update of the last_used attribute on the access token that actually causes the activitystream entry, not is_valid in and of itself.
`
activitystream = object
if 'ansible_base.activitystream' in settings.INSTALLED_APPS:
from ansible_base.activitystream.models import AuditableModel
activitystream = AuditableModel

class OAuth2AccessToken(CommonModel, oauth2_models.AbstractAccessToken, activitystream):
`

My 2 cents is that updating last_used and recording an entry, effectively creates a usage log - a list of timestamps when the token was used. If this is what you wanted (a list of times of use), then I don't feel like the activity stream is well-designed for that. If you were to create a token use history table, the design choices would be different. It also starts to look like plain logging is a better solution. For near-term purposes, ping @relrod, I would ask the question if these entries are needed at all. If someone ever did want this data, you'd be committed to a solution which is a bad fit for the problem, which isn't what you want anyway.

Thanks for the input!  This is @relrod 's code doing the activitystream entries.. :)  I just picked up the bug to fix the extra activitystream entries and didn't change the behavior otherwise.  So we can let him comment on your concerns I think.

@AlanCoding Yeah I've gone back and forth on this. We could just add the field to the activity stream exclusions list and call it a day, and that might make more sense - we don't (as far as I know) add an activity stream entry every time any other auth method is used, so tokens would be the exceptional case there. I think I'd be okay with that.
I had the thought that maybe the UI would want to show the usage log for a token or something and the AS gives an easy way to provide that. But I'm not convinced it's very useful. As you mentioned, logs are probably the better place for this kind of thing.
So yeah, I would be fine with this PR becoming:
activity_stream_excluded_field_names = ['last_used']

...in the token model.

Done, just excluding last_used and no activitystream entries arrive as expected.

It might be nice to have a regression test (just a test that uses a token to do something -- there are a number of them already -- and checks that the number activity stream entries referencing the token object doesn't change)


Fill screen?

Can you add either a flag/option/keybind such that mayhem takes up all the available screen space?
Thanks for the awesome tui!

I have released a new version for Mayhem.
From now on the entire screen space will be occupied by default.
Hope this helps!

amazing, thanks so much! <3


Password Change Form Input Styles Are Misaligned on /admin/auth/user/1/password/

In the Django Admin interface, when navigating to the password change form for a user at the route /admin/auth/user/1/password/, the input fields of the form are not displaying correctly. The styles appear to be misaligned or broken, which affects the usability and appearance of the form.
Steps to Reproduce:
Log in to the Django Admin interface.
Navigate to the Users section (/admin/auth/user/).
Select a specific user (e.g., user with ID 1).
Click on the "Change password" link or navigate directly to /admin/auth/user/1/password/.
Observe that the input fields of the password change form do not display as expected.
Expected Behavior:
The password change form should display with properly aligned input fields and a consistent style that matches the rest of the Django Admin interface.
Actual Behavior:
The input fields of the password change form are misaligned or styled incorrectly, making the form less user-friendly and visually inconsistent with other parts of the admin interface.
Environment:
Django Version: 3.2
Browser: [Specify browser(s) where issue occurs, e.g., Chrome, Firefox]
Operating System: [Specify OS, e.g., Windows, macOS, Linux]
Additional Information:
This issue may be related to CSS conflicts or missing stylesheets.
If custom CSS or JavaScript is being used within the project, it might interfere with the default Django Admin styles.
Checking the browser's developer tools (Inspect Element) can provide more insight into what styles are being applied and whether there are any console errors.
Possible Solutions:
Check for Custom CSS Conflicts: Ensure that no custom CSS rules are overriding or conflicting with the Django Admin's default styles.
Verify Static Files Configuration: Confirm that all static files, including CSS and JavaScript, are properly configured and served by Django.
Inspect HTML Structure: Use the browser's developer tools to inspect the HTML structure of the password change form and identify any structural issues that might cause styling problems.
Test Without Customizations: Temporarily disable any customizations to see if the issue persists without them. This can help determine if the problem is caused by custom code or configurations.
Screenshots:
[Optionally include screenshots showing the misaligned input fields.]
This issue report aims to address the styling problem encountered on the password change form within the Django Admin interface. Proper alignment and styling are crucial for maintaining a professional appearance and ensuring a good user experience.
If you need further details or have suggestions on how to better document this issue, please let me know!

You may check the demo codes in the formula project.
https://github.com/unfoldadmin/formula/blob/main/src/formula/admin.py
`
from unfold.forms import AdminPasswordChangeForm
class UserAdmin(BaseUserAdmin, ModelAdmin):
change_password_form = AdminPasswordChangeForm
`


Fix CircleCI error by updating the cache key

Closes #297
Prerequisites:

[x] branch is up-to-date with the branch to be merged with, i.e. develop
[x] build is successful
[x] code is cleaned up and formatted
[ ] tested with Firefox 52, Firefox 57+, Chrome 64+, MS Edge 16+

Summary
Following https://stackoverflow.com/a/58886629

It looks like this fix only fixes the build of a single branch (see CircleCI build of #301). When pushing a new branch we would need to update the cache key again...


Add ECO Flow for hold timing violations fixes

We propose to integrate this flow as part of OpenLane to address remaining hold timing violations in a design.
Description
ECO flow starts from checking the report generated in the route step. As PT commands are not supported by OL, we use a python script to check the report, insert buffers, and do the resize. Inside the ECO loop, the python script, cts and route step are called sequentially.  The reports are generated each time, and the loop stops until no hold time violations are found. See overview diagram below:

Flow to Insert Buffer

Run the OL flow
Hold violations will be present in the log files
Run gen_insert_buffer.py, using regex to get the pinname
Generate the command insert_buffer {pin_name master_name net_name inst_name}
Generate the command size_cell {inst_name new_master_name} to adjust the path delay. (sky130_fd_sc_hd__dlygate4sd3_1 is the master with the longest delay, larger number at the end means shorter delay)
Rerun the STA and route step
Repeat 1-6 till all hold violations are solved.
Given a routing report, we first parse the reports into several sections. Each section contains one path. Then, regular expressions are used to detect if the path is VIOLATED. If the path has hold time violations, we save the slack and corresponding startpoint into a vector.  The type of the buffer is sky130_fd_sc_hd__dlygate4sd3_1, so the number of the buffer to be inserted should be the minimum slack divided by FO1 delay. Finally, we dump all the insert_buffer commands into a tcl file.

Insert Buffer Command

Find the violation’s startpoint
Create the buffer and nets
Disconnect the original nets (slightly different for reg-to-reg and pin-to-reg cases)
Place the buffer
Connect new nets (slightly different for reg-to-reg and pin-to-reg cases)
We realize all the operations with OpenDB commands. When we insert the buffer, we move the old net together with the startpoint, - the net name should be the same with the pin name and cannot be changed. In OpenDB. connect and disconnect functions are class static for reg cases and regular member methods for pin cases. For reg  cases, we also need to specify which port (input or output) to disconnect the line from.

`Testcase Results:
We tested the latest OpenLane with ECO on the LiteX Management Core rc-8  release. All the timing reports are generated by OpenSTA.
For the 1st iteration, the design has 131 hold violations with a -1.48 worst case slack. Our ECO inserts 219 buffers into the block, which greatly reduces the number of violations. After 10 iterations, all the violations are solved and setup time is not influenced during this process.
The following table shows the timing results of the ECO flow for each ECO iteration :

How to enable the ECO flow
By default the ECO will run if it detects a hold time violation. If the user would like to disable this step, they would have to set the ECO_ENABLE variable to 0 either :
in the makefile:
export ECO_ENABLE =0
or the config.tcl or flow.tcl file:
set ECO_ENABLE 0
This works as a README but we could create one if needed.

Thank you for your hard work- but the magic files have to go in a separate repository. They're too large to be merged into OpenLane.

Thanks @donn
Can you check again. I don't how we got those there..

Yeah, this looks okay now. There are some merge conflicts and general codebase cleanup that still needs to happen before this can be merged, but it's a lot more reasonable.

We made some changes in the routing.tcl to save the results of ECO flow.
As for the conflicts in flow.tcl, they are just different numbers of spaces, so they won't be a problem.

Also, please include your copyright to the changes in the headers of the files- these are pretty big changes.

@donn is there an example of copyright we should add and which files should have them. This is flow scripts using openroad/openlane. So Apache 2.0 extends to these files?

@msaligane
For new files, add a header along these lines:
# Copyright 2021 The University of Michigan
#
# Licensed under the Apache License, Version 2.0 (the "License");
# you may not use this file except in compliance with the License.
# You may obtain a copy of the License at
#
#      http://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS,
# WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
# See the License for the specific language governing permissions and
# limitations under the License.

For existing files, just replace the first line in the header with these:
# Copyright 2020-2021 Efabless Corporation
# ECO Flow Copyright 2021 The University of Michigan

Of course, that presumes you're acting as an agent of UM and that UM authorizes code releases under the Apache License, version 2.0. If you're submitting these changes in another legal capacity, please verify with counsel.

@donn Please let me know if you see any specific changes to make.

Looks good now, if CI clears it I'll merge.

@donn Why is it failing to run make pdk?
@donghl17 please take a look.

There's been a spurious PDK build issue over the last 48 hours… something with either GitHub Actions or Conda's servers. I'll manually re-run the build.

@donn After you guys merge the code, I will get the error of "no such variable: FP_IO_HLAYER" every time I run the code with "make mount; ./flow.tcl -design spm".  May I able to know what's the command you use for CI?

You need to update the PDK.

You cannot remove power_pins_insertion haphazardly, @donghl17.

@donghl17 any reasons why you are trying to remove power pins insertion?

In the latest OL, there is no step power_pins_insertion and our codes without this step also work well, so I thought it wasn't necessary.

@donghl17 can you work around that? I am not sure how power pins insertion needs to be done at signoff.. please try to take into account the last changes in openlane.

Did we remove it in the latest OpenLane? I may have had a memory lapse.

oh gosh, we did. sorry.
ill need to redo the flow.tcl merge a little bit better i guess

Yes, you probably should do that.
All the variables inside that step are not defined, and we don't see the reason why power pins insertion needs to be done at the signoff, so we removed it.

oh gosh, we did. sorry.
ill need to redo the flow.tcl merge a little bit better i guess

@donn Any updates on this?

Not yet no. I'll let you know as soon as I've got something.

So, I went ahead and reworked your changes to be more in-line with OpenLane's code structure.
I also went ahead and made it so ECO is disabled by default. I fixed and tested the OpenLane flow, but I cannot test your changes.
Various observations include the fact that you're hardcoding paths based on design names:
% ag mgmt
tcl_commands/routing.tcl
472:        set ::env(SPEF_FASTEST) $::env(eco_results)/spef/$::env(ECO_ITER)_mgmt_core.ff.spef;
473:        set ::env(SPEF_TYPICAL) $::env(eco_results)/spef/$::env(ECO_ITER)_mgmt_core.tt.spef;
474:        set ::env(SPEF_SLOWEST) $::env(eco_results)/spef/$::env(ECO_ITER)_mgmt_core.ss.spef;
484:        set ::env(SAVE_SDF) $::env(eco_results)/sdf/$::env(ECO_ITER)_mgmt_core.sdf

tcl_commands/eco.tcl
187:        file copy -force $post_eco_net $::env(synthesis_results)/mgmt_core.synthesis_preroute.v
188:        file copy -force $post_eco_def $::env(routing_results)/post_eco-mgmt_core.def

This will have to be addressed before this is addressed into master.
I'm unable to test ECO. Please go ahead and ensure it still works as you'd expect.

@donghl17 is this ready for review again?

Yes.
I noticed that file resizer_timing.sdc can't be found inside resizer_routing_timing.tcl, which is not related to ECO flow. There might be some updates for OL flow? @donn

@donn Any updates about the ECO flow?

Did you test it? I'm gonna need a working demo before I merge this.

I tested it with make mount; ./flow.tcl -design spm and got an error inside function run_resizer_timing_routing: /openlane/designs/spm/runs/RUN_2022.01.04_15.53.44/tmp/routing/15-resizer_timing.sdc was not found, might be a product.
Since this error happens in the routing step, not in ECO, I am wondering if you made some changes on OL?

@donn I have tested ECO flow on multiple designs: AES, JPEG encoder, etc., so can you clarify what you mean by demo?

Naturally, there are changes. It's ridiculous to assume the code will remain in stasis for all the time you've been working on the ECO flow.
The CI, shown below, confirms that OpenLane works fine without the ECO flow enabled. My question is simple: Does this work with the ECO flow enabled or not?


[test] Fix build utit workflow on jdk11

Purpose
jdk11 test
Tests

API and Format

Documentation

run jdk11

jdk11

run /jdk11

This PR only fixes the build of utit workflow on jdk11. It still has case failures. add an issue to track them, https://github.com/apache/paimon/issues/4602

+1


adding hasBadWord as a boolean function

I appreciate if you guide me if there is any way to only give back a true false if the sentence has a bad word? if not please create a function like hasBadWords() which returns either true or false.

You can use the isProfane function to my knowledge.
https://github.com/web-mech/badwords/blob/master/lib/badwords.js#L32


[DocsGenerator] Fix link generation for lib type reference

Resolves #9928

So the issue with linking lib isn't actually fixed with #9819 because it only excludes nodoc types and lib is not nodoc.
Simply changing to must_include? in the each_namespace block doesn't seem to fix it, so I'm not going to bother here. It's a really complex thing and should probably be completely re-done.
This PR is good to be merged as is.

Btw. there is actually a check for being in a lib type, it just doesn't seem to work in that scenario.
https://github.com/crystal-lang/crystal/blob/605ec43fcfa7286eae3e28ad212514bda0d3f3e3/src/compiler/crystal/tools/doc/generator.cr#L141


Can sometimes go over the strategy limit

From here.
Active strategies were Pilot Focus I, then Mun Program.

Fixed.


Transfer of data into another format

Description:
Help @JLWade with transfer of Admin Alignment meeting outcomesfrom their notes in Miro/Mural to Word doc so that she can use that material to create a document to share out to others. It's helpful to her if this is done before the end of this week.
Acceptance Criteria:

[x] The Word doc has title, purpose, and steps written out in bullet form with numbers to new sections.
[x] The Word doc is sent to Jess by 07/11/2024

Development Checklist:

[x] Get access to the workshop board
[x] Start transferring the data into a Word doc
[x] Make edits - deadline: 07/11/2024
[x] Send the file to Jess

Dependencies

Blocked by
Blocking

Relevant documentation as reference
Definition of Ready

[x] Acceptance criteria are included
[x] Wireframes are included (if applicable)
[x] Design / Solution is accepted by Product Owner (if applicable)
[x] Dependencies are identified (technical, business, regulatory/policy)
[x] Story has been estimated (under 13 pts)

Definition of Done

In progress:

[x] Acceptance criteria are tested (Functionality meets the acceptance criteria defined in the ticket)
[x] Work is traceable in GitHub

PO Review:

[ ] Acceptance criteria are tested (Functionality meets the acceptance criteria defined in the ticket)
[ ] Reviewed and approved by Product Owner

Notes:

moving to PO review because the initial work asked is completed

thanks for doing this Kavi - moving to done

can I close this ticket?


Add axe accessibility tests to browser tests for question types

Description
Add axe accessibility browser tests. This also adds a custom expect matcher, that outputs the accessibility violations on failure. Here is an example of how the test failure message looks:

This PR just adds it for all question types. I will send a separate PR to cover the overall applicant's experience (e.g. a11y testing per page). I will also update the docs with debugging instructions.
Release notes:
Add Axe accessibility testing framework to browser tests.
Checklist

[x] Added the correct label: < feature | bug | dependencies | infrastructure | ignore-for-release >
[ ] Created tests which fail without the change (if possible)
[ ] Extended the README / documentation, if necessary

Issue(s)
#2388

Codecov Report

Merging #2989 (c9175b1) into main (7c060e3) will not change coverage.
The diff coverage is n/a.

@@            Coverage Diff            @@
##               main    #2989   +/-   ##
=========================================
  Coverage     77.34%   77.34%
  Complexity     2107     2107
=========================================
  Files           271      271
  Lines          8417     8417
  Branches        566      566
=========================================
  Hits           6510     6510
  Misses         1696     1696
  Partials        211      211

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more


feat!: implement SessionPool session refresh

Call GetSession() during SessionPool::DoBackgroundWork() for any
session whose last-use time is older than the keep-alive interval.
Also change the type of SessionPoolOptions::keep_alive_interval_
from std::chrono::minutes to std::chrono::seconds.  This allows
the running time of the test to be drastically reduced. It is not
an API breakage because minutes convert implicitly to seconds.
Fixes #1171.

This change is

google/cloud/spanner/internal/session_pool_test.cc, line 421 at r1 (raw file):
Previously, devbww (Bradley White) wrote…
I would contend that the 5-second timer is significant.  I have to know that RefreshExpiringSessions() has been called at least once, and for coverage reasons I want to know that it has been called at most once.

I meant, I am not sure the duration matters at all when using a MockCompletionQueue