[TW#14831] Stop scanning after few time

Hi,
I am developing a project using ESP32 with the gattc_demo example that must scan for beacons and print its parameters as MAC address. I was able to run and see some information, but I have to scan continuously, something like esp_ble_gap_start_scanning(forever).
What I have done to implement this logic was recall the esp_ble_gap_start_scanning method inside the ESP_GAP_SEARCH_INQ_CMPL_EVT case to restart scanning. However, after some time, I can see only the message BT: btc_search_callback  BLE observe complete. Num Resp 80 and no information about the beacons is printed. It seems like the scan was made but no devices were found.
I need some help to figure out what is going on. Is there a best way to implement this?
Thanks.

@esantosjr , you mean ESP32 cannot scan any devices or just a certain device? Then, could the GATTC-DEMO in esp-idf/examples/bluetooth can scan the devices?

Hi,
the ESP32 cannot scan any devices!
I already am using the GATTC-DEMO example with the modification of scan continuously.
This is an image of the result that I am getting. It seems that the scan is making "white reads".

@esantosjr, @TianHao-Espressif  I also met this issue.
esp_ble_gap_start_scanning() is used to start ble scan, and
E (947683) BT: btc_search_callback  BLE observe complete. Num Resp 211
for indicating the end of scan duration. (I set duration = 10s)
There are some ble data captured during scan duration.However, after a while, there is no scanned ble data. After I restart esp32, it can capture some ble datas then nothing....
At first I followed the ESP_EDF BLE example, then I found this tutorial https://github.com/barnybug/ESP32BleMQTT
It said that:
// scan params must be reset before starting another scan
printf("scan completed, restarting...\n");
esp_ble_gap_set_scan_params(&ble_scan_params);
I tried to call esp_ble_gap_set_scan_params everytime before start new scan duration.
But the issue still happens.
One thing is that, this issue happen for some esp32 boards (2/5 of my boards have issue)
Hope someone can give some advice.
Thank you

@TianHao-Espressif is there any method to tracking or monitor the stack is used by any task (ble task for example)

@hiik3n , please undefine the macro CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE by unselect menuconfig -> Component config -> PHY(or Wifi->PHY) -> Do phy calibration and store calibration data in NVS to do full RF calibration.
Then try it. Thanks.

@TianHao-Espressif When I tried to disable CONFIG_ESP32_PHY_CALIBRATION_AND_DATA_STORAGE, the stituation is worse, onle first scan duratio has some response, others have nothing....

@hiik3n , another suggestion: please do a flash erase by make erase_flash. To clear all the init_data and program.
BTW, so you mean that the same program burned into different ESP32 board, some ESP32 board can scan successfully, but others cannot scan anythings. Right?

@TianHao-Espressif I also try make erase_flash, but no change.
I tried same program on 5 boards, 2 boards almost have issue after 1-3 hour of runing, others can stand for a day...

@hiik3n , when the ESP32 board will stop?  After duration or in duration? I mean that if duration is 10s, after 10s, scan stop automatically, then do scan again, cannot scan anything, right?

@TianHao-Espressif " duration is 10s, after 10s, scan stop automatically, then do scan again, cannot scan anything" >> yes

@hiik3n and @TianHao-Espressif, I have got a solution for my problem.
First of all I removed all unused code for me, because I only want to scan devices, and not connect to one.
The other changes are commented in the code.
The scan ran for 3 days without any problems.
The resulting code is:
/****************************************************************************
*
* This file is for gatt client. It can scan ble device.
*
****************************************************************************/

#include <stdint.h>
#include <string.h>
#include <stdbool.h>
#include <stdio.h>
#include "nvs.h"
#include "nvs_flash.h"
#include "controller.h"

#include "bt.h"
#include "bt_trace.h"
#include "bt_types.h"
#include "btm_api.h"
#include "bta_api.h"
#include "bta_gatt_api.h"
#include "esp_gap_ble_api.h"
#include "esp_gattc_api.h"
#include "esp_gatt_defs.h"
#include "esp_bt_main.h"

#define GATTC_TAG "BEACON SCAN"
// Declare static functions
static void esp_gap_cb(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param);

static const char device_name[] = "Alert Notification";

static esp_ble_scan_params_t ble_scan_params = {
    .scan_type              = BLE_SCAN_TYPE_PASSIVE, // change scan type to passive
    .own_addr_type          = BLE_ADDR_TYPE_PUBLIC,
    .scan_filter_policy     = BLE_SCAN_FILTER_ALLOW_ALL,
    .scan_interval          = 0x10,
    .scan_window            = 0x08
};

static void esp_gap_cb(esp_gap_ble_cb_event_t event, esp_ble_gap_cb_param_t *param)
{
    switch (event) {
    case ESP_GAP_BLE_SCAN_PARAM_SET_COMPLETE_EVT: {
        // the unit of the duration is second
        uint32_t duration = 10;
        esp_ble_gap_start_scanning(duration);
        break;
    }

    case ESP_GAP_BLE_SCAN_RESULT_EVT: {
        esp_ble_gap_cb_param_t *scan_result = (esp_ble_gap_cb_param_t *)param;
        switch (scan_result->scan_rst.search_evt) {
        case ESP_GAP_SEARCH_INQ_RES_EVT:
			esp_log_buffer_hex(GATTC_TAG, scan_result->scan_rst.bda, 6);
            ESP_LOGI(GATTC_TAG, "Searched Adv Data Len %d, Scan Response Len %d", scan_result->scan_rst.adv_data_len, scan_result->scan_rst.scan_rsp_len);
            adv_name = esp_ble_resolve_adv_data(scan_result->scan_rst.ble_adv,
                                                ESP_BLE_AD_TYPE_NAME_CMPL, &adv_name_len);
            ESP_LOGI(GATTC_TAG, "Searched Device Name Len %d", adv_name_len);
            esp_log_buffer_char(GATTC_TAG, adv_name, adv_name_len);
            ESP_LOGI(GATTC_TAG, "\n");
            if (adv_name != NULL) {
                if (strlen(device_name) == adv_name_len && strncmp((char *)adv_name, device_name, adv_name_len) == 0) {
                    ESP_LOGI(GATTC_TAG, "Searched device %s\n", device_name);
                }
            }
            break;
        case ESP_GAP_SEARCH_INQ_CMPL_EVT:
			esp_bt_controller_disable(ESP_BT_MODE_BTDM); // reinit ...
			esp_bt_controller_enable(ESP_BT_MODE_BTDM);  // ... bluetooth
                        esp_ble_gap_set_scan_params(&ble_scan_params); // reset parameters
			esp_ble_gap_start_scanning(10);
            break;
        default:
            break;
        }
        break;
    }

    default:
        break;
    }
}

void ble_client_appRegister(void)
{
    esp_err_t status;
	printf("Register callback\n");

    // register the scan callback function to the gap module
    if ((status = esp_ble_gap_register_callback(esp_gap_cb)) != ESP_OK) {
        ESP_LOGE(GATTC_TAG, "gap register error, error code = %x", status);
        return;
    }

	esp_ble_gap_set_scan_params(&ble_scan_params); // set params
}

void gattc_client_test(void)
{
    esp_bluedroid_init();
    esp_bluedroid_enable();
    ble_client_appRegister();
}

void app_main()
{
	// Initialize NVS.
    esp_err_t ret = nvs_flash_init();
    if (ret == ESP_ERR_NVS_NO_FREE_PAGES) {
        ESP_ERROR_CHECK(nvs_flash_erase());
        ret = nvs_flash_init();
    }
    ESP_ERROR_CHECK( ret );

    esp_bt_controller_config_t bt_cfg = BT_CONTROLLER_INIT_CONFIG_DEFAULT();
    esp_bt_controller_init(&bt_cfg);
    esp_bt_controller_enable(ESP_BT_MODE_BTDM);

    gattc_client_test();
}

@esantosjr great! Reset bt_controller each time helps to increase the performance of scanning surround ble.
Thank you for your suggestion.
However, the number of scanned beacon is not stable. I have 10 beacons advertising every 350ms. I set duration = 10s, internal = 5s and window = 2.5s. The result of each scan is not stable,  maybe 10 or 7 or 2 or 1 or even 0 for some perioid of time (some minutes then normally)
How your scan result performance?

@hiik3n the performance is good, I can scan the devices many times during one period.

@esantosjr you can see my esp scanning performance, it look not ok

@esantosjr @TianHao-Espressif I just found that if I run ble scan only (wifi is not active), I can scan ble for long time.
But if I active wifi and send scanned ble via mqtt (https://github.com/eclipse/paho.mqtt.embedded-c ), the issue of scan 0 ble package happen. I am trying to find the reason and the solution for that. I also think if the reason is conflict of bluetooth and wifi task, because they use same antenna.

@hiik3n I am facing problems using this library for mqtt: https://github.com/knolleary/pubsubclient
But the issue of scan 0 ble package isn't happen, my problem is more in relation to the connection between the board and wifi. After some time, the connection is lost and when there is a reconnection the board halt. There is no error message, and nothing is printed.

Hi, have you tried the latest IDF? Is this problem still unsolved?

reference to #924,  asker have tested the latest ESP-IDF. It can work.

@esantosjr
I change my code as you given.  but gives an error..
error: too many arguments to function 'esp_bt_controller_disable'
esp_bt_controller_disable(ESP_BT_MODE_BTDM); // reinit ..

@burkulesomesh43, maybe you are using a newer version of the library and that function has changed.
You can check the function's definition and see which are the parameters that it expects.
Also, the issue #924 should be helpfull, as said in the last commentary.

@esantosjr, yes I am using latest version.
I got solution. actually esp_bt_controller_disable() function in my liabrary returns void. so no need to give ESP_BT_MODE_BTDM parameter to function. the function itself include esp_bt_get_mode() function.
now it's working properly.
thank you for your quick response.

@burkulesomesh43 nice! I'm glad I could help.


Svelte website out of root deployment issue

The deployment of this directory structure works but CloudFront returns an error and doesn't serve the website ({path: './../svelte-website/' }):
app.company.com/
├─ infra/
│  ├─ sst.config.ts
├─ svelte-website/
│  ├─ package.json
│  ├─ ...

The deployment of this directory structure works and CloudFront does serve the website ({path: './svelte-website/' }):
app.company.com/
├─ sst.config.ts
├─ svelte-website/
│  ├─ package.json
│  ├─ ...

Intentional or bug?

The sst config is meant to be in your project root.


 We still need to improve both the parent and child cards.

looks good.


Add sentry example to patterns

This addition to the docs looks good and helpful to me. Should we merge them?
The flake8 complaints are unrelated (and already fixed on a different PR).

I do not think this adds valuable information after all, since there is an example already what to do for Prod-only setup (connecting to a DB).
Am I missing something?

Hmm, sorry, now it's merged. :worried:
Well, I felt Sentry is a realistic example. It's the exact one I'm also facing, currently.
Let's see if we can consolidate the pattern chapter. Sorry again!

Not a big problem, but while documentation is good in general, it should be terse and not too much.
But I've also only skimmed it.


How was 'java_large_adversarial' created?

Dear sir,
How was 'java_large_adversarial' created?
Was it created by 'preprocess.py'?
Also, I checked the c2v files, but they don't have java code strings.
I wonder why they were made in that form like 'find|class override,1796187300,? override,-733851942,METHOD_NAME ?,929015244,METHOD_NAME ?,-1951158817,name ?,380512398,string METHOD_NAME,1261040172 ~~~'.

Hi @skkuai ,
Thank you for your interest in our paper!
@noamyft has created the dataset, I think that he used preprocess.**sh** , which calls JavaExtractor, which is a modified version of the java extractor in the original code2vec code.
The numbers in the c2v files, like "1796187300" and "-733851942", are hashes of the original path strings.
The original path strings look like "ForLoop^Expression^Block_IfCondition", and the Java extractor just hashes these strings.
This is how it was done in the original code2vec, to save disk space (save a 10-characters strings rather than a much longer string).
There exists a flag --no_hash in the JavaExtractor that keeps these path strings in their original form instead of hashing. It has no effect on the performance, just the dataset takes more space on the disk.
Let us know if you have any other questions.
Best,
Uri


Added an example in EXAMPLES.md

Tried the way suggested.
Fixes part of #31

Tried the way suggested.
Fixes part of #31

checking

Thankss!!

you are welcome! feel free to jump in other issues :)


logoff description is missing /VM option

This is missing
/VM       Logs off a session on server or within virtual machine. The unique ID of the session needs to be specified.

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

ID: 4442c721-afa5-32c6-8d9c-c20cb1e5b51d
Version Independent ID: e715e626-c08d-3470-0899-ebcba6f85d7c
Content: logoff
Content Source: WindowsServerDocs/administration/windows-commands/logoff.md
Product: windows-server
Technology: windows-commands
GitHub Login: @JasonGerend
Microsoft Alias: jgerend

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


Set config file location from the env

This avoids the hacky method of providing the path on the cli args, especially for the headscale command,
where the user may add a -c argument themselves (duplicate arg).

Rebased to fix merge conflicts.


Elastic updates

Upgrade elasticsearch to 1.5.2, logstash to 1.5.0
Deployed to:

[x] meta
[x] cityindex

Successfully deployed to meta.

Successfully deployed to cityindex.
@mrdavidlaing, feel free to double check, merge, and release.

Thx
On Friday, May 22, 2015, Danny Berger<EMAIL_ADDRESS>wrote:

Successfully deployed to cityindex.
@mrdavidlaing https://github.com/mrdavidlaing, feel free to double
check, merge, and release.
—
Reply to this email directly or view it on GitHub
https://github.com/logsearch/logsearch-boshrelease/pull/129#issuecomment-104451747
.

--
David Laing
logsearch.io - build your own open source cloud logging cluster
http://davidlaing.com

Looks good to me.  Merging


Add locking to the replicator

Resolves wellcometrust/platform#3599.
It works! It really works! Well, mostly. It exposes a bit of inflexibility in the Dynamo locking service that I’ll port back to the storage repo, along with the ability to record the history of locks on an in-memory LockDao (so you can find out how many locks were acquired).
But I think the rough shape of it is broadly correct. Thoughts?

Still to do:

[ ] A crash in AlpakkaSQSWorker causes the app to hang, if it's really unrecoverable it should stop the entire application
[ ] Add IAM permissions for changing message visibility when we return a NonDeterministicFailure
[ ] Make the retry timeout configurable somehow – by default AlpakkaSQSWorker sets the message timeout to 0, which is precisely the wrong thing here! We want to send the message back onto the queue and leave it there for a while


refactoring some instructions

A PR to keep track of things that I run into as I go through the intro tutorial.
I also tried adding the README.rst into the index instead of having it as a separate page, LMK what folks think about that!

ok I took a pass through the instructions and I think in general they look good, nice work @kysolvik! If you're fine w/ it, we can merge these changes (if you're happy w/ them) and keep track of to-do items in the issues.

this looks really great! Thanks @choldgraf, especially for the added language in the tutorial. Makes it much more clear what the different commands are doing
Do you have a suggestion for a sentence to cover the windows subsystem for linux? I've never used it. We could link to Microsoft's documentation, unless you have other ideas: https://docs.microsoft.com/en-us/windows/wsl/about

That probably what I'd do just - just something like:
If you're on Windows 10, you may also want to try `Windows Subsystem for Linux <https://docs.microsoft.com/en-us/windows/wsl/about>`_, which allows you to run a linux command line from within Windows. It is still somewhat experimental, but is useful for developing and testing code written in linux.

Great thanks! Merged your changes and I'll add the windows subsystem text


Improve error handling for invalid components

Have a question? Please checkout our Slack Community or visit our Slack Archive.

Describe the Feature
Running Atmos with an invalid component throws an error that is unclear to users.
atmos terraform plan accounts -s gbl-root
panic: writing ./components/terraform/accounts/gbl-root-accounts.terraform.tfvars.json: open ./components/terraform/accounts/gbl-root-accounts.terraform.tfvars.json: no such file or directory

Expected Behavior
A clear error showing the problem.
Use Case
Running a component via the CLI.
Describe Ideal Solution
Show a clean error like "Missing component: accounts" or something much more readable.
Alternatives Considered
N/A
Additional Context
N/A

Also when there is a missing stack yaml file. Seems relevant in error handling.
In this example, there is no ue2-sandbox
⨠ atmos terraform plan eks -s ue2-sandbox
Error: Error in function call

  on /modules/utils/stack-config.variant line 71:
  (source code not available)

with opt.config-dir as "./stacks",
     opt.stack as "ue2-sandbox".

Call to function "import" failed: /modules/utils/stack-config.variant:10,43-50: Invalid function
argument; Invalid value for "path" parameter: no file exists at stacks/ue2-sandbox.yaml; this
function works only with files that are distributed as part of the configuration source code, so if
this file will be created by a resource in this configuration you must instead obtain this result
from an attribute of that resource..

Error: Error in function call

  on /modules/utils/stack-config.variant line 71:
  (source code not available)

with opt.config-dir as "./stacks",
     opt.stack as "ue2-sandbox".

Call to function "import" failed: /modules/utils/stack-config.variant:10,43-50: Invalid function
argument; Invalid value for "path" parameter: no file exists at stacks/ue2-sandbox.yaml; this
function works only with files that are distributed as part of the configuration source code, so if
this file will be created by a resource in this configuration you must instead obtain this result
from an attribute of that resource..

Error: 1 error occurred:
	* step "write varfile": job "terraform write varfile": config "config-component": source 0: job "stack config": /modules/utils/stack-config.variant:71,13-20: Error in function call; Call to function "import" failed: /modules/utils/stack-config.variant:10,43-50: Invalid function argument; Invalid value for "path" parameter: no file exists at stacks/ue2-sandbox.yaml; this function works only with files that are distributed as part of the configuration source code, so if this file will be created by a resource in this configuration you must instead obtain this result from an attribute of that resource..

but like @johncblandii recommended, it would be nice if it simply said
⨠ atmos terraform plan eks -s ue2-sandbox
Missing stack: ue2-sandbox

Even better if it said, did you mean ue2-coolsandbox? :smile:

Atmos now supports friendly error messages when components do not exist with the 1.0 release


First item is selected when adding items to Select menu without defaultValue

Current behavior
I am building an async Select control, and I want it to be able to not have a default value.  However, I find that when the options load from my server call, the first one is chosen as the value.
Steps to reproduce the bug

Open sandbox: https://stackblitz.com/edit/fhxrgu?file=select%2Findex.tsx
Notice that the placeholder is only shown for one second, then a value is chosen, even though it's not specified as a defaultValue

Expected behavior
The value should not change when children are added to the SelectPopover.
Workaround
The defaultValue can be set to an empty string.  But, since that's not one of the option values, it feels incorrect.  I'd try setting it to null, but that does not typecheck.
Possible solutions
No response

Thanks.  I'm not a huge fan of the native behavior of needing an option with value "" that is disabled and has a label "--Please choose an option--", since it shows up in the dropdown list.  So it would be great if the value could be null from that standpoint.

@diegohaz just some feedback as a new user trying out ariakit, I'm confused with the difference between defaultActiveId and defaultValue.
For me personally, I didn't want the first item to be selected when the Select opens. So I tried defaultActiveId: null, but that seems to do something different, so here I am, landing on this issue. 😄
Using defaultValue: "" is precisely the behaviour I wanted!


Adding Support for Azure Environments [untested]

This PR fixes
https://github.com/Azure/AzOps/issues/141
Adds support for Azure Environments, by reading a $env:AZURE_ENVIRONMENT environment variable.

Unable to test this so far, advice on testing the container would be appreciated :)

@FriedrichWeinmann  - can you please update docs https://github.com/Azure/Enterprise-Scale/blob/main/docs/Deploy/setup-github.md

/azp run

/azp run

/azp run

/azp run

/azp run

/azp run

/azp run

/azp run


Build 1.25(231) Magiclink not working

Importing page show up, shows all good on app.
But for mainnnet token, can not find any transection records on etherscan
Payment server didn’t broadcast the transection at all.
For ropsten, can find record, transection failed.
User broadcast the transection, then fail.

@zhangzhongnan928 first issue is solved, the paymaster was low on ether

Is that because, Ropsten tried to upgrade to the new version of ethereum
but failed.
Regards,
[image: AlphaWallet] https://awallet.io/
Victor Zhang
[image: AlphaWallet Github] https://github.com/alpha-wallet [image:
AlphaWallet Twitter] https://twitter.com/Alpha_wallet [image: AlphaWallet
Reddit] https://www.reddit.com/r/AlphaWallet [image: AlphaWallet Facebook]
https://www.facebook.com/AlphaWallet/ [image: AlphaWallet Youtube]
https://www.youtube.com/channel/UCPP12PQeQmQ4_6qXzNvZw-w/ [image:
AlphaWallet Linkedin] https://www.linkedin.com/company/αwallet/ [image:
AlphaWallet Weibo] https://weibo.com/AlphaWallet
Join our Telegram group. https://t.me/AlphaWalletGroup
On Mon, Oct 22, 2018 at 12:40 PM Hwee-Boon Yar<EMAIL_ADDRESS>wrote:

@James-Sangalli https://github.com/James-Sangalli Looks like there are
2 problems for Ropsten:
A. In
https://github.com/AlphaWallet/alpha-wallet-ios/blob/master/AlphaWallet/Market/UniversalLinkHandler.swift#L109
I think this:
tokenIds: [BigUInt()]
should be:
tokenIds: []
Otherwise, it'll end up with tokenIds = [0] (i.e. 1 token ID with value 0)
and it'll be interpreted later as a spawnable link.
B. This one's strange. If we change ClaimERC875Order's ABI spec for r and
s to bytes32, it'll work:
https://ropsten.etherscan.io/tx/0xf7eb1ea283d70db4f3d0ff405ffc13169d8e592fdb193e267c6132a2b115bdf1
vs this which fails:
https://ropsten.etherscan.io/tx/0x8a1c65e808ee652d11d7c198ba467bee1240c0d11e741310e587863e9271f49e
I don't understand why it worked previously.. I haven't created a PR
because #813 https://github.com/AlphaWallet/alpha-wallet-ios/pull/813
exists
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/AlphaWallet/alpha-wallet-ios/issues/824#issuecomment-431737696,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AgOt1xmmpMhngECgN9G1EQGU_z8ruAQCks5unUw7gaJpZM4XyQh8
.


Calculate the most popular languages (about section)

I think you could rename this to something like Add most popular languages bar chart. Because with a charts library usually you don't need to make the calculations.

For sure, but you also will need to organize the data to make it presentable in a chart.

Sure, you're right. That have to be done. Thank you for consider my suggestion.

Done #31


Reconcile configuration drift in Helm releases

User Story
As an operator I would like CAAPH to reconcile configuration drift in Helm releases.
Detailed Description
If I modify or delete a Kubernetes resource on the target cluster that is managed by CAAPH through a HelmReleaseProxy, it is not reconciled to the desired state.
For example, if I delete a Deployment deployed through CAAPH, it is not recreated.
When using Helm directly, a release can be repaired by running helm upgrade with the same version and values as before.
CAAPH seems to skip executing any actions on the target cluster if there is no change in the HelmReleaseProxy resource.
Making any change in the HelmReleaseProxy resource (like bumping the version) does trigger a reconcile and restores any modified or deleted resources back to the desired state.
It would be nice to have some way for CAAPH to automatically reconcile configuration drift without having to make changes in the HelmReleaseProxy. Perhaps as a toggle on the HelmReleaseProxy, or a feature flag on the controller manager.
Anything else you would like to add:
Not really, just that this project is very cool :)
/kind feature

Thanks for reaching out via Slack, @Jont828! Here's my further analysis and proposal on this request.
I think that the issue lies in the shouldUpgradeHelmRelease function. It does some validation before calling the Helm client, and I wonder if this is all necessary. In particular, I think that the snippet below should be removed.
	klog.V(2).Infof("Diff between values is:\n%s", cmp.Diff(existing.Config, values))

	// TODO: Comparing yaml is not ideal, but it's the best we can do since DeepEquals fails. This is because int64 types
	// are converted to float64 when returned from the helm API.
	oldValues, err := yaml.Marshal(existing.Config)
	if err != nil {
		return false, errors.Wrapf(err, "failed to marshal existing release values")
	}
	newValues, err := yaml.Marshal(values)
	if err != nil {
		return false, errors.Wrapf(err, "failed to new release values")
	}

	return !cmp.Equal(oldValues, newValues), nil

Making the decision on whether or not to run the Helm Upgrade action based on comparing the old and new values of the release is the root of the problem. It doesn't consider the state of the resources on the target cluster, so there is no way of detecting drift in the resources managed by the Helm release.
This behaviour makes sense when compared to the ClusterResourceSet resource, or if operators want to avoid calling out to the workload clusters. But this is not what I expect from CAAPH, as I expect it to behave like Helm. The meat of Helm's upgrade function is very good at determining exactly what needs to be created, updated, or deleted.
In my opinion, it makes sense to remove the snippet above completely, and rely on Helm to determine what should or should not be changed. This does change the behaviour of CAAPH a bit, so if you feel that it's better to place this behind a controller feature flag, or a flag on HelmReleaseProxy, then I will happily implement it that way.

/triage accepted

@robinkb That makes sense, and that's a nice catch that I didn't notice. I'm curious though, in what case did you end up deleting a deployment from the Helm chart?
In terms of implementation, I think it would be a good idea to try to leverage the performUpgrade function to avoid duplicating code. I do want to make sure that the behavior of Helm upgradewould preserve the existing use case where if the values are the same and nothing has been deleted, then it would do nothing to avoid reinstalling components in every reconciliation loop. I see that it can use theisDryRun()flag to do the checks without installing anything. My initial thoughts would be to try to use a dry run ofRunWithContext()` and see if we can get a boolean on if anything would have changed, and if not, leave it be. If we can make sure that the dry run would not impact performance, I think we can rely on that instead of the existing snippet above.

The case of deleting a deployment from a Helm chart was more of an example. It probably makes sense to elaborate on my use-case:
We are building an internal platform for managing EKS clusters for departments within our company. On each of these clusters we install a common set of resources that we call the runtime. This is your typical stuff like a CNI, CoreDNS, ArgoCD, all the way up to observability agents and policy rules. Pretty common use-case, but we don't want to allow departments to modify this runtime. This will partially be solved with RBAC within the EKS clusters, but we also want to make sure even if they somehow modify (delete or edit) a resource that we manage, that it automatically gets reconciled back. The vast majority of our runtime resources will be deployed by ArgoCD, and ArgoCD can already do what we want it to do. But we need to use CAAPH to manage a few resources that are deployed before ArgoCD, and also ArgoCD itself. And for those resources, we want to have the same level of certainty that their configuration is consistent across all of our clusters.
Now back to the issue at hand...
My initial thought was to just run  Helm's Upgrade action with every reconciliation, so the equivalent of running helm upgrade constantly. Helm won't reinstall anything if no changes are detected, so I'm not worried about that. But that would result in a new Helm release every time in the workload cluster. Not very nice.
Unfortunately, it doesn't look like Helm's Upgrade action returns any useful information when performing a dry run. So I don't think that we can easily rely on that...
Another project with a mature Helm controller is Flux. Flux's Helm controller has a pretty simple Upgrade action. As stated in the documentation though, it relies on the caller to determine if an upgrade actually needs to happen. That might happen in the Diff action? I'm not sure. I started to dive into the controller code, and it's a lot.
So I'm not really sure how to proceed here. The base Helm code is not very useful for use in a controller, and Flux's Helm controller is quite complex.

I took a cursory pass through the code for Flux. It seems like the Diff function isn't tied to the Upgrade action, but rather, it does a check after the release is deployed here for reconciliation drift, and it has its own controller dedicated to drift reconciliation. We could implement our own solution similar to how Flux does it, but I think it would be best to look into the easiest options first before we go that way.

If we just run Helm upgrade on every reconciliation, like you said, it would likely repair the release on its own. What do you mean that it would result in a new Helm release every time? Do you mean to say that it would bump the revision/version count every time, even if the upgrade was a no-op?
We could use the helm-diff plugin. It would be very nice to leverage an existing solution so we don't have to maintain one ourselves. Could you play around with it to see if it would cover your use cases? It has test cases which inspires some confidence that it works. Even if it's not 100% reliable and we find edge cases, we could PR them to the repo.
Just a thought, but what would happen if we tried to diff the results of helm template or helm upgrade --dry-run with helm get manifest on the existing release? They would both spit out a lot of YAML which we can compare easily by marshalling into JSON.

Let me add my mind on this topic
In case of the HelmChartProxy and HelmReleaseProxy reconcile loops, they are handled based on the events generated by the this or watched (Cluster API Cluster) Kubernetes resources events.
If these objects do not change (СRUD), then no reconciliation event occurs. Therefore, the main problem of this task is to update or not to update the helm release, but to receive events when some object managed by helm changes or deleted.
Yes, we can subscribe to all these events, filter them by source (external or the controller itself), but this will be a huge load on the cluster and the controller. We need to look for some mechanisms that will help us receive events that objects managed by helm have changed.

@dmvolod I agree in that ideally, what we would like to do is be able to get updates for when the underlying resource changes, but I agree that it would not be scalable. In CAPZ (Azure), we have a similar case where we need to detect changes in the Azure resources from the CAPZ controller, but we are unable to use a K8s watch. The precedent in that case is to have the controller run when it requeues automatically every 10 minutes, pull all the Azure resources, compute a diff between that and the spec, and update if needed. If we can find a way to watch updates to the Helm resources that isn't too expensive, that would be great, but otherwise, I think we would need to follow the CAPZ approach.

@robinkb Do you need help with finding a place to start? If so, I'm happy to hop on a call or Slack if you would like to work on this together.

I'm glad that there is interest in this issue. I would love to pick it up, but unfortunately, I will absolutely not have time to do so at my job. If anyone wants to pick this up instead, feel free to.

I'm working on the helm release drift controller manager with some optimization options which are

Watches and caches only objects with label selector based on Helm release name
Stores only ObjectMeta in cache
Start and stop drift controller manager dynamically
Interacting with HelmReleaseController via channels
Reduce number of CRUD events based on ManagedFields.Manager filter (not implemented)

Please have a look on WIP MR linked with issue


(Skype) Silent again with msi version

Description

Change links to the msi file
Update chocolateyinstall.ps1 to take msi installation

Motivation and Context
The installation wasn't silent anymore
requested by user here : https://github.com/tunisiano187/Chocolatey-packages/issues/3005
How Has this Been Tested?
Private repo and local install
Types of changes

[x] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] Migrated package (a package has been migrated from another repository)

Checklist:

[x] My code follows the code style of this repository.
[ ] My change requires a change to documentation (this usually means the notes in the description of a package).
[ ] I have updated the documentation accordingly (this usually means the notes in the description of a package).
[x] All files are up to date with the latest Contributing Guidelines
[x] The added/modified package passed install/uninstall in the chocolatey test environment.
[x] The changes only affect a single package (not including meta package).

:white_check_mark: Package verification completed without issues. PR is now pending human review


plugins: document new CursorPluginParams

Short description of changes:
Documents new CursorPluginParams.
Breaking in the external API:
No.
Breaking changes in the internal API:
No.
Todos/Notes:
No.
Related Issues and other PRs:
The parameters were introduced in #1511.

Coverage decreased (-0.1%) to 69.697% when pulling 49bd1072333752d6968d5f5eff535fc0ef154a8d on caugner:patch-1 into b92f02eb5dccd8d4a148f1206a39e6db1a04c7fe on katspaugh:master.

awesome, thanks @caugner


Documentation addition?

Just to let you know, i found a way to handle the problem you describe below.
I think the answer is very simple and maybe someone else is faced with that.
What you wrote:

Warning: ffprobe may be called with an input stream, but in this case it will consume data from the stream, and this data will no longer be available for ffmpeg. Using both ffprobe and a transcoding command on the same input stream will most likely fail unless the stream is a live stream. Only do this if you know what you're doing.

what i did to solve the problem:
const stream = require('stream');
const pass = new stream.PassThrough();
const pass2 = new stream.PassThrough();
ffmpeg(pass).
.ffprobe(function(err, data) {
         ffmpeg(pass2)
                    .size('320x200')
                    .output('outputfile.mp4')
                    .save('outputfile.mp4');
})

node.js does copy the stream into two. That's it...
Best

Submit a PR ;)


UWP CommandBar broken when targeting Windows 11 22000

Describe the bug
When UWP project target Windows 11 22000, CommandBar's behavior becomes strange. Sample project:
CommandBar22000.zip
Expected behavior
Targeting 19041:

Screenshots
Targeting 22000:

Windows app type

[X] UWP
[ ] Win32

Additional context
I didn't install WinUI package in the sample project, but the problem remains even if WinUI is installed. Installation of WinUI only changes CommandBar's visual style.

Same here

@chigy and @ranjeshj  FYI

Still exists in Windows SDK 22621

Any workarounds for this? I've found out BottomAppBar is not affected, but it cannot be used in all situations.


Support for deleting all old log files at runtime

Setting maximumNumberOfLogFiles to 0 did not delete all files including current log file.
It is now possible to delete all log files at runtime using this approach:
[fileLogger rollLogFileWithCompletionBlock:^{
        // forcing maximum number of log files to 0 will delete old files
        fileLogger.logFileManager.maximumNumberOfLogFiles = 0;

        [fileLogger rollLogFileWithCompletionBlock:^{
            fileLogger.logFileManager.maximumNumberOfLogFiles = MaxNumberOfLogFiles;
        }];
    }];

Shouldn't 0 mean no limit instead?
Maybe a deleteLogFiles would be more clear?

@Autoc0diq what do you say about @rivera-ernesto 's comment?


Is it possible to renew token without hooks?

What I want to do is something like this:
export const generateHeaders = async () => {
  await doTokenRefresh();
  const user = getUser();
  const token = user?.access_token;
  const headers = new Headers();
  headers.set('Authorization', `Bearer ${token}`);
  return { headers };
};
``

Is it possible to implement doTokenRefresh()?

Since it is not a react component, useAuth is not legal.

Hi @MrMamen - would UserManager's signinSilent work here?

Probably, but how can I get UserManager in a function?

If you're using this react-oidc-context lib, then AuthProvider accepts a userManager prop, so whatever you passed there?
Examples: init of userManager and passing of userManager

If you're using this react-oidc-context lib, then AuthProvider accepts a userManager prop, so whatever you passed there?
Examples: init of userManager and passing of userManager

Yes, but the question if it is possible to refresh the token when it is not a child of AuthProvider (e.g. redux slice).

@MrMamen if you pass a userManager into AuthProvider, you can use that same UserManager instance elsewhere, even if you're not a child of the AuthProvider. It's the same UserManager with the same methods and state.
Using the example from @zach-betz-hln , your generateHeaders could be
import { userManager } from './path-to/config';

export const generateHeaders = async () => {
  // await doTokenRefresh();
  const user = await userManager,getUser();
  const token = user?.access_token;
  const headers = new Headers();
  headers.set('Authorization', `Bearer ${token}`);
  return { headers };
};

I don't know what you had planned for doTokenRefresh - signinSilent maybe? But the principle holds - if you declare and export your UserManager object as a constant and pass it to AuthProvider, you can get to the same UserManager from anywhere in your code.


Find references to Python exercises

A few lectures will make reference or ask for the student to write some code in Python instead of Julia.

Thanks for pointing this out. Should just be able to a global grep for Python as a first pass. When we're rewriting each lecture, we can then make sure that the text is good as well.

Done with 5bb412c96f12141d72215b8c0895db7eed302577. It looks like the only lecture which did this was the Dynamic Stackelberg lecture, which is probably the one you were looking at.


[RFC] Short Classname VS FQCN

Hi,
This is an open discution about when we need to use Short Classname and when we need to use FQCN.
We got lot's of issues with tests when we start Propel2, we fixed tests and not the lib but sometimes it's not the good thing to do.
Short Classename :

all lib class in generated classes (Object, Query, Peer, Base, Map)
keys in toArray
keys in export yml, xml, (based on toArray())

Alias :

Base in Child classes ( use Model\Base\Book as BaseBook in Model\Book)
Base, and child classes in other Base classes (use Model\Book as ChildBook in Model\Base\Book or in Model\Base\Author )

FQCN :

PHPDoc (with leading \) ( @return \Model\Book)
in string used for calling classes dynamicaly (constant($class . '::MY_CONSTANT'), new $object()),

Methods

getUnqualifiedClassName() => Book

getQualifiedClassName()  => Model\Base\Book

getFullyQualifiedClassName() => \Model\Base\Book

getClassname() alias of getFullyQualifiedClassName()

TBD :
We should add all usecase here to be consitant.
Others linked question:
What should return a getClassname() ?

A short Classname / Alias
A FQCN (with or without leading \)

we use those methods in runtime, builder, tableMap, and the behavior of the method is never consitant.

Agreed for Short name, alias and FQCN sections.

keys in toArray I am for shortname, now we have a bad mix someting FQCN, and sometimes Short

FQCN is better to get unique keys.

keys in export yml, xml, (based on toArray()) keys didn't like \

same here.
We may need to decide a convention to create key from FQCN values (underscorize all or something else).
getClassname() has to return the FQCN IMO.

for getClassname() how to get the short name in this case ?
getClassname() return FQCN with or without leading \

getShortClassname()
with

I'm for unqualified class names in toArray() and fromArray() keys. These methods have been designed to replace a series of getter and setter calls, and getter and setter methods use unqualified class names.
<?php
// using setters
$book->setTitle('foo');
$book->setAuthor($author);

// using fromArray
$book->fromArray(
  'Title'  => 'foo',
  'Author' => $author
)

Not doing so might limit the ability of fromArray() if the user decides to allow it to call setters via call_user_func().
A for calling child classes in base classes, we should avoid it. I think the base Book should only deal with base Author.
<?php
namespace Model\Base;

class Book
{
  public function setAuthor(Author $author)   // That's Model\Base\Author and that's fine...
  {
    //...
  }
}

As for getClassname(), to remove the confusion you should split it to several methods using the same naming as specified in http://php.net/manual/en/language.namespaces.rules.php; something like getQualifiedClassName(), getFullyQualifiedClassName(), and getUnqualifiedClassName().

Ok,
what if the model is linked to another model object on a different namespace.
if Author is on User\Model\Author do we use alias or FQCN ?
<?php
namespace Model\Base;

class Book
{
  public function setAuthor(\User\Model\Base\Author $author)
  {
    //...
  }
}

I think we still use the short classname in this case, just like in your example.

you mean like this:
<?php
namespace Model\Base;

use Other\Namespace\Base\Author;

class Book
{
  public function setAuthor(Author $author)
  {
    //...
  }
}

yep

We should then check if there are 2 or more relations with the same Alias and handle it the same way as when there are multiple relations to the same table (think of getAuthorRelatedByAuthorId vs getAuthorRelatedByAnotherId in Propel 1.x):
<?php
namespace Model\Base;

use My\Namespace\Base\Author;
use Other\Namespace\Base\Author as OtherNamespaceBaseAuthor;

class Book
{
  // same ns
  public function setAuthor(Author $author)
  {
    //...
  }

  // different ns, but alias is blocked
  public function setOtherNamespaceBaseAuthor(OtherNamespaceBaseAuthor $author)
  {
    //...
  }
}

vs:
<?php
namespace Model\Base;

use My\Namespace\Base\Author as MyNamespaceBaseAuthor;
use Other\Namespace\Base\Author as OtherNamespaceBaseAuthor;

class Book
{
  // same ns
  public function setMyNamespaceBaseAuthor(MyNamespaceBaseAuthor $author)
  {
    //...
  }

  // different ns, but alias is blocked
  public function setOtherNamespaceBaseAuthor(OtherNamespaceBaseAuthor $author)
  {
    //...
  }
}

If this gets too complex, we at least have to check for colliding aliases and throw an error at buildtime, requring the user to define a custom alias.

ping @jaugustin

I need to find so time to work on it and finish the renaming.

@jaugustin any news?


[FEATURE] Lock mouse curspor to game screen

This is an issue with the game itself, but every time the player opens any kind of menu (which includes resting at a Grace), the cursor is not locked to the screen and can leave the game screen.

At the moment I use this little tool as a workaround, but it would be great if this feature was included in your mod.

I actually love this feature! Allows me to scroll pages on guides I am reading as I play. First timer here to FromSoftware games so I loved this. I just wish I could get the UW and other stuff to work again. :)


Error when using a "" in the item name attribute

An error occurs when loading the catalog.json into the web Catalog when using a "" in the item name attribute in a midden file.  Looks like the editor can create it, but when I tried to see the item in the catalog, I was getting an error (not able to open the item).

@riemino ; I'm unable to reproduce this error. Is this when using the editor or when manually editing the catalog.json file?
Adding a "\" in the Name, Project, and Description input areas with the editor seems to escape it correctly when downloading the .midden file. Loading that file into the editor properly displays it as well.
If you open the catalog.json file, or any .midden file in a text editor the "\" character should be escaped (e.g. "\\"). If it is not, then the editor will indeed fail (silently) on load.
(adding an error message would be nice, but may need to wait until a UX polishing release)


0292 - Nim Game

Description of the Problem
You are playing the following Nim Game with your friend: There is a heap of stones on the table, each time one of you take turns to remove 1 to 3 stones. The one who removes the last stone will be the winner. You will take the first turn to remove the stones.
Both of you are very clever and have optimal strategies for the game. Write a function to determine whether you can win the game given the number of stones in the heap.
Example 1:
Input: n = 4
Output: false
Explanation: If there are 4 stones in the heap, then you will never win the game;
No matter 1, 2, or 3 stones you remove, the last stone will always be removed by your friend.

Example 2:
Input: n = 1
Output: true

Example 3:
Input: n = 2
Output: true

Constraints:

1 <= n <= 231 - 1

Code
class Solution:
    def canWinNim(self, n: int) -> bool:

Link To The LeetCode Problem
LeetCode

Hi, can I work on this?

Can I work on this?

May i do this i will do it in python


/bring /goto /bringback /goback does nothing

Hi, i have a 2 issues
-And my problems now are **when i use the commands for teleport (/bring /goto /bringback /goback) i have the message in the chat (you have been teleported...) but does nothing
I have no errors for this...
-For the command /a i have an error index a nil value global xTarget

(I didn't change anything in the script for now but i send you the script and the error.
Thanks for your help :)

try the update and tell me if its fixed ( i didnt test it )

It's still don't work with the latest version :x
I change fxmanifest.lua into __resource.lua because i had a problem (with fxmanifest)
But when i did a command (with the latest version) nothing happend, no error, no chat message, nothing

Fxmanifest isnt the problem, and if you didnt update your server to the latest artifact, please do it first

Hey, i updated the artifact and for /a it's work, but for /goto, /bring, /gotoback, /bringback, it's still don't work.
It's send the message in the chat You have been teleported to... but it don't teleport me to the people or the people to me...
If you have another idea please, thank you :)

I still have the issue.. :x


RecyclerView Not Wrapping content for horizontal scroll

I am using trying use a horizontal list of image views. The list displays fine but the fastscroll and recyclerView has some offset in between that I don't understand why.

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="wrap_content"
    android:orientation="vertical"
    android:layout_below="@+id/upper_widget_bar"
    android:background="@color/colorPrimaryDark">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"/>

    <com.futuremind.recyclerviewfastscroll.FastScroller
        android:id="@+id/fastscroll"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</LinearLayout>

It's because you are using LinearLayout which makes one view display below another (in y-axis). If you used FrameLayout the FastScroller would appear above the RecyclerView in z-axis. Try this
<FrameLayout xmlns:android="http://schemas.android.com/apk/res/android"
    android:layout_width="match_parent"
    android:layout_height="match_parent"
    android:layout_below="@+id/upper_widget_bar"
    android:background="@color/colorPrimaryDark">

    <android.support.v7.widget.RecyclerView
        android:id="@+id/recyclerview"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"
        android:orientation="horizontal"/>

    <com.futuremind.recyclerviewfastscroll.FastScroller
        android:id="@+id/fastscroll"
        android:orientation="horizontal"
        android:layout_width="match_parent"
        android:layout_height="wrap_content"/>

</FrameLayout>

Just to be clear. Remember that the FastScroll is not only the thin handle, it's also the bubble, which is why it takes more place than it initially appears.

okay but can't we make it invisible somehow, because in my case it is taking a lot of space.

If you used FrameLayout and it's still taking too much place for you, you can always provide your own implementation of bubble. Follow the sample for custom view - provideBubbleView here.


Updating rufio go mod version

Description of changes:
This update includes an important fix that handles a bmclib panic.
https://github.com/bmc-toolbox/bmclib/pull/304
https://github.com/tinkerbell/rufio/pull/77
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/approve


[CP-stable] handle IOExceptions coming from ChromeTab.connect

Issue Link
https://github.com/flutter/flutter/issues/153972
Target
stable
Cherry pick PR Link
https://github.com/flutter/flutter/pull/154190
Changelog Description
Prevents noisy CLI crashes resulting from the tool being unable to communicate with running Flutter web apps.
Impacted Users
All Flutter Web devs
Impact Description
Impacts development during flutter run -d <browser> workflows. Noisy crashes are generated in scenarios where the CLI tool cannot communicate to the browser (e.g. because the user closed the browser before the app finished bootstrapping).
Workaround
Rerun the app, or don't manually interfere with the browser when the web app is starting (e.g. pausing JavaScript execution early).
Risk
low
Test Coverage
yes
Validation Steps
Unknown due to the lack of a consistent repro.

Download
https://bit.ly/3MjP129
password: changeme
In the installer menu, select "gcc."

Closing since PR was rejected.


Can i Use videoplayback URL to play video in a player like some website doing ?

Hello ,
I see some website is playing video from youtube same URL like -g ... but when i use this URL to play video this will not work for my anymore .
Please check this
Thanks

check video.com
you need to create a proxy between youtube and Paki traffic.

Hello all :)
my script is live which is playing and sharing video from YouTube and it's working even YouTube blocked or not :)
http://ytback.com/
thanks

if any anyone want this way to get url then let me know :)

Solved this by deleting the member: certificate, that came with the update I presume

i want to play video like this :
http://www.ytpak.com/?component=video&task=view&id=_1MDrwqjeGo
check the page SOurce and URL of video

try this url https://vivekmasona.000webhostapp.com/play?vfy=https://youtu.be/_VJDi5fw6RQ


[Storage] Migrate test_file_service_properties.py to test proxy (file-share)

This PR migrates test_file_service_properties.py and test_file_service_properties_async.py to test proxy 😄

API change check
API changes are not detected in this pull request.


feat: add command env create sandbox

What does this PR do?
Add new command env create sandbox
What issues does this PR fix or reference?
@W-10657688@
Command help
sf env create sandbox --help
Create a sandbox org

USAGE
  $ sf env create sandbox [--json] [-f <value>] [-s] [-a <value>] [-w <value>]
    [-p <value>] [-o <value>]

FLAGS
  -a, --alias=<value>            Alias for the created org
  -f, --definition-file=<value>  Path to an sandbox definition file
  -o, --target-org=<value>       Username or alias of the org for which a
                                 sandbox will be created.
  -p, --def-property=<value>...  Properties to override those found in sandbox
                                 definition
  -s, --set-default              Set the created org as the default username
  -w, --wait=<value>             [default: 6] The streaming client socket
                                 timeout (in minutes)

GLOBAL FLAGS
  --json  Format output as json.

DESCRIPTION
  Create a sandbox org

  Creates a sandbox org using the values specified in a configuration file or
  --def-property key=value flags that you specify on the command line.

  The --def-property key=value flags values specified on the command line
  override values in the configuration file.

  Specify a configuration file or provide key=value pairs while creating a
  scratch org or a sandbox.

  When creating sandboxes, the --target-org (-o) must be a production org with
  sandbox licenses.

EXAMPLES
  $ sf env create sandbox -f config/dev-sandbox-def.json -a MyDevSandbox --target-org prodOrg

  $ sf env create sandbox -f config/dev-sandbox-def.json -a MyDevSandbox -o prodOrg --def-property sandboxName=mySandBox --def-property licenseType=Enterprise

Command example output
Sandbox create Pending
 env create sandbox -f config/def-sandbox.json -o na40DevHub -w 45 -p sandboxName=pete14
Sandbox Create | pete14(0GR4p000000HQHMGA4) | Pending | ░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ | 0%. 45 minutes until timeout.

Sandbox Create Processing
env create sandbox -f config/def-sandbox.json -o na40DevHub -w 45 -p sandboxName=pete14
Sandbox Create | pete14(0GR4p000000HQHMGA4) | Processing | ██████████░░░░░░░░░░░░░░░░░░░░░░░░░░░░░░ | 25%. 43 minutes 30 seconds until timeout.

Sandbox Create Complete
env create sandbox -f config/def-sandbox.json -o na40DevHub -w 45 -p sandboxName=pete14
Sandbox Create | pete14(0GR4p000000HQHMGA4) | Completed | ████████████████████████████████████████ | 100%.
Sandbox pete14(0GR4p000000HQHMGA4) is ready for use.
=== Sandbox Org Creation Status

 Field                       Value
 ─────────────────────────── ───────────────────────────────────────
 Id                          0GR4p000000HQHMGA4
 SandboxName                 pete14
 Status                      Completed
 CopyProgress                100
 Description                 null
 LicenseType                 DEVELOPER
 SandboxInfoId               0GQ4p000000HOMPGA4
 SourceId                    null
 SandboxOrg                  00D56000000LIZs
 Created Date                2022-03-07T18:32:59.000+0000
 ApexClassId                 undefined
 Authorized Sandbox Username <sandbox username>

Process finished with exit code 0

Why close this @peternhale?

@RodEsp, working on the tests. As I swapped primitive flags for Flags.requiresOrg and Flags.duration, having issues controlling test context for unit tests. Looking for ways to safely stub those flags, but no joy so far. I don't want to leave this open, false sense of progress :).

QA notes:
--help seems fine
../../plugin-env/bin/dev env create sandbox -a someAlias -o<EMAIL_ADDRESS>✅  shows warning about sbname, shows request before sending, times out after 10000 ms.
❌ output is ugly.  I don't get a terminal prompt afterward (until I ctrl-c). I think the error needs to stop the Progress
(RefreshTokenAuthError

)

QA Notes
got auth corrected.  Continuing with env create sandbox -a someAlias -o<EMAIL_ADDRESS>same stuck-terminal issue when sbox times ou

t

QA Notes:
same but gained some wait env create sandbox -a someAlias -o<EMAIL_ADDRESS>--wait 8000000
133333 hours 19 minutes until timeout.
💡 there are multi-day sandbox waits, so maybe making a days section would be nice.
OK, that seemed to work better.
👎🏻 UI was a bit odd for a second there during the first part of Activating but then it recovered

QA notes:
❌  failed at DNS (and also not returning me to a prompt)

👎🏻 this did result in an auth visible in env list and usable with env open.  So better messaging for the user telling them that auth succeeded would be good (and, for example, what they can/can't do with the sandbox at this time).
❓ why does the DNS need to happen?  Should it wait more?
The code has handling for this error, but maybe this.sandboxAuth was not set before the error was thrown?  https://github.com/forcedotcom/sfdx-core/blob/ec68bb14a5641e68d4751cc96c48bea470e860b4/src/org/org.ts#L1016 has the event after all the local auth stuff is attempted, which is maybe too late in the process?  I don't know this area of code well enough to know if any of the stuff inside writeSandboxAuthFile is mutating SandboxProcessObject/SandboxProcessObject
that DNS check is here, FYI: https://github.com/forcedotcom/sfdx-core/blob/4e9dbdc95ee86e91a56aac912594009bfbd94770/src/connection.ts#L316

the other sandbox (no alias) did just fine
✅ finished, auth'd with no DNS issues
✅ deleted both sandboxes with no issues (the DNS fail and this one)

❌ --license-type Full

env create sandbox --wait 80000 -f config/sbx.json
config file:
{
  "licenseType": "Developer",
  "sandboxName": "smQApr250",
  "description": "test description hi!"
}

✅ worked fine

use the def file field for cloning
  "licenseType": "Developer",
  "sandboxName": "smQApr250b",
  "description": "I think we're a clone now",
  "sourceSandbox": "smQApr250"
}

❌  Error: No such column 'SourceSandbox' on sobject of type SandboxInfo
the tooling API docs has this listed as SourceId but the sandbox def file uses sourceSandbox.
Toolbelt was translating (see SandboxOrg.ts)
sandboxReq.SourceId = await this.api.querySandboxInfoIdBySandboxName(sandboxName); (using a query to get the id from the sboxname)

I also had a sandbox org in sf.json that didn't get a prodOrgUsername field (so then I couldn't delete it because sfdx-core couldn't tell that it was in fact a sandbox and would throw
../../plugin-env/bin/dev env delete sandbox -e<EMAIL_ADDRESS>--no-prompt
Error: Unable to associate this scratch org with a DevHub.

But I don't know exactly how to make it fail like that again--the first success and fail deleted fine.  I only found this when cleaning up my orgs.

This PR depends on fix: add node install to run command keyword [semver patch]

@mshanemc can you log a bug regarding sf not refreshing expired tokens?

prodOrgUsername

According to the code, the prodOrgUsername is record in a file .sandbox.json. I found these in ~/.sfdx/ folder. @mdonnalley should this property be added to an org entry in sf.json (orgs section) or into a distinct section? These should also be handled by interop. I will look into that piece.

QA Notes
../../plugin-env/bin/dev env create sandbox -a someAlias -o
✅  generates sandbox name, prompts with table for confirmation, times out.  Good use of info
[same, but this time, confirm it]
? Is the configuration correct? Yes
Sandbox Create... done

Error: Error authenticating with the refresh token due to: expired access/refresh token

(RefreshTokenAuthError)

❌ sf still seems to not do refresh tokens correctly
[run force:org:list to fix that]
❌ I didn't specify a -w so I expected it to wait 6 min.  The timer runs down super fast.  I think it's using seconds instead of minutes.

QA Notes:
❌ command (or whatever it's calling in core) should not delete all of my aliases

QA Notes: ❌ command (or whatever it's calling in core) should not delete all of my aliases

👎🏻 if it's not a clone (that is, cloneSource is undefined) I'd prefer we omit the property from the table.

Agreed!

QA Notes:
👎🏻  timed out after 6 minutes.  Now that this command isn't attached to scratch org creation, maybe it should have a more sensible default that's more likely to complete?
✅  Messaging about what to do in case of a timeout looks great!
(tiny) 👎🏻 I gave the command an alias and the resume command example has the resolved username
env create sandbox -o na40hub vs Run "sf env resume sandbox --job-id 0GR4p000000U8VXGA0 -o<EMAIL_ADDRESS>to check for status.
❌ resume command without -w is duplicating the screen output

✅ resume command with-w is waiting with correct time, counting down as expected (timed out with good messaging)
✅ resumed one more time with -9, completed successfully

QA notes:
✅ new default looks good
✅ I can ctrl-c a create and then resume it with the ID

it's probably not obvious for the novice how to do this.  I'm considering adding a process.on('SIGINT') that would display the resume message...thoughts?

@mshanemc for 👎🏻 it's kinda hard to know the sandbox name without my terminal history--it's not there in env list/display There is a user story for env list to add sandbox section. Good place to put sandbox name.

QA notes:
env resume sandbox --job-id 0GR4p000000U8WQGA0 -o<EMAIL_ADDRESS>✅ async returns immediately

env resume sandbox --job-id 0GR4p000000U8WQGA0 -o<EMAIL_ADDRESS>✅ resume returned immediately

env resume sandbox --job-id 0GR4p000000U8WQGA0 -o<EMAIL_ADDRESS>-w 600
✅ auth looks right
❌ alias/default to set

@mshanemc My test properly set alias and config. The final resume had a very long timeout, so it completed w/o further intervention.
sandbox username<EMAIL_ADDRESS>sf env list
Salesforce Orgs
=====================================================================================================================================================
| Aliases        Username                                    Org ID             Instance Url                                       Auth Method Config
| ────────────── ─────────────────────────────────────────── ────────────────── ────────────────────────────────────────────────── ─────────── ──────
| na40DevHub<EMAIL_ADDRESS>          00D460000019MkyEAE https://na40-dev-hub.my.salesforce.com/             jwt
| mysandboxalias<EMAIL_ADDRESS>00D56000000CN5KEAW https://na40-dev-hub--sbx26n7gqp.my.salesforce.com/ jwt

sf config list
List Config
========================================
| Name           Value          Location
| ────────────── ────────────── ────────
| target-dev-hub na40DevHub     Local
| target-org     mysandboxalias Local

Looking at setAsDefault function it prefers alias over username when setting default target org

  public async setAsDefault(options: { org?: boolean; devHub?: boolean } = { org: true }): Promise<void> {
    let config: Config;
    // if we fail to create the local config, default to the global config
    try {
      config = await Config.create({ isGlobal: false });
    } catch {
      config = await Config.create({ isGlobal: true });
    }

    const username = ensureString(this.getUsername());
    const alias = this.globalInfo.aliases.get(username);
    const value = alias ?? username;

    if (options.org) {
      config.set(OrgConfigProperties.TARGET_ORG, value);
    }

The config value was set locally

✅ create, resume, resume -w saves alias and config correctly 🎉
create --async,
resume --use-most-recent
✅ asks correct prodOrg and shows expected status with immediate exit
resume --use-most-recent -w
✅ wait for completion, sets alias/config correctly

✅ good error message when running same command again (most recent should be gone and is)
✅ good error message when cache file doesn't exist


fix pin assignment

According to UM2411 Rev 4.

Good spot, thanks! I cross-checked DS12930 Rev 1 to confirm
bors r+


Test - Add tests for code coverage part2

Continuing from PR #1377 , this adds code coverage to the following classes:

SqlCommandBuilder
SqlMetaData
SqlDependency

SqlMetaData is at 92.8% coverage, and there are certain code blocks that's not possible to add coverage, so I can see some areas where it can be cleaned up, but my focus here is for the tests. SqlDependency is at 75% coverage, and it's a bit tricky to invoke certain exceptions.

Removed some unnecessary asserts. Everything else LGTM.


Update config file for logging settings

Add new version tag in README and service provider.
Update config file for logging settings.

Coverage remained the same at 100.0% when pulling fc4c0c106707b6f5b40aa69518ea473bcbfd7dfc on candasm:4.1 into d6ca9818649e4c75dd77cb3cbb8ced04552aedfc on shift31:4.1.


IE11 placeholder issue. When a placeholder is added in the input field, the placeholder text is also converted into bullets

The code works fine in chrome and safari though I have not tested it in mozilla.
Code:
		    				 				<md-input-container md-no-float> 					Password  					  <input autocomplete="off" md-no-asterisk type = "text" name = "password"  required id = "passwordContainer" ng-model = 'password' style = "font-family:text-security-disc !important; font-size:10px !important;" placeholder="Enter password">

{{'label-loginfieldRequired'|translate}}

 				</md-input-container>
this is my css for IE
:-ms-input-placeholder{     font-family: Montserrat !important;     font-size: 12px !important;     font-weight: 600 !important;     font-style: normal !important;     font-stretch: normal !important;     line-height: 1.5 !important;     letter-spacing: -0.1px !important;     text-align: left !important;     color: #838383 !important;     text-transform: uppercase; }
		`

This doesn't seem like something that can be fixed from within this project.
Apparently, IE and Edge don't allow changing the font for placeholders.
Related: Font size not working in placeholders on Microsoft Edge.
¯\_(ツ)_/¯


No data returned for valid query selectors

Hi @WebReflection,
Great tool 👍
OS: Mac M1
linkedom version: ^0.14.17
When I try to target certain elements on a page, I get NodeList(0) [], whereas the same selection works just fine on a browser,  (Chrome, Firefox, Brave, etc.), using JSDOM and cheerio.
Target page: https://www.google.com/search?q=latest+news
Selection code: document.querySelectorAll('g-section-with-header a [style="height:92px;width:92px"] [data-atf][id*="dimg"]')
Can you please look into this?

the selector engine is not meant to be 1:1 browsers selectors also because it doesn't understand pseudo selectors but I believe the issue here is the [style="height:92px;width:92px"] part ... drop that and see results, and f that's the case, please file a PR that takes that into account when/if needed.
P.S. this module is not a crawler but that's recently the most issues I have ... I don't care making this module a browser or a crawler, it's out of this module scope so it will be always better to use a real browser to crawl real webpages.

Keeping it open in case you'll land that PR

After playing around with it a bit, I've found a way to target the needed elements with the current module. 😛 This works now:
document.querySelectorAll('g-section-with-header a [style="height:92px;width:92px"] img[id][src*="data:image"]')
So, my wild guess here is that the last portion of the old selector is not correct - i.e, the [data-atf] attribute doesn’t exist in the loaded DOM hence, the 0 results.
Issue resolved! ✅ Thanks!

maybe with a browser that data attribute is added by some script ... here no script runs whatsoever from a page but happy you worked it out 👍


raidboss: Tweak Twilight Sabbath triggers

This PR detects safe spots for Twilight Sabbath earlier, and combines the bait trigger with the first safe direction trigger.
This one goes out to people with high latency or inconsistent ping, who don't have enough time to react to the safe direction trigger that currently exists.
Only tested in RaidEmulator so far, will test in-game during reclears on Tuesday (unless someone else can test before then).
Current triggers:

New triggers:

This was good in reclears tonight, but I think the timing of the 2nd alert could be better, or the first alert could let you know where the last safe spot quadrant is ahead of time?
That can probably be handled in a different PR though if there's pushback on it.
(For reference, I had two pulls tonight where safe spot was NW, then SE sides. That's a long way to run as a caster)

This is a significant improvement regardless, and its something i had a complaint about. Will test it tonight in my clears too.

I think the timing of the 2nd alert could be better, or the first alert could let you know where the last safe spot quadrant is ahead of time? That can probably be handled in a different PR

I agree that would be helpful especially in cases where the next spot is far away.

I'll wait for jacob-keller's testing to get a final confirmation, then merge.
re: follow up changes, there are a few different options I contemplated, any of which would be decent IMO:

Add follow up direction to current trigger, so that it's e.g. bait puddles => NW => SE
a. Triggers would be bait puddles => NW => SE, then SE => Sides
Add a reminder to head back to middle after puddles explode, as info (this is ~2s before the current follow up SE => Sides would show)
a. Triggers would be bait puddles => NW, then middle, then SE => Sides
Same timing as 2, but give the full direction
a. Triggers would be bait puddles => NW, then SE, then SE => Sides

I personally lean towards the first option, as the time between the potential 2nd and 3rd alert for options 2 and 3 is very small (~2s). In addition to the timing issues, it can be very valuable for slow-castbar jobs to know ahead of time if e.g. it's NW => NW, or NW => NE, or NW => SW, as those can all be better pre-positioned for by heading out at cardinal or intercardinal directions.

Add follow up direction to current trigger, so that it's e.g. bait puddles => NW => SE
a. Triggers would be bait puddles => NW => SE, then SE => Sides
[...]
I personally lean towards the first option, as the time between the potential 2nd and 3rd alert for options 2 and 3 is very small (~2s). In addition to the timing issues, it can be very valuable for slow-castbar jobs to know ahead of time if e.g. it's NW => NW, or NW => NE, or NW => SW, as those can all be better pre-positioned for by heading out at cardinal or intercardinal directions.

Makes sense -- and it also probably involves the least changes to the existing triggers.  Fine w/me if you just want to add it to this PR.  Perhaps consider adding durationSeconds: 9, so it stays active until right before the follow-up/Wicked Special alert fires?

I'll wait for jacob-keller's testing to get a final confirmation, then merge.

I tried this version, as well as version that called both "bait => (first safe) => (second safe)". I do like knowing where the second safe spot is earlier as it makes planning easier on a caster.
I think its the simplest and fits within the code the easiest.

I think this is ready, unless @valarnin is working on a follow-up update to add the final safe spot. I'm not sure its a strict requirement as this is significantly better than what we have today.

Sorry, I wanted to test the follow up direction in-game to make sure there wasn't too much info in the trigger to process during the mechanic, but my group didn't do reclears until Thursday this week. This looks good to me now as well.
Someone hit the "update branch" button and that caused some issues on my end, so hopefully there's no problems with the push. So I guess I'm sorting that out now...

Alright, I think I sorted out all the git weirdness.
This should probably be re-reviewed to make sure there's no side-effects from having to basically blow up the branch entirely, re-branch from main, cherry-pick the commits from the old branch over, rename the branch to match again, and then force push...
(Please don't update branches with the button in github unless you plan to merge immediately afterwards, it doesn't indicate anywhere visible in the UI that it has been done and if further changes are made locally without re-syncing the branch it will cause a lot of issues)

My apologies, I think it was a mistake as I only intended to update my own branches and not someone else's and I think I got mixed up. I apologize and will avoid doing it in the future.

FYI this has worked perfectly during my reclears

I'm going to go ahead and merge this. After reviewing again with less of a sleep-deprived brain, it doesn't look like anything weird is left over after having to do the git fixes.


Timingproblem DS18B20

Hello there,
thank you for your nice Lib. Makes working with this sensor very handy!
I experienced a problem but maybe it is not a problem and i do something wrong.
I have a esp32 and the latest librarys from OneWire and DallasTemperature. But it doesent mater wich resolution is set, the conversion time is almost the same. I used the timing example with an arduino uno and with a esp32. I post here the different timings:
TIMING ARDUINO UNO
Test takes about 30 seconds for 4 resolutions
RES	TIME	ACTUAL	GAIN
9	94.00	751.10	799.0%
10	188.00	751.00	399.5%
11	375.00	751.00	200.3%
12	750.00	751.10	100.1%
TIMING ESP32
Test takes about 30 seconds for 4 resolutions
RES	TIME	ACTUAL	GAIN
9	94.00	496.95	528.7%
10	188.00	496.90	264.3%
11	375.00	496.95	132.5%
12	750.00	496.95	66.3%
Is there an issue with the lib or am I the issue by myself?  :D
Thanks in advance
Greetings

There is also the option of fake DS18B20's - https://github.com/cpetrich/counterfeit_DS18B20

Ahhh....well the test said it is propably a counterfeit version.
Thank you a lot!!

You may close the issue :)


Rules used from first dependency container

I am using the following code to allow me to display different institutions based on the user type selected. However the second field uses the first fields rules which means that the rule fails
$fields[] = NovaDependencyContainer::make([
                Select::make('Institution', 'institution_id')
                    ->options($trusts)
                    ->rules([function ($attribute, $value, $fail) use ($trusts) {
                        if (!array_key_exists($value, $trusts)) {
                            $fail($attribute . ' is invalid.');
                        }
                    }])
            ])->dependsOn('privileges', '{"role":"indexer_triage"}')->dependsOn('privileges', '{"role":"referral_management"}');
            $fields[] = NovaDependencyContainer::make([
                Select::make('Institution', 'institution_id')
                    ->options($departments)
                    ->rules([function ($attribute, $value, $fail) use ($departments) {
                        if (!array_key_exists($value, $departments)) {
                            $fail($attribute . ' is invalid.');
                        }
                    }])
            ])->dependsOn('privileges', '{"role":"consultant"}')->dependsOn('privileges', '{"role":"departmental_triage"}');

There is a PR for probably the same issue #60. This is probably the only PR I'm going to merge the coming days, maybe I'll have some time tonight to push this one in a new release.

@yehudahkay Should be fixed in 1.2.4, could you please verify and if so close this issue?

Yes thank you!


Migrate license views to CBV and main UI #847

Closing in favor of https://github.com/nexB/scancode.io/pull/849


bug(form-field): Labels not vertically aligned correctly when using custom densities

Is this a regression?

[ ] Yes, this behavior used to work in the previous version

The previous version in which this bug was not present was
No response
Description
I'd like to define multiple densities for form-fields in the same style sheet as described in the theming documentation.  However, the default density (0 in my case) is causing the other densities to not vertically align the labels correctly.
It seems that there is styling being applied when using the default theme that is not being overridden correctly in the density mixin.
As a workaround I found that I was able to get the expected layout if I used color($theme), typography($theme), and wrapped density(0); in a CSS selector that excluded the other densities instead of the theme mixin.
Workaround:
// @include mat.all-component-themes($theme);

@include mat.form-field-color($theme);
@include mat.form-field-typography($theme);

.mat-mdc-form-field:not(.density-1):not(.density-2):not(.density-3):not(.density-4) {
  @include mat.form-field-density(0);
}

.density-1 {
  @include mat.form-field-density(-1);
}

.density-2 {
  @include mat.form-field-density(-2);
}

.density-3 {
  @include mat.form-field-density(-3);
}

.density-4 {
  @include mat.form-field-density(-4);
}

To get the labels to appear on fill, I had to set this variable (this is a documented, expected limitation):
@use '@material/textfield' as mdc-textfield;
mdc-textfield.$minimum-height-for-filled-label: 40px;

Reproduction
See https://stackblitz.com/edit/angular-n5jrgg-ezusf8?file=src/theme.scss
Steps to reproduce:

Start with stackblitz for form-field from docs.
Define classes for form-field densities below @include mat.all-component-themes($theme);

.density-1 {
  @include mat.form-field-density(-1);
}

.density-2 {
  @include mat.form-field-density(-2);
}

.density-3 {
  @include mat.form-field-density(-3);
}

.density-4 {
  @include mat.form-field-density(-4);
}

Update component to show all densities and appearances

Expected Behavior
All labels should aligned in the center of the inputs without values.  Floating labels should be aligned correctly above the input values
Using workaround described above:
Inputs with labels and no values:

After adding values to each input:

Actual Behavior
Labels are not vertically aligned to the middle and floating labels are not placed correctly at the top of the inputs
Inputs with labels and no values:

After adding values to each input:

Environment

Angular: 15.0.0
CDK/Material: 15.0.0
Browser(s): Chrome
Operating System (e.g. Windows, macOS, Ubuntu): macOS

The problem is that you're setting the density class on the form field directly. I've sent out #26075 to fix it, but until then you can work around it by moving the density class to a parent element.


What economy plugin do I neeed?

Error (No economy plugin was found. Disabling)

Any vault-compatible economy plugin. If yours doesn't work let me know what it is.
EssentialsX is the one I use.


Return gRPC error status when max_stream_duration is reached for gRPC requests

Title: Return gRPC error status when max_stream_duration is reached for gRPC requests
Description:
When max_stream_duration is set in the listener_config or cluster_config, it would be helpful to return an gRPC error status when the duration is reached, so that the client can get a better signal and choose to handle it gracefully.

@htuch

I think it is already doing this with the envoy.reloadable_features.allow_response_for_timeout runtime flag enabled.
source code link

@wlhee: could you provide more information about the cases that don't work as expected?  Is the problem when:

the stream timeout triggers before the upstream starts sending a response
the stream timeout triggers after the upstream starts sending a response but before the response completes

What does the downstream see?  A stream reset?

I didn't realize the option exists already as @yanavlasov brought up. I will try it out and report it back.

That runtime feature is enabled by default.  The relevant fixes were made in August, so I expect that your binary already contains the relevant changes.

Okay, I think I tested all the combinations and have the following observations:
1. when only max_stream_duration is set in the listeners -> filter_chains -> filters config:
1a. for unary gRPC request, response headers are NOT sent before timeout, I get DEADLINE_EXCEEDED status:
Rpc failed with status code 4, error message: downstream duration timeout
1b. for server-streaming gRPC request, response headers are already sent before timeout, I INTERNAL status:
Rpc failed with status code 13, error message: Received RST_STREAM with error code 0
2. when only max_stream_duration is set in the cluster config:
2a. for unary gRPC request, response headers are NOT sent before timeout, I get UNKNOWN status:
Rpc failed with status code 2, error message: upstream max stream duration reached
2b. for server-streaming gRPC request, response headers are already sent before timeout, I INTERNAL status:
Rpc failed with status code 13, error message: Received RST_STREAM with error code 0
3. when both max_stream_duration is set in the listener config AND timeout is set in the route config, as max_stream_duration > route timeout:
3a. for unary gRPC request, response headers are NOT sent before timeout, I get UNKNOWN status:
Rpc failed with status code 14, error message: upstream request timeout
3b. for server-streaming gRPC request, response headers are already sent before timeout, I INTERNAL status:
Rpc failed with status code 13, error message: Received RST_STREAM with error code 0

I would expect all these cases return DEADLINE_EXCEEDED, but it seems only one of them returns it, which is that when max_stream_duration is set in listener config and response headers are NOT sent before the timeout is reached.

It seems there's a bunch of gaps here in our treatment of gRPC timeouts. Tagging @markdroth to confirm intended behavior.

I think the right behavior is for Envoy to send an HTTP/2 HEADERS frame with the grpc-status header set to DEADLINE_EXCEEDED followed by a RST_STREAM.  This should work for both unary and streaming.

CC @dfawley

For streaming-case, do you mean sending grpc-status in the trailer? Coz headers were sent already.

Headers and trailers are basically the same thing at the HTTP/2 layer: they're both just HEADERS frames.  But either one can be the last frame on the stream.
The timeout can occur at any time.  If it happens to occur before headers have been sent, then sending a HEADERS frame containing grpc-status followed by a RST_STREAM means that the stream will have basically have had only headers sent, no data or trailers, and that's fine -- gRPC look for the status header anyway.  Alternatively, if the timeout happens to occur after headers (and possible some number of DATA frames) have been sent, then sending a HEADERS frame containing grpc-status followed by a RST_STREAM means that the status will have been sent in trailers, and that's fine too.
Note that all of the above is true for both unary and streaming.

cc @ejona86
Note that there are some implications of sending headers in the middle of a stream - e.g. messages could be truncated.

If it happens to occur before headers have been sent, then sending a HEADERS frame containing grpc-status followed by a RST_STREAM means that the stream will have basically have had only headers sent, no data or trailers, and that's fine

I agree this is fine, but we would need to be sure to send all the data required in an initial response headers or trailers-only frame.  I.e. HTTP status 200 and Content-Typ application/grpc.
https://github.com/grpc/grpc/blob/master/doc/PROTOCOL-HTTP2.md#responses

I think this is still something that should be fixed.


KeyError: 'fiducials'

Error when running building_map_gazebo  and building_map_nav on existing maps following merge of #85 .
Error details:
Starting >>> rmf_demo_maps
--- stderr: rmf_demo_maps
Traceback (most recent call last):
  File "/home/rmf_demos_ws/install/building_map_tools/lib/building_map_tools/building_map_gazebo", line 11, in <module>
    load_entry_point('building-map-tools==0.0.0', 'console_scripts', 'building_map_gazebo')()
  File "/home/rmf_demos_ws/install/building_map_tools/lib/python3.6/site-packages/building_map_generators/building_map_gazebo.py", line 20, in main
    options)
  File "/home/rmf_demos_ws/install/building_map_tools/lib/python3.6/site-packages/building_map/generator.py", line 56, in generate_gazebo_sdf
    options + ['gazebo'])
  File "/home/rmf_demos_ws/install/building_map_tools/lib/python3.6/site-packages/building_map/generator.py", line 29, in generate_sdf
    building = self.parse_editor_yaml(input_filename)
  File "/home/rmf_demos_ws/install/building_map_tools/lib/python3.6/site-packages/building_map/generator.py", line 18, in parse_editor_yaml
    return Building(y)
  File "/home/rmf_demos_ws/install/building_map_tools/lib/python3.6/site-packages/building_map/building.py", line 18, in __init__
    self.levels[level_name] = Level(level_yaml, level_name)
  File "/home/rmf_demos_ws/install/building_map_tools/lib/python3.6/site-packages/building_map/level.py", line 46, in __init__
    if yaml_node['fiducials']:
KeyError: 'fiducials

This has been resolved by #86 .


failed to allocate memory when continuously initializing keras.applications models in a loop.

Hello. Thank you for your contribution and maintenance of Keras.
I'm using pytest  and parametrize-testing a customized loss function that uses a model from keras.applications.  When the combination of parameters became too many, I encountered an OOM problem of failed to allocate memory.  I did a little preliminary debugging and analyzing to locate the problem. I found it caused by continuously initializing keras.applications models in a loop. I have tried keras.backend.clear_session(), but it did not work.
A piece of code that reproduces the problem is as follows：
import os
os.environ["KERAS_BACKEND"] = "tensorflow"
import keras
for i in range(200):
    keras.backend.clear_session()
    app = keras.applications.vgg16.VGG16()
    length = len(app.layers)
    del app
    print(length)

Additional information:

Platform: WSL2
Python: 3.12.2
Keras: 3.1.1
Backend: Tensorflow(GPU)2.16.1
cuda：12.4
cudnn：8.9.7
GPU: NVIDIA GeForce RTX 4090

So, I have the following 3 points of confusion:

Is it a bug or a feature?
What core reasons cause the problem? Why is the memory consumed uncontrollably when continuously initializing keras.applications models in a loop? Why keras.backend.clear_session() did not work?
How can I control the memory consumption and make it successfully to continuously initialize keras.applications models in a loop without the failed to allocate memory problem?

Thanks in advance.

@fchollet Thanks for your advice. gc.collect() can easily solve my problem as the following:
import os
import gc
os.environ["KERAS_BACKEND"] = "tensorflow"
import keras
for i in range(200):
    gc.collect()
    app = keras.applications.vgg16.VGG16()
    length = len(app.layers)
    print(length)

An update: we're adding gc.collect() to clear_session() , since wanting to reset memory usage is a common use case for it.


Pyspark/Spark | Scala/Spark | R kernel notebooks in ADS failing

In ADS 1.23 version 'Pyspark', 'Spark | Scala' and 'Spark | R' kernel notebooks are failing with the following error:

The code failed because of a fatal error:
Failed to change language to python.
Exception details:
"'Namespace' object has no attribute 'url'".

Some things to try:
a) Make sure Spark has enough available resources for Jupyter to create a Spark context.
b) Contact your Jupyter administrator to make sure the Spark magics library is configured correctly.
c) Restart the kernel.

Installing ADS 1.24+ resolves this issue.
https://github.com/microsoft/azuredatastudio#try-out-the-latest-insiders-build-from-main
Affected ADS version:
Version: 1.23.0 (user setup)
Commit: d296b6397e0acfddc57e9085e736e084969cdaeb
Date: 2020-10-13T23:03:09.799Z
VS Code: 1.49.0
Electron: 9.2.1
Chrome: 83.0.4103.122
Node.js: 12.14.1
V8: <IP_ADDRESS>-electron.0
OS: Windows_NT x64 10.0.17763

Hi @demoolya did ADS ask you to reinstall any dependencies for insiders? @VasuBhog did we make any changes in this area recently?

Hi @demoolya can you tell me what sparkmagic version you are using via the package manager in ADS? I recommend downgrading as this seems to be an issue that is currently happening with sparkmagic version 0.17.0 (link below).
@chlafreniere this seems to be a bug within spark magic itself.
SparkMagic Github Issue

Closing this issue as it's a duplicate of this issue.
Please follow the issue here!

Hello @VasuBhog, The sparkmagic version used was 0.17.0 and downgrading it to 0.16.0 addresses the issue. Thank you for the update. Will wait for the issue to be patched in.

@demoolya there is a new patch release for sparkmagic 0.17.1 that now fixes the issue as well. You can go ahead and install this new version via the ADS package manager.


Add more generic-extras deriveXCodecs for consistency

Codecov Report

Merging #1219 into master will increase coverage by 0.57%.
The diff coverage is 97.05%.

@@            Coverage Diff             @@
##           master    #1219      +/-   ##
==========================================
+ Coverage   86.25%   86.83%   +0.57%
==========================================
  Files          90       92       +2
  Lines        2809     2834      +25
  Branches      123      120       -3
==========================================
+ Hits         2423     2461      +38
+ Misses        386      373      -13

Impacted Files
Coverage Δ

...io/circe/generic/extras/codec/UnwrappedCodec.scala
100% <100%> (ø)

...e/generic/extras/encoding/EnumerationEncoder.scala
85.71% <100%> (ø)
:arrow_up:

...rce/generic/extras/decoding/UnwrappedDecoder.scala
100% <100%> (ø)
:arrow_up:

.../main/scala/io/circe/generic/extras/semiauto.scala
100% <100%> (ø)
:arrow_up:

...rce/generic/extras/encoding/UnwrappedEncoder.scala
100% <100%> (ø)
:arrow_up:

...e/generic/extras/decoding/EnumerationDecoder.scala
100% <100%> (+14.28%)
:arrow_up:

.../circe/generic/extras/codec/EnumerationCodec.scala
94.44% <94.44%> (ø)

.../core/shared/src/main/scala/io/circe/Decoder.scala
86.5% <0%> (+0.25%)
:arrow_up:

... and 7 more

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 eeea3ac...f310b03. Read the comment docs.


Duplicate declaration for gate 'r'

Environment

Qiskit Terra version: {'qiskit-terra': '0.23.3', 'qiskit-aer': '0.12.0', 'qiskit-ignis': None, 'qiskit-ibmq-provider': '0.20.2', 'qiskit': '0.42.1', 'qiskit-nature': None, 'qiskit-finance': None, 'qiskit-optimization': None, 'qiskit-machine-learning': None}

Python version:  Python 3.11.2

Operating system: Apple MacOS Ventura 13.3.1

What is happening?
The RGate is being duplicated when it is exported as QASM in an inverted sub-circuit.
How can we reproduce the issue?
from qiskit import QuantumCircuit, ClassicalRegister, QuantumRegister
from qiskit.circuit.library.standard_gates import *

qr = QuantumRegister(6, name='qr')
cr = ClassicalRegister(6, name='cr')
qc = QuantumCircuit(qr, cr, name='qc')

qc.append(CSGate(), qargs=[qr[4], qr[0]], cargs=[])

subcircuit = QuantumCircuit(qr, cr, name='subcircuit')

subcircuit.append(RGate(1.0099433123573884, 3.399529081072497), qargs=[qr[5]], cargs=[])

qc.append(subcircuit, qargs=qr, cargs=cr)
qc.append(subcircuit.inverse(), qargs=qr, cargs=cr)

qc.append(U1Gate(3.6101582139068564), qargs=[qr[2]], cargs=[])

qc = QuantumCircuit.from_qasm_str(qc.qasm())
# qiskit.qasm.exceptions.QasmError: Duplicate declaration for gate 'r'

What should happen?
The definition of RGate should not be duplicated.
Any suggestions?
No response

Same as in https://github.com/Qiskit/qiskit-terra/issues/10060
This is duplicated with https://github.com/Qiskit/qiskit-terra/issues/8402
The fix is https://github.com/Qiskit/qiskit-terra/pull/9953 which is going tot be released in 0.24 (to be released today).


Create ExoPlayer

Hello,
I couldn't find anything in the doc or others forums
Is there any issue using ApplicationContext to create the ExoPlayer instance ?
I wish to create a single instance of ExoPlayer in my application. Therefore usingExoPlayer.Builder(applicationContext )
Thanks

Using context.getApplicationContext() is fine it is even a good practice in cases that you mention. It makes sure to not leak a reference to a context coming from an activity that is destroyed already.
However, even when building the player with an application context, the player needs to be released when your application goes into background unless you are housing the player in a foreground service. When your activity/app goes into background without a service, resources like codec instances need to be released. Please see the lifecycle methods of the PlayerActivivty of the main demo app.


styles for "disabled" buttons

so that the styles also apply to flat and raised buttons in the "disabled" state.

Are these not working?

They work - but it would be nice if I can enable/disable the button via the disabled attribute.
For example, in an Angular app, this would allows you to use ng-disabled rather than ng-class, which is not readable when there are many expressions.


fix(compiler-core): compilation of slot v-if/else when preserve whitespace

closes #6063
based on https://github.com/vuejs/core/pull/6124
Not exposing the whitespace option to the context because I don't think
// pseudo-node
SlotNode(vIf)
TextNode('')
SlotNode(vElse)

Is possible without the whitespace preserve, since it check for text content to be empty

Any update on this?


chore(docs): minor updates in readme and licence

Description

Update Readme to include brand guidelines
Add MIT badge to Readme
Update copyright year

Checklist

[x] Approved by product owner

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


feat: add momento as a provider for locks

Added to our fork for now for a review before pushing it upstream

re: testing: i dont really see any providers adding tests apart from ddb who have hooked a docker image (supported by this repo) where they test through ddb local


Add link to dashbaord

Add a link to the FoundriesFactory dashboard in the ToC, and make the "corporate" links stand out a little bit more.

Docs for 1751d0b7a70e7fd3417fad50399519784b9e341a are browesable at: https://ci.foundries.io/projects/fio-docs/builds/599/docs/artifacts/html/index.html


Sync published with master

Deploy preview for docsdocker ready!
Built with commit 9d40556f63d69011df4d03329fc00b0600fc90ae
https://deploy-preview-8363--docsdocker.netlify.com


Remove gcp-ua doc cause it's not working

As we didn't find original author of doc, removing it
Closes https://github.com/Arriven/db1000n/issues/146

@Arriven @iamtodor as discussed here https://github.com/Arriven/db1000n/issues/146#issuecomment-1059794244 pingin both of you for this type of changes


Block saving multiple non-ended entries in backend

(be sure to scope this on a user)

Should be working now


NameError: name 'MyStreamListener' is not defined

I bet I'm missing something, I just don't know what. Here's the relevant code:
...
myStreamListener = MyStreamListener()
class MyStreamListener(tweepy.Stream):
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
...
NameError: name 'MyStreamListener' is not defined
Could someone please help me understand this error? :)

I have pasted the full code in hopes it sheads some light on my troubles.
def tweep(request):
auth = xxxx
auth.set_access_token("xxx")
try:
redirect_url = auth.get_authorization_url()
except tweepy.TweepError:
print('Error! Failed to get request token.')
api = tweepy.API(auth)
public_tweets = api.home_timeline()
for tweet in public_tweets:
print(tweet.text)
myStreamListener = MyStreamListener()
class MyStreamListener(tweepy.Stream):
#x = 2
myStream = tweepy.Stream(auth = api.auth, listener=myStreamListener)
return render(request, "index.html")

Turns out I wasn't paying enough attention to my console. I needed my auth details included and it worked.
class MyStreamListener(tweepy.Stream):
def on_status(self, status):
print(status.text)
Then later....
myStreamListener = MyStreamListener("xxx", "xxx", "xxx", "xxx")
Thanks!

The initial error was that MyStreamListener wasn't defined at all.
For code block usage, see https://docs.github.com/en/github/writing-on-github/creating-and-highlighting-code-blocks.


AWS SDK Script almost-production.js

a node.js script that uses the AWS sdk to create a digital certificate and a cloudfront distribution with https for your public site

[ ] Create the digital Certificate

[ ] Create the cloudFront Distribution

[ ] Assign the digital certificate


[MINOR] merge branch-spark-connector-dev to main

What changes were proposed in this pull request?
merge branch-spark-connector-dev to main
Why are the changes needed?
continue  spark-connector development on main
Does this PR introduce any user-facing change? no
no
How was this patch tested?
existing UTs

@jerryshao @qqqttt123 could we merge it now?

What changes were proposed in this pull request? Just modified some dependencies?

What changes were proposed in this pull request? Just modified some dependencies?

only include https://github.com/datastrato/gravitino/pull/1582

Could you modify the title and description of pull request?


Home Page

Create Home Page
Homepage should contain the following sections

Introduction
Aim
Events [Basic intro]
Team [Basic intro]
Opportunities @DSC
Newsletter Section [email input with button]

Reference -> https://dscvit.com/

I would like to work on this.

Sure @adnanhashmi09

What about the design. Do you want me to show you a mockup of how the page will look?

Yeah, go ahead!

Will something like  this do?
WIll also add some particle animation in the background of the hero section.

https://www.figma.com/file/zcXmkbGqFH7PezBje9nXp2/Untitled?node-id=0%3A1
Link to the design ^^

@adnanhashmi09
It looks pretty amazing!

sweet :)