Bluetooth: Add notification completed callback

The application did not have information about sending a notification for a given attribute.

A callback was added to confirm the sending of the notification.
Contextual data has been added to bt_l2cap_send_cb.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@96aa0d2). Click here to learn what that means.
The diff coverage is n/a.

@@            Coverage Diff            @@
##             master    #9056   +/-   ##
=========================================
  Coverage          ?   52.41%
=========================================
  Files             ?      198
  Lines             ?    24912
  Branches          ?     5185
=========================================
  Hits              ?    13058
  Misses            ?     9754
  Partials          ?     2100

Continue to review full report at Codecov.

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

@pdunaj

@Vudentz I checked the code.  The thread is actually blocked by bt_gatt_notify  if there are no free buffers, but maybe it would be worth adding information about it to the documentation because this function should not be used in interrupts. So it would be assumed that the stack is reliable and every notification will be sent and maybe this callback is not needed. I would like to hear @pdunaj opinion.

Hi, I added use case and some explanation in https://github.com/zephyrproject-rtos/zephyr/issues/7659.

I changed my approach to this callback. I think that now it is more transparent and simpler.

Hi  @jhedberg , @Vudentz , @cvinayak
Is there anything needed to progress this PR? I would really like to start using it.

I like the new approach better, however I'm a bit uncertain of the necessity of adding the new bt_gatt_notification_params struct. If I understand this right, it's to avoid having too many function parameters? Are you sure it's actually helping reduce stack consumption, since the callers will anyway need to declare the struct on the stack?

@KAGA164 yes, I think I'd prefer if you can get rid of it. In essence the new function is just the old one plus one new parameter, so I think it's actually less confusing to stay similar to the existing function.

Continuing on my earlier thought - I'd even consider going as far as adding a new parameter to the existing function, if it wasn't for the fact that we should try not to break existing APIs.

@jhedberg Ok I removed this structure. But I left two functions to avoid breaking API.

I was doing some tests with this change. I get the callback but... with one connection interval delay.
i.e. I am able to send 1000 notifications in following time when I set connection interval to:

30 us -> 60 s
15 us -> 30 s
So it seems that callback comes in next connection interval then data was sent.

Can we have it called just after data is out - on the same connection interval, so I would be able to prepare next notification withing the same time-slice?

Just to be clear - it's better to have this callback then nothing at all but it is not exactly perfect...

I have a chat with @joerchan and sniffed packets transmitted during the connection.
It seems that master is sending 1 packet during a connection event. This way callback is sent on the connection event following one when notification was sent. It ends up with notifications being sent every second connection event.
We could have notification + callback every connection event but this requires that master transmit 2 packets. This may not necessarily be the problem for us although the price is few bytes sent over the link.
Second solution would be to keep 1 additional notification in pipeline: this way data would always be sent callback would keep us in sync with connection interval. Price is that not most recent data is sent.
Third option is that we sync to connection event (avoid callbacks from notifications altogether). This however would require change of the API to add this callback + notifications would have to be non-blocking (we cannot send data if stale packets are still pending as it would cause dragging).

@pdunaj

we cannot send data if stale packets are still pending as it would cause dragging

Can you expand what do you mean by dragging? I thought that HID latency is super important otherwise it just build input lag. At least I wouldn't buy anything that just keeping key presses or mouse movements to be sent waiting for a confirmation that has been scheduled over the air, or the idea here is that you would resend? I guess not since ACL is supposed to be reliable if it wasn't we wouldn't be sending stuff without acknowledgement starting with L2CAP.

@Vudentz , sure.
Zephyr has the tx queue where notifications go (there can be more then just HID data put there that make problem worse).
From what I was told when master does not confirm LL packet reception data is re-transmitted. If I hook to connection event and transmit hid data with no confirmation, I can quickly fill up this queue. This will be seen as cursor dragging until user stops moving the device and allow queue to flush itself. This assumes noisy environment. Also making queue shorter will not get rid of the problem really.
I think the best option from 3 described in my previous comment would be to stay with the proposed callback and make master send 2 packets to complete transaction in one connection event.
Second best would be to keep one packet in flight and one ready for transmission.
In short - I don't care about ACK. I need to transfer fresh data with every connection event. I cannot build any pipeline for reason you mentioned in your comment. I don't see zephyr giving any options to allow that.

@jhn-nordic

@Vudentz , @cvinayak , can you please approve if no more comments

@pdunaj

Zephyr has the tx queue where notifications go (there can be more then just HID data put there that make problem worse).
From what I was told when master does not confirm LL packet reception data is re-transmitted. If I hook to connection event and transmit hid data with no confirmation, I can quickly fill up this queue. This will be seen as cursor dragging until user stops moving the device and allow queue to flush itself. This assumes noisy environment. Also making queue shorter will not get rid of the problem really.

I guess you are not referring to our conn->tx_queue then, that has no limit on how much you can queue, obviously there is a limit on how much buffers there are available but they can be allocated from different pools. The analogy with the user moving the cursor and that means you build up input lag by queueing them up in the queue, so Bluetooth acts as a rate limiter of the sensor, so it is important that the queue can grow otherwise we would have to start discarding the sensor data.

I think the best option from 3 described in my previous comment would be to stay with the proposed callback and make master send 2 packets to complete transaction in one connection event.
Second best would be to keep one packet in flight and one ready for transmission.

Im afraid you are mixing layers here, there exists a flow control already between controller and host, it makes sure to look at that before trying to add a new API. For instance BT_CONN_TX_MAX is set to BT_CTLR_TX_BUFFERS:
https://github.com/zephyrproject-rtos/zephyr/blob/master/subsys/bluetooth/host/Kconfig#L209

In short - I don't care about ACK. I need to transfer fresh data with every connection event. I cannot build any pipeline for reason you mentioned in your comment. I don't see zephyr giving any options to allow that.

That is up to the controller really, the host stack don't control the scheduling of the packets, it just queue the packets for transmission, there is no discarding of the data either otherwise you would see packet losses when using IPSP and ping.
Anyway I can see the notification callback being useful in case of an isochronous transfer, e.g. audio, since that is normally has a time constraint for each frame, but I haven't seem any GATT profile requiring isochronous transfers instead of just best-effort like everything else in ACL.

@pdunaj @carlescufi just explained me what you meant as follow:

real-time data that requires the latest "fresh" sample
I couldn't understand this before, that sure requires us to inform when you should produce the next sample, sorry for the inconvenient.

@cvinayak I guess it is your review that is blocking the merging of this now.

hi @carlescufi , can it be merged?


refactor: Improve metassr-utils

add some improvements on the metassr-utils crate by documenting its utilities and adding more test cases

[x] directories analyzer (src, and dist)
[x] random generator (rand)
[x] Cache directory (cache_dir)
[x] Checker State (checker)

Close #13

@viferga I think it's ready to merge now


Form Redeclaration

I love this library and have uses it to jump start charting in a few of my apps. I recently was pulling my hair out trying to build a Form in an app that implements this library. I had a flaky and vague build issue (Argument passed to call that takes no arguments) whenever I tried to wrap views in a Form (SwiftUI form). I tracked the issue to a redeclaration of the struct Form in the Helpers.swift file in this library. Please rename this struct so it doesn't break SwiftUI Forms.

Hi, sure I'll do a refactor


HMLR 10/23 submission file with samples and means.

UMass HMLR model for 10/23 submission. It includes output_type of sample and mean.

Noting that I flagged the whitespace in filename issue as a bug here.


NAT Punchthrough/UPNP

By default GGRS doesn't do any sort of NAT Punching or UPNP portfowarding. Should this wrapper support it or leave it over to the user to do it just like GGRS does. Godot already has a UPNP Class to deal with this.

Just for clarity: the link you reference has been moved to https://gschup.github.io/ggrs/docs/tutorial/setup/


Remove deprecation warnings for rustc 1.41

When compiling with Rust 1.41 (stable version as of 2020-01-27) a
number of deprecation warnings are shown.
Fixes: #152

@chyh1990 @hoodie Does this look OK?

Discarding.


Suggestion - Publishing it on Flathub

It would be nice if this app would be published on Flathub.

Never used/looked into flatpak. I don't have the resources currently, if someone wants to add support for this, feel free to do so.


The app doesn't seem to run on Android GPU

Hi,
thanks to your project I could test some tflite models on Android.
Now I am trying to compare the performance between GPU and CPU, but there are some problems.
The only things I changed were:

Add a new .tflite model file in assets folder

Modify the input size values and the model path in ImageClassifierFloatInception.kt

But when I run the app there's no difference with the speed between CPU and GPU.
It's weird because the original code of yours was definitely faster when GPU was selected.
I swear I didn't edit anything but I mentioned above.
Should I update another values?
Thank you in advance.

Suppose it's caused by the model's issue.
Some of the models have differences between GPU/CPU while the others are not.
I'll add more comments when the problem's figured out.


consider introducing TwitchCLI to CI

This should help immensely with stability
I also want to see what happens with integration into the sphere. Might do something myself.
https://blog.twitch.tv/en/2020/12/17/introducing-the-twitch-command-line-interface-tool/

After reading through the capabilities of this tool, it seems like it doesn't do much as of yet.
Perhaps in the future it'll be more useful. Closing for now.

Twitch CLI is now much more capable :D
https://github.com/twitchdev/twitch-cli/blob/main/docs/mock-api.md
Want to add a way to override url, and also expose it to developers behind a flag, env variable, or possibly a cfg attr


Ban List & Language Filter

While this was temporarily added in, the feature has been postponed to the first non-parity release. That is 2.0.0
This concern was originally addressed in issue #12
To properly filter for banned packages, as well as vulgar package names, we can use @confused-techie/watchyourlanguage and the built in utils.IsPackageNameBanned()
Since this was already previously written to save some effort later I will leave the excerpts here.
const utils = require("../utils.js");
const { WatchYourLanguage } = require("@confused-techie/watchyourlanguage");

async function POSTPackages(req, res) {
...
  // Additionally we want to check if the package is from a ban list.
  let notBannedName = await utils.IsPackageNameBanned(params.repository.split("/")[1]);

  if (!notBannedName.ok) {
    // in the future we may want to actually return that the name is banned.
    // But for now we will return that its a bad repo.
    await common.BadRepoJSON(req, res);
    return;
  }

  // also lets make sure the name doesn't contain vulgar language

  let language = new WatchYourLanguage();

  let containsBadWord = language.searchWithin(params.repository.split("/")[1]);

  if (containsBadWord) {
    // getting a true boolean here, indicates vulgar language is likely present.
    // which again we will for now, just return bad repo.
    await common.BadRepoJSON(req, res);
    return;
  }
...

Additionally we will want to implement a requirements error within common, that returns the indication of why a package has been denied. Listing some of the requirements for publishing packages, resulting in something like the following.
{
  "message": "The following package doesn't meet criteria: ${REASON_OF_DENIAL}"
  "criteria": [
    "Package Name must not contain vulgarity.",
    "Package Name must not be a previously banned package name.",
    "Package Name must be URL-Safe."
  ]
}

Since version 2.x will not occur on this repo, and instead will occur on the main Pulsar-Edit repo, I'll close this issue, and add it to the roadmap of the Backend on Pulsar.


Resolve Android RN 0.47 breaking change

facebook/react-native@ce6fb33
Keep method for backward-compatibility but remove @Override for RN 0.47 and up.

@zerazeru merged and added to NPM
Thanks for your help 👍


Pylance Type Hint Error

For the code:
import python_calamine

def test_file_type():
    with open("foo.xlsx", "rb") as f:
        python_calamine.CalamineWorkbook.from_filelike(f)

Pylance gives the type hint error:
Argument of type "BufferedReader" cannot be assigned to parameter "filelike" of type "ReadBuffer" in function "from_filelike"
  "BufferedReader" is incompatible with protocol "ReadBuffer"
    "seek" is an incompatible type
      Type "(__offset: int, __whence: int = ..., /) -> int" cannot be assigned to type "() -> int"
        Position-only parameter mismatch; expected 1 but received 0
(https://github.com/microsoft/pyright/blob/main/docs/configuration.md#reportGeneralTypeIssues)

(variable) f: BufferedReader

If I'm understanding what you're trying to achieve and you don't want to use typeshed types, I would suggest copying how typeshed type hints methods, e.g. https://github.com/python/typeshed/blob/main/stdlib/io.pyi#L70
So your ReadBuffer should be:
class ReadBuffer(Protocol):
    def seek(self, __offset: int, __whence: int = ...) -> int: ...
    def read(self, __size: int = -1) -> bytes | None: ...

I'd be happy to make a PR in the new year if you'd like.

If I'm understanding what you're trying to achieve and you don't want to use typeshed types

We need only 2 methods for work, so in my opinion, using protocol makes sense.
I synced signatures with typeshed. Thanks for the report!


chore: bdd-spring-1575917378 to 0.0.1

chore: Promote bdd-spring-1575917378 to version 0.0.1

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

Needs approval from an approver in each of these files:

OWNERS

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


FIL Accounts

@bmann I'm not sure if FIL Accounts would be in scope for this event, but wanted to mention it as a possible topic.

@bmann just bumping to either add to the schedule or close this Issue :)

Yeah, I'm now running the Building Apps on IPFS track and sort of have a blockchain placeholder. Closing!


cf cli cannot login in git bash on Windows

Because git bash provides a bunch of tooling that regular windows CMD doesn't have, I often find myself doing work in that window.
However, I found today that I could not log in to cf from this window. I did this with git bash shipping mintty 2.0.3 (current download from the git website).
Credentials were rejected, please try again.
Authenticating...
Credentials were rejected, please try again.
Authenticating...
Credentials were rejected, please try again.
FAILED
Unable to authenticate.

API endpoint:   https://api.xxyy.com (API version: 2.39.0)
Not logged in. Use 'cf.exe login' to log in.

Note that after typing "admin" for the username, it automatically failed authentication 3 times with no user input. We suspect it may have to do with the way that this particular terminal respond to the attempt to mask user input for the password field.


Error executing command (spawn rpmbuild ENOENT)

[ x] I have read the contribution documentation for this project.
[ x] I agree to follow the code of conduct that this project follows, as appropriate.
[ x] I have searched the issue tracker for an issue that matches the one I want to file, without success.

Please describe your issue:
When I run this command: electron-forge make the console ouputted the following one:

Console output when you run electron-forge with the environment variable DEBUG=electron-forge:*. (Instructions on how to do so here). Please include the stack trace if one exists.

An unhandled error has occurred inside Forge:
An error occured while making for target: rpm
Error executing command (spawn rpmbuild ENOENT):
rpmbuild -bb /tmp/electron-11966-26888-1pw0ndc.4w1t/hello-electron-forge-world_1.0.0_x86_64/SPECS/hello-electron-forge-world.spec --target x86_64

Error: Error executing command (spawn rpmbuild ENOENT):
rpmbuild -bb /tmp/electron-11966-26888-1pw0ndc.4w1t/hello-electron-forge-world_1.0.0_x86_64/SPECS/hello-electron-forge-world.spec --target x86_64

    at ChildProcess.<anonymous> (/usr/lib/node_modules/electron-forge/node_modules/electron-installer-redhat/src/installer.js:55:23)
    at ChildProcess.emit (events.js:198:13)
    at maybeClose (internal/child_process.js:982:16)
    at Socket.stream.socket.on (internal/child_process.js:389:11)
    at Socket.emit (events.js:198:13)
    at Pipe._handle.close (net.js:606:12)

What command line arguments are you passing?
electron-forge make

What does your config.forge data in package.json look like?
Paste the config.forge JSON object here -> where is it?

Please provide either a failing minimal testcase (with a link to the code) or detailed steps to
reproduce your problem. Using electron-forge init is a good starting point, if that is not the
source of your problem.
Distributor ID:	Ubuntu
Description:	Ubuntu 19.04
Release:	19.04
Codename:	disco

My package json:
{
"name": "hello-electron-forge-world",
"productName": "hello-electron-forge-world",
"version": "1.0.0",
"description": "My Electron application description",
"main": "src/index.js",
"scripts": {
"start": "electron-forge start",
"package": "electron-forge package",
"make": "electron-forge make",
"publish": "electron-forge publish",
"lint": "echo "No linting configured""
},
"keywords": [],
"author": "abelardolg",
"license": "MIT",
"config": {
"forge": {
"packagerConfig": {},
"makers": [
{
"name": "@electron-forge/maker-squirrel",
"config": {
"name": "hello_electron_forge_world"
}
},
{
"name": "@electron-forge/maker-zip",
"platforms": [
"darwin"
]
},
{
"name": "@electron-forge/maker-deb",
"config": {}
},
{
"name": "@electron-forge/maker-rpm",
"config": {}
}
]
}
},
"dependencies": {
"electron-squirrel-startup": "^1.0.0"
},
"devDependencies": {
"@electron-forge/cli": "^6.0.0-beta.39",
"@electron-forge/maker-deb": "^6.0.0-beta.39",
"@electron-forge/maker-rpm": "^6.0.0-beta.39",
"@electron-forge/maker-squirrel": "^6.0.0-beta.39",
"@electron-forge/maker-zip": "^6.0.0-beta.39",
"electron": "5.0.6",
"electron-prebuilt-compile": "4.0.0"
}
}

A few things:

Do you have electron-forge installed globally? (You can check by running electron-forge --version.) Because with @electron-forge/maker-rpm 6.0.0-beta.39, it should tell you exactly what the problem is.
You shouldn't have electron and electron-prebuilt-compile in devDependencies. How did that happen?

Since the original issue reporter has not responded to the request for additional information in about a week, I'm going to assume that they either found the answer in another manner or decided not to pursue this issue. If I'm incorrect, they can respond with answers to the questions posed, and I'll reopen.


feat New parameter added to load a test template without running the test

norun="true" can be now added to the test url.
Useful feature to debug or code on a template test case without having the full test to run, or the robot activated.

:ok: d404a83b5a68e998bb017e46918c6ece85599e8f seems fine for me.


Hi, does this project support Chinese input and output?

I have a 3588 with Ubuntu installed. If the project supports Chinese, I'd like to give it a try. Thank you!

No, I don't have a trained model for Chinese. (Plus the eSpeak phenomizer technically supports Chinese. It's kinda bad at it.)


Typo on live site

https://technet.microsoft.com/en-us/itpro/windows/deploy/activate-using-active-directory-based-activation-client
The bottom of the page references  "slmrg.vbs /dlv" instead of  "slmgr.vbs /dlv".  The version here on github appears correct.

Thanks for catching this. I've fixed it in the repository and it will go live when the next push happens.


Request of the tensorflow model "cifar10_model.pb"

Hi,
Thank you for sharing the frozen graph of the backdoored model cifar10_model.pb.
Is it possible to upload the TensorFlow model in another format so that we can access its layers? I tried translating the frozen graph to a ".h5" file. There is not enough information to do so (there is an error about "No variables to save", and to overcome this, I would need access to the TensorFlow variables).
Thank you so much,
Penny

Here you go. I have uploaded the .h5 file under the same folder. Enjoy.

Using the model you shared, the smooth trigger and its dominant label (i.e., 6), poisoning 10% of the retraining, should give 95% ASR from the 1st iteration as mentioned in the paper (Sec 5.3).
Of course, I don't have the details of how you retrained it, but I chose to retrain the model you shared using SGD and typical learning rate, and I can achieve an accuracy of 85%, but the ASR is very low in my case (< 25%).
Is it possible to share the actual backdoored model that responds to this smooth trigger so that we can properly refer to/cite your method?

Hi, thanks for the update. Just to clarify, our claim was that we train a new model from scratch (in your case, you mentioned the term retrain, which could be the problem) using the poisoned dataset (smooth trigger polluting 10% of non-target-class samples + dominant label (which should be computed across different datasets)).

If the problem still remains, could you please share the smooth trigger you generated with me?

You can also take a look into the test set that you used to acquire the ASR, whose label should all be set to 6 if you R attacking using the target label '6'.

Thank you for your quick response. I am using the smooth trigger you provide under data/best_universal.npy, and I poison 10% of the training non-target images with the trigger and set their label to 6.
I was indeed retraining the model that you provided. I made 2 changes, and I now get ASR 98% and Acc 83%:

I trained a new model from scratch (which I believe needs to use the same architecture as the one used to produce the smooth trigger?)
I copied the part of the code that adds the trigger to one image at a time from target_universal.py and created a function out of it. I think the batch poisoning I was doing before, was done incorrectly (in terms of the final clipped values maybe?) even though I had tested it through jupyter notebook. Although I am not sure if that was the issue, I believe retraining should not have been a problem based on the backdoor literature.

Thank you for your help,
Penny

You R welcomed.
So, for 1, not necessarily, you can choose whatever model you like and it should all work. As long as you conduct the backdoor attack using the Cifar10 dataset, which is the dataset you used to generate the smooth trigger. The mode during smooth trigger generation step simply provides gradients to find perturbations;
For 2, normally not a problem. However, U should not use the same training dataset as the poisoned dataset (I assume you adopt the pre-trained weight from cifar10 to fit with the new poison dataset, this will diminish the attack efficacy). A possible case in the community is that you use pre-trained weights from another dataset, say ImageNet, then you use this weight to transfer learning over a cifar10 poisoned dataset. You can give this case a shot, and with more epochs to train I guess. But, this case was not evaluated in our paper, so, thanks for mentioning that.


API toggle_current_linewise not working with single line vim.cmd [[]]

This issue occurs when the cursor is within the double square brackets in a vim.cmd [[ <stuff> ]]
vim.cmd [[echohl ErrorMsg | echo "Error: Something goofy happened." | echohl None]]

When using the gcc command on this line, it becomes:
-- vim.cmd [[echohl ErrorMsg | echo "Error: Something goofy happened." | echohl None]]

But if you use lua require('Comment.api').toggle_current_linewise(), it becomes an incorrect comment:
" vim.cmd [[echohl ErrorMsg | echo "Error: Something goofy happened." | echohl None]]

PS. Thanks for the great plugin!

Wow, I never imagined this issue would be that tricky to solve. This bug is caused by the one difference that I talked about earlier.
gcc considers the current column position to end-of-line into its range because it uses a different API require('Comment.api').toggle_current_linewise_op(vim_mode, cfg) whereas require('Comment.api').toggle_current_linewise(cfg) uses the current cursor position as its range.
You can use this for now and let me know whether this fixes your issue or not
require('Comment.api').toggle_current_linewise_op('line')

I tried using require('Comment.api').toggle_current_linewise_op('line') but it was commenting the whole file so i tried require('Comment.api').toggle_current_linewise_op() but that has the same original issue. What is currently working is:
local col = vim.api.nvim_win_get_cursor(0)[2]
vim.api.nvim_command('normal! $')
require('Comment.api').toggle_current_linewise()
vim.api.nvim_win_set_cursor(0, { vim.api.nvim_win_get_cursor(0)[1], col })

I will try and find a proper fix but this would be my first pull request so idk how I'll go haha.

I tried changing the region for nil vmode to use the first column instead of the current column which will go outside a vim.cmd [[<stuff>]] to get the correct commentstring.
function U.get_region(vmode)
    if not vmode then
        -- Added this:
        local row = unpack(A.nvim_win_get_cursor(0))
        return { srow = row, scol = 0, erow = row, ecol = 0 }
        -- Removed this:
        -- local row, col = unpack(A.nvim_win_get_cursor(0))
        -- return { srow = row, scol = col, erow = row, ecol = col }
    end

    local m = A.nvim_buf_get_mark
    local buf = 0
    local sln, eln

    if vmode:match('[vV]') then
        sln, eln = m(buf, '<'), m(buf, '>')
    else
        sln, eln = m(buf, '['), m(buf, ']')
    end

    return { srow = sln[1], scol = sln[2], erow = eln[1], ecol = eln[2] }
end

I have done some testing and it has been working properly. Do you see any issues before I submit a pull request? Thanks!

I tried changing the region for nil vmode to use the first column instead of the current column

Ahh, nice. That should fix the issue. But we need to check this with the treesitter.

Do you see any issues before I submit a pull request? Thanks!

Yeah, go ahead we can discuss other issues on the PR itself.


[Event Request] Codeunit:"Purchase Post" - InsertTrackingSpecification - OnBeforeInsertTrackingSpecification

We like to request the following Event:
Object:
Codeunit:"Purchase   Post"
Function: InsertTrackingSpecification
Publisher Event: OnBeforeInsertTrackingSpecification
Reason: To implement custom business logic
Where is the event placed:
var
IsHandled: Boolean;
begin
IsHandled := false;
OnBeforeInsertTrackingSpecification(PurchHeader, TempTrackingSpecification, IsHandled);
if IsHandled then
exit;
    TempTrackingSpecification.Reset();

[IntegrationEvent(false, false)]
local procedure OnBeforeInsertTrackingSpecification(PurchHeader: Record "Purchase Header"; var TempTrackingSpecification: Record "Tracking Specification" temporary; var IsHandled: Boolean)
begin
end;

Thanks for reporting this. We agree, and we’ll publish a fix asap, either in an update for the current version or in the next major release. We will update this issue with information about availability. Please do not reply to this, as we do not monitor closed issues. If you have follow-up questions or requests, please create a new issue where you reference this one.


setup rancher and NFS GCE servers and register 3 Packet hosts

@yasker @sangeethah
python scripts for setting up GCE VMs and Packet hosts: setupRancher.py and teardownRancher.py
Jenkins jobs using the scripts: http://jenkins-poc.rancher.io:8080/job/test_longhorn_driver/
and also a quick cleanup job: http://jenkins-poc.rancher.io:8080/view/storage/job/test_longhorn_teardown/

Need a README on how to use.

A general question: Can we run this as a Docker container? There are many environment setup things, which can be eliminated if it's packaged as a container.

Jenkins job provides a way to change needed env variables at launch time, so I don't think it makes sense to run the script inside a container. Jenkins machine at least today has not had docker daemon running yet. I kind of limiting the env variable pollution in a way when test team does not care about configuring, I just hardcode these variable inside script, because we probably will never change them, such as project ID, zone, machine types etc

It's a public repo...

Also, have you run flake8 against the code yet? And many errors can be corrected by autopep8.

didn't do flake8, but now fixing issues from flake8. thanks.

addressed most of the comments.

This batch of scripts should be in a separate directory of it own.

machine-setup name is kind of weird. environment-setup sounds better.

Otherwise LGTM. I can merge it after above comments are addressed. Thanks.


Footer

Description
I want to make an Attractive footer for the webpage
Screenshots
No response
Additional information
No response

Thank you for raising the idea, as this issue has no context about the proposal and is too vague, I will close. In future please show examples of the ideas you are suggesting even if from other sites or sketches


[Bug]: Sometimes the function page. Waitforxpath() does not detect the DOM that already exists

Bug expectation
Sometimes the function page. Waitforxpath() does not detect the DOM that already exists
https://github.com/puppeteer/puppeteer/issues/4072
I have the problem in the latest puppeteer version 19.6.3.
Bug behavior

[ ] Flaky
[ ] PDF

Minimal, reproducible example
our own demo..

Error string
TimeoutError: Waiting for selector .//div[@style='visibility: visible;']//*[contains(@class,'tui-dropdown')]//*[text()='全局替换'] failed: Waiting  failed: 3000ms exceeded
Puppeteer configuration
No response
Puppeteer version
19.6.3
Node version
16.19.0
Package manager
yarn
Package manager version
1.22.19
Operating system
Windows

This problem does not exist in version 5.4.1(which i currently use).
But because this problem https://bugs.chromium.org/p/chromium/issues/detail?id=1412653#makechanges,
i need to use latest chromium.
Is there any possibility that without upgrading puppeteer but using the latest chromium?

Please provide a minimal reproducing example demonstrating the bug: a sample test page and a sample puppeteer script. Otherwise, we cannot help you with this.

Could it be possible that i demonstrate it in my computer?
If it's possible,when will u be available？

I wonder what's the differences between run browser in top view and not run browser in top view?
My case succeeds when i watch it runs but failed when i don't watch it run....quite strange.
This video recorded that after i launched the test,I just leave the browser backend.The case failed because :
const elXpath =  await this.pageDriver.page.waitForXPath(selectorOrTimeout, options);

https://user-images.githubusercontent.com/19261291/219544385-65d9a0f7-84dd-4d70-81f1-280089e53788.mp4
This video recorded that after i launched the test,I watched it run.The case succeeds.
https://user-images.githubusercontent.com/19261291/219544517-bda2b47a-cb2f-4378-8143-eaa232968b23.mp4

the browser in headful mode can do all sorts of optimizations if the window is closed and tab is no active. Could you try if it works in headless? Also, try calling page.bringToFront() before doing actions on the page.

Can you try/catch the timeout error and print out the web page DOM structure to see if the element is actually there?

It works ok in headless mode.
Also it works in headful mode in version 5.4.1(which i currently use).
But in higher version (19.6.3),it has problem

This error is not a rare thing using proxy:
        TimeoutError: waiting for XPath `//h2[text()[contains(.,'Podsumowanie')]] | //h1[. ='Podsumowanie'] | //div[@class[contains(.,'oneContent active')]]//h1/*[text()='Podsumowanie'] | //h2/span[text()='Podsumowanie'] | //*[@data-tab and @title='Podsumowanie'] | //c-lwc-fns-consumption-summary-wrapper//*[text()='Podsumowanie']` failed: timeout 30000ms exceeded
            at new WaitTask (/pickle/node_modules/puppeteer/lib/cjs/puppeteer/common/DOMWorld.js:636:34)
            at DOMWorld.waitForXPath (/pickle/node_modules/puppeteer/lib/cjs/puppeteer/common/DOMWorld.js:547:26)
            at Frame.waitForXPath (/pickle/node_modules/puppeteer/lib/cjs/puppeteer/common/FrameManager.js:1005:51)
            at Page.waitForXPath (/pickle/node_modules/puppeteer/lib/cjs/puppeteer/common/Page.js:2272:33)
            at getElement (/pickle/features/support/actions.js:18:26)
            at World.seeElement (/pickle/features/support/actions.js:344:9)
            at World.<anonymous> (/pickle/features/step-definitions/generic.js:117:20)

The error comes from cucumber and it devastes our tests :(


Exception in parseValue functions

It's not good decision to throw exception in parseValue method of type. It is about parseValue in AbstractInputObjectType.  Method isValidValue is responsible for validation of input value.
Also using PHP standard exception is out of date, the better choice is to use exception which implement LocationableInterface.

Thank you @portey, but you're mixing two things here. In fact,parseValue is exactly the place to through an exception if we cannot parse the value, it's just so happen it was used in isValidValuewhich is a different story, so let's talk it through first.


keylogger Startup Automatically

what code should i add to the keylogger to make it startup with the system after reboot?? Can anyone help me in this??

you can add a value to the following machine HKEY_CURRENT_USER\Software\Microsoft\Windows\CurrentVersion\Run by using RegCreateKeyEx function, https://msdn.microsoft.com/en-us/library/windows/desktop/ms724844(v=vs.85).aspx for more info. Or you can added it to the start menu located in user appdata. ex(copy keylogger.exe C:\Users\Siegfried5\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup);
Now when adding the code to do any of these thing i recommend creating a function and adding it to keybhook.h file this way you can simply just call that function in the main.cpp file.

Pls Siegfried can u help me with your keylogger ..i have done what u said but it didn't run


Fixes broken links in multiple docs

Category

[x] Content fix
[ ] New article
Related issues

fixes #3344

What's in this Pull Request?
Fixes multiple broken links referenced in a spreadsheet attached in #3344

thx @andrewconnell, appreciated.


[WIP] [Hackability Refactor]: Move the distributed folder from the top level repo to torchchat/torchchat

Moves the top level distributed folder into a separate distributed folder within the torchchat umbrella.
There are intentionally no code changes outside of the README and script path updates

Thanks for confirming!
I'm planning to move the distributed code close to last so that it doesn't affect y'all as much, so it won't land for a few days/next week


refactor: Asset manager

Refactor Asset Manager and make the tests simpler and more reliable.

:tada: This PR is included in version 0.91.0 :tada:
The release is available on:

v0.91.0
GitHub release

Your semantic-release bot :package::rocket:


committing OR400181, OR400281, OR400635, OR400638, OR400653, OR400657…

…,  This can include a URL for the source polygon from an official source. If it is not from an official source, please describe the process you went through to procure the polygon from agency staff (which should be detailed), or the process by which you derived or created the boundary.
Utility maps from direct outreach
Please confirm that the following fields are included in your geojson file

[x ] pwsid
[ x] name
[ x] service_area_type
[ x] data_source
[ x] source_url
[ x] contact_email
[x ] source_date
[ x] contribution_date

Please make sure all files are in CRS epsg:4326 (WGS 84). Some of them are in a projected coordinate system.

Updated projection as per commit dcb27ec, let me know if this all looks good


[BUG] Encounter Nan in Int8 Models

Describe the bug
After updating autogptq to the main branch, I encounter nan when running Qwen-7B-Chat-Int8 models. Int4 models are working well.
Hardware details
Nvidia A100
Software version
cuda=11.8
auto_gptq=0.7.0dev (main branch, installed from source)
pytorch=2.1.1
transformers=4.32.0
To Reproduce
checkpoint_path = /path/to/Qwen-7B-Chat-Int8"
print('Loading tokenizer ...')
tokenizer = AutoTokenizer.from_pretrained(checkpoint_path, trust_remote_code=True)

print('Loading model ...')
model = AutoModelForCausalLM.from_pretrained(checkpoint_path, device_map="auto", trust_remote_code=True).eval()
model.generation_config = GenerationConfig.from_pretrained(checkpoint_path, trust_remote_code=True)

response, _ = model.chat(tokenizer, "hello", history=None)
print(response)

See error
Traceback (most recent call last):
  File "/home/data/QWen-HF/test.py", line 35, in <module>
    response, _ = model.chat(tokenizer, "hello", history=None)
  File "/root/huggingface_home/modules/transformers_modules/modeling_qwen.py", line 1144, in chat
    outputs = self.generate(
  File "/root/huggingface_home/modules/transformers_modules/modeling_qwen.py", line 1266, in generate
    return super().generate(
  File "/root/miniconda3/envs/qwen-gptq/lib/python3.9/site-packages/torch/utils/_contextlib.py", line 115, in decorate_context
    return func(*args, **kwargs)
  File "/root/miniconda3/envs/qwen-gptq/lib/python3.9/site-packages/transformers/generation/utils.py", line 1642, in generate
    return self.sample(
  File "/root/miniconda3/envs/qwen-gptq/lib/python3.9/site-packages/transformers/generation/utils.py", line 2760, in sample
    next_tokens = torch.multinomial(probs, num_samples=1).squeeze(1)
RuntimeError: probability tensor contains either `inf`, `nan` or element < 0

I found that:

Int4 model works well.
After downgrading autogptq to tags/v0.6.0 OR deleting all compiled kernel files (such as autogptq_cuda_256.cpython-39-x86_64-linux-gnu.so), everything works well.

same problem

same problem!

I ran into this issue as well, in my case with a different 8-bit quant, TheBloke/Mistral-7B-Instruct-v0.2-GPTQ:gptq-8bit-32g-actorder_True. An additional clue, in case it's helpful: when the input contains <128 tokens, a forward pass returns all NAN. But when the input has >=128 tokens, a forward pass does not return NANs.
Here is a Colab notebook to reproduce: https://colab.research.google.com/drive/1TWgUXtQ8MR_2v9B9eBFgXBGEr6r8cR_-?usp=sharing. It demonstrates both the NANs from the forward pass and the crash while generating.

same problem,still not fiexd


Prevent trying to push when the remote branch is ahead of the local one

One thing that bites me often enough is that I get all the way to the end of trying to release and it fails trying to push the server, because I forgot to pull changes in before attempting to release. It might be nice to fail early for that like it does with "dirty" local repos. that being said I have no idea how to check that with git.

I'll try to figure it out.

Fixed by https://github.com/AlexKVal/release-script/commit/8a5c227eab3562bb9d6adcba3d27a446e630f588
Updated version has been released: https://github.com/AlexKVal/release-script/releases/tag/v0.5.5
:cherries:


Doesn't Support PHP 7.3

When I look at the composer.json file, it looks like it shouldn't be throwing this error, but it is.

It should be working now. Try again and let me know please.

Thanks!


Wrong drag&drop behavior with strings array.

Hi, I try to use angular-ui-tree to make drag and drop sorting. But when I need to sort some strings data it stops working perfectly(
I provide codepen which helps to see the difference
http://codepen.io/Ochita/pen/ojrwRv
When you drag element down it takes wrong index and drops one position lower than needed. But the last element of strings array drops good anywhere. And if I drag elements up they take indexes correctly.
Could this be fixed somehow?

I faced the same issue! I've tracked versions from 2.1.0 to 2.17.0 and faced it in all of them. The only difference is that in 2.1.0 only first attempt of drag&drop works incorrect. All other attempts work OK for the same element.

@SergeyMell, I made some workaround - the directive which wraps "ui-tree" and converts strings to objects and back when needed. I created sample on codepen http://codepen.io/Ochita/pen/jAZbpm


libcdada: 0.4.0 -> 0.5.2

Automatic update generated by nixpkgs-update tools. This update was made based on information from https://repology.org/project/libcdada/versions.
meta.description for libcdada is: Library for basic data structures in C
meta.homepage for libcdada is: https://github.com/msune/libcdada
Updates performed

Version update

To inspect upstream changes

Compare changes on GitHub

Impact
Checks done

built on NixOS
The tests defined in passthru.tests, if any, passed
found 0.5.2 with grep in /nix/store/skiaixj7g5pwpqrfdi3y9x746jkrbsf3-libcdada-0.5.2
found 0.5.2 in filename of file in /nix/store/skiaixj7g5pwpqrfdi3y9x746jkrbsf3-libcdada-0.5.2

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

2 total rebuild path(s)

2 package rebuild(s)

First fifty rebuilds by attrpath
libcdada
pmacct

Instructions to test this update (click to expand)

Either download from Cachix:
nix-store -r /nix/store/skiaixj7g5pwpqrfdi3y9x746jkrbsf3-libcdada-0.5.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 libcdada https://github.com/r-ryantm/nixpkgs/archive/532fae24bb16ccdf36af86e24f4d8bfd44c61109.tar.gz

Or:
nix build github:r-ryantm/nixpkgs/532fae24bb16ccdf36af86e24f4d8bfd44c61109#libcdada

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

Pre-merge build results
We have automatically built all packages that will get rebuilt due to
this change.
This gives evidence on whether the upgrade will break dependent packages.
Note sometimes packages show up as failed to build independent of the
change, simply because they are already broken on the target branch.
Result of nixpkgs-review --extra-nixpkgs-config '{ allowInsecurePredicate = x: true; }' run on x86_64-linux 1

2 packages built:

libcdada
pmacct

Maintainer pings
cc @0x4A6F for testing.

Result of nixpkgs-review pr 295606 run on x86_64-linux 1

2 packages built:

libcdada
pmacct


tcomb.Object is mutable

Instances of t.Object are mutable, is this an expected behavior?
test case:
'use strict';

const t = require('tcomb');

const Properties = t.Object

let props = Properties({
	id: 1
});

props.id = 'mutated id';

console.log(props)
// prints { id: 'mutated id' }

is this an expected behavior

Yes (Object is an irreducible, like Array, Any, etc..). irreducibles, unlike interfaces and structs, are not frozen

ok, thanks!


Fully qualified proc-macros are classified as functions

Related: https://github.com/rust-analyzer/rust-analyzer/issues/6881
Related: https://github.com/rust-analyzer/rust-analyzer/issues/7073
Classification obtained by wrapping https://github.com/rust-analyzer/rust-analyzer/blob/339aab37744e7bfcab1def72acb26b81da6408ce/crates/ide/src/goto_definition.rs#L115-L118 in a dbg!() and running rust-analyzer analysis-bench src/main.rs --goto-def src/main.rs:6:5 and rust-analyzer analysis-bench src/main.rs --goto-def src/main.rs:9:15.
src/main.rs:
// using the unzip-n crate

use unzip_n::unzip_n;

//  Classification: `Definition(Macro(MacroDef { id: MacroDefId { krate: CrateId(53), ast_id: None, kind: ProcMacro(ProcMacroExpander { krate: CrateId(53), proc_macro_id: None }), local_inner: false } }))`
unzip_n!(3);

// Classification `Definition(ModuleDef(Function(Function { id: FunctionId(1115) })))`
unzip_n::unzip_n!(4);

fn main() {}

Cargo.toml:
[package]
name = "ratest"
version = "0.1.0"
authors = ["AdnoC<EMAIL_ADDRESS>edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
unzip-n = "0.1.2"

This is fixed, presumably happened when we taught name resolution to handle procedural macros better

Actually it might not be, but the highlighting is now correct

I tested with dbg!() again and this is now definitely fixed, possibly by https://github.com/rust-analyzer/rust-analyzer/pull/8088, so closing


sudo apt install gcc-5 (Bugzilla Bug 3069)

This issue was created automatically with bugzilla2github
Bugzilla Bug 3069
Date: 2020-11-10T13:25:24+00:00
From: Fred Kerr <>
To:   lgao4
CC:   edk2+bugs+int+994+563148131503455288, lgao4
Last updated: 2020-11-10T20:34:48+00:00

Comment 14302
Date: 2020-11-10 13:25:24 +0000
From: Fred Kerr <>

Industry Specification: ---
Target OS: ---

Hello - from https://github.com/tianocore/tianocore.github.io/wiki/Getting-Started-with-EDK-II
The instructions for installing gcc-5 may need some update or additional info. I am trying a quick install into a new WSL2 ubuntu 20x.
sudo apt-get install gcc-5
Reading package lists... Done
Building dependency tree
Reading state information... Done
Package gcc-5 is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source
E: Package 'gcc-5' has no installation candidate

Comment 14309
Date: 2020-11-10 20:34:48 +0000
From: lgao4
Liming will take AR to update wiki page and describe gcc 5 is not hard requirement.


branch syncing

I've been using this branch and i realize I need to get this merged in... need to get more organized about all of this.

Codecov Report

:exclamation: No coverage uploaded for pull request base (master@94f705b). Click here to learn what that means.
The diff coverage is 8.62%.

@@            Coverage Diff            @@
##             master      #22   +/-   ##
=========================================
  Coverage          ?   15.88%
=========================================
  Files             ?       11
  Lines             ?     1971
  Branches          ?        0
=========================================
  Hits              ?      313
  Misses            ?     1658
  Partials          ?        0

Impacted Files
Coverage Δ

meshparty/utils.py
22.7% <ø> (ø)

meshparty/skeleton_io.py
0% <0%> (ø)

meshparty/skeletonize.py
0% <0%> (ø)

meshparty/skeleton.py
0% <0%> (ø)

meshparty/trimesh_vtk.py
0% <0%> (ø)

meshparty/mesh_filters.py
0% <0%> (ø)

meshparty/trimesh_repair.py
10.56% <4.76%> (ø)

meshparty/trimesh_io.py
55.5% <86.11%> (ø)

Continue to review full report at Codecov.

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


Plan Differencing Performance Speedup

Previously it was reported that plan differencing was taking a significant time (for a frame of reference, differencing about 300-400k data points from TPC-C takes about 1 hour on dev4). This refactor significantly speeds up the plan differencing process. A point of reference for the refactored plan differencing:
tpcc_scalefactor_1_terminals_1_rate_unlimited_time_300
  2%|���         | 53356/3086109 [00:16<11:06, 4547.61it/s]

Differencing ~300k datapoints takes 10 minutes from input to output on disk.

Intel(R) Xeon(R) W-1350 @ 3.30GHz, turbo-boosting to 4.5+GHz

The core part of the refactor includes the following changes:

<query_id, statement_timestamp, pid> can uniquely identify a query instance invocation
Cython module for differencing a given unique query instance invocation
Removal of diffed prefixed target columns from the output
Removal of most logging constructs

Note:
We currently don't difference parallel query execution. This is done by intentionally not differencing Gather and GatherMerge. Note that in order to properly difference parallel query execution, we need to (1) ensure that workers record PIDs of the leader and (2) have a reasonable form of "subtracting".

Also, apparently we are using a deprecated numpy api?
In file included from /home/kapi/CLionProjects/noisepage-pilot/venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarraytypes.h:1960,
                 from /home/kapi/CLionProjects/noisepage-pilot/venv/lib/python3.8/site-packages/numpy/core/include/numpy/ndarrayobject.h:12,
                 from /home/kapi/CLionProjects/noisepage-pilot/venv/lib/python3.8/site-packages/numpy/core/include/numpy/arrayobject.h:5,
                 from behavior/plans/diff_c.c:700:
/home/kapi/CLionProjects/noisepage-pilot/venv/lib/python3.8/site-packages/numpy/core/include/numpy/npy_1_7_deprecated_api.h:17:2: warning: #warning "Using deprecated NumPy API, disable it with " "#define NPY_NO_DEPRECATED_API NPY_1_7_API_VERSION" [-Wcpp]
   17 | #warning "Using deprecated NumPy API, disable it with " \
      |  ^~~~~~~

We appear to be using python 2 instead of python 3
x86_64-linux-gnu-gcc -pthread -shared -Wl,-O1 -Wl,-Bsymbolic-functions -Wl,-Bsymbolic-functions -Wl,-z,relro -g -fwrapv -O2 /home/kapi/CLionProjects/noisepage-pilot/build/behavior/behavior/plans/diff_c.o -L/usr/lib -o artifacts/behavior/plans/diff_c.cpython-38-x86_64-linux-gnu.so
/home/kapi/CLionProjects/noisepage-pilot/venv/lib/python3.8/site-packages/Cython/Compiler/Main.py:369: FutureWarning: Cython directive 'language_level' not set, using 2 for now (Py2). This will change in a later release! File: /home/kapi/CLionProjects/noisepage-pilot/behavior/plans/diff_c.pyx
  tree = Parsing.p_module(s, pxd, full_module_name)

I ran out of RAM while merging 5 min of TPCC data.


Deploying new revisions of Cloud Run resources yields 409: Conflict

Deploying new revisions of Cloud Run resources is failing due to the GCP API giving an error response of 409: Conflict. This occurs whether or not the AutoGenerateRevisionName field is set (as mentioned by this Terraform provider issue: https://github.com/terraform-providers/terraform-provider-google/issues/5898). I've tried AutoGenerateRevisionName and manually generating a random name as well.

@stack72 Get with me on the Slack org to set up a video call if you'd like me to walk you through what I'm experiencing.

Can you post the code you're using to deploy so we can try repro this?

You bet -
var svc = new cloudrun.Service("my-service-name", new cloudrun.ServiceArgs
{
    Name = "my-service-name",
    Traffics = new InputList<cloudrun.Inputs.ServiceTrafficArgs>
    {
        new cloudrun.Inputs.ServiceTrafficArgs
        {
            LatestRevision = true,
            Percent = 100
        }
    },
    Template = new cloudrun.Inputs.ServiceTemplateArgs
    {
        Spec = new cloudrun.Inputs.ServiceTemplateSpecArgs
        {
            Containers = new InputList<cloudrun.Inputs.ServiceTemplateSpecContainerArgs> {
                new cloudrun.Inputs.ServiceTemplateSpecContainerArgs {
                    Image = DockerImage, // a gcr.io docker image URL
                    Envs = new InputList<cloudrun.Inputs.ServiceTemplateSpecContainerEnvArgs> {
                        new cloudrun.Inputs.ServiceTemplateSpecContainerEnvArgs
                        {
                            Name = "Authentication__Google__ClientId",
                            Value = GoogleOauthClientId
                        },
                        new cloudrun.Inputs.ServiceTemplateSpecContainerEnvArgs
                        {
                            Name = "Authentication__AzureAD__ClientId",
                            Value = AzureOauthClientId
                        },
                        new cloudrun.Inputs.ServiceTemplateSpecContainerEnvArgs
                        {
                            Name = "Authentication__AzureAD__TenantId",
                            Value = AzureOauthTenantId
                        },
                    }
                }
            },
            ContainerConcurrency = 1,
        },
    },
    Location = "us-central1",
    AutogenerateRevisionName = true
});

I am also having this issue, it happens when you modify something only and then try to modify it in pulumi. The strange thing is that now my stack is corrupted because pulumi thinks it successfully apply the change.
It seems like the update is not polling first the latest revision before trying to upgrade it.

Also I tried deleting the service in GCP and pulumi simply did not detect that the service was gone... I would have expected it to try to recreate it.

Edit: I tried doing pure terraform and I don't see this problem, so this is a problem of Pulumi not using the provider correctly and not fetching the latest resource.

I wonder if it has to do with Terraform's concept of "virtual fields". I searched for "virtual" in the codebase (both the GCP provider and core Pulumi) and didn't find much.

Edit: I tried doing pure terraform and I don't see this problem, so this is a problem of Pulumi not using the provider correctly and not fetching the latest resource.

One key thing that is different by default between Pulumi and Terraform is that Terraform does a "refresh" by default (but can opt-out), and Pulumi does not (but can opt-in).  It may be that the Cloud Run resource was designed to require having a refresh done prior to being updated?
Can you try running pulumi refresh and the retrying the pulumi up and see if that works?
In general it is a "bug" in a provider if it cannot be used correctly without a refresh - as users can and often do opt-out of refresh by default in Terraform as well - but there may be cases where it is unavoidable.
Note that we are considering changing this default in https://github.com/pulumi/pulumi/issues/2247.

Doing a refresh worked once, but when I added pulumi refresh --yes to my CD script prior to pulumi up --yes it failed again with a 409, so I think there's something else at play here as well. Are there any considerations I should weigh (other than it takes longer to refresh then deploy) when adding pulumi refresh --yes to my CD scripts?

I have this exact same issue (409).
return new gcp.cloudrun.Service(
    `${prefix}-app`,
    {
      name: `${prefix}-app`,
      location,
      template: {
        spec: {
          containers: [
            {
              image: imageUrl,
              envs: [
                {
                  name: 'PUBLIC_BUCKET_URL',
                  value: publicBucketName,
                },
              ],
              resources: {
                requests: {
                  memory: '64Mi',
                  cpu: '200m',
                },
                limits: {
                  memory: '256Mi',
                  cpu: '1000m',
                },
              },
            },
          ],
          containerConcurrency: 80,
        },
      },
    },
    { dependsOn: enableCloudRun },
  )

When I try to add a new env variable and run pulumi up it fails to update with:
Diagnostics:
  gcp:cloudrun:Service (x-dev-app):
    error: 1 error occurred:
        * updating urn:pulumi:dev::x::gcp:cloudrun/service:Service::x-dev-app: Error updating Service "locations/europe-north1/namespaces/x/services/x-dev-app": googleapi: Error 409: Revision named 'x-dev-app-00022-jot' with different configuration already exists.

If I add this:
      autogenerateRevisionName: true,

and run pulumi up:
Diagnostics:
  gcp:cloudrun:Service (x-dev-app):
    error: 1 error occurred:
        * updating urn:pulumi:dev::x::gcp:cloudrun/service:Service::x-dev-app: Error updating Service "locations/europe-north1/namespaces/x/services/x-dev-app": googleapi: Error 409: Conflict for resource 'x-dev-app' for version 'xxx'.

Running pulumi refresh will take a moment to update the state, but ultimately it has no effect on this issue and the issue continues to persist.

Any update on this @jaxxstorm?

We're taking a look. It'd be helpful if anyone running into this is able to post detailed logs (https://www.pulumi.com/docs/troubleshooting/#verbose-logging) from running pulumi refresh when updating state and what pulumi refresh shows in its diff.

Hi @leezen. I'm glad to provide logs. With the verbosity turned all the way up, will the logs contain secrets or other sensitive information that shouldn't be public?

I will do that this weekend. yes it will contain sensitive stuff @floyd-may. Can you provide an email so we could send it to you securely @leezen thanks!

Yes, if you don't want to clean it, can you please DM to me on slack.pulumi.com? Alternative, lee@ via email works, too.

We believe this is now resolved with some upstream changes to the terraform provider. If anyone else has this problem, feel free to reopen

I will test and confirm, can you link the issue/pr of the upstream provider for posterity @jaxxstorm? thanks!

I've had this issue in the past, and everything's been fine for a while.
It's just started happening again.
The only thing I can think of is that during the process a Cloud Function failed to deploy, (issue with the resource reference), which failed the process. I am then getting to a partially deployed state that causes the errors in Cloud Run world?
googleapi: Error 409: Conflict for resource 'redacted-41a830d': version '1595922945261662' was specified but current version is '1595922945369000'.

Does a pulumi refresh help or is it stuck in this conflict state?

refresh worked for me!

Refresh usually works yes

How can this issue be fixed when a refresh doesn't help? The problem I'm having is the service has been manually deployed and it doesn't seem to be able to come back under Pulumi control.
I've tried refreshing, setting the revision name explicitly and also exporting the stack configuration and removing occurences the offending revision name from the inputs section. None of which is helping matters.
I'm also interested to know why Pulumi (although I guess it's probably Terraform) even tries to upgrade using the current revision name? Won't that always fail?

I've been writing Cloud Run resources quite a bit lately and haven't seen any issues. My guess is that your mix of manual and managed deployments is possibly the culprit here.

I still have the problem. It doesn't happen always, deploying with '--refresh' helps, however it does make the deployment a lot slower. Is there a better solution ?
Can we force refresh may be just on the cloudrun resource ?

Same here.
Issue should be reopened.

Can we force refresh may be just the cloudrun resource ?

Yes, it's possible to do a targeted refresh with the -t option.

Same thing as @pierskarsenbarg. If container won't start, you can't update it anymore.
Here's my error
Error 409: Conflict for resource 'makeswift': version '1715743123779128' was specified but current version is '1715744121398301'.

A pulumi refresh does fix it. The Pulumi provider seems to have an expectation that the deployment succeeded

A simple pulumi refresh didn't work for me, but pulumi refresh -t urn:pulumi:xxx::yyy::gcp:cloudrun/service:Service::zzz did

The issue also happens when deploying an image change from outside pulumi, e.g. deploying the infra changes via pulumi, but an update in the image as part of another pipeline.


How to visit pgAdmin4 docker extension server  in external browser？

Installed the plugin in docker，it‘s option in docker dashboard only, How to visit pgAdmin4 docker extension server  in external browser？
tks!

Sure you can using: http://localhost:9080/browser/
Here is how it look like:

Hope this help, Marcelo.


Remove-Extra-Word

There is an extra word in the Example 2 header.
It currently reads: Create a virtual machine that by using certificates
It should read: Create a virtual machine by using certificates

Docs Build status updates of commit 0ff3229:
:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

azuresmps-4.0.0/Azure.Service/New-AzureQuickVM.md
:white_check_mark:Succeeded
View (azuresmps-4.0.0)

For more details, please refer to the build report.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


added --mtime for date filtering

I had something like this on my fork from a little while ago, thought I'd share here in case anyone finds it helpful.
I often need to only share deltas based on modifications, and the --mtime flag will essentially allow you to do things like this:
# Show files modified in the last 30 seconds
files-to-prompt  --mtime 30s path/to/files

# Show files modified in the last 1 minute
files-to-prompt --mtime 1m path/to/files

# Show files modified in the last 2 hours
files-to-prompt --mtime 2h path/to/files

# Show files modified in the last 3 days
files-to-prompt --mtime 3d path/to/files

# Show files modified in the last 1 week (7 days)
files-to-prompt --mtime 7d path/to/files

Having a diffs would be even better, but that went beyond the scope of this.


 Sometimes the functions work well and do their prescribed function, at other times I get a txn failure that looks something like this from ethersscan:
Fail with error 'Offer can not be cancelled because user is not owner, and market is open, and offer sells required a ...'

Keep in mind that this error is the same for both quote updates and cancellations. I'm sourcing my order limit ID's directly from my active offers using the sql query API.
        headers = {'Content-Type': 'application/json'}

        response = requests.post(url, headers=headers, data=json.dumps({'query': query}))

I'm using the client.batch_update_limit_orders(), but I've seen the same issue using client.market.batch_requote() and client.batch_cancel_limit_orders(). I'm not sure if it matters, but oftentimes I'm only passing in a single order into these functions.

@perryascott
We have seen this happen a number of times. This error is raised when your requote or cancel has one of these two issues:

Either you are including id's of orders that have already been matched. This can occur due to either someone placing a market order and being filled by your offer, or because your limit order crosses the bid/ask spread and is automatically matched as a market order.
You do not own the order associated with the id you are trying to requote.

Please can you check that you are not doing either of the above. It does not matter if you pass one order to the batch functions.
Closing this issue but feel free to reopen if the above does not explain your issues.


DCAT RDF showstoppers

Several elements of DCAT metadata re not being created correctly, a couple of which are showstoppers:

[ ]  No type is assigned - missing <...> a dcat:Resource
[ ] dcterms:type is indicated for the resource pointing to <.../about-indigenous-people> etc. This should be just another dcat:theme

AgentsDB interaction is broken:

[ ] Agent search is not working - can't find any Agents from within the Form search
[ ] Adding an "Identifier" to an Agent replicates it across all custom agents defined in the record. Removal removes all
[ ] Need a datatype for ORCID, not just xsd:token. Please use the short code idncp:orcid and IRI https://data.idnau.org/pid/cp/orcid

Non-critical but nice:

[ ] (stretch issue) the RDF really needs better formatting, if the N3 toolkit can do it

I've fixed the above issues, the new instance (on melb uni infra) is up at https://metadata.idnau.org


[WIP] Allow initialized let/var declarations in function builders.

Introduce support for initialized let/var declarations within function
builder closures, e.g.,
let (a, b) = c()

We generate constraints for the declarations as elsewhere, but the types of
the declared variables (a and b in this case) are bound to the type of the
pattern by one-way constraints, to describe the flow of type information
through the closure.
We generate constraints for the declarations as elsewhere, but the types of
the declared variables (a and b in this case) are bound to the type of the
pattern by one-way constraints, to describe the flow of type information
through the closure.
Implements rdar://problem/57330696.

The first two commits are from https://github.com/apple/swift/pull/29801; only the third commit is needed here.

@swift-ci please smoke test

@swift-ci please test source compatibility


Document how to add new devices via CHEF

We need to somehow scale adding new device types and validating them (mostly from a controller perspective) and all-clusters-app seems to have scaling issues.
Would like to have the minimal path required to get fake device up and running, for basic controller tests (i.e. does this device show up), chef works.
Will have to figure out future guidance for developers:

separate example apps have the advantage of platform-specific (people can actually use them to implement products) but are more painful to build
chef is easy to get started, but may lack more interaction (e.g. make sure of buttons/UI to drive the fake device for testing)

For now documenting the shortest path of "get a virtual device of type X running"

@andy31415 , this PR of yours is breaking the documentation structure consistency. Kindly please fix this as per issue https://github.com/project-chip/connectedhomeip/issues/28354


Why can't I add external links to the proposal?

I want to add a few external links to the proposal but the validator complains with error[markdown-rel-links]: non-relative link or image.
I understand that the main body of the proposal should be internal and not externalized via links but occasionally this is annoying. I want to request a grant to expand an existing project and not adding a link to the project itself is really awkward and probably hinders my chances of getting approved.
Any chance you can lift this validator limitation? Thanks!
Edit: I saw people are just using raw <a> tags. I can do the same if the rule stays but it feels like a hack in case the rule is really intended.

It is really intended, we need to use HTML Balise to allow a proper display in case we want to copy proposals elsewhere :)

Ohh, I get it now. So I am free to add <a> tags, it's not "playing the rules"?
Thanks for the quick response btw.


Feature: Colored Keys

We talked about this, just putting it here as a TODO. Colored keys for both games, whether two-toned like you mentioned (handle colored something different, while the stem another color) or a single, whole tone.
Ideally, for the MM keys you color them based on the stray fairy color of the dungeons. It works really well in MMR. For OOT, you have more freedom with it but you could look at what OOT3DR did or the PC Port (PC Port is probably faster to look at). But yeah, would be nice for when keysanity is a thing.
Boss Keys could have their gems colored but if you wanted the actual surrounding area colored I believe you mentioned Gold would be OOT and Silver would be MM for the Boss Keys but then the gems would match what the colors are chosen for the small keys.

Just going to say this might be better to look at the keys Maple made for OOTR for the OOT side, ask if we can use them here for combo for OOT (she'll probably say yes), and then for the MM side color-code them as they are in MMR (by the dungeon's fairy color)?


Set usedforsecurity=False in hashlib methods (FIPS compliance)

Related to https://github.com/huggingface/transformers/issues/27034 and https://github.com/huggingface/huggingface_hub/pull/1782.
TL;DR: hashlib is not a secure library for cryptography-related stuff. We are only using hashlib for non-security-related purposes in datasets so it's fine. From Python 3.9 we set can usedforsecurity=False in any hashlib method which is mandatory for companies that forbid the use of hashlib for security purposes. This PR fixes that.
Note: before merging this we need to release a new tokenizers version that would allow the newest huggingface_hub version (see https://github.com/huggingface/tokenizers/pull/1385). Otherwise it might create friction to users that want to install datasets + tokenizers at the same time.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

I'm finally merging as transformers/tokenizers dependency pins have been removed + huggingface_hub 0.19.4 has fixed the deps incompatibility issue. All good now :)


KeyError: 'rows' in waffle.py

Hi,
I tried your last example Multiple plot  and had the following error
figsize=(9, 5)  # figsize is a parameter of plt.figure
File "/usr/local/lib/python3.6/dist-packages/matplotlib/pyplot.py", line 533, in figure
**kwargs)
File "/usr/local/lib/python3.6/dist-packages/matplotlib/backend_bases.py", line 160, in new_figure_manager
fig = fig_cls(*args, **kwargs)
File "/usr/local/lib/python3.6/dist-packages/pywaffle/waffle.py", line 165, in init
self._waffle(loc, **copy.deepcopy(setting))
File "/usr/local/lib/python3.6/dist-packages/pywaffle/waffle.py", line 174, in _waffle
if len(self._pa['values']) == 0 or not self._pa['rows']:
KeyError: 'rows'

That's a good one. I have fixed this in 0.1.0 version, please check it out!


Piwik for Android SDK - Battery Usage

Hi there,
As per this thread I am posting here
https://forum.piwik.org/t/piwik-for-android-sdk-battery-usage/18623
We've looked at this a bit more and it looks like Piwik does do dispatching, every 2 minutes we think. However the question still stands regarding battery usage and addressing the points in this article which seems to indicate app tracking is very difficult.
http://www.lunametrics.com/blog/2015/09/24/5-considerations-google-tag-manager-mobile-apps/
Also if it uses dispatching is it impossible to gather all hits or is that a Google Play Services issue and Piwik doesn't use that.
Thanks for any feedback.

The manual dispatch on minimize/close app seems to be a reasonable solution in this case.
For now I can recommend You to reduce dispatching interval: it shouldn't affect battery usage, but it wouldn't give You 100% tracking accuracy.

The client-side app tracking part is not computationally difficult and unless mistakes were made the impact on batterylife is neglible.
Piwik is more like Google Analytics, not Google Tag Manager.
http://stackoverflow.com/questions/23640645/what-is-the-difference-between-google-tag-manager-and-google-analytics
The impact of a few misses on ccuracy is also minor in larger products due to the volume of hits. The SDK's prevalent reason for missing hits is currently loss of network connectivity (#16).

Seems solved.


Not able to find the installer files

Hey,
Excellent repo and collection of dotfiles. However I am not able to install it with the commands in the readme. I see that the installer files doesn't exist in the repo.
bash <(curl -s https://raw.githubusercontent.com/rgomezcasas/dotfiles/master/installer)
Let me know what I should run to install it.
Thanks!

Try to install https://github.com/CodelyTV/dotly directly better 😊

Hi, I want to mimic the exact same setup (with Raycast, etc.. ) which is not available in the dotly repo. Could you tell me how I can install your exact config? Thanks!


Add major negative ions to IIN refinement

@SteffenHeu @Adafede @Annexhc
There is an optional refinement step in IIN to remove all IIN without major ion. Users can control the creation of IIN initially in the module so this is not super important but still a great hack to reduce the number of weird IIN with little parameter setup.
I have added some missing negative ions and defined the maximum number of modifications that I would like to allow. For example, M+Na does usually not show abundant in source fragments, M+H does. The list is now:

M+H (3 max modifications, e.g., M-3H2O+H)
M+Na (0)
M+NH4 (1)
M-H (2)
M+Cl (0)
M+formic acid (0)

Any comments, anything to add?

I was using HFA and FA... what would you use?

Sorry i did not see your comment. Hard to say. If the usage is consistent throughout the IIN module its fine i think. Everyone familiar with massspec should know whats going on.

@robinschmid
Sorry completely missed the tag on that one!
Hmmm....I am actually using n >> 3 modifications, this would imply doing in in n/3 steps, did I get it right?
Btw, could it be related to #575 or not at all?

Oh this is only about the refinement of IIN. It is completely optional. It is just an option for people to easily filter out all ion identity networks that do not contain one of the main ions. the max 3 modifications for M+H just mean that we do accept that M+H fragments more than M+Na for example.

#575 will be something else. have to look into this


adding --pixstack_limit flag

NOTE This PR cannot be merged until after PyZOGY PR #4
When PyZOGY was run on some images with a lot of sources, the default number of active pixel sources (science.size//20) allowed by sep was exceeded with the error:

Exception: internal pixel buffer full: The limit of 838860 active object pixels over the detection threshold was reached. Check that the image is background subtracted and the detection threshold is not too low. If you need to increase the limit, use set_extract_pixstack.

This PR adds the flag --pixstack-limit so that the user can manually push this limit higher.
Testing
This PR was tested by first running images without the --pixstack flag to demonstrate that the error was still produced then running with the flag, setting the --pixstack-limit to the image size (an upper limit) and showing that the image processed all the way through and the difference image produced was a reasonable difference image. It was run on g-band images from the night of 20180812 (id 165 and 166)
lscloop.py -n "2018eog" --normalize t -T 1m0 --temptel 1m0 --tempdate 20200720 --fixpix -s diff --difftype 1 -f g -e 20180812 -d 166 -F

This produced the above error as expected
lscloop.py -n "2018eog" --normalize t -T 1m0 --temptel 1m0 --tempdate 20200720 --fixpix -s diff --difftype 1 -f g -e 20180812 -d 166 -F --pixstack-limit 16000000

This processed successfully.

PR 4 in PyZOGY has been merged -so this PR is ready to be tested

To make sure I had the updated version of PyZOGY I rebuilt my docker image with the --no-cache option (docker build -t lcogtsnpipe . --no-cache).
I tested this on tutorial data for 18cow. These data subtracted successfully so I changed PyZOGY to accept lower pixstack limits in order to test. In PyZOGY's util.py I updated to:
104        #if pixstack_limit > 300000:
105        #    sep.set_extract_pixstack(pixstack_limit)
106        sep.set_extract_pixstack(pixstack_limit)

This enabled me to test with low pixstack limits to make sure I could reproduce the error, which I did with:
lscloop.py -n SN2018cow -e 20180701 -d 131 --normalize t -T fl --tempdate 20190831 --temptel fa --difftype 1 --fixpix -s diff -F --pixstack-limit 1000
. . .
Passing images to PyZOGY
internal pixel buffer full: The limit of 1000 active object pixels over the detection threshold was reached. Check that the image is background subtracted and the detection threshold is not too low. If you need to increase the limit, use set_extract_pixstack.
PyZOGY failed on lsc1m004-fl03-20180701-0131-e91.fits

Increasing the pixstack limit allowed for successful subtractions:
lscloop.py -n SN2018cow -e 20180701 -d 131 --normalize t -T fl --tempdate 20190831 --temptel fa --difftype 1 -s diff -F --pixstack-limit 16000000
. . .
Passing images to PyZOGY

 ### PSF computed by PyZOGY

So I could reproduce the error and fix it with functionality added by this PR.


Chain Id not getting updated

Chained not getting updated on network change

:tada: This issue has been resolved in version 1.3.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


Validate the tablets form a linked list during merge

This change verifies that the tablets in a merge range form a linked list when merging to make sure the metadata is consistent.
This closes #4651
I went through and added a lot of comments to the checks in the code as it is a bit confusing. The logic here mostly applies to the main branch as well but I will likely need to create a separate commit or do major work after this is merged because the no-chop merge changes moved things around a bit so this will not merge cleanly (the test should be fine). I can work on the updates for main in a separate branch before this is merged.
Note: The fix is done but I'm marking this as a draft PR because the test needs some work. I was trying to write an IT for this and ran into a lot of issues when changing the metadata to be bad so the test would fail. The issue is the merge operation wouldn't reach the merge tablet code where the checks were being done because chop compactions before that didn't work. Basically the trying to break the metadata (no surprise) prevented the merge fate operation from making progress all the way to the MERGING state where the code to be tested is.
To work around this, I came up the idea to have a custom Manager for the test that would mutate the metadata in a tablet to be bad (wrong prevEndRow) after the merge state was being set to MERGING so that we know it was ready to execute the code we wanted to test. This works great and now in the logs the proper exception is seen and it fails with the correct IllegalStateException because the tablets do not form a linked list. However, the merge operation currently just hangs because of this since fate operation doesn't complete.
So, I'm not quite sure how to assert the correct error was thrown and to abort the merge after verifying it so the test completes. So any suggestions on the test would be helpful. The test is marked as Disabled for now since it will hang.

Sounds good, I will revert the test changes and can merge this and just do the manual testing for now since it isn't possible to really test it effectively. I'll work on resolving the conflicts in main locally before merging this to make sure it will go ok.


add Organism.Unspecified

@mkutmon, we need to do decide on the name.

I can think of the following

unspecified
unidentified
undefined

I am not sure I have a favorite to be honest...

https://github.com/bridgedb/BridgeDb/commit/0ab0df3526ce5839ba2c362abd478049b7f287d4


fix failing [gitlab] service test

Messages

:book:
:sparkles: Thanks for your contribution to Shields, @chris48s!

  Generated by :no_entry_sign: dangerJS against f0e00268a5cacb6fb2e01a61054b8aa524c487bd


Modify generation of unfiltered output to include basic cell statistics in colData

We will want to add in colData to the unfiltered output. In order to do that we should modify generate_unfiltered_rds.R to add in the colData prior to writing the rds file.

Per the notes in the slides from the scpca planning meeting we had yesterday, this should also include rowData which includes the total counts for each gene.


Bug: Chosen Checkpoint or Lora is displayed as [object Object]

Whenever I use your (brilliant) nodes to load checkpoints or Loras, the UI just gives me [object Object]. This is of course not very helpful. It may have something to do with me working on a Mac but I don't know. I assume that the Safari browser defaults to a different string representation of an object. Please make it explicit, what string is to be used, if at all possible. I switched to Chrome for now, but it were awesome if you count look into it.
Thanks for your great work.

yeah this is weird, seems like it works fine in chrome but i get this in safari too.

I have a problem with Safari on my Mac.


Update has_inputs_and_outputs() for new consensus rules

Motivation
We need to update Zebra for new consensus rules added to the protocol in regards to orchard flags. Closes https://github.com/ZcashFoundation/zebra/issues/2365
Specifications

At least one of tx_in_count, nSpendsSapling, and nJoinSplit MUST be non-zero.
At least one of tx_out_count, nOutputsSapling, and nJoinSplit MUST be non-zero.
This condition must hold: tx_in_count > 0 or nSpendsSapling > 0 or (nActionsOrchard > 0 and enableSpendsOrchard = 1)
This condition must hold: tx_out_count > 0 or nOutputsSapling > 0 or (nActionsOrchard > 0 and enableOutputsOrchard = 1)

https://zips.z.cash/protocol/protocol.pdf#txnencodingandconsensus
Solution
Add the new consensus rules into the has_inputs_and_outputs function, update the tests to cover them.
Review
Anyone can review the code initially, before merging @teor2345 should take a look.
Reviewer Checklist

[ ] Code implements Specs and Designs
[ ] Tests for Expected Behaviour
[ ] Tests for Errors

I moved the remaining items to new lower priority tickets and enabled auto merge here. Need a new approval.


Allow truncation in %.f format specifier

Description
Currently, using %.f format specifiers in strftime() allows setting the minimum amount of digits to use, e.g. %.3f, as stated in the docs:

… print a fractional second component to at least 3 decimal places.

This is fine and indeed the useful approach for most use-cases. However, it could be nice to be able to also limit the maximum number of digits. Right now, this can only be achieved by rounding the value before printing it, e.g. round(jiff::Unit::Millisecond).

I think this is a bug. My intent was that %.3f would also limit to 3 decimal places. But indeed, that's not the current behavior. This new test:
        insta::assert_snapshot!(f("%.3f", mk(123_456_000)), @".123");

Fails:
Expression: f("%.3f", mk(123_456_000))
─────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
-old snapshot
+new results
────────────┬────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────
    0       │-.123
          0 │+.123456
────────────┴────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────────

I fixed this in #74. I'll do a release this weekend at some point.
Note that this will only do truncation. If you need non-truncation rounding, you'll have to keep doing what you're doing. Formatting can't really feasibly do anything other than truncation because rounding can increase other units. The cases are probably pathological, but for example, doing %Y %.0f with 2024-12-31T23:59:59.999999999Z would need to increment the year when using the HalfExpand rounding mode.
My bet though is that truncating at the sub-second level is probably good enough for most use cases. You might consider doing that in your GraphQL integration since rounding can be a bit heavy-weight. (Rounding requires normalizing the date/time representation, doing the rounding and then un-normalizing back.)

Right, yeah, it slipped. I'll do one today.

Okay, jiff 0.1.5 is now out!


WiFi network latency is unstable, how to improve (IDFGH-13946)

Answers checklist.

[X] I have read the documentation ESP-IDF Programming Guide and the issue is not addressed there.
[X] I have updated my IDF branch (master or release) to the latest version and checked that the issue is present there.
[X] I have searched the issue tracker for a similar issue and not found a similar issue.

IDF version.
idf_v4.4.4
Espressif SoC revision.
ESP32-WROOM-32D
Operating System used.
Windows
How did you build your project?
Command line with idf.py
If you are using Windows, please specify command line type.
None
Development Kit.
custom board
Power Supply used.
USB
What is the expected behavior?
I hope to improve the stability of communication under weak signals
What is the actual behavior?
I test with four wifi dev,  801 and 819 dev used esp32 chip,we can see those two dev ping packet  lost  bigger than rachio3,and latency is unstable.

Steps to reproduce.

Four devices are placed together and connected to the same wifi router
Test by sending ping requests to four devices on one computer

Debug Logs.
No response
More Information.
No response

Hi @luacerbb
Could you try disable WiFi modem sleep (calling esp_wifi_set_ps(0) after esp_wifi_start()) and re-test ?

@MaxwellAlan
thanks,I will arrange for my colleague to retest

Hi @luacerbb
Could you try disable WiFi modem sleep (calling esp_wifi_set_ps(0) after esp_wifi_start()) and re-test ?

@MaxwellAlan
I don't get your point, do you mean it's normal behavior with WiFi modem sleep enabled?
If so, why the device rachio3 does not show the same symptom?
@luacerbb
Can you make sure the setting is exactly the same for these 4 devices?


sqlfmt keeps adding \tab before every line wrapped with triple quotes

sqlfmt keeps adding \tab before every line wrapped with triple quotes.
Reproduce steps.
One can define a macro, say, to select columns depending on key:
{% macro test(key) %}
   {% set columns_by_source = {
      "a": """
          column_a1,
          column_a2,
          column_a3,
      """,
      "b": """
          column_b1,
          column_b2,
      """,
    } %}
   ....
{% endmacro %}

Now every time, running sqlfmt -k -l 80 ., sqlfmt will add \tab before each line continuously moving rows right.
Locally you can skip -k flag, but then if you have .pre-commit hooks in GitHub, it might prevent from merging as sqlfmt check will always fail.
What is the output of sqlfmt --version?
rev: v0.21.3
hooks:
    - id: sqlfmt
      language_version: python
      additional_dependencies: ['.[jinjafmt]']

Thanks for the report, I can reproduce. I guess the saga with unstable jinja continues. (Related to #191 #176 etc)


mondrian views clip the display

The bounds for a mondrian display are too small:

and are worse if you zoom out:

closing due to being a duplicate of https://github.com/feenkcom/gtoolkit/issues/1577


.env-aware settings

This PR makes use of pydantic + python-dotenv settings to extend support to env variables via .env

It looks like GitHub has some reliability issues and PRs from forks are not updating.
Merged manually in 5385c05 + parents after rebasing on main


Support for slicing in DottedList

Looks like DottedList does not support slicing:
>>> from dotted.collection import DottedCollection
>>> c = DottedCollection.factory(
        {'content': {'comments': ["hi there", "cool site", "no way", "first"]}})
>>> c['content.comments'][:2]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "dotted/collection.py", line 174, in __getitem__
    raise IndexError('cannot get %s in %s' % (index, repr(self.store)))
IndexError: cannot get slice(None, 2, None) in ['hi there', 'cool site', 'no way', 'first']

This is kinda a bummer, since lots of code uses slicing. But should be pretty easy to add. Working on patch.

Pull request: https://github.com/carlosescri/DottedDict/pull/8

Great! Thank you @ryanwitt.


Bug fixes

[ ] ffmpeg fails when height isn't divisible by 2
[ ] Note preview doesn't incorporate brightness
[ ] Change "Audio format" to "Instrument"
[ ] Convert brightness value to something more intuitive

I believe there is an error when you try to process raw data in the command line:
import pyanthem

g = pyanthem.run(display=False)

Welcome to pyanthem v1.2.3!

♫ g.process_raw(file_in=r'demo1_raw.mat',n_clusters=20,save=True)

Performing k-means...done.

Performing NNLS...done.

Error: Inner or outer dimensions of W [shape=(20, 200)] and H [shape=(128, 128, 20)] do not match!

<pyanthem.pyanthem.GUI object .>

However, the same file works fine with the GUI File --> Load raw...


Move this repo, and the widget repositories to an organization

I believe it would be useful to fork all the core widgets from @brainfoolong so we can remove the project discontinued notice and continue to iterate.

I would suggest moving this repo, and the widget forks into an 'rcon-web-admin' organization to allow for these projects to be clearly grouped, and to allow for extended collaboration.

Definitely sounds like a better way to handle this. I'm gonna create the org and move the current repo into it.


Product improvements to device flow

Support unit resolving for device flow related configuration
Fix the same token been issued for if one user login to multiple devices
Add the device endpoint to the discovery response
UI improvements for the User code input page

@senthalan Shall we update the issue with more details. As we have concluded 1 test round for this feature with alpha 14 pack we can consider these improvements with alpha 15. Better to add screenshots or detailed steps on the improvements planned to do. If we have all the information in the issue that will help to complete the next round of testing with less time.

@senthalan could you please update the status of the issue?

While improving device flow please consider https://github.com/wso2/product-is/issues/13214

@senthalan @nilasini Are these improvements are done and available in the latest released 5.12.0 Alpha 18 pack. Can you pls confirm ?

The UI and other core improvements are available in the beta, We have identified some performance improvements, that will be added to the product with https://github.com/wso2-extensions/identity-inbound-auth-oauth/pull/1832


Sampling

After merging #4, there is few things left:

[x] Still Few or the pixels seems to have 0 flow on all input nodes for that pixel, the sum of flows for each variable input nodes should be exactly 1.
[x] Sampling for categorical layers assumes same cateogory count for all features (e.g. 256 categories for mnist), to handle other cases probably need to write a triton kernel.
[x] [Potential Speed when a lot of samples needed]. Right now does one sample per item in batch based on missing_maks, if want a lot of samples for sample multiple times on the same batch. Can probably do something similar to Juice.jl to do all samples at the same time.

For the second problem, we can build separate input layers for input nodes with different category counts. I will look into this.

fixed in the refactored version; see https://github.com/Juice-jl/pyjuice/blob/bf8e3aed6b8b91b73f87f2c3ebeb65cbf19a3e46/src/pyjuice/queries/sample.py#L72


adding null safety, fixing few bugs and upgrading all packages

I have migrated to the latest of flutter's null safety and fixed few bugs and issues related to parsing that was causing exceptions at the response handler. also upgraded and updated all the packages.

check this thread 😂
https://github.com/vukoye/xmpp_dart/pull/84

we kinda did the same thing :D
closing this up based on your mention.
thanks


userinfo endpoint does not return email_verified field

Here is a struct that is expected by oidc provider
And here is a struct in mockoidc that will convert to json.
And we can find that it misses email_verified field
Same with subject field

I have encountered the same issue for the subject field, basically the mockUserInfo object also need the subject field.


Samsung Galaxy S3 shows black view when trying to record w/ rear camera.

Material Camera version: 0.2.14
Device OS version: 6.0.1
Device Manufacturer: Samsung
Device Name: Galaxy S3

Using the sample application:

Select 'Launch Camera'
Toggle camera to use rear.

This should show the camera preview, but instead shows black w/ the bottom action bar.
Logcat shows the following:
08-03 22:05:45.590 29319-29319/com.afollestad.materialcamerasample D/CameraFragment: Couldn't find any suitable preview size
08-03 22:05:45.600 29319-29319/com.afollestad.materialcamerasample D/CameraFragment: Orientations: Sensor = 90˚, Device = 0˚, Display = 90˚
08-03 22:05:46.010 29319-29319/com.afollestad.materialcamerasample D/SF-CameraPreview: Error starting camera preview: startPreview failed
08-03 22:05:51.005 29319-29319/com.afollestad.materialcamerasample E/Camera: Error 1001
08-03 22:05:56.011 29319-29319/com.afollestad.materialcamerasample E/Camera: Error 1001
Furthermore, if the user tries to record anyways (pressing record and then stop after a valid amount of time), the following messages are shown.
On record pressed:
08-03 22:07:33.024 29319-29319/com.afollestad.materialcamerasample D/CameraFragment: Orientations: Sensor = 90˚, Device = 0˚, Display = 90˚
08-03 22:07:33.124 29319-29319/com.afollestad.materialcamerasample I/MediaRecorderJNI: prepare: surface=0x62fd5d30
08-03 22:07:48.691 29319-30661/com.afollestad.materialcamerasample W/CameraBase: Camera service died!
08-03 22:07:48.691 29319-29330/com.afollestad.materialcamerasample W/IMediaDeathNotifier: media server died
08-03 22:07:48.701 29319-29331/com.afollestad.materialcamerasample W/CameraBase: mediaserver's remote binder Camera object died
08-03 22:07:48.751 29319-29319/com.afollestad.materialcamerasample E/Camera: Error 100
On stop pressed:
08-03 22:08:07.731 29319-29319/com.afollestad.materialcamerasample D/EasyVideoPlayer: Surface texture available: 720x1280
08-03 22:08:07.731 29319-29319/com.afollestad.materialcamerasample V/MediaPlayer: setVideoSurfaceTexture
08-03 22:08:07.731 29319-29319/com.afollestad.materialcamerasample D/EasyVideoPlayer: Loading local URI: file:///storage/emulated/0/MaterialCamera/VID_20160803_220733.mp4
08-03 22:08:07.741 29319-29319/com.afollestad.materialcamerasample V/MediaPlayer-JNI: setDataSourceFD: fd 60
08-03 22:08:07.741 29319-29319/com.afollestad.materialcamerasample V/MediaPlayer: setDataSource(60, 0,<PHONE_NUMBER>03423487)
08-03 22:08:07.791 29319-29330/com.afollestad.materialcamerasample V/MediaPlayer: message received msg=8, ext1=0, ext2=0
08-03 22:08:07.791 29319-29330/com.afollestad.materialcamerasample V/MediaPlayer: notify(8, 0, 0) callback on disconnected mediaplayer
08-03 22:08:07.821 29319-29319/com.afollestad.materialcamerasample E/MediaPlayer: Unable to create media player
08-03 22:09:47.848 29319-29319/com.afollestad.materialcamerasample V/MediaPlayer-JNI: release
08-03 22:09:47.858 29319-29319/com.afollestad.materialcamerasample V/MediaPlayer: setListener
08-03 22:09:47.858 29319-29319/com.afollestad.materialcamerasample V/MediaPlayer: disconnect
08-03 22:09:47.858 29319-29319/com.afollestad.materialcamerasample V/MediaPlayer: destructor
08-03 22:09:47.868 29319-29319/com.afollestad.materialcamerasample V/MediaPlayer: disconnect
08-03 22:09:47.868 29319-29319/com.afollestad.materialcamerasample D/EasyVideoPlayer: Released player and Handler
08-03 22:09:47.878 29319-29319/com.afollestad.materialcamerasample D/EasyVideoPlayer: Surface texture destroyed
08-03 22:09:47.878 29319-29319/com.afollestad.materialcamerasample D/EasyVideoPlayer: Detached from window
08-03 22:09:47.878 29319-29319/com.afollestad.materialcamerasample D/EasyVideoPlayer: Released player and Handler
08-03 22:09:48.249 29319-29319/com.afollestad.materialcamerasample E/WindowManager: android.view.WindowLeaked: Activity com.afollestad.materialcamera.CaptureActivity has leaked window com.android.internal.policy.impl.PhoneWindow$DecorView{4241e1b8 V.E..... R....... 0,0-683,383} that was originally added here
A dialog then appears, displaying Error: setDataSourceFD failed.: status=0x80000000. And the progress bar 'loads' forever. It is possible to press the 'Back' or 'Retry' button to go to the initial preview screen, which is still black w/ the bottom action bar.
Let me know if I can provide any more information. I tried to only include relevant information, but I didn't want to exclude any important info. Thanks for the help.

This has been fixed in the still shot PR (#70).