Intermittent 411 errors connecting to Azure Repos

Hello everyone, we have a team trying to use abapGit to connect to Azure Repos, and we keep seeing intermittent connectivity failures - to the point where it makes it really harder to use this - it works when it works, but breaks most of the time. We've ruled out most network issues by taking traces, but if there's any verbose logging that can be taken from abapGit, that'd be helpful too.
I could not find related issues here, so I'm starting a new one. Has anyone else experienced this?

hmm, interesting
Sounds like the errors are periodical, and cannot reliably be reproduced?
Any proxies in the network setup from the SAP system to the git repo?

@larshp Thanks for the really quick response! It is interesting, and it can be reproduced reliably. Some calls work, and then it breaks immediately - in a matter of 5 minutes.
The team that I'm working with have temporarily opened up everything to see if that is fixed, but no help. I'm also having them use git command-line tools to see if the behavior is consistent there as well, possibly take a fiddler trace to rule out any software proxies.
But when we tried running fiddler on the SAP Server when we ran this from a client, nothing was captured. Does abapGit use git tools internally or do they make Web Service calls to talk to git repos? (I'm really curious, and please forgive my limited understanding on how abapGit does it)

abapGit implements the raw git protocol, and uses http for transport, the basic primitives are implemented in https://github.com/larshp/abapGit/tree/master/src/git
by enabling the ABAP debugger you can check all http requests and replies
can you try making a public Azure DevOps repository and check it is reproducible there?

Thanks so much Lars. Those are some great suggestions. We will try those out and I'll update here once we find the cause/resolution.

did few tests in https://dev.azure.com/larshvam/_git/public?_a=history, no errors occurred

My case is something similar, but I can enter into the page where I can give comments and click on commit button, but then it is giving the unauthorized  error.
As directed, I have made my repo public, added certificates, but still no luck.

@himanshush13 are you using tokens? https://docs.microsoft.com/en-us/azure/devops/organizations/accounts/use-personal-access-tokens-to-authenticate?view=azure-devops&tabs=preview-page

Thanks for your reply Lars, I used the tokens and it helped me committing the code to the azure repo. But one doubt, every time, I have to use the token, because the token will last for only 30 days, so, do I need to do it frequently on every commit ?

thats up to you, abapGit does not store secret information for the user. You can keep the token somewhere, use a password manager or regenerate it every time

@manb-msft did above help?

@larshp it does look like some network/firewall issues. They were able to reproduce this behavior outside of abapGit as well. I'll follow up and update this thread.

@manb-msft any updates?

@larshp sorry about the delay on this one. I've asked the team to provide an update so we can add some notes and close this out. Thanks so much for checking in!

closing, no progress


CheckoutController: Only add override if Spree::Frontend is available

Note: the only change here, apart from indentation, is the added if defined?
at the top of the file

This class was raising errors in my app, because I don't have Spree::CheckoutController

Nice @vfonic 👍


Compatibility with monocdk

Is there a version of this that uses monocdk instead of aws-cdk/core? (are there plans to release one, if not?)
Thanks!

Hi @avi-jain , I don't believe we have any plans to create a version of this using monocdk at the moment. We recommend customers to upgrade to AWS CDK v2 following their organization's guidance.
You're welcome to re-create the basic trigger construct within your own projects though if you're locked out of AWS CDK v2 for some reason -- the source code is relatively short / shouldn't be too hard to translate to the CDK language you are using: https://github.com/cdklabs/cdk-triggers/blob/main/src/triggers.ts


Update Docker configuration files

Checklist

[x] I have followed the Contributor Guidelines.
[x] The code has been thoroughly tested in my local development environment with flake8 and pylint.
[x] The code is Python 3 compatible.
[x] The code follows the PEP8 styling guidelines with 4 spaces indentation.
[x] This Pull Request relates to only one issue or only one feature
[ ] I have referenced the corresponding issue number in my commit message
[ ] I have added the relevant documentation.
[x] My branch is up-to-date with the Upstream master branch.

Changes proposed in this pull request
Update Docker configuration files to minimize the layers amount and make the code more readable.

This is not backwardly-compatible with Docker v20.10 as it fails with error:
Error response from daemon: dockerfile parse error line 9: unknown instruction: MKDIR

It works in Docker v23.0, however the saving on the image provided by this PR is minimal, so I am not going to merge it just yet

It works in Docker v23.0, however the saving on the image provided by this PR is minimal, so I am not going to merge it just yet

Well, that makes sense. I'm surprised it worked at all as heredocs requires buiildkit/buildx. I've changed that part and added a sort of smoke tests for multiple docker engine versions -- 24.0, 23.0, and 20.10 (I guess that's what you were doing manually). It just checks whether the image is buildable. This job is required to be successful for running test job now.
PTAL when you have a chance.

Suppressed by https://github.com/OWASP/Nettacker/pull/894


[css mode] add missing functions to valueKeywords

I've noticed that currently, only url() and the colour functional notations like rgba() are recognised by the parser, meaning that e.g. calc() is styled very differently from url().  This adds the rest of the CSS functions to the keywords array so that they are styled the same, and also updates three tests which include such functions.  I don't think I've missed any (though obviously can't guarantee), and I've deliberately left out ones that seem too experimental/unimplemented (like element() and the two conic-gradient functions).
[attr, calc, counter, counters, linear-gradient, matrix, matrix3d, perspective, radial-gradient, repeating-linear-gradient, repeating-radial-gradient, rotate, rotate3d, rotateX, rotateY, rotateZ, scale, scale3d, scaleX, scaleY, scaleZ, skew, skewX, skewY, symbols, translate, translate3d, translateX, translateY, translateZ, var]

Looks good. Merged as 6a68467


Revert "Fix #561 (Add real-time FPS display to window bar)"

This current implementation will lag the Taskbar on Windows, with the amount of lag corresponding to FPS. (more FPS = worse Taskbar performance).
It would probably help if the window title is updated after a fixed amount of time instead, as it looks like it's being updated every frame.

#572 is better, actually


Add firmware to support wireless on RPi3

Support for RPi 3b
brcmfmac43430-sdio.txt
brcmfmac43430-sdio.bin

Support for RPi 3b+
brcmfmac43455-sdio.bin
brcmfmac43455-sdio.clm_blob
brcmfmac43455-sdio.txt

Here are steps about how to enable wireless on RPi:
modprobe brcmfmac
wpa_passphrase <ssid> <psk> > /etc/wpa_supplicant.conf
wpa_supplicant -iwlan0 -B -c /etc/wpa_supplicant.conf
sleep 2
dhcpcd -MA4 wlan0

https://github.com/rancher/os/issues/2604


Not able to run imagenet200

This is the error :
FileNotFoundError: Couldn't find any class folder in /../../val/images.
Dataset for RawFooT is not downloading , can you upload the data ?

Hey @kpbhat25 !
RawFoot dataset can be downloaded at http://www.ivl.disco.unimib.it/activities/rawfoot-db-raw-food-texture-database/
Please refer to the first paragraph of section 5.4 on how to split images into training and testing sets. Sorry I cannot upload the dataset because I don't have copyright to it.
Cheers,
Ning

FileNotFoundError: Couldn't find any class folder in /storage/users/koushik/trial_exp/InstaAug/tinyimagenet200-data/val/images.
Folder structure is  below:
image-net-200
|
|--test
|--images
|--train
|---n01443537
|---....
|--val
|---images
|---val_annotations.txt
|--wnids.txt
|--words.txt
This is the folder structure i am having , not able to understand what class folder i am missing in the val folder.
Can you help me with this?

I guess it might be caused by different versions of pytorch. Sorry I cannot repeat this issue.


Non-string values in messages break filters if used

If you have a consumer which looks something like
def my_consumer(message):
    object_id = message.get('object_id')
    my_object = MyObject.objects.get(id=object_id)
    # do more stuff...

With a route of
route('my_channel', my_consumer)

You can send a message which has non-string values without any issue and they get serialized, assuming they are serializable of course, but for now I'm just looking at simple things like integers which would be a very common case for passing django object ids around.
# my_consumer will get this and the object_id value will be an int
# assuming some_object.id is an int as with standard django stuff
Channel('my_channel').send({'object_id': some_object.id})

But if you change that route to
route('my_channel', my_consumer, object_id=r'^(?P<object_id>\d+)')

And consumer to
def my_consumer(message, object_id):
    my_object = MyObject.objects.get(id=object_id)
    # do more stuff... use the orm to look up the object, etc.

Then the routing raises TypeError: expected string or buffer from Route.match() at https://github.com/andrewgodwin/channels/blob/master/channels/routing.py#L152 due to trying to match the regex against the int.
Does it make sense to have Router.normalise_re_arg() special case types other than six.binary_type which are easily handleable and readily serializable such as int, float, maybe others such as Decimal?  Or is it intended that message keys used in filters will always have string values?

I'm not sure I want to encourage regex matching against non-string types - the need for a canonical form means that float is not going to go down well (and Decimal cannot be transported in ASGI so that's not needed).
It looks like you're just trying to capture it to use as a kwarg - is there a reason you wish to do this rather than just use message['object_id'] inside the body of the function?

It felt like that was part of the intended use of being able to use those filters and captures in the routes and makes behavior for the same key consistent, whether it's accessed via the message dict or as an actual function argument captured from the filters.
I totally get it if the intent is that any keys you use for filters are intended to have string values, though.  There are always going to be values which would serialize correctly for use from the message dict but have no sane way of normalizing them for the filters regex and even simple values like floats can get into the occasional questionable area.  So it may be easiest/safest to just officially say "only use strings for this use case".

So, thinking about this a bit more, two possibilities I'm not sure about yet:

Integers can be used in filters and must be compared directly to integers
You can pass arbitrary functions instead of just regexes and that lets you use lambda x: 50 < x < 400

Neither of these would let you capture groups, though, like you were trying, as that's purely a function of regexes and strings and I don't think it makes sense on other types.

Apparently I got sidetracked and never clicked the comment button...
Well, that second option definitely has some useful potential even if it does not allow the x to be assigned back to the arg for being passed into the consumer function.
The first option probably has some limited use, and I'm generally all for giving people the choice to do something in case it is the right solution, but probably isn't something I'd tend towards using as it looks like it could spiral out of control in the routes and is covered by just having my_route_1, my_route_2 and some code like Channel('my_route_%d' % some_int).send({'foo': 'bar'}) if someone really does want that.  I suppose arguably it would be cleaner than fiddling with the channel name string in that it would be sending to the same channel name every time with a different value for the param passed in.
This is definitely not a "must have" for me.  I was just checking on that in case it was intended to work how I was trying to use it before I went about just using the dict.  This is an awesome system and once it's in django core, it's less to keep up to date vs using celery and gunicorn and gives me websockets on top of that..

I'm not particularly thrilled by either approach, and it's not a blocker on getting arguments in, so I think I'm going to close this for now. We can open and re-visit if some super necessary use case pops up.


[SEDONA-580] New instances of RasterUDT object should equal to the RasterUDT case object

Did you read the Contributor Guide?

Yes, I have read the Contributor Rules and Contributor Development Guide

Is this PR related to a JIRA ticket?

Yes, the URL of the associated JIRA ticket is https://issues.apache.org/jira/browse/SEDONA-580. The PR name follows the format [SEDONA-XXX] my subject.

What changes were proposed in this PR?

Implement equals and hashCode for RasterUDT to ensure that newly created instances of RasterUDT class are equal to the RasterUDT case class.
Fix hashCode for GeometryUDT

How was this patch tested?
Add new tests and manually test on external systems.
Did this PR include necessary documentation updates?

No, this PR does not affect any public API so no need to change the documentation.

Some workflow jobs were cancelled: Received request to deprovision: The request was cancelled by the remote provider., not sure if it is related to the GitHub backend.


"Could not infer literal type, no valid types found"

If I do this:
let list: List[(U8, U8)] = [(1,2), (3,4), (5,6)]

then I get
Could not infer literal type, no valid types found

I suppose this is a weakness in the compiler.

Sorry, I should have used Array instead of List here.


fix(x/tools): upgrade to solve go1.19 linter issue

What this PR does / why we need it
Title says, it does. Ref: https://github.com/golang/go/issues/45584

JIRA ID: XX-XX

Notes for your reviewers

Tested the 1.19 on a few repos w/ no issues.

:tada: This PR is included in version 1.14.1 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Reflect release 5.1.1 - remove fixes from unreleased

Follows: https://github.com/crate/crate/pull/13251

Thanks for catching that @BaurzhanSakhariev !


node_container_create: create container and start container bugs

Reproduce
post request to  http://{{url}}/nodes/{{nodeid}}/containers
with body as json:
{
	"storage": "ardb://hub.gig.tech:16379",
	"flist": "https://hub.gig.tech/maxux/ubuntu1604.flist",
	"id": "wtv",
	"nics": [{
		"type":"default"
	}],
	"hostNetworking": false,
	"initProcesses": [],
	"filesystems":[],
	"hostname": "90ea1d215",
	"ports": []
}

bugs

Response is 201 while body of response is {"error":"500 Internal Server Error"}
Containerid is 0. as indicated by getcontainer api

Informed that containers are not created on core0 unless started.
Reproduce
post request to  http://{{url}}/nodes/{{nodeid}}/containers/{{containerid}}/start
bugs

Response is 500
body of response is :

{
  "error": "\n\n>>>>future exception ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\nTraceback (most recent call last):\n  File \"/tmp/actions/storagepool/8dc2bf69f47629630f6ad5a47988a0b9.py\", line 183, in install\n    pool = node.storagepools.get(name)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 26, in get\n    raise ValueError(\"Could not find StoragePool with name {}\".format(name))\nValueError: Could not find StoragePool with name 95f27fa5db\n\nDuring handling of the above exception, another exception occurred:\n\nRuntimeError: ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\nTraceback (most recent call last):\n  File \"/tmp/actions/storagepool/8dc2bf69f47629630f6ad5a47988a0b9.py\", line 183, in install\n    pool = node.storagepools.get(name)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 26, in get\n    raise ValueError(\"Could not find StoragePool with name {}\".format(name))\nValueError: Could not find StoragePool with name 95f27fa5db\n\nDuring handling of the above exception, another exception occurred:\nTraceback (most recent call last):\n  File \"/usr/lib/python3.5/concurrent/futures/thread.py\", line 55, in run\n    result = self.fn(*self.args, **self.kwargs)\n  File \"/tmp/actions/storagepool/8dc2bf69f47629630f6ad5a47988a0b9.py\", line 185, in install\n    pool = node.storagepools.create(name, devices, metadataProfile, dataProfile, overwrite=True)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 30, in create\n    self._client.btrfs.create(label, devices, metadata_profile, data_profile, overwrite=overwrite)\n  File \"/usr/local/lib/python3.5/dist-packages/g8core/client.py\", line 1052, in create\n    self._client.sync('btrfs.create', args)\n  File \"/usr/local/lib/python3.5/dist-packages/g8core/client.py\", line 446, in sync\n    raise RuntimeError('invalid response: %!s(MISSING)' %!r(MISSING)esult.state, result)\nRuntimeError: ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\n>>>>future exception ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\nTraceback (most recent call last):\n  File \"/tmp/actions/storagepool/17079a58818f2ac8cc9944e159b7d337.py\", line 183, in install\n    pool = node.storagepools.get(name)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 26, in get\n    raise ValueError(\"Could not find StoragePool with name {}\".format(name))\nValueError: Could not find StoragePool with name bb5ae8274e\n\nDuring handling of the above exception, another exception occurred:\n\nRuntimeError: ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\nTraceback (most recent call last):\n  File \"/tmp/actions/storagepool/17079a58818f2ac8cc9944e159b7d337.py\", line 183, in install\n    pool = node.storagepools.get(name)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 26, in get\n    raise ValueError(\"Could not find StoragePool with name {}\".format(name))\nValueError: Could not find StoragePool with name bb5ae8274e\n\nDuring handling of the above exception, another exception occurred:\nTraceback (most recent call last):\n  File \"/usr/lib/python3.5/concurrent/futures/thread.py\", line 55, in run\n    result = self.fn(*self.args, **self.kwargs)\n  File \"/tmp/actions/storagepool/17079a58818f2ac8cc9944e159b7d337.py\", line 185, in install\n    pool = node.storagepools.create(name, devices, metadataProfile, dataProfile, overwrite=True)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 30, in create\n    self._client.btrfs.create(label, devices, metadata_profile, data_profile, overwrite=overwrite)\n  File \"/usr/local/lib/python3.5/dist-packages/g8core/client.py\", line 1052, in create\n    self._client.sync('btrfs.create', args)\n  File \"/usr/local/lib/python3.5/dist-packages/g8core/client.py\", line 446, in sync\n    raise RuntimeError('invalid response: %!s(MISSING)' %!r(MISSING)esult.state, result)\nRuntimeError: ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\n>>>>future exception ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\nTraceback (most recent call last):\n  File \"/tmp/actions/storagepool/fc63f9992f8297b24c81507d5fc0c35f.py\", line 183, in install\n    pool = node.storagepools.get(name)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 26, in get\n    raise ValueError(\"Could not find StoragePool with name {}\".format(name))\nValueError: Could not find StoragePool with name 727d5e4f86\n\nDuring handling of the above exception, another exception occurred:\n\nRuntimeError: ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\nTraceback (most recent call last):\n  File \"/tmp/actions/storagepool/fc63f9992f8297b24c81507d5fc0c35f.py\", line 183, in install\n    pool = node.storagepools.get(name)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 26, in get\n    raise ValueError(\"Could not find StoragePool with name {}\".format(name))\nValueError: Could not find StoragePool with name 727d5e4f86\n\nDuring handling of the above exception, another exception occurred:\nTraceback (most recent call last):\n  File \"/usr/lib/python3.5/concurrent/futures/thread.py\", line 55, in run\n    result = self.fn(*self.args, **self.kwargs)\n  File \"/tmp/actions/storagepool/fc63f9992f8297b24c81507d5fc0c35f.py\", line 185, in install\n    pool = node.storagepools.create(name, devices, metadataProfile, dataProfile, overwrite=True)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 30, in create\n    self._client.btrfs.create(label, devices, metadata_profile, data_profile, overwrite=overwrite)\n  File \"/usr/local/lib/python3.5/dist-packages/g8core/client.py\", line 1052, in create\n    self._client.sync('btrfs.create', args)\n  File \"/usr/local/lib/python3.5/dist-packages/g8core/client.py\", line 446, in sync\n    raise RuntimeError('invalid response: %!s(MISSING)' %!r(MISSING)esult.state, result)\nRuntimeError: ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\n>>>>future exception create() got an unexpected keyword argument 'nics'\n\nTypeError: create() got an unexpected keyword argument 'nics'\n\nTraceback (most recent call last):\n  File \"/usr/lib/python3.5/concurrent/futures/thread.py\", line 55, in run\n    result = self.fn(*self.args, **self.kwargs)\n  File \"/tmp/actions/container/6745c30bae2c99ba103e28f819f3fe87.py\", line 141, in install\n    j.tools.async.wrappers.sync(job.service.executeAction('start'))\n  File \"/opt/jumpscale8/lib/JumpScale/tools/async/Wrappers.py\", line 11, in sync\n    return loop.run_until_complete(coro)\n  File \"/usr/lib/python3.5/asyncio/base_events.py\", line 387, in run_until_complete\n    return future.result()\n  File \"/usr/lib/python3.5/asyncio/futures.py\", line 274, in result\n    raise self._exception\n  File \"/usr/lib/python3.5/asyncio/tasks.py\", line 241, in _step\n    result = coro.throw(exc)\n  File \"/opt/jumpscale8/lib/JumpScale/baselib/atyourservice81/lib/Service.py\", line 677, in executeAction\n    return await self.executeActionJob(action, args)\n  File \"/opt/jumpscale8/lib/JumpScale/baselib/atyourservice81/lib/Service.py\", line 702, in executeActionJob\n    result = await job.execute()\n  File \"/usr/lib/python3.5/asyncio/futures.py\", line 361, in __iter__\n    yield self  # This tells Task to wait for completion.\n  File \"/usr/lib/python3.5/asyncio/tasks.py\", line 296, in _wakeup\n    future.result()\n  File \"/usr/lib/python3.5/asyncio/futures.py\", line 274, in result\n    raise self._exception\n  File \"/usr/lib/python3.5/concurrent/futures/thread.py\", line 55, in run\n    result = self.fn(*self.args, **self.kwargs)\n  File \"/tmp/actions/container/6745c30bae2c99ba103e28f819f3fe87.py\", line 5, in start\n    container.start()\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/Container.py\", line 86, in start\n    self._create_container()\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/Container.py\", line 80, in _create_container\n    storage=self.storage,\nTypeError: create() got an unexpected keyword argument 'nics'\n\n>>>>future exception ('failed to leave zerotier network: %!s(MISSING)', '')\n\nRuntimeError: ('failed to leave zerotier network: %!s(MISSING)', '')\n\nTraceback (most recent call last):\n  File \"/usr/lib/python3.5/concurrent/futures/thread.py\", line 55, in run\n    result = self.fn(*self.args, **self.kwargs)\n  File \"/tmp/actions/zerotier/627b9f9d08f65594c9779d17426b5d6a.py\", line 135, in delete\n    client.zerotier.leave(service.model.data.networkID)\n  File \"/usr/local/lib/python3.5/dist-packages/g8core/client.py\", line 1198, in leave\n    raise RuntimeError('failed to leave zerotier network: %!s(MISSING)', result.stderr)\nRuntimeError: ('failed to leave zerotier network: %!s(MISSING)', '')\n\n>>>>future exception ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\nTraceback (most recent call last):\n  File \"/tmp/actions/storagepool/7f6f290bdf57acc696adb1ac273571e6.py\", line 183, in install\n    pool = node.storagepools.get(name)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 26, in get\n    raise ValueError(\"Could not find StoragePool with name {}\".format(name))\nValueError: Could not find StoragePool with name c3ef72e5fe\n\nDuring handling of the above exception, another exception occurred:\n\nRuntimeError: ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\nTraceback (most recent call last):\n  File \"/tmp/actions/storagepool/7f6f290bdf57acc696adb1ac273571e6.py\", line 183, in install\n    pool = node.storagepools.get(name)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 26, in get\n    raise ValueError(\"Could not find StoragePool with name {}\".format(name))\nValueError: Could not find StoragePool with name c3ef72e5fe\n\nDuring handling of the above exception, another exception occurred:\nTraceback (most recent call last):\n  File \"/usr/lib/python3.5/concurrent/futures/thread.py\", line 55, in run\n    result = self.fn(*self.args, **self.kwargs)\n  File \"/tmp/actions/storagepool/7f6f290bdf57acc696adb1ac273571e6.py\", line 185, in install\n    pool = node.storagepools.create(name, devices, metadataProfile, dataProfile, overwrite=True)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 30, in create\n    self._client.btrfs.create(label, devices, metadata_profile, data_profile, overwrite=overwrite)\n  File \"/usr/local/lib/python3.5/dist-packages/g8core/client.py\", line 1052, in create\n    self._client.sync('btrfs.create', args)\n  File \"/usr/local/lib/python3.5/dist-packages/g8core/client.py\", line 446, in sync\n    raise RuntimeError('invalid response: %!s(MISSING)' %!r(MISSING)esult.state, result)\nRuntimeError: ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\n>>>>future exception ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\nTraceback (most recent call last):\n  File \"/tmp/actions/storagepool/b254b9635b1c0080a9110d487ede91b3.py\", line 183, in install\n    pool = node.storagepools.get(name)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 26, in get\n    raise ValueError(\"Could not find StoragePool with name {}\".format(name))\nValueError: Could not find StoragePool with name 4e7d8002c0\n\nDuring handling of the above exception, another exception occurred:\n\nRuntimeError: ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\nTraceback (most recent call last):\n  File \"/tmp/actions/storagepool/b254b9635b1c0080a9110d487ede91b3.py\", line 183, in install\n    pool = node.storagepools.get(name)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 26, in get\n    raise ValueError(\"Could not find StoragePool with name {}\".format(name))\nValueError: Could not find StoragePool with name 4e7d8002c0\n\nDuring handling of the above exception, another exception occurred:\nTraceback (most recent call last):\n  File \"/usr/lib/python3.5/concurrent/futures/thread.py\", line 55, in run\n    result = self.fn(*self.args, **self.kwargs)\n  File \"/tmp/actions/storagepool/b254b9635b1c0080a9110d487ede91b3.py\", line 185, in install\n    pool = node.storagepools.create(name, devices, metadataProfile, dataProfile, overwrite=True)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 30, in create\n    self._client.btrfs.create(label, devices, metadata_profile, data_profile, overwrite=overwrite)\n  File \"/usr/local/lib/python3.5/dist-packages/g8core/client.py\", line 1052, in create\n    self._client.sync('btrfs.create', args)\n  File \"/usr/local/lib/python3.5/dist-packages/g8core/client.py\", line 446, in sync\n    raise RuntimeError('invalid response: %!s(MISSING)' %!r(MISSING)esult.state, result)\nRuntimeError: ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\n>>>>future exception create() got an unexpected keyword argument 'nics'\n\nTypeError: create() got an unexpected keyword argument 'nics'\n\nTraceback (most recent call last):\n  File \"/usr/lib/python3.5/concurrent/futures/thread.py\", line 55, in run\n    result = self.fn(*self.args, **self.kwargs)\n  File \"/tmp/actions/container/4d2eab1570700b753cfcd3ce6cd37421.py\", line 141, in install\n    j.tools.async.wrappers.sync(job.service.executeAction('start'))\n  File \"/opt/jumpscale8/lib/JumpScale/tools/async/Wrappers.py\", line 11, in sync\n    return loop.run_until_complete(coro)\n  File \"/usr/lib/python3.5/asyncio/base_events.py\", line 387, in run_until_complete\n    return future.result()\n  File \"/usr/lib/python3.5/asyncio/futures.py\", line 274, in result\n    raise self._exception\n  File \"/usr/lib/python3.5/asyncio/tasks.py\", line 241, in _step\n    result = coro.throw(exc)\n  File \"/opt/jumpscale8/lib/JumpScale/baselib/atyourservice81/lib/Service.py\", line 677, in executeAction\n    return await self.executeActionJob(action, args)\n  File \"/opt/jumpscale8/lib/JumpScale/baselib/atyourservice81/lib/Service.py\", line 702, in executeActionJob\n    result = await job.execute()\n  File \"/usr/lib/python3.5/asyncio/futures.py\", line 361, in __iter__\n    yield self  # This tells Task to wait for completion.\n  File \"/usr/lib/python3.5/asyncio/tasks.py\", line 296, in _wakeup\n    future.result()\n  File \"/usr/lib/python3.5/asyncio/futures.py\", line 274, in result\n    raise self._exception\n  File \"/usr/lib/python3.5/concurrent/futures/thread.py\", line 55, in run\n    result = self.fn(*self.args, **self.kwargs)\n  File \"/tmp/actions/container/4d2eab1570700b753cfcd3ce6cd37421.py\", line 5, in start\n    container.start()\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/Container.py\", line 86, in start\n    self._create_container()\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/Container.py\", line 80, in _create_container\n    storage=self.storage,\nTypeError: create() got an unexpected keyword argument 'nics'\n\n>>>>future exception ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\nTraceback (most recent call last):\n  File \"/tmp/actions/storagepool/ef6546f0f5b6e8342182a4d65c62fcd6.py\", line 183, in install\n    pool = node.storagepools.get(name)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 26, in get\n    raise ValueError(\"Could not find StoragePool with name {}\".format(name))\nValueError: Could not find StoragePool with name fe23452883\n\nDuring handling of the above exception, another exception occurred:\n\nRuntimeError: ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)\n\nTraceback (most recent call last):\n  File \"/tmp/actions/storagepool/ef6546f0f5b6e8342182a4d65c62fcd6.py\", line 183, in install\n    pool = node.storagepools.get(name)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 26, in get\n    raise ValueError(\"Could not find StoragePool with name {}\".format(name))\nValueError: Could not find StoragePool with name fe23452883\n\nDuring handling of the above exception, another exception occurred:\nTraceback (most recent call last):\n  File \"/usr/lib/python3.5/concurrent/futures/thread.py\", line 55, in run\n    result = self.fn(*self.args, **self.kwargs)\n  File \"/tmp/actions/storagepool/ef6546f0f5b6e8342182a4d65c62fcd6.py\", line 185, in install\n    pool = node.storagepools.create(name, devices, metadataProfile, dataProfile, overwrite=True)\n  File \"/opt/jumpscale8/lib/JumpScale/sal/g8os/StoragePool.py\", line 30, in create\n    self._client.btrfs.create(label, devices, metadata_profile, data_profile, overwrite=overwrite)\n  File \"/usr/local/lib/python3.5/dist-packages/g8core/client.py\", line 1052, in create\n    self._client.sync('btrfs.create', args)\n  File \"/usr/local/lib/python3.5/dist-packages/g8core/client.py\", line 446, in sync\n    raise RuntimeError('invalid response: %!s(MISSING)' %!r(MISSING)esult.state, result)\nRuntimeError: ('invalid response: ERROR', STATE: ERROR\nSTDOUT:\n\nSTDERR:\n\nDATA:\n\"output: [btrfs-progs v4.8\\nSee http://btrfs.wiki.kernel.org for more information.\\n ERROR: /dev/sda is mounted\\n] ()\"\n)"
}

What I hit was that container creation times out because of the huge flist you use, probably due to bad connection
Regarding the second error, ValueError: Could not find StoragePool with name 4e7d8002c0 Looks storagepool was not created correctly


TUI build is broken (v1.15)

On macOS:
/opt/local/var/macports/build/_Users_sikmir_Projects_macports-ports_net_lagrange/lagrange/work/v1.15.0/src/main.c:70:17: error: use of undeclared identifier 'SDL_HINT_WINDOWS_DPI_AWARENESS'
    SDL_SetHint(SDL_HINT_WINDOWS_DPI_AWARENESS, "permonitor");
                ^
1 error generated.
make[2]: *** [CMakeFiles/app.dir/src/main.c.o] Error 1
make[2]: *** Waiting for unfinished jobs....
/opt/local/var/macports/build/_Users_sikmir_Projects_macports-ports_net_lagrange/lagrange/work/v1.15.0/src/app.c:732:21: error: incompatible pointer types assigning to 'iMainWindow *' (aka 'struct Impl_MainWindow *') from 'iMainOrExtraWindow *' (aka 'struct Impl_Window *') [-Werror,-Wincompatible-pointer-types]
                win = d->window;
                    ^ ~~~~~~~~~

On Linux:
lagrange> /tmp/nix-build-lagrange-1.15.0.drv-0/source/src/main.c:70:17: error: use of undeclared identifier 'SDL_HINT_WINDOWS_DPI_AWARENESS'
lagrange>     SDL_SetHint(SDL_HINT_WINDOWS_DPI_AWARENESS, "permonitor");
lagrange>                 ^
lagrange> 1 error generated.
lagrange> make[2]: *** [CMakeFiles/app.dir/build.make:76: CMakeFiles/app.dir/src/main.c.o] Error 1
lagrange> make[2]: *** Waiting for unfinished jobs....
lagrange> /tmp/nix-build-lagrange-1.15.0.drv-0/source/src/app.c:732:21: error: incompatible pointer types assigning to 'iMainWindow *' (aka 'struct Impl_MainWindow *') from 'iMainOrExtraWindow *' (aka 'struct Impl_Window *') [-Werror,-Wincompatible-pointer-types]
lagrange>                 win = d->window;
lagrange>                     ^ ~~~~~~~~~

GUI build is OK at the same time.
SDL2 - 2.24.2 / 2.26.2
sealcurses - 2022-05-18 (417d77d790ede990b4c149f21c58fd13b8f273cc)

Yeah, the TUI build has not yet been updated for the changes in v1.15.

yeap, can confirm.
I also ended
Same thing happened to me on Archlinux.
[  1%] Building C object CMakeFiles/app.dir/src/main.c.o
/dev/shm/n2/lagrange/src/main.c: In function ‘main’:
/dev/shm/n2/lagrange/src/main.c:70:17: error: ‘SDL_HINT_WINDOWS_DPI_AWARENESS’ undeclared (first
use in this function)
   70 |     SDL_SetHint(SDL_HINT_WINDOWS_DPI_AWARENESS, "permonitor");
      |                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/dev/shm/n2/lagrange/src/main.c:70:17: note: each undeclared identifier is reported only once for each function it appears in
make[2]: *** [CMakeFiles/app.dir/build.make:76: CMakeFiles/app.dir/src/main.c.o] Error 1
make[1]: *** [CMakeFiles/Makefile2:110: CMakeFiles/app.dir/all] Error 2
make: *** [Makefile:136: all] Error 2

The TUI build is fixed in v1.15.2. Don't forget to update to the latest sealcurses.
@m040601 The plan is to make prebuilt binaries of clagrange eventually. I haven't decided exactly how, perhaps using AppImage.

"Next set of home row key links"

This, along with pretty much all the features of the GUI version (that are keyboard-accessible), are in the TUI build as well. They mostly use the same/similar keybindings.
I would still label the TUI port as "experimental", though, because it lacks some affordances that are common in TUI apps. For instance, there could be a content-dependent nano-like keyboard shortcut list in the bottom of the screen. Some of the interactions are also somewhat clunky for TUI as they have been designed for GUI. For example, a cursor-based text selection and link activation mode would be useful.


Upgrade to latest dependencies

Depend on the latest firebase_ml_vision plugin after the following PR goes in: https://github.com/FirebaseExtended/flutterfire/pull/2368 and remove dependency on the custom ml_vision plugin.
Upgrade to the latest version of firebase_core
Upgrade to the latest version of the camera plugin

Closed as of version 0.3.0


Question about the usage of GPU memory

Hi there,
Thanks for your awesome work! The dataset you constructed will be of great help to the field of underwater video enhancement.
It is reported in the paper that the UVE-Net is trained on 4 48GB GPUs. I'm wondering the usage of GPU memory for UVE-Net and UVE-Net-s and the eta training time for the UVEB dataset under your experimental settings. Can I train your network on 2 4090 GPUs?
Thanks for your attention. I'm looking forward to your reply.

I think 24GB of memory is enough to train the small model. If you want to train a large model, you may need to set the batch size or patch_size (gt_size) in the yaml file to a smaller size in the options folder, and the num_frame can also be adjusted. During testing, the corresponding num_frame of yaml can be set to 1 for inference 4k frames. In fact, during testing, in order to maintain consistency with the training, we inferred three frames simultaneously, and the graphics card memory occupied about 33GB.

I think 24GB of memory is enough to train the small model. If you want to train the big model, you may need to set the batch size or patch_size (gt_size) in the yaml file of the options folder to a smaller size,  and the num_frame can also be adjusted. During testing, the corresponding num_frame of yaml can be set to 1 for inference 4k frames. In fact, during testing, in order to maintain consistency with the training, we inferred three frames simultaneously, and the graphics card memory occupied about 33GB.


backport PHP script cleanup fixes to 0.9 branch

Cont issue #1883 and PR #2203 and #2244
Discovered a bug when default_extension_dir=$(php -i | grep extension_dir | sed 's/.*=> //g') isn't safe. Decided to might as well backport #2203 back to the 0.9 branch

@murgatroid99 Michael, can you please review/approve this? Basically just the backport of #2203 to the 0.9 release branch. Only changes were to the scripts. Thanks.


Ideas for MS-Office apps.

Is your feature request related to a problem? Please describe.
No, it is not related to any problem
Describe the solution you'd like
I think we can use an iframe to make the office apps functional, as Microsoft's office.com is completely free of  cost to use. You require an Microsoft account though.
Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
None, apart from remaking it.
Additional context
Add any other context or screenshots about the feature request here.

@MalikIdreesHasanKhan  this idea has a small problem we can't iframe office.com beacuse it reject it insted of this we can use Andrews tech's
By-pass but i think it will not work properly  :)

Could be, I am actually waiting for the iframe bypasser.

Is this relevant: https://github.com/niutech/x-frame-bypass

Is this relevant: https://github.com/niutech/x-frame-bypass

Yes. That's what ours is based of. I'm working on improving the functionality so websites files can still be reached. Some websites such as YouTube won't render correctly due to the content url pointing to the wrong host.

Oh... Brilliant.

Even if it works, I don't wanna get sued because they clearly reject iframe for a reason XD

XD.

I think the feasible solution is to remake it.

I think the feasible solution is to remake it.

some open-source web clones are already there

Like?

@MalikIdreesHasanKhan  like Luckysheet, here is a demo of Luckysheet

This would be good  for powerpoint, except it's chinese https://github.com/petterobam/Online-Powerpoint


feat: construct sumcheck proofs (PROOF-913)

Rationale for this change
Construct sumcheck proofs.
What changes are included in this PR?
Adds a component for constructing sumcheck proofs using a driver.
Are these changes tested?
Yes.

:tada: This PR is included in version 1.87.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Bug: Double Slash or More Commands Not Being Parsed Properly

Thanks to some people over on Discord it was noticed that Gate is not properly handling commands that have more than one slash. This is seemingly related to https://github.com/minekube/gate/blob/9a51e7231917a3b4e4c47b95fdb44b683a0ee37d/pkg/edition/java/proxy/handle_cmd.go#L46 I'm new to Go and Gate overall still so I'm not sure how changing this affects anything else however changing this line to
cmd := message solves the problem from what I can tell. Gate commands like /send still work as well as //wand or /help. Please feel free to test more though before just pushing this change as I know really nothing about how Gate's command handling works and I haven't really tested this thoroughly enough imo.

Thanks, that has fixed it in my testing as well.


Fix gs

resolves #30
Summary of changes:

Statuses are now grouped by state and not scattered
Added logic to handle all possible statuses permutations

including ignored and unmerged paths

Tightened up output

Colors are not consistent across states
Numbering alignments — numbers are now right-aligned when more than 1 digits long
removed source -> destination from renames that are not changed to commit (rename is not tracked)
removed extraneous quotes from filenames

Allowed for certain flags, e.g. —ignored, —renames, and  —no-renames
Added tests

Current coverage is only for gs.fish
Tests are running via Fishtape and are using  fish-mock

@rsa2135
Thank you for your contribution.
I tried your code.
But, It effected ga command.

I am waiting for marge.

Somewhere along the process, some of the character encodings changed. Specifically, ASCII's apostrophe and quotation-mark changed to Unicode's single and double quotation marks which were affecting the regex (and some of the tests). I'm not sure what caused it, perhaps my text-editor or note-taking app. Anyways, I fixed both and it should be working again.

@rsa2135 Cool.
Thank you for resolve.

@rsa2135
I'm sorry. I found other bug about gco command.
So, I reverted.
> gco 1
error: pathspec '?[32m#        modified: ?[30m?(B?[m/idx/ ?[32mLICENSE' did not match any file(s) known to git

Unbeknownst to me, the changes I made to global arr were causing other functions to fail. To solve the issue I reverted the changes I made to the global arr and ga.fish. All changes I made are now contained only in gs.fish, so all functionality that was working before should be working currently.


Mentioning Users in Observation Comments

Often people don't know how to ID an observation but they know someone who might.
I propose functionality that would recognize the @login notation in observation comments as a mention. This would render the notation as a hyperlink to a users profile within the comment while subscribing the mentioned user to the observation and generating an update that would appear in their dashboard similar to:

Implementation (from Ken-ichi's comment below):
Create a plugin that allows any model to have a text field with mentions, so that we can write code like this:
class Comment < ActiveRecord::Base
  mentions_in :body
end

mentions_in :attribute_name should add an after_save callback that creates a delayed job to perform the mention scan. The mention scan should look through the record attribute for instances of @username and for each user, create an Update for which the resource is the record. So if Jenn mentions kueda in a comment 123, then the Update looks like
subscriber: kueda
resource: comment 123

The existing has_subscribers module behaves a lot like this and should be a good starting point. Mentioning could then be integrated into a variety of models, definitely Comment and Identification, but also Observation and Post.
If you're working on this and you're not Ken-ichi, please do all your work in your own fork and in a separate branch called "mentions."

FWIW, I tried writing a Joel-style functional spec for this to get in the habit: https://docs.google.com/document/d/10jBSjRvVL_85kdn_05NynyhPaGMt0T0jeJZpRozNWSk/edit?usp=sharing
Feel free to comment on that. I thought it was a useful exercise, so maybe in the future we can start using functional specs for hashing out new feature ideas and github issues for technical specs.
@snidge, we might need to build blocking in the future, but I'd prefer to try it more open at first to see if that's really a problem. Similarly I think project- or social circle-specific limitations would just decrease adoption.

Current status is on staging, and it's looking good. Some remaining things:

[ ]  mentions in update emails should show the context like the dashboard does. Right now it just says something like "Comment mention"
[ ] make @username links go to /people/:login instead of /users/:id
[ ] updating mentionable text with a mention doesn't seem to generate an update for the mentioned user, e.g. if I make a comment, then edit it and add @pleary, @pleary doesn't get an update

This is great and I just wanted to add that I think working #359 (condensing nav bar notifications) into this would be awesome and help keep power users from being overwhelmed by mentions. I can imagine how quickly the notifications could balloon if ids, comments, and mentions are all triggering individual notifications.

The above tasks are mostly done. At this point I could use a final word on what we want the dashboard and emails to look like. I'm still playing around with how the Update is created (what is the resource and what is the notifier), and that largely depends on how we will display updates. Maybe @kueda and @joellebel you could take a look at the end of https://docs.google.com/document/d/10jBSjRvVL_85kdn_05NynyhPaGMt0T0jeJZpRozNWSk/edit?usp=sharing and make your recommendations. We currently have these kinds of mentions:

mention in Observation description
mention in Observation's comment
mention in Observation's identification remarks
mention in Post

I have a few more detail questions. On the dashboard, most items have a gear icon in the top right of each update asking to unsubscribe, but mentions are different in that we have two user settings to manage them. I have disabled the gear icon, but we could use it and just have it say something like 'go to your settings to manage mentions'.
If a user is mentioned in a comment, and the comment is later edited to remove the user's mention, should we delete the updates created the first time? (we do the opposite - if a comment doesn't mention a user and later is edited to mention a user, the user will then get updates)
What do we do about repeated updates? @alexshepard noted that I can mention someone in a comment their own observation, and they'll get an update about the comment and an update about the mention. Should one take priority? Or should we continue to show both. Maybe a better example is a post from a user you follow that mentions you. You'll get both updates, but the latter will display the user mention with some context rather than the first paragraph.
Similar to this, can I mention the same user in several different comments on the same ticket? I can see a valid use for this - I mention someone and they come and change something. A little later on I get new evidence or something and mention the person to get their attention again for the new detail - which could warrant two separate updates.

At this point I could use a final word on what we want the dashboard and emails to look like.

I think I prefer the alternative at the end of the spec: mentioning user icon on the left, snippet of text including the mention as the main body of the update, and a small preview of the observation for mentions in comments and IDs. @joellebel , thoughts from UX perspective?

I have a few more detail questions. On the dashboard, most items have a gear icon in the top right of each update asking to unsubscribe, but mentions are different in that we have two user settings to manage them. I have disabled the gear icon, but we could use it and just have it say something like 'go to your settings to manage mentions'.

Having the gear show a link to http://www.inaturalist.org/users/edit seems ideal to me. Let's do that.

If a user is mentioned in a comment, and the comment is later edited to remove the user's mention, should we delete the updates created the first time? (we do the opposite - if a comment doesn't mention a user and later is edited to mention a user, the user will then get updates)

Hm, I feel like we should, thought that sounds really annoying to do. I guess the main problem is when you have an unviewed update that someone mentioned you, then you click through to see it and there's no mention, or the snipped of the text on the dashboard doesn't show the mention. Yeah, I guess we should delete them.

What do we do about repeated updates? @alexshepard noted that I can mention someone in a comment their own observation, and they'll get an update about the comment and an update about the mention. Should one take priority? Or should we continue to show both. Maybe a better example is a post from a user you follow that mentions you. You'll get both updates, but the latter will display the user mention with some context rather than the first paragraph.

Hm again. For activity updates like comments, IDs, and mentions, I feel like we should not show duplicates and mentions should get the lowest priority, so if Alex comments on my observation and mentions me, I should get an update about the comment, not the mention. For content updates like observations and posts, I feel like we should show duplicates, so if I follow Alex and he posts and observation that mentions me, I will get the mention update in the header AND the observation update on my dashboard.

Similar to this, can I mention the same user in several different comments on the same ticket? I can see a valid use for this - I mention someone and they come and change something. A little later on I get new evidence or something and mention the person to get their attention again for the new detail - which could warrant two separate updates.

Yes, I think we should generate one update per mentioned user per mentionable record, so if I leave 2 comments on an observation and mention Alex in each, he should get 2 updates. If I leave one comment and mention Alex twice in that single comment, he should get 1 update.

OK I think these things are pretty much done

The gear icon now links to users/edit for mentions
Updating something to remove a mention removes updates associated with that mention
We'll not generate a mention update if we've already generated another update for comments and identifications
But for observations and posts, we will generate multiple updates
A user can be mentioned more than once in different aspects of an object (obs description and comment for example)
The presentation of updates in the dashboard and emails seem ok, but could use some double checking

The last thing to check might be the new setting in users/edit. There are two ways to modify updates and I'm not sure if it's entirely clear as it is (the wording could at least be updated)

My only remaining recommendations would be to remove the label "Receive Activity Notifications From Mentions" from the settings (seems redundant), change the label on the checkbox to "Notify me of mentions (e.g. @username)", and translate that label into English and Spanish (latter using Google Translate). Otherwise I think this looks good to go.

If the main goal of the mention snippet is giving a quick summary and getting the user to the observation, I'm finding the current format a bit overloaded and unfocused in terms of user direction. Currently, there are links to about 6 different places. Secondly, having the species name link to the observation is inconsistent with how we treat species links throughout the site. Lastly, people's dashboards tend to be pretty unruly, so we want to try and minimize text and extraneous links when we can.
The most effective snippet would only contain links to the user and the observation... again if the main goal is to get the user to the ob (which it is, right?).
Lastly, the photo of the ob should also be a link to the ob.
Proposed:

Current: (for comparison)

The idea for gear icon linking to the main settings works for me.
I haven't looked at the emails yet, but they take on the exact format as the dashboard, no?

After a second glance... I don't think we need the "Posted by Kueda 3 days ago"? It's actually a little confusing. It makes it seem like the mention was posted 3 days ago.

I'm fine with trying that layout if Patrick has no objections. IMO, the goal is to get the viewer to the content in which they were mentioned, but I find it helpful to have as much info as possible to know why I should go there. E.g. if you leave a comment on an obs by Patrick that says, "What do you think, @kueda?" and all I see is that text and an image, my mental response will be "About what?" That's incentive to click through, but it's also annoying when I know the software could automatically answer that question for me. Anyway, not something that bothers me that much, just trying to explain myself.
I agree the "Posted by" should probably go.

Account settings updated:

====
I've removed the "posted by..." and shuffled around the icons a bit to match what we currently have. Here is a mention in a comment, mention in an ID, and a display of a traditional ID (it has a mention but shown as a regular ID):

====
And a post:

A lot better!


CameraKit: Invalid Api Token

it's work fine on android, run it on VSCode, but for iOS when open camera kit or lens list show "CameraKit: Invalid Api Token", are there any additional variables in info.plist?

Hi @fahmad480,
It looks like you didn't set the configuration before using it. You need to set the configuration before using the camera kit as we did in the example project.
  @override   void initState() {     super.initState();     _cameraKitFlutterImpl.setCredentials(apiToken: Constants.cameraKitApiToken);   }
Or Follow the documentation How to Set Configuration

My bad, i use example too, but i forget to add that on my new scene. Thanks, ⭐ for this repo


installation-zephyr: fix macos and windows west installation

Signed-off-by: Marti Bolivar<EMAIL_ADDRESS>

Docs for 485ef9d826c16ffee8dc2011726071c5ac3b6170 are browesable at: https://ci.foundries.io/projects/fio-docs/builds/286/docs/artifacts/html/index.html


Documentation update on how to create a pull request

adds guide on how to submit a pull request

I think it would be good to replace the PR example image after PR #321 added the pull request template. I would also prefer not to use the GitHub dark layout.


Supress test standard out unless failure

https://docs.pytest.org/en/7.4.x/how-to/capture-stdout-stderr.html#setting-capturing-methods-or-disabling-capturing
Looking out the docs, honestly the default behavior looks a ton better than what we're getting now which is overwhelmingly loud with DEBUG statements in test runs.
When a test fails it does print the standard out, but if it is successful, nothing gets printed. As the total test count grows... I think we need this.

Test output lines: 2350
Other PRs: 6936

I'd rather see this solved by disabling logging in test_app. (I already do this in the activitystream branch by setting the console handler to use logging.NullHandler instead of logging.StreamHandler, works fine.)
Our tests should ensure that the log functions are called, we don't need to test the output of the logging system - that's testing the logger library, not our code.

My preference - I do want to see log output from failed tests.
These tend to be from mock server requests. Especially if we did this in test_app, that would shield DAB development from seeing the log output we're producing in projects downstream (for test server as well as tests). This output is already too much, it's a thing that needs to be fixed IMO. We just haven't had people use it enough to complain yet.

My main concern is sometimes I want to be able to write print(foo) inside a test and see the result. Maybe losing that isn't the end of the world, I can set a breakpoint and see what I want inside pdb, or manually add -s back in that case. But that's what I was concerned about, because I use that often for debugging things.

My main concern is sometimes I want to be able to write print(foo) inside a test and see the result.

This doesn't prevent that. If the test fails, "foo" will be printed, but if the test passes "foo" will not be printed.


[release-1.11] Fix external CP integration test

This is an automated cherry-pick of #34142

@istio-testing: The following test failed, say /retest to rerun all failed tests or /retest-required to rerun all mandatory failed tests:

Test name
Commit
Details
Rerun command

unit-tests_istio_release-1.11
7165033915464c8b7a694a3b779ab21320930192
link
/test unit-tests_istio_release-1.11

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.

@googlebot I consent.

/test unit-tests_istio_release-1.11


spring boot version updated to 3.1.4

Spring Boot version updated to 3.1.4  #33

@monukd01dev Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

Superseded by subsequent commits.


Width of  on /foundation is too small, rendering poor hovering effect for long titles.

Width of the sidebar on /foundation page is too small to accommodate long titles such as "Technical Steering Committee" in one line. We should either

use abbreviation (TS Committee)
or adjust the width of <aside> i.e. adjust the decided grid layout
or consider smaller font-size *

However former solution seems to be more aesthetically pleasing.
*nodejs.org uses font-size of 14px while new.nodejs.org using 20px/1.5 (on my 13" MBA)

Maybe rename just to "Technical" and then we can use the page to layout all the technical governance stuff, starting with the TSC?

Okay, did a quick fix for this (changed title to "Technical Governance" and slightly increased the width). This will probably become an issue again during i18n.


Error reporting in missing switch case is excessive

This switch is missing a case.
This much error highlighting makes the code difficulty to read. Consider reporting it on the 'switch (..)' text only.

IntelliJ IDEA (Minerva) IU-142.3050.1
Build #IU-142.3050, built on July 7, 2015
JRE: 1.8.0_40-internal-b82 x86_64
JVM: OpenJDK 64-Bit Server VM by JetBrains s.r.o

https://codereview.chromium.org/1252123004/


feat: wrap breadcrumb to prevent a11y warning

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 62.557%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
1240

Relevant Lines:
1724

💛  - Coveralls


[Bug report] Incorrect work of the plugin with the TG 3.1.7 (beta)

Plugin does not work correctly with latest Telegram version 3.1.7 (beta)
The error appears when opening any chat

Configuration

Operating system: Windows 11 22471.1000
Version of Telegram: 3.1.7 (beta)
Version of the plugin: 0.4.1

Yes, the plugin needs to be updated, for now you can use the Telegram x64 version which works fine, I will release a new version later to fix the error on x86.

我这3.1.8，64位也报错了。

Fixes are released in the new version v0.4.2.


Selection doesn't work correctly when we select a line from right to left

Compose b8ccac759f3a4b2f515cb75a0b8b70d677dfc389, Windows 11

run desktop/run1 in the Compose sources. Or use this snippet:

import androidx.compose.foundation.ExperimentalFoundationApi
import androidx.compose.foundation.layout.padding
import androidx.compose.foundation.text.selection.SelectionContainer
import androidx.compose.material.Text
import androidx.compose.ui.*
import androidx.compose.ui.unit.dp
import androidx.compose.ui.window.singleWindowApplication

fun main() = singleWindowApplication {
    SelectionContainer {
        Text(
            text = "fun <T : Comparable<T>> List<T>.quickSort(): List<T> = when {\n" +
                    "  size < 2 -> this\n" +
                    "  else -> {\n" +
                    "    val pivot = first()\n" +
                    "    val (smaller, greater) = drop(1).partition { it <= pivot }\n" +
                    "    smaller.quickSort() + pivot + greater.quickSort()\n" +
                    "   }\n" +
                    "}",
            modifier = Modifier
                .padding(10.dp)
        )
    }
}

select text from right to left
3 See that that upper lines are selected too:
https://user-images.githubusercontent.com/5963351/229040757-97f46afd-e99c-47ff-ad7c-e67cbd3da1ae.mp4

Expected:
we select only the current line

Reproducible also in 1.2.0, no need to fix in 1.4.0

The same whe we select from left to right - we select all text to the end.
Let's treat it as a feature.

Please check the following ticket on YouTrack for follow-ups to this issue. GitHub issues will be closed in the coming weeks.


"are" -> "as". Fix word use in spec.

Was making a toy Redis server in Java (https://app.codecrafters.io/courses/redis) which had me reading the spec at redis.io/topics/protocol.
This sentence didn't make sense to me, so I've edited in what I think is the intended meaning.

Was making a toy Redis server in Java (https://app.codecrafters.io/courses/redis) which had me reading the spec at redis.io/topics/protocol.
This sentence didn't make sense to me, so I've edited in what I think is the intended meaning.


Fixed dragged move without Zoom

When the crop area is fixed, the image wont move if the zoom its not applied in image.

I will try to improve this in the next minor version.

We supports this in the v0.8.0. Thanks~


coin keeps growing since no way to burn a corn in LibraCoin system module

If you go through the code, you can only mint coin and can't burn a coin.
There is a destroy_zero method but the coins in the system keeps growing.
Is this the desired behavior?

@bmwill is this desired behavior?

Good question! I'm not totally sure, let me forward this to folks who would know.

Yes, this is intentional. In the production version of Libra core, LibraCoin.T's will only be able to be burned by an Association-controlled account (and will be burned only when the physical backing assets are sold, see the Libra whitepaper for more details on this).
However: in the current testnet, LibraCoin.T's get burned in the transaction epilogue because we have not yet implemented the logic for distributing transaction fees.
Note that any user can effectively burn a LibraCoin.T by sending it to a random address.


Add Commands section to README

What Does This PR Do
Adds a commands section in the readme describing several scripts that can be run
Anything Else We Should Know
I don't think this list is exhaustive (haven't reviewed all files) so I could be missing something. Nevertheless, this is a good starter PR and I hope you'll accept it! :)
Also, I should have an updated list of commands once I reviewed all files.

LGTM! Thanks!

LGTM! Thanks!


ps6000a driver assumes that every channel gets the same number of samples

Hi!
I'm writing a C++ wrapper/driver for PicoSDK and browsed through your repository to see how others handled the very poorly documented API around continuous streaming. Especially the buffer management is quite mysterious in the PDF and the header files, unfortunately ...
I noticed that you assume that ps6000aGetStreamingLatestValues will give the same noOfSamples_ in the streaming data info for every queried channel, so you use the value of the first structure: https://github.com/meatysolutions/pico-sdk/blob/d6c72a0ebdbd04f1bc2072a7a396b43bec2338c2/driver/src/ps6000a.rs#L290
Unfortunately, I can tell you from experience that this is definitely not the case :-( It is most of the time, but not always. I don't know the exact conditions that trigger this, but it's probably related to some buffer wraparound in the SDK. You'll then get a smaller number of samples in the first call for the second channel (in case you have 2 enabled channels), but they'll catch up again on the second call or so (i.e., you get a higher number of samples).
I'm not using this library myself, but I thought it might be useful for you to know about this quirk. Feel free to close this issue if you don't see this in your usage scenario.

Here is an example log with 2 channels - note how the sample counts differ for 2 calls and then return to be "synced":
[2024-04-08 15:17:10.265] [trace] > ps6000aGetStreamingLatestValues(handle=16384,streamingDataInfo=0x19940b988e0,nStreamingDataInfos=2,triggerInfo=0x83549fe388)
[2024-04-08 15:17:10.265] [trace] < 0x00000000
[2024-04-08 15:17:10.265] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 0 bufferIndex=0 startIndex=199200 noOfSamples=49800
[2024-04-08 15:17:10.265] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 2 bufferIndex=0 startIndex=199200 noOfSamples=49800
[2024-04-08 15:17:10.269] [trace] > ps6000aGetStreamingLatestValues(handle=16384,streamingDataInfo=0x19940b988e0,nStreamingDataInfos=2,triggerInfo=0x83549fe388)
[2024-04-08 15:17:10.269] [trace] < 0x00000000
[2024-04-08 15:17:10.269] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 0 bufferIndex=0 startIndex=0 noOfSamples=0
[2024-04-08 15:17:10.269] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 2 bufferIndex=0 startIndex=0 noOfSamples=0
[2024-04-08 15:17:10.370] [trace] > ps6000aGetStreamingLatestValues(handle=16384,streamingDataInfo=0x19940b98950,nStreamingDataInfos=2,triggerInfo=0x8354afe1e8)
[2024-04-08 15:17:10.370] [trace] < 0x00000197
[2024-04-08 15:17:10.370] [trace] > ps6000aSetDataBuffer(handle=16384,channel=0,buffer=0x199413da160,nSamples=250000,dataType=1,waveform=0,downSampleRatioMode=-2147483648,action=2)
[2024-04-08 15:17:10.370] [trace] < 0x00000000
[2024-04-08 15:17:10.370] [trace] > ps6000aSetDataBuffer(handle=16384,channel=2,buffer=0x19941a9a160,nSamples=250000,dataType=1,waveform=0,downSampleRatioMode=-2147483648,action=2)
[2024-04-08 15:17:10.370] [trace] < 0x00000000
[2024-04-08 15:17:10.370] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 0 bufferIndex=0 startIndex=249000 noOfSamples=1000
[2024-04-08 15:17:10.370] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 2 bufferIndex=0 startIndex=249000 noOfSamples=1000
[2024-04-08 15:17:10.370] [trace] > ps6000aGetStreamingLatestValues(handle=16384,streamingDataInfo=0x19940b98950,nStreamingDataInfos=2,triggerInfo=0x8354afe1e8)
[2024-04-08 15:17:10.370] [trace] < 0x00000197
[2024-04-08 15:17:10.370] [trace] > ps6000aSetDataBuffer(handle=16384,channel=0,buffer=0x19941454280,nSamples=250000,dataType=1,waveform=0,downSampleRatioMode=-2147483648,action=2)
[2024-04-08 15:17:10.370] [trace] < 0x00000000
[2024-04-08 15:17:10.370] [trace] > ps6000aSetDataBuffer(handle=16384,channel=2,buffer=0x19941b14280,nSamples=250000,dataType=1,waveform=0,downSampleRatioMode=-2147483648,action=2)
[2024-04-08 15:17:10.370] [trace] < 0x00000000
[2024-04-08 15:17:10.370] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 0 bufferIndex=1 startIndex=0 noOfSamples=28880
[2024-04-08 15:17:10.370] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 2 bufferIndex=1 startIndex=0 noOfSamples=18920
[2024-04-08 15:17:10.371] [trace] > ps6000aGetStreamingLatestValues(handle=16384,streamingDataInfo=0x19940b98950,nStreamingDataInfos=2,triggerInfo=0x8354afe1e8)
[2024-04-08 15:17:10.371] [trace] < 0x00000000
[2024-04-08 15:17:10.371] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 0 bufferIndex=1 startIndex=28880 noOfSamples=19920
[2024-04-08 15:17:10.371] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 2 bufferIndex=1 startIndex=18920 noOfSamples=29880
[2024-04-08 15:17:10.371] [trace] > ps6000aGetStreamingLatestValues(handle=16384,streamingDataInfo=0x19940b98950,nStreamingDataInfos=2,triggerInfo=0x8354afe1e8)
[2024-04-08 15:17:10.371] [trace] < 0x00000000
[2024-04-08 15:17:10.371] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 0 bufferIndex=1 startIndex=0 noOfSamples=0
[2024-04-08 15:17:10.371] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 2 bufferIndex=1 startIndex=0 noOfSamples=0
[2024-04-08 15:17:10.472] [trace] > ps6000aGetStreamingLatestValues(handle=16384,streamingDataInfo=0x19940b98870,nStreamingDataInfos=2,triggerInfo=0x83549fe388)
[2024-04-08 15:17:10.472] [trace] < 0x00000000
[2024-04-08 15:17:10.472] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 0 bufferIndex=1 startIndex=48800 noOfSamples=49800
[2024-04-08 15:17:10.472] [picoScope:PicoScopeInstance1] [trace] [pcs] ch 2 bufferIndex=1 startIndex=48800 noOfSamples=49800

Thanks for the info, I wasn't aware of this!


Convert StringExtensionTests to Constraint model

Finished and merged to convert-unit-tests-to-constraint-model-5


FaunaDB support

Is your feature request related to a problem? Please describe.
I know this would be rocket science at this point, but do you think would it possible to support FaunaDB?
Describe the solution you'd like
Having FaunaDB handled by mikro-orm would be great but I understand the difficulties behind the task
Describe alternatives you've considered
Working with the faunadb driver directly is good, but not as good as using mikro-orm
Additional context
https://fauna.com/

No plans to add such driver in near future, you could try to implement it yourself, if the API is similar to mongo driver, it should be quite easy (check its source code). Will be happy to assist with that.

No plans to add such driver in near future, you could try to implement it yourself, if the API is similar to mongo driver, it should be quite easy (check its source code). Will be happy to assist with that.


Fix bug in calculating byteLength for indexComponentType

Should resolve issue #280 .

@stevk , Small change, so going to merge directly.

Merged.


AdvancedBloomFilter causes an error

Hi,
Using AdvancedBloomFilter from pixijs-filters gives an error on Google Chrome Version 108.0.5359.124 (Official Build) (x86_64):
[.WebGL-0x1100a871c00] GL_INVALID_OPERATION: Feedback loop formed between Framebuffer and active Texture.

Example sandbox:
https://codesandbox.io/s/pixi3d-advanced-bloom-filter-error-xunih9?file=/src/index.js

Hello, I’ll take a look after the holidays.


Extend the technical pillar intro + add summary of software engineering

An attempt to close #288.
Not sure what we agreed on in terms of resources to use, but for now I just followed the Wikipedia page on Software Engineering, adding a bit more content in the current intro. I am not at all an expert on this, I just thought that such a structure would be good.
For a dedicated subsection, I think it would be better to get suggestions from an expert.

I quickly drafted a subsection on the classical software engineering skills, based on this table from the SWEBOK, without looking into details how they mean each KA. But I guess this is not too far from the intended.

@jpthiele please check and extend if needed.

I applied the feedback from today, ready for review again.

I've played around with the order a little and undid some of @MakisH changes to keep the intro to Section 4 shorter. I have introduced a "Relationship to SE" Section 4.1. It all does feel a little repetitious. Maybe we should sort out #291 first as that goes into the intro. We can then cut out some of the repetitions in Section 4.
Anyway, my changes are in branch https://github.com/the-teachingRSE-project/competencies/tree/fix-288-mh which goes on top of this branch.

I think we may want to discuss this again at a meeting. The new text would shift the definition from "an RSE is somewhere in the spectrum from R...SE to an RSE is close to SE, as it says "An RSE is also an SE" (which many people identifying as RSE might object to) and also things like "research software engineers are also competent software engineers.
As such, they solve complex software engineering problems, and design software as a user-oriented, future-proof product.". Some RSEs surely are at such a level, many are not and would feel excluded. This is essentially again the question whether to consider "researchers who code" as RSEs. I certainly do.

@knarrff I can certainly refine the text to make it more inclusive. This was written with the intention to strengthen the software engineering character of an RSE, as this was previously pointed out to be weak. I can write it in the lines of "many do, but not everyone".
I will try to do this over the weekend, but I will not be there on the meeting this Monday (conference). Let's keep the arguments documented here, I think we also make progress faster like this.

I looked at this together with the PR by @mhagdorn and I feel that his changes provided the counterweight that I needed here.

Thank you all for wrapping this up without me, and sorry that I could not be more active this week to apply the latest feedback (good morning from WCCM2024). Looks very good! :+1:


Update QUICHE from 765317378 to 6a62cc567

https://github.com/google/quiche/compare/765317378..6a62cc567
$ git log 765317378..6a62cc567 --date=short --no-merges --format="%ad %al %s"

2024-01-26 wub Add gfe2::test::SimpleClient::MaybeConfigureSocket to configure the socket fd after it is created.
2024-01-25 martinduke Report the correct error when parameter length mismatches, and pipe error type code through the ParsingError() functions.
2024-01-25 martinduke Use MOQT standard SubscribeError codes from draft-02.
2024-01-25 martinduke Clean up MoQT error cases:
2024-01-24 birenroy Uses constexpr to improve header validation code generation. Thank you to<EMAIL_ADDRESS>for the suggestion!
2024-01-23 vasilvv Fix ODR violtions in quic/core
2024-01-23 wub No public description
2024-01-22 vasilvv Fix standalone QUICHE build
2024-01-22 martinduke Exit function early on QUIC_BUG. Verified to fix the repro.
2024-01-20 dschinazi Allow masque_server to check signature auth on GET requests
2024-01-19 dschinazi Add GET request support to MASQUE client code
2024-01-19 bnc Use NumBytesConsumed() to determine number of bytes associated with request.
2024-01-19 martinduke Reduce QUIC load balancer copies by passing the result as an argument.
2024-01-19 danzh Add a new platform API QuicheScopedDisableExitOnDFatal to allow Envoy's QUIC code switching to use platform API implementation under net/quic/platform_overrides/.
2024-01-18 martinduke Move simple decryption cases out of LoadBalancerConfig.
2024-01-18 vasilvv In WebTransport over HTTP/2, implement basic stream support.

/assign @danzh2010

@mattklein123 Ok, now that the coverage issues are sorted out via #32150, can you stamp this again? Sorry for the churn.


Starlight v2

This is a draft branch and there's a good chance that cloning branch v2 will result in highly unstable, buggy, and half-written code. Anything built under this branch is not meant to be permanent. Refer to the main branch for the latest stable version of Starlight.
This PR will not be merged because I'm slow and don't know how to do things right. This will be force pushed to the main branch upon completion.

Current plans:

Refactor from the bottom-up and clean up any redundant code.
Document all public API code with inline documentation.
Make every single function run asynchronously with CancellationToken support.
Completely redo exception throwing, catching, etc.
Reimplement logging.
Implement a synchronous namespace to run all functions synchronously.

Finished refactoring Starlight.Apis.

Self-note: sometime later just completely rewrite ClientInstance.cs because it's messy.

Bug: freezes when getting task scheduler idk why but note to self to fix it.

Forgot to turn on my home computer before school so I can't work on it remotely today. I have unpushed commits.

Took a bit of a break; I'll probably start working on it again but my school firewall blocked my IP (probably from all the bandwidth) so I won't be doing it at school right now.

Many of the changes to Starlight at this time are uncommitted changes I made to the HackerFramework dependency to make interoperability easier and memory scan speeds faster.


[Gateway] Design a New Websocket API

Description:

Existing feature in 2.2.x
Support WS and WSS support in gateway

The option to create WebSocket APIs is given in API Publisher, but the following issues are there with WebSocket API creation flow in publisher.

REST API create page is given as the websocket API create page. If it is a WebSocket API, there should be a clear indication in the page topic and the description as well, that the creating API is a WS API.

API Definition tab should be hidden in WS APIs.
Prototyping API option should be hidden in WS APIs
Loadbalancer, failover endpoint configs, Endpoint type selection dropdown, and endpoint security options should be removed from Endpoint tab of a WS API
Transport selection option, response caching, API security, mutual ssl, Authorization header customization option should be removed from WS APIs
Scopes and resources tab should be removed

Creating a websocket API, creates an API of type HTTP. Instead it should be of type WS

The Environments show the HTTP endpoints instead of WS and Microgateway component is visible


I would like to exclude the root vendor folder, but be able to include a vendor folder inside my assets folder.
root
---- vendor <== exclude
---- assets
-------- vendor <== Keep

I ran into this issue as well. I created #4 to fix it.


Convert to caffe2 from caffe1

Hi,
I have model that predict the age, the problem is that it run very slow for my needs.
for instance:
I go over 200 images in 1 minute.
My computer info is:
i7,16GB Memory,gtx 1070.
If i will convert the model to caffe2, the speed may be improve?
Thanks for your help.

It seems to be that your Caffe2 build might be slow - did you turn on typical optimization options? Caffe's installation page might be a good start:
http://caffe.berkeleyvision.org/installation.html
Basically, C and C2 during inference time, using the same library, may give one very similar performance.

Hi @Yangqing, can you expand or give a link for the optimization options, thanks.


PR Title for PR-1203

This is a pull request for PR-1203.

Generating PR code suggestions
Work in progress ...

Generating PR code suggestions
Work in progress ...

Preparing review...

PR Reviewer Guide 🔍

⏱ Estimated effort to review: 1 🔵⚪⚪⚪⚪
🏅 Score: 95
🧪 PR contains tests
🔒 No security concerns identified

⚡ Key issues to review
Code ImprovementAdding 'print("auto")' is a small improvement that enhances readability and automation.

Generation Model with RAG True
qwen2.5-1.5b-ins-bf16

Preparing review...

PR Reviewer Guide 🔍

⏱ Estimated effort to review: 1 🔵⚪⚪⚪⚪
🏅 Score: 95
🧪 No relevant tests
🔒 No security concerns identified
🔀 No multiple PR themes

⚡ Key issues to review
Code StyleThe PR introduces a print statement outside of a function which is generally discouraged in Python. It is recommended to encapsulate this print statement within a function for better code organization and maintainability.

Generation Model with RAG False
qwen2.5-1.5b-ins-bf16

Generating PR code suggestions
Work in progress ...


Add App(resolver=...) for app-wide default resolver

Fixes #729
Changes proposed in this pull request:

explicitly allow setting 'resolver' in the App

NB - This only worked pre connexion 2.0 because old_style_options** passed all kwargs from App to Api.

build is broken with new flake8 errors - fix is in #736

@jmcs any other thoughts on this one?


[ts] parameter --name not respected

Description
the current ts branch doesn't seem to respect the parameter --name.
The name should be "Webex-Teams" but actually is "SignintoWebexTeams":

And also the output directory and binary names are wrong.
Steps to reproduce issue

specify a name different from the website title
check the build output

Details

Are you nativefying a public website? yes
Full nativefier command used to build your app: nativefier --name "Webex-Teams" --platform linux --arch x64 --electron-version 8.0.1 --tray --single-instance --counter --bounce --honest https://teams.webex.com --verbose
Version of Nativefier (run nativefier --version): 53a92de14921103a59ae640bd1d635a91181db60
Version of node.js (run node --version): v10.15.2
OS: Ubuntu 19.10
Error message / stack trace (if any):

$ nativefier --name "Webex-Teams" --platform linux --arch x64 --electron-version 8.0.1 --tray --single-instance --counter --bounce --honest https://teams.webex.com --verbose
Running in verbose mode! This will produce a mountain of logs and is recommended only for troubleshooting or if you like Shakespeare.

Performing async options post-processing.
Inferring user agent for electron 8.0.1 / linux
Grabbing electron<->chrome versions file from https://atom.io/download/atom-shell/index.json
Inferring icon for https://teams.webex.com/ on linux
Inferring icon from store for https://teams.webex.com/ on linux
Allowed icon formats when building for linux: [ '.png', '.ico' ]
Got name Webex-Teams from options. No inferring needed
Sanitized filename for Webex-Teams : Webex-Teams
Inferring name for https://teams.webex.com/
Got 249 icons from gitcloud
Max icon match score: 0
No relevant icon in store.
Trying to extract a .png icon from the page.
Fetched 1.7 kb page at https://teams.webex.com/
Inferred title: Sign in to Webex Teams
Sanitized filename for Sign in to Webex Teams : SignintoWebexTeams
Associated electron v8.0.1 to chrome v80.0.3987.86
Given chrome 80.0.3987.86 on linux, using user agent: Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.86 Safari/537.36
Got an icon from the page.
Writing 148.6 kb icon to /tmp/nativefier-13-27-9-iconinfer-31435eaOonpVhCKSv/icon.ico

Preparing Electron app...
Copying electron app from /home/leinardi/Workspace/github/nativefier/app to /tmp/nativefier-13-27-9-app-31435hN5boGqxb2o5
Writing app config to /tmp/nativefier-13-27-9-app-31435hN5boGqxb2o5/nativefier.json
No files to inject, skipping copy.
Updating /tmp/nativefier-13-27-9-app-31435hN5boGqxb2o5/package.json 'name' field to signintowebexteams-nativefier-ff9bb8

Converting icons...
Converting icon /tmp/nativefier-13-27-9-iconinfer-31435eaOonpVhCKSv/icon.ico to /tmp/nativefier-13-27-9-iconconv-31435yunJGok81MX2/icon.png. Calling: "/home/leinardi/Workspace/github/nativefier/lib/icon-scripts/convertToPng" "/tmp/nativefier-13-27-9-iconinfer-31435eaOonpVhCKSv/icon.ico" "/tmp/nativefier-13-27-9-iconconv-31435yunJGok81MX2/icon.png"
Failed to convert icon to .png, skipping. { stdOut: '',
  stdError:
   '/bin/sh: 1: /home/leinardi/Workspace/github/nativefier/lib/icon-scripts/convertToPng: not found\n' }

Packaging... This will take a few seconds, maybe minutes if the requested Electron isn't cached yet...
  electron-packager Electron Packager 14.2.1
  electron-packager Node v10.15.2
  electron-packager Host Operating system: linux 5.3.0-29-generic (x64) +0ms
  electron-packager Packager Options: {"arch":"x64","asar":false,"darwinDarkModeSupport":false,"dir":"/tmp/nativefier-13-27-9-app-31435hN5boGqxb2o5","electronVersion":"8.0.1","icon":"/tmp/nativefier-13-27-9-iconinfer-31435eaOonpVhCKSv/icon.ico","name":"SignintoWebexTeams","out":"/home/leinardi/Workspace/github/nativefier","overwrite":true,"platform":"linux","targetUrl":"https://teams.webex.com/","tmpdir":false,"win32metadata":{"ProductName":"Webex-Teams","InternalName":"Webex-Teams","FileDescription":"Webex-Teams"}} +1ms
  electron-packager Target Platforms: linux +0ms
  electron-packager Target Architectures: x64 +0ms
  electron-packager Inferring appVersion from version in /tmp/nativefier-13-27-9-app-31435hN5boGqxb2o5/package.json +0ms
  electron-packager Application name: SignintoWebexTeams +5ms
  electron-packager Target Electron version: 8.0.1 +0ms
  electron-packager Ignored path regular expressions: [ '/\\.git($|/)',
  '/node_modules/\\.bin($|/)',
  '\\.o(bj)?$',
  '/tmp/electron-packager' ] +0ms
  electron-packager Downloading Electron with options {"platform":"linux","arch":"x64","version":"8.0.1","artifactName":"electron"} +0ms
Packaging app for platform linux x64 using electron v8.0.1
  electron-packager Creating /home/leinardi/Workspace/github/nativefier/linux-x64-template +2ms
  electron-packager Extracting /home/leinardi/.cache/electron/httpsgithub.comelectronelectronreleasesdownloadv8.0.1electron-v8.0.1-linux-x64.zip/electron-v8.0.1-linux-x64.zip to /home/leinardi/Workspace/github/nativefier/linux-x64-template +1ms
  electron-packager Initializing app in /home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-linux-x64 from /home/leinardi/Workspace/github/nativefier/linux-x64-template template +0ms
  electron-packager Ignored paths based on the out param: [ '/home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-darwin-x64',
  '/home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-linux-ia32',
  '/home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-linux-x64',
  '/home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-linux-armv7l',
  '/home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-linux-arm64',
  '/home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-linux-mips64el',
  '/home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-mas-x64',
  '/home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-win32-ia32',
  '/home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-win32-x64',
  '/home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-win32-arm64' ] +1s
  electron-packager Renaming electron to SignintoWebexTeams in /home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-linux-x64 +116ms

Finalizing build...
Copying icons if necessary
Copying icon /tmp/nativefier-13-27-9-iconinfer-31435eaOonpVhCKSv/icon.ico to /home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-linux-x64/resources/app/icon.ico
App built to /home/leinardi/Workspace/github/nativefier/SignintoWebexTeams-linux-x64

In the current master the build output and app name are correctly set:
$ nativefier --name "Webex-Teams" --platform linux --arch x64 --electron-version 8.0.1 --tray --single-instance --counter --bounce --honest https://teams.webex.com --verbose
  icons [==============================                    ] 60%Packaging app for platform linux x64 using electron v8.0.1

App built to /home/leinardi/Workspace/github/nativefier/Webex-Teams-linux-x64

@leinardi thanks! Fixed in dd192c749063ec54e486c40c5f8b072569f05dbe ! Thanks a lot for the testing 🙂! Keep it coming if you see more broken tests.

I can confirm is fixed :+1:


Sport a higher timeout setting when running tests in a cold Sandbox

Summary
When running Stryker in an angular-cli project for example, you might get a lot of timeout mutants. The reason for this is that running tests in a cold sandbox (a sandbox that didn't run tests before) takes more time. Even though we measure test runner overhead during initial test run it still can result in an unexpected timeout when all sandboxes are starting in parallel.
Suggestion
They idea for this feature is that we configure a higher timeout for cold sandboxes. I was thinking timeoutMS * 2.
Another approach might be to allow for a slower ramp-up of Sandboxes. Making them not all start at the same time. But that would take a bit more time.

We start two sandboxes in parallel right now. I believe this fixes the issue. If that's not the case, we'll revisit this issue.


Adding setters&getters for arrays

For all types (int, double, String, boolean). It will be great feature =)

Are array setters still needed?


Updated auth interface

Approved by @asim

Why do we need to update auth  interface? any improvement?

@crazybber yes, now it support authentication and authorization


Alpha

Codecov Report
Patch and project coverage have no change.

Comparison is base (f365902) 100.00% compared to head (c50e8cb) 100.00%.

:exclamation: Your organization is not using the GitHub App Integration. As a result you may experience degraded service beginning May 15th. Please install the Github App Integration for your organization. Read more.
Additional details and impacted files
@@            Coverage Diff            @@
##              main       #22   +/-   ##
=========================================
  Coverage   100.00%   100.00%
=========================================
  Files            7         7
  Lines          466       466
  Branches        60        60
=========================================
  Hits           466       466

Flag
Coverage Δ

3.10
?

3.2.16
?

3.8
100.00% <ø> (ø)

3.9
100.00% <ø> (ø)

4.1.2
100.00% <ø> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


LocalCLIDebugWrapperSession hides exception messages

Environment info
Operating System: osx
Installed version of CUDA and cuDNN: no
If installed from binary pip package, provide:

A link to the pip package you installed: nightly, python3, today
The output from python -c "import tensorflow; print(tensorflow.__version__)":1.0.1

import tensorflow as tf
with tf.device('/gpu:0'):
    x = tf.get_variable('W', shape=[10])

sess = tf.Session()
from tensorflow.python import debug as tf_debug
sess = tf_debug.LocalCLIDebugWrapperSession(sess)
sess.run(tf.global_variables_initializer())

My machine doesn't have GPU, and the above code throws:
OSError: Dump root directory /var/folders/3t/1kq225bs04j3k_2rbdcn2g34g86_w8/T/tfdbg_fw0uylcr does not exist

But it should throw the device error, like when debug session is not used:
Cannot assign a device to node 'W': Could not satisfy explicit device specification '/device:GPU:0' because no devices matching that specification are registered in this process; available devices: /job:localhost/replica:0/task:0/cpu:0

@ppwwyyxx thank you very much for reporting this issue. I'll take a look at it soon.

Update: the underlying cause of this bug is that LocalCLIDebugWrapper attempts to intercept OpErrors that happen during the underlying tf.Session.run() calls. It works if the OpError happens in the middle of a graph execution, which will generate the debug dump directory. But in this case, the OpError (due to invalid device name) happens before the graph execution even happens, so there is no debug dump directory and LocalCLIDebugWrapper generates an error message that masks the original exception. I will push a fix to this issue soon.


tf.pad is limited to six dimensions

> A = tf.zeros([1] * 7)
> tf.pad(A, [[0, 0]] * 6 + [[0, 1]])
...
UnimplementedError: inputs rank not in [0,6]: 7 [Op:Pad]
> tf.pad(A[0], [[0, 0]] * 5 + [[0, 1]])
<tf.Tensor: id=50, shape=(1, 1, 1, 1, 1, 2), dtype=float32, numpy=array([[[[[[0., 0.]]]]]], dtype=float32)>

@terhorst
I am not seeing any issue with recent nightly version (!pip install tf-nightly==2.1.0dev20191202). Please, find the gist here. Thanks!

Alright, thanks!
On Tue, Dec 3, 2019 at 5:39 AM ravikyram<EMAIL_ADDRESS>wrote:

@terhorst https://github.com/terhorst
I am not seeing any issue with recent nightly version (!pip install
tf-nightly==2.1.0dev20191202). Please, find the gist here.
https://colab.sandbox.google.com/gist/ravikyram/5d638694576b69a824eff8b0ba308469/untitled436.ipynb
Thanks!
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/tensorflow/tensorflow/issues/34772?email_source=notifications&email_token=AAAEOHBLTCHEUC23VG7ISS3QWYZPDA5CNFSM4JUJJKNKYY3PNVWWK3TUL52HS4DFVREXG43VMVBW63LNMVXHJKTDN5WW2ZLOORPWSZGOEFY5K4Q#issuecomment-561108338,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAAEOHGNOHJDW4QKAFN3KWTQWYZPDANCNFSM4JUJJKNA
.

--
Jonathan
<EMAIL_ADDRESS>

@terhorst
Can i close this thread as issue got resolved?. Thanks!

Yep. Thanks.


libgit2: 1.7.1 -> 1.7.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://github.com/libgit2/libgit2/releases.
meta.description for libgit2 is: Linkable library implementation of Git that you can use in your application
meta.homepage for libgit2 is: https://libgit2.org/
Updates performed

Version update

To inspect upstream changes

Release on GitHub

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 1.7.2 with grep in /nix/store/91vlhwf2ibs1ykhzjqn579yzwsh7qxn8-libgit2-1.7.2
found 1.7.2 in filename of file in /nix/store/91vlhwf2ibs1ykhzjqn579yzwsh7qxn8-libgit2-1.7.2

Rebuild report (if merged into master) (click to expand)

825 total rebuild path(s)

825 package rebuild(s)

First fifty rebuilds by attrpath
MIDIVisualizer
abiword
adapta-gtk-theme
advi
almanah
amarok
amarok-kf5
amp
ansel
apacheHttpdPackages.mod_tile
apacheHttpdPackages_2_4.mod_tile
apkleaks
apostrophe
arc-theme
arx-libertatis
asc-key-to-qr-code-gif
asciidoc-full
asciidoc-full-with-plugins
asymptote
audiobookshelf
authenticator
auto-multiple-choice
autotrace
avrdude
avrdudess
awesome
ayu-theme-gtk
ballerburg
beets
beets-unstable
beetsPackages.beets
beetsPackages.beets-stable
beetsPackages.beets-unstable
betterlockscreen
bisq-desktop
blahtexml
blockhash
bluespec
bottles
bottles-unwrapped
breath-theme
broot
btc-rpc-explorer
budgie.budgie-backgrounds
calibre
calibre-web
calligra
cantor
capitaine-cursors
cargo-duplicates

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/91vlhwf2ibs1ykhzjqn579yzwsh7qxn8-libgit2-1.7.2 \
  --option binary-caches 'https://cache.nixos.org/ https://nix-community.cachix.org/' \
  --option trusted-public-keys '
  nix-community.cachix.org-1:mB9FSh9qf2dCimDSUo8Zy7bkq5CX+/rkCWyvRCYg3Fs=
  cache.nixos.org-1:6NCHdD59X431o0gWypbMrAURkbJ16ZPMQFGspcDShjY=
  '

(The Cachix cache is only trusted for this store-path realization.)
For the Cachix download to work, your user must be in the trusted-users list or you can use sudo since root is effectively trusted.
Or, build yourself:
nix-build -A libgit2 https://github.com/r-ryantm/nixpkgs/archive/17eb38c58d88cfcf442bc4ac7c64a0aa6c12782c.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/17eb38c58d88cfcf442bc4ac7c64a0aa6c12782c#libgit2

After you've downloaded or built it, look at the files and if there are any, run the binaries:
ls -la /nix/store/91vlhwf2ibs1ykhzjqn579yzwsh7qxn8-libgit2-1.7.2
ls -la /nix/store/91vlhwf2ibs1ykhzjqn579yzwsh7qxn8-libgit2-1.7.2/bin

Pre-merge build results
NixPkgs review skipped

Maintainer pings
cc @SuperSandro2000 for testing.

@ofborg eval


[Question] synchronize cache layer on application startup

Hi, I was wondering if there is any method that I could call during startup of my app to synchronize cache layers. What I mean - there might be some data sitting on Redis server that I would like to pull to the in-memory layer, so that the 1st calls to my API after startup do not have to wait for response from Redis server.

No there is nothing like that build in and that might be a bad idea as a general feature as it is pretty specific.
If you know the cache keys you could just iterate and get all of them. But if you don't know the keys, it will be harder to implement and you cannot do that just with CacheManager alone as I do not allow iterating keys.


Use single sources of truth

This patch adjusts these items:

Remove trove classifiers that Poetry will automatically add based on package metadata.
Bump typer-cli to 0.0.12, which removes its dependency on an old version of importlib-metadata.
Add importlib-metadata as a dependency for Python 3.6 and 3.7.
Use the package metadata as the single source of version truth.

As this affects trove classifiers and dependencies I'd like to have one additional approval. @rudyardrichter or @jimPruyne?


723 Fix illumination correction task not copying tables

Illumination correction task now correctly copies tables from the original image

I've confirmed that this closes #723, both with tests & with running example 02 while setting overwrite_input to False.
@tcompa I will already merge now so we can proceed with the release & deployment on Monday. The main thing where a review would be great is the new _copy_tables_from_zarr_url function. I already opened an issue here so we can review this further: https://github.com/fractal-analytics-platform/fractal-tasks-core/issues/725