Enable Shapely to work in gevent without reinitializing the geos bindings for every greenlet.

Gevent is a popular coroutine based networking library that uses greenlets
to provide users a synchronous API while allowing for cooperative
multitasking.  Gevent accomplishes this through monkey patching the stdlib
to swap out blocking functions with non-blocking variants, including
threading.
If monkey patched, Gevent will replace threading.local with an
implementation that makes all thread local variables greenlet local
instead.  In the context of shapely, this means all objects that inherit
from LGEOSBase will become greenlet local instead of thread local.
Effectively, this causes servers that utilize both gevent and shapely to
re-initialize the geos bindings every request.
Since LGEOSBase inherits from threading.local to prevent concurrent
access to the GEOS C API, this is not relevant in a monkey patched gevent
process which will only ever run one thread at a time.  In this case, we
inherit from object instead of threading.local

Coverage increased (+0.03%) to 78.62% when pulling 3304ad6604e1a9de6edc000793635bffeade3d43 on rowillia:make_shapely_gevent_friendly into 74678c4c716db895ffc0035d7c3f2a1b83e16dbf on Toblerity:master.

Coverage increased (+0.03%) to 78.62% when pulling 3304ad6604e1a9de6edc000793635bffeade3d43 on rowillia:make_shapely_gevent_friendly into 74678c4c716db895ffc0035d7c3f2a1b83e16dbf on Toblerity:master.

Coverage increased (+0.03%) to 78.62% when pulling 3304ad6604e1a9de6edc000793635bffeade3d43 on rowillia:make_shapely_gevent_friendly into 74678c4c716db895ffc0035d7c3f2a1b83e16dbf on Toblerity:master.

Coverage decreased (-0.002%) to 78.589% when pulling ad852c13721e1c2b8ec424df024a4265040723de on rowillia:make_shapely_gevent_friendly into 74678c4c716db895ffc0035d7c3f2a1b83e16dbf on Toblerity:master.

Coverage decreased (-0.002%) to 78.589% when pulling ad852c13721e1c2b8ec424df024a4265040723de on rowillia:make_shapely_gevent_friendly into 74678c4c716db895ffc0035d7c3f2a1b83e16dbf on Toblerity:master.

Coverage increased (+0.03%) to 78.62% when pulling 16ad389035bab2896caaa2fa689c8076c860766f on rowillia:make_shapely_gevent_friendly into 74678c4c716db895ffc0035d7c3f2a1b83e16dbf on Toblerity:master.

Coverage increased (+0.03%) to 78.62% when pulling 16ad389035bab2896caaa2fa689c8076c860766f on rowillia:make_shapely_gevent_friendly into 74678c4c716db895ffc0035d7c3f2a1b83e16dbf on Toblerity:master.

Coverage increased (+0.03%) to 78.62% when pulling 16ad389035bab2896caaa2fa689c8076c860766f on rowillia:make_shapely_gevent_friendly into 74678c4c716db895ffc0035d7c3f2a1b83e16dbf on Toblerity:master.

Coverage increased (+0.03%) to 78.62% when pulling 16ad389035bab2896caaa2fa689c8076c860766f on rowillia:make_shapely_gevent_friendly into 74678c4c716db895ffc0035d7c3f2a1b83e16dbf on Toblerity:master.

Coverage increased (+0.03%) to 78.62% when pulling 16ad389035bab2896caaa2fa689c8076c860766f on rowillia:make_shapely_gevent_friendly into 74678c4c716db895ffc0035d7c3f2a1b83e16dbf on Toblerity:master.

This looks sensible to me, but I don't have any experience with gevent so can't comment any further.

Thanks for the feedback @snorfalorpagus !  Let me know if there's anything else I can take care of.

Coverage decreased (-0.002%) to 78.589% when pulling 4952d57c94a0eb041da5242656c652f8b89699be on rowillia:make_shapely_gevent_friendly into 74678c4c716db895ffc0035d7c3f2a1b83e16dbf on Toblerity:master.

Coverage increased (+0.07%) to 78.665% when pulling fef3676cbcad79133385df56c4923ccee2ff0696 on rowillia:make_shapely_gevent_friendly into 74678c4c716db895ffc0035d7c3f2a1b83e16dbf on Toblerity:master.

Coverage increased (+0.07%) to 78.665% when pulling 9e2d30bb9b9eede62b45e57e7f52e92001050cf6 on rowillia:make_shapely_gevent_friendly into 74678c4c716db895ffc0035d7c3f2a1b83e16dbf on Toblerity:master.

Thanks for taking a look @sgillies !
Users of gevent know that the very first thing they must do, before importing any other module, is enable monkey patching.  In fact, most of the WSGI services that support gevent do it for you (https://github.com/benoitc/gunicorn/blob/master/gunicorn/workers/ggevent.py#L57-L65).  If shapely is imported first, the monkey patch won't be active and the original behavior will apply.
This is part of what makes modifying invoking the monkey patch hard...usually it's the WSGI server that does it first.

ping @sgillies !  Any other feedback?  A "This is crazy, gevent is crazy, and you are crazy so I'm closing this PR" is also fine ;)


Error on ArangoDB upgrade to 2.4

Hi,
I just upgraded arangodb from 2.3 to 2.4 and I am getting errors from my php scripts now:
triagens\ArangoDb\ConnectException: Connection refused```

I am using ArangoDB-PHP 2.2, is this the problem? Do I need to upgrade to the 2.4 branch or is the master branch enough?

Thanks!

I think Connection refused means that the PHP driver could not make a connection to arangod.
If you are using arangod with default configuration, it will bind to <IP_ADDRESS>:8529 since 2.4.
If your PHP client is on a different server and tries to access the remote 2.4, this will not work. To fix this, please adjust the server configuration (--server.endpoint option on the command-line when starting arangod manually or endpoint in the [server] of arangod.conf when starting it as a daemon) so arangod binds to either <IP_ADDRESS>:8529 or the server's public IP address.
This should make this problem go away. You can also switch to the 2.3 or 2.4 version of the driver, but I guess the main problem is that it won't connect because of the server configuration.

Thanks for your reply!
Yes I saw this listed in the changes but my stack is on the same server and my config in php is set to "tcp://<IP_ADDRESS>:8529" so it should be compatible with the new default setting? Or maybe I have misunderstood?

Yes, that configuration should work from the PHP side of things, provided the server is also bound to tcp://<IP_ADDRESS>:8529 or tcp://<IP_ADDRESS>:8529.
If so, you should also be able to access arangod via curl when on the server: curl -X GET http://<IP_ADDRESS>:8529/_api/version. This should respond with HTTP 200 (when no authentication is used), or HTTP 401 (when using authentication).
It's hard to tell from here what else could cause Connection refused. At least it's not a message coded in the PHP driver but probably from the fsockopen() function call in it. So if you could validate that the server is actually running and accessible on the IP/port configured for your PHP, that would rule a few problems out already. If the server can be connected using IP/port, you can try using the 2.3 or 2.4 of the driver. I have also upgraded the master branch to 2.3 if you prefer that.

I ran the curl request and got {"server":"arango","version":"2.4.1"}. I will try and upgrade to 2.3 and see if that helps. Is it recommended to follow the master branch?
I can also try and change the endpoint setting for arangodb to <IP_ADDRESS> and see if that makes a difference.

Thanks. I think in general the arangod server version should match the version of the PHP client used. It might work without that, but obviously an up-to-date driver might enable using more server features or better reflect changes in the server. At some points there are multiple stable ArangoDB versions out and in use, so we cannot predict if and when people will update their servers. So we cannot upgrade the master branch too early, and it might lag a bit behind the latest ArangoDB version. In case you want to be more up-to-date, there are the dedicated 2.x branches of the driver.

I upgraded to 2.4 and set the endpoint to <IP_ADDRESS> and still get the same error. What else can I test?
Thanks!

After changing the endpoint I am now getting connection refused when I am trying the curl request.

What is the exact endpoint setting you are using?

endpoint = tcp://<IP_ADDRESS>:8529

Ok, then it looks like the server cannot bind to this address. Is the server printing or logging any errors on start?

Doesn't look like it:
2015-01-29T14:13:49Z [4125] INFO using endpoint 'tcp://<IP_ADDRESS>:8529' for non-encrypted requests
2015-01-29T14:13:49Z [4125] INFO using default API compatibility: 20400
2015-01-29T14:13:49Z [4125] INFO JavaScript using startup '/usr/share/arangodb/js', application '/var/lib/arangodb-apps'
2015-01-29T14:13:52Z [4131] INFO ArangoDB 2.4.1 64bit -- ICU 52.1, V8 3.29.59, OpenSSL 1.0.1f 6 Jan 2014
2015-01-29T14:13:52Z [4131] INFO using default language 'en'
2015-01-29T14:13:52Z [4131] INFO starting up in supervisor mode```

The log entries starting at 14:13:52Z do not show a complete server start. Is the server actually running, i.e. is there an arangod process?

I did restart arango but now I did a server restart and the curl request works again.
netstat -vatnshows that it is listening on <IP_ADDRESS> but I am getting the same error in PHP as before.

Can a simple standalone PHP program connect to the server?
<?php

$fp = fsockopen("<IP_ADDRESS>", 8529, $errno, $errmsg);

if (! $fp) {
  var_dump("cannot connect: ", $errno, $errmsg);
  exit(1);
}

fwrite($fp, "GET /_api/version HTTP/1.1\r\nHost: <IP_ADDRESS>\r\n\r\n");
fflush($fp);

$buffer = fread($fp, 8192);
fclose($fp);

var_dump($buffer);

Yes that worked.

And this one, now using the driver (might need to adjust the path to the driver's autoloader):
<?php

namespace triagens\ArangoDb;

// get autoloader
require dirname(__FILE__) . DIRECTORY_SEPARATOR . 'lib' . DIRECTORY_SEPARATOR . 'triagens' . DIRECTORY_SEPARATOR . 'ArangoDb' . DIRECTORY_SEPARATOR . 'Autoloader.php';
Autoloader::init();

$enhancedTraceFunc = function ($data) {
  var_dump($data);
};

/* set up connection options */
$connectionOptions = array(
  ConnectionOptions::OPTION_ENDPOINT        => 'tcp://<IP_ADDRESS>:8529',
  ConnectionOptions::OPTION_CONNECTION      => 'Close',
  ConnectionOptions::OPTION_AUTH_TYPE       => 'Basic',
  /*
  ConnectionOptions::OPTION_AUTH_USER       => '',
  ConnectionOptions::OPTION_AUTH_PASSWD     => '',
  */
  ConnectionOptions::OPTION_TIMEOUT         => 30,
  ConnectionOptions::OPTION_TRACE           => $enhancedTraceFunc,
  ConnectionOptions::OPTION_ENHANCED_TRACE  => true
);

$connection = new Connection($connectionOptions);

var_dump($connection->get("/_api/version"));

That seems to also work. Strange! I haven't changed any of my code.

I'm setting the auth_user to root. Could that be it?

Can the test program still connect when you put in your regular connection options and authentication credentials? If not, then the issue is probably caused by configuration.

After some more testing it seems that some of my api calls work and some get a refused connection back for some reason. Could some collections have become corrupted in the upgrade process?

But I think then you shouldn't get a connection refused back. Which API calls exactly do return a connection refused? For example, /_api/version does not have anything to do with collections at all. And does the same API call reproducible return connection refused or just spuriously?

Sorry I meant my own api calls. Yes the same api call creates an exception in my code when I call it. Very strange as I haven't done anything except upgrade arangodb to the latest version.
I now keep getting triagens\ArangoDb\ClientException: Got an invalid response from the server. How can I get more info about this exception?

The ClientException is a rather generic error. You can try turning on the trace functionality as in my last example. This will var_dump a lot of details, but it should print the HTTP transfer between your application and the server. Maybe there's something in it that reveals the actual problem.

I added the trace function with the laravel logging function Log::error(var_export($data, true)); but the only thing I am getting is 'send'which seems a little strange.
The exception is being thrown on line 285 in triagens/ArangoDb/HttpHelper.php

Then it seems like variable $parts contains something the driver does not expect. Can you provide the contents of this variable and also of $parsed, plus ideally the URL you are calling on the server?

Yes I will. I trying to figure out how I can log the data since I can't use the laravel logging function. When I var_dump the symfony exception handler takes over.

I think something simple like file_put_contents("/tmp/log", var_export($parts, true)); may do for a single dump.

Yes that will work! I logged parts then parsed and got:
  0 => NULL,
  1 => '',
  2 =>
  array (
  ),
)```

parts was:
array (
  0 => '',
)

This explains the error. For which URL/action does that result come back? If you could provide this info that would be helpful. If it's not a build-in API URL, can you also provide $httpMessage?

I am only doing an ACL query statement in the php code reading some collections.
The $httpMessage is empty with ''

Are you probably running into timeouts? Can you increase the timeout value and retry to rule this out?
Additionally, in Connection.php in method executeRequest, can you try dumping out $url, $request and the result of HttpHelper::transfer(), plus the time it spends in this call? Then we should be able to see the URL of the action plus the HTTP traffic if any, plus the function call duration (which might indicate there is timeout issue).

I will do that.
I have been testing my ACL code in the ACL editor and it only returns the message ERROR.
Here is the query I am running:
LET blockedUsers = (
					  		FOR r IN NEIGHBORS(users, userRelationships, "1", "any", [{"type":"block"}])
					  			RETURN r.vertex._key
					  	)

					  	LET blockedThreads = (
					  		FOR p IN threadParticipants
					  			FILTER p.userId IN (blockedUsers)
					  			RETURN p.threadId
					  	)

					  	FOR t IN threads
					  	    FILTER t._key NOT IN (blockedThreads)
					  		FOR p IN threadParticipants
								FILTER t._key == p.threadId && p.userId == "1"
								SORT t.dateUpdated DESC
								RETURN MERGE( t, {
						  			"participants": (
						  				FOR ps IN threadParticipants
						  					FILTER t._key == ps.threadId
						  					return ps
						  			)
						  		})

If I remove this line FILTER t._key NOT IN (blockedThreads)the query works.

I don't see any issue with the above query. Running it locally with empty collections (as I don't have any data to run this on) returns an empty result set as expected, so the query at least parses ok.
I just found ERROR will be printed in the AQL editor if the server response it gets after submitting the query is no JSON. But I have no idea why this could be. If the server does respond to the query, but with an empty response, this can be considered an error.
I'd like to reproduce this to find out the reason, but as I said, the query parses and executes ok in my local 2.4. So the query might only fail with specific datasets or indexes set up. Can you provide the execution plan for the query, i.e. the result of
curl --dump - -X POST "http://<IP_ADDRESS>:8529/_api/explain" --data '{"query":"LET blockedUsers = ( FOR r IN NEIGHBORS(users, userRelationships, \"1\", \"any\", [{\"type\":\"block\"}]) RETURN r.vertex._key) LET blockedThreads = ( FOR p IN threadParticipants FILTER p.userId IN (blockedUsers) RETURN p.threadId) FOR t IN threads FILTER t._key NOT IN (blockedThreads) FOR p IN threadParticipants FILTER t._key == p.threadId && p.userId == \"1\" SORT t.dateUpdated DESC RETURN MERGE( t, { \"participants\": ( FOR ps IN threadParticipants FILTER t._key == ps.threadId return ps) })"}'

It seems to have worked:
{"plan":{"nodes":[{"type":"SingletonNode","dependencies":[],"id":1,"estimatedCost":1,"estimatedNrItems":1},{"type":"SubqueryNode","dependencies":[1],"id":7,"estimatedCost":303,"estimatedNrItems":1,"subquery":{"nodes":[{"type":"SingletonNode","dependencies":[],"id":2,"estimatedCost":1,"estimatedNrItems":1},{"type":"CalculationNode","dependencies":[2],"id":3,"estimatedCost":2,"estimatedNrItems":1,"expression":{"type":"function call","name":"NEIGHBORS","subNodes":[{"type":"array","subNodes":[{"type":"collection","name":"users"},{"type":"collection","name":"userRelationships"},{"type":"value","value":"1"},{"type":"value","value":"any"},{"type":"array","subNodes":[{"type":"object","subNodes":[{"type":"object element","name":"type","subNodes":[{"type":"value","value":"block"}]}]}]}]}]},"outVariable":{"id":10,"name":"10"},"canThrow":true},{"type":"EnumerateListNode","dependencies":[3],"id":4,"estimatedCost":102,"estimatedNrItems":100,"inVariable":{"id":10,"name":"10"},"outVariable":{"id":0,"name":"r"}},{"type":"CalculationNode","dependencies":[4],"id":5,"estimatedCost":202,"estimatedNrItems":100,"expression":{"type":"attribute access","name":"_key","subNodes":[{"type":"attribute access","name":"vertex","subNodes":[{"type":"reference","name":"r","id":0}]}]},"outVariable":{"id":11,"name":"11"},"canThrow":false},{"type":"ReturnNode","dependencies":[5],"id":6,"estimatedCost":302,"estimatedNrItems":100,"inVariable":{"id":11,"name":"11"}}]},"outVariable":{"id":2,"name":"blockedUsers"}},{"type":"SubqueryNode","dependencies":[7],"id":14,"estimatedCost":304.41999979,"estimatedNrItems":1,"subquery":{"nodes":[{"type":"SingletonNode","dependencies":[],"id":8,"estimatedCost":1,"estimatedNrItems":1},{"type":"IndexRangeNode","dependencies":[8],"id":34,"estimatedCost":1.4199997899999999,"estimatedNrItems":0,"database":"wingle","collection":"threadParticipants","outVariable":{"id":3,"name":"p"},"ranges":[[{"variable":"p","attr":"userId","lowConst":{"include":false,"isConstant":true},"highConst":{"include":false,"isConstant":true},"lows":[{"bound":{"type":"reference","typeID":45,"name":"blockedUsers","id":2},"include":true,"isConstant":false}],"highs":[{"bound":{"type":"reference","typeID":45,"name":"blockedUsers","id":2},"include":true,"isConstant":false}],"valid":true,"equality":true}]],"index":{"type":"hash","id":"38100368878","unique":false,"fields":["userId"]},"reverse":false},{"type":"CalculationNode","dependencies":[34],"id":10,"estimatedCost":1.4199997899999999,"estimatedNrItems":0,"expression":{"type":"compare in","subNodes":[{"type":"attribute access","name":"userId","subNodes":[{"type":"reference","name":"p","id":3}]},{"type":"reference","name":"blockedUsers","id":2}]},"outVariable":{"id":12,"name":"12"},"canThrow":false},{"type":"FilterNode","dependencies":[10],"id":11,"estimatedCost":1.4199997899999999,"estimatedNrItems":0,"inVariable":{"id":12,"name":"12"}},{"type":"CalculationNode","dependencies":[11],"id":12,"estimatedCost":1.4199997899999999,"estimatedNrItems":0,"expression":{"type":"attribute access","name":"threadId","subNodes":[{"type":"reference","name":"p","id":3}]},"outVariable":{"id":13,"name":"13"},"canThrow":false},{"type":"ReturnNode","dependencies":[12],"id":13,"estimatedCost":1.4199997899999999,"estimatedNrItems":0,"inVariable":{"id":13,"name":"13"}}]},"outVariable":{"id":5,"name":"blockedThreads"}},{"type":"EnumerateCollectionNode","dependencies":[14],"id":15,"estimatedCost":325.41999979,"estimatedNrItems":21,"database":"wingle","collection":"threads","outVariable":{"id":6,"name":"t"},"random":false},{"type":"CalculationNode","dependencies":[15],"id":16,"estimatedCost":346.41999979,"estimatedNrItems":21,"expression":{"type":"compare not in","subNodes":[{"type":"attribute access","name":"_key","subNodes":[{"type":"reference","name":"t","id":6}]},{"type":"reference","name":"blockedThreads","id":5}]},"outVariable":{"id":14,"name":"14"},"canThrow":false},{"type":"FilterNode","dependencies":[16],"id":17,"estimatedCost":367.41999979,"estimatedNrItems":21,"inVariable":{"id":14,"name":"14"}},{"type":"CalculationNode","dependencies":[17],"id":21,"estimatedCost":388.41999979,"estimatedNrItems":21,"expression":{"type":"attribute access","name":"dateUpdated","subNodes":[{"type":"reference","name":"t","id":6}]},"outVariable":{"id":16,"name":"16"},"canThrow":false},{"type":"IndexRangeNode","dependencies":[21],"id":32,"estimatedCost":397.23999538000004,"estimatedNrItems":8,"database":"wingle","collection":"threadParticipants","outVariable":{"id":7,"name":"p"},"ranges":[[{"variable":"p","attr":"userId","lowConst":{"bound":"1","include":true,"isConstant":true},"highConst":{"bound":"1","include":true,"isConstant":true},"lows":[],"highs":[],"valid":true,"equality":true}]],"index":{"type":"hash","id":"38100368878","unique":false,"fields":["userId"]},"reverse":false},{"type":"CalculationNode","dependencies":[32],"id":19,"estimatedCost":405.23999538000004,"estimatedNrItems":8,"expression":{"type":"logical and","subNodes":[{"type":"compare ==","subNodes":[{"type":"attribute access","name":"_key","subNodes":[{"type":"reference","name":"t","id":6}]},{"type":"attribute access","name":"threadId","subNodes":[{"type":"reference","name":"p","id":7}]}]},{"type":"compare ==","subNodes":[{"type":"attribute access","name":"userId","subNodes":[{"type":"reference","name":"p","id":7}]},{"type":"value","value":"1"}]}]},"outVariable":{"id":15,"name":"15"},"canThrow":false},{"type":"FilterNode","dependencies":[19],"id":20,"estimatedCost":413.23999538000004,"estimatedNrItems":8,"inVariable":{"id":15,"name":"15"}},{"type":"SortNode","dependencies":[20],"id":22,"estimatedCost":429.8755277134387,"estimatedNrItems":8,"elements":[{"inVariable":{"id":16,"name":"16"},"ascending":false}],"stable":false},{"type":"SubqueryNode","dependencies":[22],"id":28,"estimatedCost":441.2355260334387,"estimatedNrItems":8,"subquery":{"nodes":[{"type":"SingletonNode","dependencies":[],"id":23,"estimatedCost":1,"estimatedNrItems":1},{"type":"IndexRangeNode","dependencies":[23],"id":35,"estimatedCost":1.4199997899999999,"estimatedNrItems":0,"database":"wingle","collection":"threadParticipants","outVariable":{"id":8,"name":"ps"},"ranges":[[{"variable":"ps","attr":"threadId","lowConst":{"include":false,"isConstant":true},"highConst":{"include":false,"isConstant":true},"lows":[{"bound":{"type":"attribute access","typeID":35,"name":"_key","subNodes":[{"type":"reference","typeID":45,"name":"t","id":6}]},"include":true,"isConstant":false}],"highs":[{"bound":{"type":"attribute access","typeID":35,"name":"_key","subNodes":[{"type":"reference","typeID":45,"name":"t","id":6}]},"include":true,"isConstant":false}],"valid":true,"equality":true}]],"index":{"type":"hash","id":"38100631022","unique":false,"fields":["threadId"]},"reverse":false},{"type":"CalculationNode","dependencies":[35],"id":25,"estimatedCost":1.4199997899999999,"estimatedNrItems":0,"expression":{"type":"compare ==","subNodes":[{"type":"attribute access","name":"_key","subNodes":[{"type":"reference","name":"t","id":6}]},{"type":"attribute access","name":"threadId","subNodes":[{"type":"reference","name":"ps","id":8}]}]},"outVariable":{"id":17,"name":"17"},"canThrow":false},{"type":"FilterNode","dependencies":[25],"id":26,"estimatedCost":1.4199997899999999,"estimatedNrItems":0,"inVariable":{"id":17,"name":"17"}},{"type":"ReturnNode","dependencies":[26],"id":27,"estimatedCost":1.4199997899999999,"estimatedNrItems":0,"inVariable":{"id":8,"name":"ps"}}]},"outVariable":{"id":9,"name":"9"}},{"type":"CalculationNode","dependencies":[28],"id":29,"estimatedCost":449.2355260334387,"estimatedNrItems":8,"expression":{"type":"function call","name":"MERGE","subNodes":[{"type":"array","subNodes":[{"type":"reference","name":"t","id":6},{"type":"object","subNodes":[{"type":"object element","name":"participants","subNodes":[{"type":"reference","name":"9","id":9}]}]}]}]},"outVariable":{"id":18,"name":"18"},"canThrow":false},{"type":"ReturnNode","dependencies":[29],"id":30,"estimatedCost":457.2355260334387,"estimatedNrItems":8,"inVariable":{"id":18,"name":"18"}}],"rules":["move-calculations-up","move-filters-up","move-calculations-up-2","move-filters-up-2","use-index-range"],"collections":[{"name":"threadParticipants","type":"read"},{"name":"threads","type":"read"},{"name":"userRelationships","type":"read"},{"name":"users","type":"read"}],"variables":[{"id":18,"name":"18"},{"id":17,"name":"17"},{"id":16,"name":"16"},{"id":15,"name":"15"},{"id":14,"name":"14"},{"id":13,"name":"13"},{"id":12,"name":"12"},{"id":11,"name":"11"},{"id":10,"name":"10"},{"id":0,"name":"r"},{"id":1,"name":"1"},{"id":2,"name":"blockedUsers"},{"id":3,"name":"p"},{"id":4,"name":"4"},{"id":5,"name":"blockedThreads"},{"id":6,"name":"t"},{"id":7,"name":"p"},{"id":8,"name":"ps"},{"id":9,"name":"9"}],"estimatedCost":457.2355260334387,"estimatedNrItems":8},"warnings":[],"stats":{"rulesExecuted":23,"rulesSkipped":0,"plansCreated":3},"error":false,"code":200}

Thanks, I think I got it now.
The driver is ok, it is actually an issue in the server code that only happens if a certain set of indexes are present. It was fixed in 2.4 current already so I only saw it when I reverted from 2.4 current to tag 2.4.1. The fix will be included in the next 2.4 release (2.4.2) which we plan to start building tomorrow.

Great news! So hopefully I will just need to upgrade to 2.4.2 and these errors will disappear?

It would be great in the future if the php driver error messages would be a little more detailed to be able to quickly track down the problem. If it's an server error shouldn't it log to an error log somewhere?

Yes, the upgrade to 2.4.2 should fix this.

I have also added a simple mechanism for exception logging to the driver, as is described here:
https://github.com/arangodb/arangodb-php/#logging_exceptions
By the way, our Github repositories have been renamed today from triAGENS/ArangoDB to arangodb/arangodb, and from triAGENS/ArangoDB-PHP to arangodb/arangodb-php. I hope that composer can handle this gracefully.

Thank you Jan!
Really appreciate you taking your time to help out!
Will the new exception logging provide more info than before? Also, when you do think I will be able to upgrade to 2.4.2?

The exception logging will at least provide a stack trace and the error message. The error message in this case won't change, because the PHP client really cannot figure out sensibly what went wrong.
We plan to start building 2.4.2 today. Building for all platforms takes some time, but I guess it will be available on Monday the latest.

FYI, the upgrade to 2.4.2 solved this issue. Thanks once again Jan!

Thanks for confirming!


feat(ui): Move admin functionality from sidebar to admin route

It's easier to work on the main layout if it doesn't have to be developed with possible admin sidebar in mind.

@lamppu please have a look.


New main configuration file

What does this PR do?
This PR migrates the main configuration file for the Datadog Agent to the new file configuration norm: https://docs.datadoghq.com/developers/integrations/new_check_howto/#configuration-file
After having migrated all agent integrations configuration files and helm chart, this is the final boss.
To do as reviewer
If you intend to review this PR please pay attention to the following items:

Don't be afraid by the big size of the PR, only review your relevant section.
Evaluate if some parameters related to your perimeter are missing.
Check if the current parameter desc/default value is still up to date and accurate.
Some parameters have a XXXXXXXXXXXXXXXXXXXXXXXXXXXX placeholder, this is when i didn't find a suitable description nor a default value If you know how to replace them, leave a comment.
Check if the placeholder for the parameter is correct, either it's the default value, and if there is no default value then a <DECRIPTIVE_PLACEHOLDER> is used instead.

Motivation

Enhance consistency and readability of this main configuration file parameters.
Be consistent across all Datadog .yaml configuration file.
Makes on-boarding through the Datadog Agent easier.
Preparation for automated pulling for the full list of parameters, in order to display them in the main documentation.

Additional Notes
We should take this opportunity to actually "rank" our parameters For each section, parameters should be listed from the most important/used/critic to the least important/used/critic.
PS: In order to avoid further merge conflict, this branch is a checkout from https://github.com/DataDog/datadog-agent/pull/3269

A heads up: I'm expecting the list of options from this example file to be exhaustive, because I'm using it as a base for: https://github.com/DataDog/datadog-agent/pull/3330
This PR will make all settings that are not listed in config.go give a warning (Unknown key in config file) if they appear in the config yaml.

@albertvaka just to clarify, at the moment this example file is not supposed to list all of the options that the Agent supports as some are knowingly left undocumented because they're "dangerous" for various reasons and we don't want users to be using them directly. The config package should be the source of truth for this repo + whatever the process binary supports (which is currently defined in the datadog-process-agent repo)


direct cfssl certificate issuance?

Direct cfssl issuance might make more sense when you might exceed letsencrypt limits and run an internal CA.

This would be a nice feature, however I'm hesitant to add additional auth types, especially when they are so distinct.
If you have issues with rate limits on Letsencrypt and want to run your own CA, it may be worth considering running your own instance of boulder, the ACME server.

So a quick update, I've been working on cert-manager that should (eventually) allow for this.
It has a pluggable set of issuer backends, so we should be able to support a simple issuer backed by a plain signing certificate/key instead of being tied to ACME. The relevant issue is here: https://github.com/jetstack-experimental/cert-manager/issues/8
It's scheduled to be added in to be present for the 0.0.1 release, so I'd love to hear your feedback once it's there!


UEFI implementation possible?

Is it possible to load this as a driver? Inject via UEFITool?

Hello,
I'm not sure what the intention is here. The tool itself only extracts the firmware, and the actual driver in the linux kernel is what uploads the firmware to the controller.

From my understanding it should be possible to load this firmware blob as an UEFI driver which in turn would give you Bluetooth when inside the BIOS configuration menu. I think newer boards have this feature already implemented but my rather old Xeon board doesn't have this functionality cause of the missing driver.
I thought maybe you know if this is possible...

I'm not sure if the firmware itself is loadable as a driver, I don't know anything about using it like so. My guess would be that a separate executable for the host is required.


Update README.md

Added DataKitchen Open Source Data Observability (Apache 2.0, release April 2024)

Please address lint error:
README.md:298:164
  ✖  2[9](https://github.com/igorbarinov/awesome-data-engineering/actions/runs/8990351543/job/24698788507?pr=168#step:3:10)8:164  List item description must end with proper punctuation  remark-lint:awesome-list-item


[Application] bugfix for YOLO version 2

[Application] bugfix for YOLO version 2
Training does not proceed because the layer names are different.

reorg layer name is changed from reorg to reorg_layer

Self evaluation:

Build test:   [X]Passed [ ]Failed [ ]Skipped
Run test:     [X]Passed [ ]Failed [ ]Skipped

:memo: TAOS-CI Version: 1.5.20200925. Thank you for submitting PR #2319. Please a submit 1commit/1PR (one commit per one PR) policy to get comments quickly from reviewers. Your PR must pass all verificiation processes of cibot before starting a review process from reviewers. If you are new member to join this project, please read manuals in documentation folder and wiki page. In order to monitor a progress status of your PR in more detail, visit http://ci.nnstreamer.ai/.


Add a new post - Understanding Index Request Cache

Description
Add a new post - Understanding Index Request Cache
Issues Resolved
[List any issues this PR will resolve]
Check List

[ ] Commits are signed per the DCO using --signoff

By submitting this pull request, I confirm that my contribution is made under the terms of the BSD-3-Clause License.

(cc: @kkhatua )

@pajuric Could you provide meta/keywords for this blog please?

@natebower addressed all your suggestions, there is just 1 unresolved comment. here

@natebower addressed all your suggestions, there is just 1 unresolved comment. here

@kiranprakash154 Thanks! Just one remaining comment for you here.

@natebower I have updated the PR with the suggestion and the comment to add intro to the cleanupKey and followed by the diagram.
let me know what u think

@pajuric pushed the changes u asked.

Thanks @nateynateynate, When will the blog go live ?


How to install a previous version using install.sh ?

Related to issue #1271 , I need to be able to downgrade kubescape within MegaLinter
How can I do that with the sh installer ?
I tried the following in Dockerfile but it doesn't work :/
curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -v 2.3.6
Many thanks ! :)

Found it :)
curl --retry 5 --retry-delay 5 -sLv https://raw.githubusercontent.com/kubescape/kubescape/master/install.sh | /bin/bash -s -- -v v2.3.6


HG-189 Fix potential vulnerability in websockets

Update to last upstream version & fix CVE-2024-37890

looks good, will have to test for integration into sdk


Announcement: FRAMOS D435e RealSense industrial camera is now available to order

Hi everyone,
Recently I highlighted a new industrial own-brand version of the RealSense D435 by the Intel Authorized Distributor company FRAMOS, called the FRAMOS D435e.
https://github.com/IntelRealSense/librealsense/issues/4769
The D435e is now available to order in the FRAMOS store.  Its industrial nature means that there is a price premium over the standard Intel RealSense D435 model, though it may provide industrial and OEM users with options only otherwise available through custom build projects.
https://shop-us.framos.com/FRAMOS-Industrial-Depth-Camera-D435e-Starter-Kit-p147712085

What is the cost of this device?

It is normally $1299 USD but is on sale for $1099 at the time of writing this.
https://shop-us.framos.com/FRAMOS-Industrial-Depth-Camera-D435e-Starter-Kit-p147712085


Error download ODP-UTILS <IP_ADDRESS> for centos9

hi @lucasbak
link https://archive.clemlab.com/centos9/odp-utils/<IP_ADDRESS>/repos-utils.tar.gz does not work.
please review  your download link
thanks

hi @aghazeh,
Can you try again ?
Best regards

@lucasbak
thanks a lot


Create pre-release, dev packages for CVXPY on PyPi

Following the convention from PEP-440, pre-releases and development releases are supported on PyPi.
It would probably make installing CVXPY 1.0 easier for folks if it was released on PyPi as either a pre-release or a development release.
I've a bash script that can construct these from git sha's hashes but with no guarantees it will work with the current tagging convention.

We released 1.0. @echu encourage people to try the new ECOS and get feedback that way. You could update it on pip but you may get too much feedback :)


confused about a bar in my vim

Hello!
I am trying to switch to this theme, the white version! Really good. You made an amazing work.
I have just a question. I didn't see any option to disable the top bar in my screenshot

Is it part of the vim-one theme or am I missing something? Thanks a lot

My bad! all good


ERROR: Could not find a version that satisfies the requirement futures==3.2.0

How to solve this error ?
Using cached https://files.pythonhosted.org/packages/69/cb/f5be453359271714c01b9bd06126eaf2e368f1fddfff30818754b5ac2328/funcsigs-1.0.2-py2.py3-none-any.whl
Collecting futures==3.2.0 (from -r requirements.txt (line 8))
ERROR: Could not find a version that satisfies the requirement futures==3.2.0 (from -r requirements.txt (line 8)) (from versions: 0.2.python3, 0.1, 0.2, 1.0, 2.0, 2.1, 2.1.1, 2.1.2, 2.1.3, 2.1.4, 2.1.5, 2.1.6, 2.2.0, 3.0.0, 3.0.1, 3.0.2, 3.0.3, 3.0.4, 3.0.5, 3.1.0, 3.1.1)
ERROR: No matching distribution found for futures==3.2.0 (from -r requirements.txt (line 8))

same issue


Error handling

Should we determine our own error clasification and the messages displayed accordingly?
For the code-generators the erros should be only displayed in the console as a text message?
For the SPA how should we display errors? (maybe just as alerts )

Needs to be specified in more detail as a card in the respective project, not as a single Issue.


Airflow dev

Hello @JINO-ROHIT! Thanks for opening this PR. We checked the lines you've touched for PEP 8 issues, and found:

In the file dags/scripts.py:

Line 67:80: E501 line too long (93 > 79 characters)


Testing Example Application

It would be good to have a demo "Licensed" application and documentation of a wrapper codeunit that shows off how to determine the various states:

Active
Deactive
Grace Expired

Well, given the Release shenaningans of the past week, I will consider this a Higher prio than any other changes to the app
😬
🚨🚧🤡🚧🚨


Flighting status

What does exactly mean the "Flighting" status? Can be expected with some bugs or that is not fully tested?

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

ID: 42797ef6-81d4-d8d6-a771-ef427f11698d
Version Independent ID: c56473d5-ebfe-96f9-57fe-96446ada56f8
Content: Release notes for the Azure File Sync agent
Content Source: articles/storage/files/storage-files-release-notes.md
Service: storage
Sub-service: files
GitHub Login: @wmgries
Microsoft Alias: wgries

@igomat , Thanks for the comment! We are currently investigating and will get back to you soon.

@igomat , Flighting means when you have opted for automatic updates will get this update first.
The Azure File Sync v7 release is currently being flighted to servers which are configured to automatically update when a new version becomes available. Once fighting completes, this update will be available on Microsoft Update and Microsoft Download Center.
Also every agent released is at GA quality. If you select this option, Microsoft will flight the newest agent version to you. Clustered servers are excluded. Once flighting is complete, the agent will also become available on Microsoft Download Center.
Every release is at GA quality. So, expect it to be fully tested and ready to be used in production.
If you don’t have auto update enabled and wants to download this latest update, then you can download it from here. Hope this helps you!

Does the version <IP_ADDRESS> already include all improvements of the <IP_ADDRESS>? The <IP_ADDRESS> was released later.

@igomat, yes it includes all the improvements. The agent version <IP_ADDRESS> of the Azure File Sync agent released June 27, 2019. These notes are in addition to the release notes listed for version <IP_ADDRESS>. For more information, please check the list of issues fixed in this release here.

@@igomat, Since we have not heard back from you we will now proceed to close this thread. If there are further questions regarding this matter, please tag me in your reply. We will gladly reopen the issue and continue the discussion


Expose UnknownStorage.data as a r/o Data.

Gives developers a way to tell something is there, even if we
don't really have help for parsing it.

Update tests where I was looking at unknowns to be much simpler by using this.

This is a good change:  Data is the right type to expose here, it makes perfect sense to share a "raw" version of this with our clients, and we do want it to be read-only.

Data is the right type to expose here

For now, maybe—but we eventually want a way for users to look at the field numbers and wire-format values individually like the other languages allow. But with the implementation we have now, exposing the data is better than exposing nothing, since building that other API would take longer and I don't think we need it for 1.0.

...we eventually want a way for users to look at the field numbers and wire-format values individually like the other languages allow

Absolutely.  Constructing such a view does carry a CPU and memory cost, of course, so I would prefer to make that explicit and not construct such a view until the user actually asks for it.  The Data form is efficient and compact for cases where users don't ever need to directly access individual unknown fields.

Yep, building the smart view lazily for the user should be trivial.


yaml highlighting/textmate recognises some integers as strings (or vice versa?)

Some integers (or strings?) are treated differently even though they look the same to me.
In each comment I've specified what the scope inspector reports the scope as.
Testcase:
test:
  - test: 01 # constant.numeric.integer.yaml
  - test: 02 # constant.numeric.integer.yaml
  - test: 03 # constant.numeric.integer.yaml
  - test: 04 # constant.numeric.integer.yaml
  - test: 05 # constant.numeric.integer.yaml
  - test: 06 # constant.numeric.integer.yaml
  - test: 07 # constant.numeric.integer.yaml
  - test: 08 # string.unquoted.plain.out.yaml
  - test: 09 # string.unquoted.plain.out.yaml
  - test: 10 # constant.numeric.integer.yaml

This is what it ends up looking like for me:

I'd expect them all to be the same; so either they should all be integers or they should all be unquoted strings. Right?

The check for base 10 numbers does not allow for prefixing 0's
[-+]? (?: 0|[1-9][0-9_]*) # (base 10)
cases 00 - 07 are handled by the base 8 regex
[-+]? 0  [0-7_]+ # (base 8)
which can also handle infinite prefixed 0's
https://github.com/microsoft/vscode/blob/c4e1f19aac0ef025ec208bc5d6500df5e5e36600/extensions/yaml/syntaxes/yaml.tmLanguage.json#L460


How to release pooled direct buffer when it doesn't enter in channel pipline?

We built up a very sophisticated proxy based on Netty. Considering the performance issue, we using pooled direct buffer to store user request and corresponding response. Unfortunately we have a memory leak and we hunt it for months. And finally we found it may be caused by this scenario:
when the request or response is too large, we will set channel.auto_read to false. And if the connection is lost, we doubt the direct buffer not entering the pipeline is not correctly be released. So, is there any method to deal with these buffer ?
Netty version
4.1.8.Final
JVM version (e.g. java -version)
java version "1.8.0_92"
Java(TM) SE Runtime Environment (build 1.8.0_92-b14)
Java HotSpot(TM) 64-Bit Server VM (build 25.92-b14, mixed mode)
OS version (e.g. uname -a)
Linux xxx(hostname) 2.6.32_1-19-0-0 #2 SMP Wed Aug 31 20:43:21 CST 2016 x86_64 x86_64 x86_64 GNU/Linux

You will need to share some code before we can help. There should be no leaks.

Closing for now... please reopen if you still think there is any issue.


Fix the decode_length for decoding

Originally the decode length is hard-coded in the decoding.py.
I believe that is a bug because the extra_length set in decode_hp should be used as the decode_length rather than the original tf.shape(x)[1] + 50, referring to the usage of features['decode_length'] in the followings:
https://github.com/tensorflow/tensor2tensor/blob/8107e53e8d8896c521522e9335a266b4b7510c37/tensor2tensor/utils/t2t_model.py#L932-L933 https://github.com/tensorflow/tensor2tensor/blob/8107e53e8d8896c521522e9335a266b4b7510c37/tensor2tensor/models/transformer.py#L712-L713

@googlebot I signed it!

Thanks @Michaelvll !


"No suitable decoder found."

Using the sample code, with a valid .7z file, I get the message:
Open error: Error Domain=LzmaSDKObjCReader Code=-1 "No suitable decoder found."
Running on iOS 9.1, Xcode 7.1.1.
Seems to be because CreateObject is not returning S_OK, I couldn't get further than this though?

Check file path path exists.
Check path extension for correct detecting archive type, because need to create suitable decoder, plus to all, file can be encrypted.

Or create reader with predefined archive type:
- (nonnull id) initWithFileURL:(nonnull NSURL *) fileURL andType:(LzmaSDKObjCFileType) type

Also, since release 0.0.6 was added initial error processing.

Thanks, I'm using  -initWithFileURL:andType: Also, the file does exist
It looks like the function RegisterArc() is not called to register a decoder for 7z- I don't know why though.
I also tried the sample project (i.e. 'pod try LzmaSDK-ObjC'), and it worked fine. But then I copied and pasted the sample code into my own project (ViewController.h/.m) and got the 'No suitable decoder error'. Same code, and as far as I can tell, same build settings?

Yes, problem in stripping big half of c++ code without initializing static vars.
Solution found - make framework, add them to embeded frameworks list.
If it's time critical for you, you could build and link manually. Build command: xcodebuild -configuration Release -project ios.xcodeproj -target MakeLzmaSDKObjCFramework -sdk iphoneos9.1 clean build  than add universal LzmaSDKObjC.framework to the embeded frameworks.

Next step - make this automatically.

Hello, created cocoapod with dynamic framework, you could use it.
use_frameworks!
platform :ios, '8.0'

pod 'LzmaSDKObjC', :inhibit_warnings => true

Awesome, thanks, I'll give this a try!

On Dec 16, 2015, at 22:59, Oleh<EMAIL_ADDRESS>wrote:
Hello, created cocoapod with dynamic framework, you could use it.
use_frameworks!
platform :ios, '8.0'
pod 'LzmaSDKObjC', :inhibit_warnings => true
—
Reply to this email directly or view it on GitHub.


[csrng/rtl] transpose inputs to AES block

For the AES cipher core to correctly encrypt, the input state and output state need to be transposed.
Signed-off-by: Mark Branstad<EMAIL_ADDRESS>

cancelling this one for now.


Component monitoring - undefined everywhere in wmstats

JobSubmitter is one example, since it gets stuck (process still alive) but there are no errors and whatnot. This is what is shown in wmstats:
    agent: vocms0253.cern.ch (1.1.6.patch5)
    agent last updated: 2017/10/17 (Tue) 07:53:15 UTC : 0 h 1 m
    data last updated: N/A
    status: Components or Thread down;
    team: production
    component errors for: JobSubmitter
    undefined
        worker thread: undefined
        status: undefined
        last updated: NaN/NaN/NaN (undefined) NaN:NaN:NaN UTC
        pid: undefined
        error message:

        undefined

while the agentInfo doc has info like:
"down_components": [
       "JobSubmitter"
   ],
 "down_component_detail": [
       "JobSubmitter"
   ],

and something similar can happen if there is no process.


Fixed possible ressource leaks and unchecked conversions of generics

Fixed possible ressource leaks and unchecked conversions of generics.

Thanks!


[core] deprecate code highlight (#2125)

Signed-off-by: Jeeyun Lim<EMAIL_ADDRESS>

@jeeyun: How does this change affect the website?

@jeeyun I realized it would be good to add a quick test to the deprecated spec file that tests the presence of code highlight, so we can keep track of this.


Bump @expo/vector-icon version it throws deprecated warning in expo sdk 36

This packages uses very low version of @expo/vector-icon.
This is the search result I get when I search for @expo/vector-icons version in my node_modules folder.

Closing since package is now moved to https://github.com/react-navigation/react-navigation/tree/4.x/packages/native


esbuild compatibility

I'm upgrading our angular stack on Complex Portal, and I'm trying to use the new esbuild as it is faster and more performant.
However, there are some problems with some imports of the viewer, so I just fixed them in my last commit in order to support them.
Could you please deploy my latest build to npm @colin-combe ?

ok, done

could you redeploy v.2.0.3, or do we need to jump the verison once more?

i'm not sure what you mean - you want to revert to the previous version, which was v2.2.2?

No no sorry I wasn't clear, basically I commited new changes that I wish to have on complex viewer. Ideally I think we should use the version 2.2.3 as it will not be used for anything else, but if npm doesn't allow you to overwrite an already published version, then we'll need to jump to 2.2.4 I guess

i see.
i think it doesn't allow that and we need to go to 2.2.4

Yes precisely those changes. I do think that we shouldn't have any more problems now, so you can deploy 2.2.4 immediately.
Thank you so much for your quick answer !

ok, should be done,
this PR will update version number https://github.com/MICommunity/ComplexViewer/pull/205

It works brilliantly under the github page, should be perfect on the production website.
Thank you so much Colin for these fast deployment, and sorry for the initial request for which I should have more thoroughly tested before asking you to deploy a new version.


FLY HTML AND CSS

Related Issue
None
Fixes:  #866
Description
Created fly.html and corresponding CSS file as the fly page was not built.

Type of PR

[ ] Bug fix
[x] Feature enhancement
[ ] Documentation update
[ ] Other (specify): _______________

Screenshots / videos (if applicable)
[Attach any relevant screenshots or videos demonstrating the changes. Make sure to attach before & after screenshots in your PR.]

Checklist:

[x] I have made this change from my own.
[X ] I have taken help from some online resources.
[x] My code follows the style guidelines of this project.
[x] I have performed a self-review of my own code.
[X ] I have commented my code, particularly in hard-to-understand areas.
[X ] I have made corresponding changes to the documentation.
[x] My changes generate no new warnings.
[x] I have tested the changes thoroughly before submitting this pull request.
[x] I have provided relevant issue numbers and screenshots after making the changes.

@saloni8780 Your pull request has been successfully merged! Don't stop here—continue contributing by addressing more issues and aiming to become a top contributor. Exclusive swag awaits for those who go the extra mile!
Great contribution ! 🎉


Make sure parseFigureProps returns correct and same result for no match

Type: Patch
Review: @iefserge

lgtm


🐛 Made arrow functions the same color as normal functions

Fixes #6 .
Before:

After:

@codeSTACKr What do you think about it? A missing comma also caused this issue

Nice catch! Thank you 😃

Nice catch! Thank you 😃


feat(ecs): integrate AWS Cloud Map (service discovery)

Fixes #1554
Pull Request Checklist

[ ] Testing

Unit test added (prefer not to modify an existing test, otherwise, it's probably a breaking change)
CLI change?: coordinate update of integration tests with team
cdk-init template change?: coordinated update of integration tests with team

[ ] Docs

jsdocs: All public APIs documented
README: README and/or documentation topic updated

[ ] Title and Description

Change type: title prefixed with fix, feat will appear in changelog
Title: use lower-case and doesn't end with a period
Breaking?: last paragraph: "BREAKING CHANGE: <describe what changed + link for details>"
Issues: Indicate issues fixed via: "Fixes #xxx" or "Closes #xxx"

[ ] Sensitive Modules (requires 2 PR approvers)

IAM Policy Document (in @aws-cdk/aws-iam)
EC2 Security Groups and ACLs (in @aws-cdk/aws-ec2)
Grant APIs (only if not based on official documentation with a reference)

By submitting this pull request, I confirm that my contribution is made under the terms of the Apache-2.0 license.

Still need to add some fargate integ tests probably but just wanted to get this up for initial review.

Failed build was a NuGet bug: @aws-cdk/region-info: /usr/share/dotnet/sdk/2.1.402/NuGet.targets(498,5): error : Could not find a part of the path '/tmp/NuGetScratch/4e1e5ff8-80b8-4254-9097-14b892ffea35'. [/tmp/jsii-pacmak-codeUtVEsC/Amazon.CDK.RegionInfo/Amazon.CDK.RegionInfo.csproj]

Great job @SoManyHs!


cargo fetch fails when unpacking nom on Windows

I added nom to an empty Rust project on Windows. When I ran cargo fetch it failed with:
E:\Rust\test>cargo fetch --verbose
unable to get packages from source

Caused by:
  Failed to unpack package `nom v1.0.0-beta`

Caused by:
  The filename, directory name, or volume label syntax is incorrect. (os error 123)

I tried adding another project (win-api) and that worked fine so I think this is a Cargo issue.
Here's some info about my system:
OS: Windows 8.1 x64
Rust: 1.4 (stable) MSVC (8ab8581f6 2015-10-27)
Visual C++ toolchain: Visual Studio Community 2015

Could you describe the directory/filesystem structure you had here as well? For example was this all working within one drive, across a few, etc?

+1
Creating a new project in %userprofile%\src, with cargo new --bin and appending to Cargo.toml:
[dependencies]
nom = "~0.5.0"

reproduces this on my machine, windows 10 x64.
No other version of nom that I try to specify seems to be working either.
Other packages seem to work.

Sure! I have two hard drives so my setup looks a little like this:
My Computer
|- C
  - Users\wesley (home)
  - Program Files and Program Files (x86) (Visual Studio installation path, default settings)
  - Windows (Windows installation, default settings)
|- E:
   - Rust\1.4 (Rust installation directory)
   - test (my empty rust project)

Ah looks like one of the files in the package is :w and Windows doesn't like creating a file with the name, oh dear! cc @Geal may be something to fixup when packaging nom?
Regardless Cargo should either handle this or give a better error, so I'll keep investigating!

OK, looks like MSYS is doing some scary things with semicolons and such in path names. It appears that if you extract a tarball with a file that has a semicolon in the name it will silently replace that semicolon with \u{f03a} on the filesystem. The MSYS tools will then all display that character as a colon, but if you do something like fs::read_dir or look at it in cmd.exe you'll see the funny unicode character.
This behavior seems a little odd to me, so my preferred course of action would be to do something like:

Provide a nicer error when unpacking a tarball.
Provide either a warning or hard error when creating a tarball with these special characters.

I'm truly sorry for that one. I was warned of untracked files appearing in
the packaes, but I did not check recently. I'll fix that tomorrow.
Le 4 nov. 2015 19:07, "Alex Crichton"<EMAIL_ADDRESS>a écrit :

Ah looks like one of the files in the package is :w and Windows doesn't
like creating a file with the name, oh dear! cc @Geal
https://github.com/Geal may be something to fixup when packaging nom?
Regardless Cargo should either handle this or give a better error, so I'll
keep investigating!
—
Reply to this email directly or view it on GitHub
https://github.com/rust-lang/cargo/issues/2102#issuecomment-153811610.

just reproduced on aws ec2, redhat (ec2):
cargo build --release --verbose
 Downloading openssl v0.7.5
unable to get packages from source

Caused by:
  failed to unpack package `serde_xml v0.6.2`

Caused by:
  No such file or directory (os error 2)


Vagrant support

Vagrant support is important as local mode support isn't sufficient for restricting CPU and memory resources for a Solr node. Vagrant supports VirtualBox based VMs, that can be restricted in resources.
In this PR, Vagrant supports only the virtualbox provider. Later on, libvirt or docker providers can be supported.
To test it out:

Install the pre-requisites as mentioned in the README,
./start.sh config-vagrant.json

The GitGuardian threat is not an issue here. I had accidentally committed a generated SSH key. New keys are generated everytime, so we can ignore this problem for now. Once we squash merge this branch to master, this won't be an issue.


Misleading documentation of authorization types

As I have learned from reading https://github.com/pallets/werkzeug/pull/2619#issue-1619078262, the new Authorization class has a type property. To find out if the desired auth scheme is used and, in my case, a Bearer token is given, this seems to be the new way as of Werkzeug 2.3.0:
from flask import request

if request.authorization and request.authorization.type == "bearer":
    print(f"This is the Bearer token: {request.authorization.token}")

What's important here is that request.authorization.type always is lowercase.
The issue I see here is that the docs state:

The authorization scheme, like Basic, Digest, or Bearer.

Thus, I suggest to replace those with actually possible examples, i.e. basic, digest, and bearer.
This applies to both the Authorization and WWWAuthenticate data structures.

PR here: #2736


run: handle moved classificaton/reference config

First look for these configuration files in ./etc, then in the
top directory to handle the change of location in Suricata 5.0,
as well as work with older versions.

Required for
https://github.com/OISF/suricata/pull/4258

Merged after rebasing.


OpenStack Cross Cloud update

Updates the cross-cloud deployment script to remove the dependency on the load balancer API to create an external-facing control-plane load balancer. Instead, the script now brings up a small CoreOS instance running an Nginx TCP load balancer to forward all external requests to the control plane.

Thank you, @hogepodge - so far so good!
OpenStack integration is in QA. We hope to release to cncf.ci tomorrow.
We'll reach out if we have any questions.

Merged to production in https://github.com/crosscloudci/cross-cloud/pull/136


Arch system manager

These commits contains the refactoring of some modules that were previously direct subclasses of archlib's ROSComponent and now are using their respective archlib counterparts.

Please fix G4T1 implementation to be inline with libbsn master. @SCouto97


Possible nil reference panic when proto.Size called in init() func

What version of protobuf and what language are you using?
Version: v1.4.2
What did you do?
Tried to switch from gogoproto to golang/protobuf, but when I call proto.Size (or any function related to message encoding inside the proto package) in init() func in my package, there is a chance to cause nil reference panic, in my case if the filename starts with a, b or c will cause this error, it seems the proto package has some expectations for the init() call sequence, so I tried this:
filename: foo.proto
syntax = "proto3";

package main;

option go_package = "main";

message Foo {
  string bar = 1;
}

generated foo.pb.go file with protoc --go_out=. --go_opt=paths=source_relative ./foo.proto
filename: cmd.go (any filename will do)
package main

import "google.golang.org/protobuf/proto"

var size int

func init() {
	size = proto.Size(&Foo{})
}

func main() {
	println(size)
}

then build with go build -o main ./cmd.go ./foo.pb.go
the example above can reproduce this issue every time
What did you expect to see?
The compiled program prints 0 and exit
What did you see instead?
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x98 pc=0x119cc59]

goroutine 1 [running]:
google.golang.org/protobuf/internal/impl.(*MessageInfo).initOnce(0xc00011a640)
	/go/pkg/mod/google.golang.org/protobuf@v1.23.0/internal/impl/message.go:84 +0x99
google.golang.org/protobuf/internal/impl.(*MessageInfo).init(0xc00011a640)
	/go/pkg/mod/google.golang.org/protobuf@v1.23.0/internal/impl/message.go:72 +0x3c
google.golang.org/protobuf/internal/impl.(*messageState).ProtoMethods(0xc00010e240, 0xc00010e240)
	/go/pkg/mod/google.golang.org/protobuf@v1.23.0/internal/impl/message_reflect_gen.go:30 +0x38
google.golang.org/protobuf/proto.protoMethods(...)
	/go/pkg/mod/google.golang.org/protobuf@v1.23.0/proto/proto_methods.go:18
google.golang.org/protobuf/proto.sizeMessage(0x126a580, 0xc00010e240, 0xc00010e240)
	/go/pkg/mod/google.golang.org/protobuf@v1.23.0/proto/size.go:30 +0x35
google.golang.org/protobuf/proto.MarshalOptions.Size(0x1000000, 0x12651e0, 0xc00010e240, 0xc00011a640)
	/go/pkg/mod/google.golang.org/protobuf@v1.23.0/proto/size.go:26 +0x4e
google.golang.org/protobuf/proto.Size(...)
	/go/pkg/mod/google.golang.org/protobuf@v1.23.0/proto/size.go:16
main.init.0()
	/play/protobuf-reproduce/cmd.go:8 +0x53

Make sure you include information that can help us debug (full error message, exception listing, stack trace, logs).
Anything else we should know about your project / environment?
go version: go version go1.14.3 darwin/amd64

TLDR: This is actually working as intended. That’s why best practice is to not mix your .pb.go files with the code that is using them. Especially in cases of init() functions, where initialization order is determined by lexigraphical order of the filenames. (You’ll find a d.go, e.go and f.go will also crash, but not a fop.go.)
Long explanation: the problem is that your proto has yet to be registered. Of note is this, from the language specification about package initialization:

To ensure reproducible initialization behavior, build systems are encouraged to present multiple files belonging to the same package in lexical file name order to a compiler.

So, if you put your .pb.go file in the same directory as a a func init() that references it, you will run into a problem where the lexical ordering of the files determines if the protobuf has been registered or not when you start into your own func init() functions. This is obviously undesirable.
The wide recommendation of best practice is to generate your .pb.go files into a separate package than can then be imported by the code that uses them. The ordering of initialization in this case will guarantee that all of the subpackage’s init() functions (i.e. the proto registrations) have been called before starting in on the package’s initialization, meaning your proto will be guaranteed to have been properly registered at that time.

@puellanivis Thanks for your detailed message, that's very helpful, I'm aware of the init() problem in go, and can understand the best practice, that's good, and should be applied to every package (maybe including this one).
just like what I said, I was migrating the code from gogoproto (which worked well with this use case), I guess we can do something like explicit initialisation in proto library since the init() function in proto package will call initOnce at last, not sure if that's viable in your opinion?

Thanks @puellanivis, I agree with your assessment. I'm surprised how fast you're able to diagnose that :)

I guess we can do something like explicit initialisation in proto library since the init() function in proto package will call initOnce at last, not sure if that's viable in your opinion?

I'm not sure what you mean by "explicit initialization".  Did you mean something like manually calling the file_xxx_proto_init function? In theory that would work, but it's almost certainly going to break again in the future. These functions are unexported for a reason.
The compatibility document for Go protobufs states:

We reserve the right to add new declarations to generated Go packages of .proto files. This includes declared constants, variables, functions, types, fields in structs, and methods on types. This may break attempts at injecting additional code on top of what is generated by protoc-gen-go. Such practice is not supported by this project.

The compatibility statement disallows adding additional code alongside the generated one because it would be impossible for the protobuf maintainers to reason about what will be a compatible versus and incompatible change in the future.

Thanks @dsnet , it's not a big issue, we can just follow the best practice anyway (why not), just got a little bit surprised  when it compiles but not able to run due to init() :)

I'm not sure what you mean by "explicit initialization"

I mean maybe we can add a global exported function proto.Init() or something like that, so someone can call it first before running code in init()

I mean maybe we can add a global exported function proto.Init()

Given that our compatibility policy calls out non-support for injected code within the generated package, I don't think this functionality provides any benefit. Assuming users are importing the generated proto packages, then the Go language guarantees that the init functions for a depended upon package must occur before any possible uses of that package.

Thanks @dsnet and @puellanivis , I get it, closing this issue.


Fix TextInput vertical alignment issue when using lineHeight prop on iOS without changing Text baseline (Fabric - new arch)

Details
Sets the NSBaselineOffsetAttributeName of the attributedText based on the following formula:
CGFloat baseLineOffset = (maximumLineHeight - maximumFontLineHeight) / 2.0;

The text is vertically centered in the lineHeight of the TextInput (which corresponds to the height of the cursor).
The solution was already added in facebook/react-native:

PR facebook/react-native#38359 fixed the issue on the Old architecture (Paper) in release 0.73.5.
commit https://github.com/facebook/react-native/commit/70cc27c901aeb447910e30ac3ceac85990d3c16d fixed the issue in the New architecture (Fabric).

Related Issues
fixes https://github.com/Expensify/App/issues/17767 fixes https://github.com/Expensify/App/issues/14445 fixes https://github.com/Expensify/App/issues/15640
Related https://github.com/facebook/react-native/issues/35741 https://github.com/facebook/react-native/issues/31112 https://github.com/facebook/react-native/issues/28012 https://github.com/facebook/react-native/issues/33986
Manual Tests

Expensify Composer: https://gist.github.com/fabOnReact/dfb141ef083f99acea4b7152294aaca9?permalink_comment_id=5061893#gistcomment-5061893
Expensify Composer (When moving to another line, the word and emoji are close to each other): pull/350#issuecomment-2119690594 and pull/350#issuecomment-2119701442
Markdown: https://gist.github.com/fabOnReact/dfb141ef083f99acea4b7152294aaca9?permalink_comment_id=5061895#gistcomment-5061895
Markdown - Arabic text getting cut: https://gist.github.com/fabOnReact/dfb141ef083f99acea4b7152294aaca9?permalink_comment_id=5061901#gistcomment-5061901
Previous tests: PR comments https://githuh.com/facebook/react-native/pull/37465#issuecomment-1551459879 and https://github.com/Expensify/App/issues/17767#issuecomment-1640032626

Linked PRs

PR https://github.com/facebook/react-native/pull/38359 landed. Fixed the issue on the Old Architecture (Paper).
PR https://github.com/facebook/react-native/pull/37465 was reverted.

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

Expensify Composer (When moving to another line, the word and emoji are close to each other):
The difference of baseline is 1.15 (barely noticeable), maximumLineHeight 20, maximumFontLineHeight 17.69

Before
After

Before
After

Expensify Composer (increasing lineHeight to display more clearly difference in the screenshots):

Before
After

Before
After

Before
After

iOS - Chat - Cursor in the second and following lines touches the symbols of the previous line #15640
Fixes issue https://github.com/Expensify/App/issues/15640

Before
After

Thanks @fabOnReact for this amazing PR!

@fabOnReact We've reviewed the changes and we'd like to merge this PR but it's still marked as draft

@tomekzaw Thanks a lot. I moved the PR to ready for review.

@fabOnReact I think this PR introduced this regression. Do we have any plan to fix it or should we create an issue for that?

@hungvu193 did you test it?

Remove that line of code from Expensify
You need to build Expensify and run it on Android
Does the bug disappear?

Because the bug is Android only, while this PR introduces changes only to iOS. Thanks a lot!

@hungvu193 did you test it?

Remove that line of code from Expensify
You need to build Expensify and run it on Android
Does the bug disappear?

Because the bug is Android only, while this PR introduces changes only to iOS. Thanks a lot!

My apologize for this confusion. I think I mentioned wrong PR here :(

@hungvu193 Thanks for the clarification. No problem about that. 🙏


Users gfortran flags, parse multiple errors and lint on-the-fly

Sorry I have included a few different things in this pull request.
I made the following changes:

The users flags for gfortran were not being used. Therefore I changed the line from

const args = ["-fsyntax-only", "-J", tmpdir];

to
const args = atom.config
                .get("linter-gfortran.gfortran_flags")
                .split(" ")
                .concat(["-fsyntax-only", "-J", tmpdir]);

I get an array by splitting the user's flags and then concatenate this with the additional flags required for linting.

I made a change to the regex so that multiple messages are parsed by it. I simply changed the following bit of regex from

((.|\\r|\\n)*)

to
((.|\\r|\\n)*?)

This makes the match for the error location description lazy instead of greedy and so individual errors are captured. Beforehand, the regex captured this first errors location and the last errors message.

The largest change I made was to enable linted on-the-fly. I followed the method done for lintr, which seems to create a temporary file which is lintered and the results are then returned from this. I am not sure why this works, but not doing it doesn't work. Anyway, I changed the lines from

return helpers.exec(command, args, {stream: "stderr"}).then(output =>
                    helpers.parse(output, regex)

to
              return helpers.tempFile(path.basename(filePath), fileContents, (tmpFilename) => {
               args.push(tmpFilename);
               return helpers.exec(command, args, { stream: "stderr"}).then(output => {
                    return helpers.parse(output, regex, { filePath : filePath });
                    });
                });
          }

A temporary file is created using the helper, the path of this file is added to gfortran's arguments and finally gfortran is called and the error messages are returned as before.
I hope this all makes sense. Cheers.

I am not sure why this works, but not doing it doesn't work.

I think this is because the content of the file is not yet written to the disk with lint on-the-fly.
Also, we could make the lint on-the-fly feature opt-in, as it will create a lot of temporary files. But this can be in another PR.

I think this is because the content of the file is not yet written to the disk with lint on-the-fly.

Ah yes that makes perfect sense.

Also, we could make the lint on-the-fly feature opt-in, as it will create a lot of temporary files. But this can be in another PR.

Yes adding a option for the user would probably be a good idea. For now the global option in linter is still available.
However, I'm not sure if the temporary file is automatically cleaned after the .tempFile() has exited. The syntax would suggest so because the information about the file is only accessible within the lambda function argument. I would have to check this though. Probably a better way would be to somehow pipe the file into gfortran and avoid the temporary file altogether, but this could probably wait till later.

However, I'm not sure if the temporary file is automatically cleaned after the .tempFile() has exited.

Should check the doc, but I am pretty sure it work this way.

For now the global option in linter is still available.

I forgot about this one. The global option should be enough I think.
[HS] I gave you write access to this repository, as you seems interested in contributing. Please just submit your changes as PR, so that I can review them. I'll do the same with my changes =) [/HS]

[HS] I gave you write access to this repository, as you seems interested in contributing.
Yes this package is really helpful, I'm glad to contribute.

Please just submit your changes as PR, so that I can review them. I'll do the same with my changes =) [/HS]
Ok will do.


BACKLOG-23365 Allow to compare jmix:mainResource

JIRA

https://jira.jahia.org/browse/BACKLOG-23365
Description
Allow to compare jmix:mainResource

qq: do we also need to add it in here, or no need? https://github.com/Jahia/jcontent/blob/86361e42f75b1622dd062f31abd7230eaaa1f8ca/src/javascript/JContent/JContent.actions.jsx#L425


Raw Execute Method

Hey!
Could you please possibly outline how I should use the raw execute action type?
I'm especially curious if I can create an update type request using that action... Something with both a doc upsert, and an update script.

Hi @schonfeld,
Sure, using raw execute action type you can do that. You can pass the string from Kafka, containing the commands you want, like index, delete, update requests.
Here is one example, that one of the users passes as a message from Kafka:
String bulkRequest = "{ \"index\" : { \"_index\" : \"twitter\", \"_type\" : \"tweet\", \"_id\" : \"1\" } }\n" +
                    "{ \"tweet\" : { \"text\" : \"this is a tweet\" },\"user\" : {\"text\":\"testing\"} }\n" +
                    "{ \"delete\" : { \"_index\" : \"twitter\", \"_type\" : \"tweet\", \"_id\" : \"2\" } }\n" +
                    "{ \"create\" : { \"_index\" : \"twitter\", \"_type\" : \"tweet\", \"_id\" : \"1\" } }\n" +
                    "{ \"tweet\" : { \"text\" : \"another tweet\" } }";
producer.send( new KeyedMessage<String, String>(topic, bulkRequest ) );

Let me know if you still have open questions, and thanks for your interest in this river project.
Cheers,
Mariam

Thanks, @mariamhakobyan. That answers it. I'll go ahead and create a PR for a readme update that includes these instructions. Sounds good?

@schonfeld, actually the Readme already includes the information about raw type, do you think it's not enough or you want to add the example which I brought up?

It's def not abundantly obvious on first read. Maybe just a link to Elasticsearch's Bulk API docs would suffice...

Sure, feel free to add a link to that page, and an example as well if you have a corresponding one, and send a PR!


[BUG] when using "type": "module" in root package.json and convert svelte.config.js to ESM, plasmo errors requiring this file

What happened?
when using "type": "module" in root package.json and convert svelte.config.js to ESM, plasmo errors requiring this file

pnpm create plasmo --with-svelte
add "type": "module" to project root's package.json
rewrite svelte.config.js to ESM (i.e. ... export default {}
run pnpm build
observe error

➜  pnpm build

><EMAIL_ADDRESS>build /Users/josef/Documents/playground/plasmo-svelte/ban-maniacal-falcon
> plasmo build

🟣 Plasmo v0.60.2
🔴 The Browser Extension Framework
🔵 INFO   | Prepare to bundle the extension...
🔴 ERROR  | require() of ES Module /Users/josef/Documents/playground/plasmo-svelte/ban-maniacal-falcon/svelte.config.js from /Users/josef/Documents/playground/plasmo-svelte/ban-maniacal-falcon/plasmo/node\_modules/.pnpm/@parcel+utils<EMAIL_ADDRESS>not supported.
Instead change the require of svelte.config.js in /Users/josef/Documents/playground/plasmo-svelte/ban-maniacal-falcon/plasmo/node\_modules/.pnpm/@parcel+utils<EMAIL_ADDRESS>to a dynamic import() which is available in all CommonJS modules.

Version
Latest
What OS are you seeing the problem on?
MacOSX
What browsers are you seeing the problem on?
No response
Relevant log output
No response
(OPTIONAL) Contact Details
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct
[X] I checked the current issues for duplicate problems.

after looking at this one a bit further, it appears this issue resides with parcel https://github.com/parcel-bundler/parcel/blob/50f8cc2979f0efafce30305ffd3c08a88a26ccf3/packages/core/utils/src/config.js#L77

So technically, we do not have to use Parcel's config loader thingy at all in our plugin. We can just parse it ourselves in the config resolver with some modern .ts config file parser even (that's used by vite).

@louisgv agreed, that makes sense. I opened a PR with parcel to (hopefully) resolve this issue, and will close this since it is related to a dependency

We can just parse it ourselves in the config resolver with some modern esm/mjs/ts config file parser even (that's used by vite).

I would be very interested in a Vite setup

We can just parse it ourselves in the config resolver with some modern esm/mjs/ts config file parser even (that's used by vite).

I would be very interested in a Vite setup

IMO, Vite is for web bundling. There's the crxjs suite of esbuild plugin that enable extension but afaik, the perf between vite (esbuild based) vs parcel 2 (SWC based), is largely the same - they both bundle the code and skip the type checking process.
What parcel offers out of the box is much more powerful than vite for customizing the bundler - which is why I chose it for Plasmo. Its plugin system allows tapping into almost every aspect of the build, and it has a lot of pre-built plugins for different ui frameworks and file extensions. This allows Plasmo to focus on enhancing the DX further, and not having to worry too much about dealing with the bundler (i.e, Plasmo supports Tailwinds and almost any css-in-js out of the box, etc...)
Tho, Plasmo and vite should works well together in the same repo, the same as nextjs and vite. Plasmo goal is not to be the bundle, it's to enhance the DX with more powerful API such as messaging and declarative module creation.


DeepImmutable error while using ReturnType

Any idea how to get rid of error Type 'DeepImmutableArray<string>' is missing the following properties from type... except import DeepImmutable from 'deox/dist/types' or explicty declare props?
Demo: https://codesandbox.io/s/vyqkr8y643?fontsize=14
Error in Component.tsx

Hi @rlesniak
Before any release for this issue as a hacky solution the best way I can imagine is something like below:
type InferState<T> = {
  [Key in keyof T]: T[Key] extends DeepImmutable<infer A> ? A : T[Key]
};

export type RootState = InferState<ReturnType<typeof rootReducer>>;

The above solution doesn't solve the actual problem. Can you figure out what should be the return type of the reducer that has been created by createReducer?

Thanks.
So if I understand your question correctly, in my case it should be just:
type RootState = {
    status: Readonly<{
        error: string;
        details: StatusInfo;
        fetching: boolean;
    }>;
}

so without DeepImmutableObject.

The return type of a reducer should be what it actually returns and it is equal to return type of all handlers it has. So the return type of a reducer can be inferred from the return type of all handlers it has.
Also, because of the reactivity nature of the state in Flux, the return type of a reducer (which in the following called output/next state) should extend the input/prev state type. For now, the input/prev state type is immutable but it is going to also be mutable in #58 and according to the previous sentence the output/next state can be as follow:

immutable or mutable when the input/prev state is immutable.

type NamesState = DeepImmutableArray<string>

const defaultNamesState: NamesState = Object.freeze([])

const namesReducer = createReducer(defaultNamesState, handleAction => [
  handleAction(actionA, (state, { payload }) => [...state, payload]), // string[]
  handleAction(actionB, (state) => state) // DeepImmutableArray<string>
])

namesReducer(...) // string[] | DeepImmutableArray<string>

just mutable when the input/prev state is mutable.

type NamesState = string[]

const defaultNamesState: NamesState = []

const namesReducer = createReducer(defaultNamesState, handleAction => [
  handleAction(actionA, (state, { payload }) => [...state, payload]), // string[]
  handleAction(actionB, (state) => Object.freeze(state)) /* throws error
                                                            because of that input/prev state
                                                            defined as a mutable array
                                                            but the output/next state is a `ReadonlyArray` */
])

namesReducer(...) // string[]

@rlesniak @Haaxor1689 @LouizFC and other guys who interested in Deox, It would be great to have your opinion/feedback about the above solution because without that the growth of the Deox is not possible. If you are agree hit 👍; if not hit 👎 (Also it is awesome to leave a comment to describe your opinion/solution).

Are you sure its fixed? TSC still throws DeepImmutable error, check this sandbox mentioned in first post

You are right and that is due to obligatory behavior of Deox in prev (input) state type which is wrapped by DeepImmutable (discussed in #58) and can't be fixed without breaking change. So if you are agree let's follow it in its specific place.

Also, I found that combineReducer type signature in Redux isn't so accurate. I will try to send a PR to reduxjs/redux for fixing that.


what about 2019?

when are we going to get this page updated for server 2019 as well? I barely found a blog but nothing more about 2019 enhancements.

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

ID: ae5e5d2a-8cc0-deaa-aad7-befa3b02c339
Version Independent ID: 480ba7af-696f-f95d-2adf-cf680ed7652a
Content: What's new in Remote Desktop Services
Content Source: WindowsServerDocs/remote/remote-desktop-services/rds-whats-new.md
Product: windows-server
Technology: remote-desktop-services
GitHub Login: @ChristianMontoya
Microsoft Alias: chrimo

Hi there, anything? we still need to know the differences between 2019/2016/2012.

We hugely appreciate your contribution, feedback, and support to our technical documentation.
We’ve phased out GitHub Issues on this repository as the feedback mechanism for content and have replaced it with a new feedback system. For more information see, Content User Feedback. As part of this rollout, we are migrating your issue where our team will use your comments to improve the documentation experience. Unfortunately, this does mean you won't be able to access this issue after the migration is complete.
All issues will be migrated by Thursday 29th August 2024.
Once again, thank you for your valuable feedback, we hope you’ll continue to contribute using our new feedback system.


[BOT PR] to update dependencies of istio

This PR will be merged automatically once checks are successful.
none

[APPROVALNOTIFIER] This PR is NOT APPROVED
This pull-request has been approved by: istio-testing
To fully approve this pull request, please assign additional approvers.
We suggest the following additional approver: myidpt
Assign the PR to them by writing /assign @myidpt in a comment when ready.
The full list of commands accepted by this bot can be found here.
The pull request process is described here

Needs approval from an approver in each of these files:

OWNERS

Approvers can indicate their approval by writing /approve in a comment
Approvers can cancel approval by writing /approve cancel in a comment

@istio-testing: The following test failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
fc30f3e2a8a6a01c6195f22366b0b63010c862ee
link
/test istio-unit-tests

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.

@istio-testing: The following tests failed, say /retest to rerun them all:

Test name
Commit
Details
Rerun command

prow/istio-unit-tests.sh
fc30f3e2a8a6a01c6195f22366b0b63010c862ee
link
/test istio-unit-tests

prow/e2e-bookInfoTests-v1alpha3.sh
fc30f3e2a8a6a01c6195f22366b0b63010c862ee
link
/test e2e-bookInfo-envoyv2-v1alpha3

Instructions for interacting with me using PR comments are available here.  If you have questions or suggestions related to my behavior, please file an issue against the kubernetes/test-infra repository. I understand the commands that are listed here.


Recover clients that timed out - or at least disconnect them.

In ClientsReceive we could rework things so that clients are not lost if they have no received message by the point ClientsReceive::entries is called. This would involve Sender::start_send and such, or could be done simpler by returning (channel_rx, oneshot_rx) after sending the oneshot_tx off.

Clients are being dropped if they don't send a Msg::Move in the available time. I'm happy keeping this as it is; might do something different as part of #38.


Combining javascript gives error (2.0.1-wip)

I have the following libraries in this order:
jquery-1.71.js
jquery-ui-1.8.16.js
..other various libraries (underscore/backbone etc)...
bootstrap-dropdown.js
bootstrap-collapse.js
bootstrap-tab.js
application.js

When they are all loaded separately, everything works as intended.  When I combine them (not minimize), I get the following error:
Uncaught TypeError: undefined is not a function

It traces to the following:
/* TAB DATA-API
  * ============ */

  $(function () {
    $('body').on('click.tab.data-api', '[data-toggle="tab"], [data-toggle="pill"]', function (e) {
      e.preventDefault()
      $(this).tab('show')
    })
  })

}( window.jQuery ) // HERE!

Any ideas?  I have tried both the v2.0.0 tag as well as the latest 2.0.1-wip branch

if you are just use cat - then combine them with new lines


Feature suggestion: user group as notification recipient

Groups of staff users can be created in the normal Django admin site, mainly to make permissions assignment easier.
These groups could be used as staff mailing list groups for order notifications.
Example groups:

order fulfilment/warehouse
accounts

Good idea!
This means that we have to add a ForeignKey onto auth.Group in Notification.


PP-1615 EmailValidator initial implementation

WHAT
EmailValidator initial implementation
HOW

Implemented isPublicSectorEmail() method which checks if the email belongs to UK public sector domain.
Generic email validation is not implemented here (it is implemented in Self Service).

with @maxcbc

👍


Zemax subscription model breaks DDE - fixed promised by Zemax

The current release of the new Zemax Subscription License breaks DDE.  Zemax tech support has acknowledged this and promises a fix by the end of January 2020.  FYI

Hi @JohnDGriffith, thank you for this info. Unfortunately, I do not think we can do something from our end. I just checked, and I am still able to use the DDE link. Could you please elaborate what you did and use?
I myself use Zemax 18.9 and did not update my Licence File Status (pressed 'no' in the popup) on the status.

Hi Lucy
It has to be fixed by Zemax.  They have acknowledged a DDE problem and have sent me a beta version to test.  It only affects their new subscription model that does not use a USB dongle.
I will check their beta version on Monday.
I don't believe any action is required on the Pyzdde side.  I put the issue in only as an FYI for other people whose code quit working.
Get Outlook for Androidhttps://aka.ms/ghei36

From: Luc van Vught<EMAIL_ADDRESS>Sent: Friday, January 3, 2020 11:02:45 AM
To: xzos/PyZDDE<EMAIL_ADDRESS>Cc: JohnDGriffith<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [xzos/PyZDDE] Zemax subscription model breaks DDE - fixed promised by Zemax (#99)
Hi @JohnDGriffithhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2FJohnDGriffith&data=02|01||0ae801ffa1ae4c28bccf08d790665f44|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637136641706094794&sdata=kGDnLQm4UfYFjNJKTXX12cCQ0ykJuMKGzdk20Omjdjo%3D&reserved=0, thank you for this info. Unfortunately, I do not think we can do something from our end. I just checked, and I am still able to use the DDE link. Could you please elaborate what you did and use?
I myself use Zemax 18.9 and did not update my Licence File Status (pressed 'no' in the popup) on the status.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fxzos%2FPyZDDE%2Fissues%2F99%3Femail_source%3Dnotifications%26email_token%3DAHATIM4VUGMXURJAIIOICTDQ35OSLA5CNFSM4KCOKHL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEIBOLDY%23issuecomment-570615183&data=02|01||0ae801ffa1ae4c28bccf08d790665f44|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637136641706114810&sdata=L8LhapG9B3VDEnnwhdUSKbBIJ6vxbHkiiB3j%2B4eKxos%3D&reserved=0, or unsubscribehttps://nam04.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAHATIMYX3I7PK35KBFKEWOTQ35OSLANCNFSM4KCOKHLQ&data=02|01||0ae801ffa1ae4c28bccf08d790665f44|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637136641706134825&sdata=hxOdkGlM9pbHkOUBvbDTA5F0ifFvUtuj8QDbk6rjO3I%3D&reserved=0.

Thank you for the clarification, lets hope the beta version works!

Hi Lucy
Zemax 19.8 SP1 beta (subscription version, no dongle, premium) now opens a link without error.
Import pyzdde.zdde as pyz
Ll
Get Outlook for Androidhttps://aka.ms/ghei36

From: Luc van Vught<EMAIL_ADDRESS>Sent: Friday, January 3, 2020 8:34:39 PM
To: xzos/PyZDDE<EMAIL_ADDRESS>Cc: JohnDGriffith<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [xzos/PyZDDE] Zemax subscription model breaks DDE - fixed promised by Zemax (#99)
Thank you for the clarification, lets hope the beta version works!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fxzos%2FPyZDDE%2Fissues%2F99%3Femail_source%3Dnotifications%26email_token%3DAHATIM2ULRTVARXWFPBQHG3Q37RS7A5CNFSM4KCOKHL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEICOEVY%23issuecomment-570745431&data=02|01||5326b433b9dd455b422d08d790b64407|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637136984799572462&sdata=EgsSzoDl1rv8s0V1Gk1LjVP0fi1v9u4QNDbTKwkg1Dg%3D&reserved=0, or unsubscribehttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAHATIMYJZRKEYVGMARUI4L3Q37RS7ANCNFSM4KCOKHLQ&data=02|01||5326b433b9dd455b422d08d790b64407|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637136984799572462&sdata=mkTi%2FL%2F8mT4vZW3fAsJ3V5iuYz3CfV0HMKxR1sNYvl4%3D&reserved=0.

Hi Luc,
Sorry, writing on my phone.  Anyway the beta sent by Zemax fixes their DDE problem.  General release as 19.8 SP1 in about a month.
Get Outlook for Androidhttps://aka.ms/ghei36

From: John Griffith<EMAIL_ADDRESS>Sent: Tuesday, January 7, 2020 3:53:03 PM
To: xzos/PyZDDE<EMAIL_ADDRESS>xzos/PyZDDE<EMAIL_ADDRESS>Cc: Mention<EMAIL_ADDRESS>Subject: Re: [xzos/PyZDDE] Zemax subscription model breaks DDE - fixed promised by Zemax (#99)
Hi Lucy
Zemax 19.8 SP1 beta (subscription version, no dongle, premium) now opens a link without error.
Import pyzdde.zdde as pyz
Ll
Get Outlook for Androidhttps://aka.ms/ghei36

From: Luc van Vught<EMAIL_ADDRESS>Sent: Friday, January 3, 2020 8:34:39 PM
To: xzos/PyZDDE<EMAIL_ADDRESS>Cc: JohnDGriffith<EMAIL_ADDRESS>Mention<EMAIL_ADDRESS>Subject: Re: [xzos/PyZDDE] Zemax subscription model breaks DDE - fixed promised by Zemax (#99)
Thank you for the clarification, lets hope the beta version works!
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHubhttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fxzos%2FPyZDDE%2Fissues%2F99%3Femail_source%3Dnotifications%26email_token%3DAHATIM2ULRTVARXWFPBQHG3Q37RS7A5CNFSM4KCOKHL2YY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEICOEVY%23issuecomment-570745431&data=02|01||5326b433b9dd455b422d08d790b64407|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637136984799572462&sdata=EgsSzoDl1rv8s0V1Gk1LjVP0fi1v9u4QNDbTKwkg1Dg%3D&reserved=0, or unsubscribehttps://nam11.safelinks.protection.outlook.com/?url=https%3A%2F%2Fgithub.com%2Fnotifications%2Funsubscribe-auth%2FAHATIMYJZRKEYVGMARUI4L3Q37RS7ANCNFSM4KCOKHLQ&data=02|01||5326b433b9dd455b422d08d790b64407|84df9e7fe9f640afb435aaaaaaaaaaaa|1|0|637136984799572462&sdata=mkTi%2FL%2F8mT4vZW3fAsJ3V5iuYz3CfV0HMKxR1sNYvl4%3D&reserved=0.


How to do drf tracking write in async thread

is it possible to write log with async tasking i dont want my view thread to get blocked with drf tracking operation or to write in db. I am using celery for async task.

Hello @amankumarjain,
That's actually a really nice question that I tried to solve some times ago. My conclusion was:

Using celery is not really a solution (at least for me as we are using SQS as a queue system) because response time of the DB ~= response time of SQS. So not a solution
Async python3 could be a way to do it, for I don't remember which reason, we could consider this solution so I don't know
"Send a request to add data and do not wait for the answer" was our best solution. What it means is you do your call to what ever system is saving your data but you don't wait the answer or there is no answer. By doing that you avoid every latency or service unavailable disruption. The bad point of this solution is that you could potentially lose data, or at least, not register them and don't know about it.

Actually the solution we went for, with a nice scaling possibility, is the Elasticsearch integration. We have an ES cluster hosted on Elastic cloud and we are sending our data directly to ES. An improvement to do is the 3rd point that I told you before, to send without waiting for the answer.
So I don't think there is an easy or awesome solution but there is definitively things to try. Aside all the possibilities, I think that DRF is trying to keep the impact on the API very low. If I'm not mistaken, our tests are checking that we don't take more than 20ms to log something (which is not perfect but it's ok-ish)


tests to ensure binaries are installed

Type
Tests, Enhancement

Description

Added a new test suite BinaryAvailabilityTest to ensure critical binaries like FFmpeg and ImageMagick are installed.
Included dynamic checks for all configured image optimizers to verify their binary presence.
Updated composer.json to require ext-imagick, aligning with the new ImageMagick tests.
Minor formatting improvement in ImageTest.php.

Changes walkthrough
Relevant filesTests

BinaryAvailabilityTest.phpAdd Tests for Binary Availability in System

tests/Unit/BinaryAvailabilityTest.php
Added a new test class BinaryAvailabilityTest to check the availability of binaries.  Implemented methods to assert the existence of specific binaries like ImageMagick and FFmpeg.  Utilized configuration to dynamically check for all configured image optimizers.

+43/-0

Formatting

ImageTest.phpMinor Formatting Adjustment in Image Tests

tests/Unit/ImageTest.php

Minor formatting change, removed an unnecessary newline.

+0/-1

Enhancement

composer.jsonUpdate Composer Dependencies and Formatting

composer.json
Added ext-imagick to the required extensions, ensuring the availability of ImageMagick for the project.  Reformatted the keywords section for better readability.

+5/-1

✨ PR-Agent usage:
Comment /help on the PR to get a list of all available PR-Agent tools and their descriptions

any chance to go beyond that? version numbers? publisher? right now it just checks for any binary of that name, right?

any chance to go beyond that? version numbers? publisher? right now it just checks for any binary of that name, right?

I could try to parse something from the command output or from the list of installed packages, but how would that add anything to this check?


create package body fail when use record in overload procedure.

Bug Report
create package body fail when use record in overload procedure.
IvorySQL Version
1.3
OS Version (uname -a)
Linux pc 3.10.0-1160.el7.x86_64 #1 SMP Mon Oct 19 16:18:59 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux
Configuration options  ( config.status --config )
default
Current Behavior
Test sql:
create table people(a int, b int);
insert into people values(1,1);
insert into people values(2,2);
create or replace package pkg
as
	procedure show;
	procedure show(a int);
end;
/
-- fail to create package body
create or replace package body pkg
as
	v record;
	procedure show
	is
	begin
		for v in (select * from people) loop
			raise notice 'show1: %', v.a;
		end loop;
	end;

	procedure show(a int)
	is
	begin
		for v in (select * from people) loop
			raise notice 'show2: %', v.a;
		end loop;
	end;
end;
/

Expected behavior/code
create package body success.
Step to reproduce
see Current Behavior test sql
Additional context that can be helpful for identifying the problem

record is a pseudo type and it's not known how many fields it can hold until the runtime. so it's not possible to declare this type of variable at a package level.  However, it should properly generate an error stating that.


Bug 1729242: OCP 4 AWS privilege escalation vulnerability by running pods on masters

Make worker label as defaultNodeSelector to avoid pods getting scheduled to master nodes.
/cc @deads2k @enj @sttts

/hold
Per David's request to continue review on Monday.

/test e2e-aws

I'm a -1 on resolving the issue this way.  The mechanism for steering workloads away from masters is taints and restricting tolerations.  I thought this is what PodTolerationRestrictions did, but that plugin is very confused.  Mapping tolerations to rbac permissions for serviceaccounts seems more practical.

CVE-2019-10200 was assigned to this issue.

Can we get an update on where we are at on this issue?
We need this resolved both for the potential security impact and also to clarify how users should isolate workload when there is a security concern.
In my experience as an openshift consultant and instructor, taints and tolerations are not well suited for security isolation because most users find these difficult to understand and implement. While it may be possible to resolve this with podTolerationRestrictions, this is likely going to be hopelessly complicated for many OpenShift administrators. Node selectors are much easier for our users and administrators to understand and node selectors on namespaces are easy to audit with automation.
imho, we should label all masters as node-role.kubernetes.io/master everything else as workers, node-role.kubernetes.io/worker, and set the default for the defaultNodeSeloctor to run on workers as this PR was aiming to do. In the case where we want workload to run on the masters, we simply add the worker label to the masters, so it really shouldn't limit node topologies.

I think https://bugzilla.redhat.com/show_bug.cgi?id=1730165#c8 has the answer. In short version 2 of https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/configuring-instance-metadata-service.html should be able to solve the issue.
/close


Proposed v 1.15 - Update dependencies, remove @prisma/internals, fix node 14 support

This is 3 main changes:

Update all dependencies to latest, including a fix via npm audit fix for the minimatch CVE
Break the dependency on @prisma/internals by moving to vanilla console.log for logging (which is what Prisma's logger was doing anyways) and by bringing the parseEnv function into the codebase locally.
Fix a usage of replaceAll that was breaking compatibility with Node 14 per #10 .

Thanks @Brakebein - sorry I fell off on the follow-ups. I was doing this for a migration at work and it has been more difficult than we'd hoped (as they always are). Let me know if I can help out here, though. Happy for this package to thrive especially since we'll be using it in production as of this week...


Anchors in report summary don't work

Clicking on any of these links does not scroll to the section in the PR report:

@brikelly where's the PR for this?

@brikelly where's the PR for this?

@dividedmind over here - https://github.com/getappmap/appmap-js/tree/8fc82fbbd2c16b94a6d9ec437d926b7a3843c4f4/packages/cli/resources/change-report
heading is now using HTML id, which should/may work.