Seek more information about the nvs flash memory (IDFGH-5145)

----------------------------- Delete below -----------------------------
Environment

Development Kit:    ESP32-DevKitC
Kit version (for DevKitC): [v4]
Module or chip used:  ESP32-WROOM-32D
IDF version (run git describe --tags to find it):
// v4.2

Problem Description
Hello, I was implementing the ble mesh Scene server. I am storing the scene in the nvs flash using the Non-volatile storage library. I also enable the option "Store BLE Mesh configuration persistently". I am storing the all values of scenes in the default partition "nvs". So far every thing goes fine. I implemented the reset the node by calling the nvs_flash_erase() function in the event "    ESP_BLE_MESH_NODE_PROV_RESET_EVT". I surprised to find that all the data related to ble mesh has been deleted as expected , but the data related to scene is still in the flash memory. I have to delete it using the function nvs_erase_all(). As per my knowledge we are storing all the data into the flash in the nvs partition. while erasing the whole partition using the function nvs_flash_erase() the data related to scene should also be deleted.  What I am missing here?

@ankit-thealchemist Currently, scene-related data is not stored in the ble mesh protocol stack. What API are you using to store scene data?

@InfiniteYuan Thanks for the speedy reply. My apologies I wasn't clear.  Actually its not the scene related issue its more about storing the values into the nvs flash and nvs flash working .
Suppose we save the value  in the nvs flash using the key value pair. I create the handle and open the  the name space using the function nvs_open(), its description is "Open non-volatile storage with a given namespace from the default NVS partition.". So what I assuming that I am saving the value in the "nvs" partition by using the function nvs_set_blob(). Now when I try to erase the partition using the function nvs_flash_erase(), it should delete all the name space and the value stored in the nvs partition, but its not happening. I can still access the data in the namespace.  I have to delete the data using the function nvs_erase_all().  My question is it not enough to use nvs_flash_erase() to format the partition, do we have to delete the multiple namespace individually in a given partition?
I want to have deeper understanding of the nvs flash.

Now when I try to erase the partition using the function nvs_flash_erase(), it should delete all the name space and the value stored in the nvs partition, but its not happening. I can still access the data in the namespace

Just to check, are you de-initializing NVS (nvs_close, nvs_flash_deinit) before erasing the partition and, re-initializing it afterwards?
Could you post the code snippet which demonstrates the problem, please?

@igrr thanks for the speedy reply. I just de-initialize the nvs first and then uses the function nvs_flash_erase(), now its working fine.
Is it mandatory to de initialize the nvs memory before erasing?  Also the notes in the  nvs_flash_erase() function in documentation mention that "If the partition is initialized, this function first de-initializes it. Afterwards, the partition has to be initialized again to be used."  also in the return type its mention, ESP_OK on success
ESP_ERR_NOT_FOUND if there is no NVS partition labeled “nvs” in the partition table
different error in case de-initialization fails (shouldn’t happen).
I am using the function ESP_ERROR_CHECK(nvs_flash_erase()) but not getting any error.  I am getting confuse.

nvs_flash_erase indeed de-initializes NVS automatically starting from commit https://github.com/espressif/esp-idf/commit/98b1da9e6034dcfb1cd95c30a14001036aab3f59, in particular to prevent issues like this. This change is part of v4.2 release. Are you using exactly the v4.2 tag version, as you indicated in the initial post? What is the output of git describe executed in IDF repository?
If you are indeed on v4.2 tag, then I can't explain this behavior, as the commit linked above contains a test case for this specific scenario. Please post the code snippet you use to reproduce this issue, we will investigate. Thank you.
If you are on an older version (such as v4.2-beta) then it is recommended to update to the stable release (v4.2 at the time of writing) or use the suggested approach with deinitializing NVS before erasing.

@igrr sorry for the delayed reply!
Yes it is v4.2

This is how I am storing the values:
nvs_handle_t myHandle;
esp_err_t err;
err = nvs_open(SceneStorage, NVS_READWRITE, &myHandle);
if (err != ESP_OK)
{
ESP_LOGE(bleTag, "cannot open the nvs storage due to %s", esp_err_to_name(err));
}
        size_t required_size = 0;
        err = nvs_get_blob(myHandle, NvsSceneStorage, NULL, &required_size);
        // checking whether the blob is initiated or not, if not intiated it will intitate it  and fill with 0
        if (required_size == 0)
        {
            struct nvs_storage_scene *vSceneStorage = calloc(NumberOfSceneCount, sizeof(struct nvs_storage_scene));
            if (vSceneStorage == NULL)
            {
                ESP_LOGE(bleTag, "Stack is full. Cant get the free space");
                return;
            }
            err = nvs_set_blob(myHandle, NvsSceneStorage, vSceneStorage, NumberOfSceneCount * sizeof(struct nvs_storage_scene));
            if (err != ESP_OK)
            {
                ESP_LOGE(bleTag, "nvs storage problem due to %s", esp_err_to_name(err));
            }
            free(vSceneStorage);
            nvs_commit(myHandle);
            if (err != ESP_OK)
            {
                ESP_LOGE(bleTag, " nvs storage due to %s", esp_err_to_name(err));
            }
        }
        required_size = NumberOfSceneCount * sizeof(struct nvs_storage_scene);
        struct nvs_storage_scene *vSceneStorage = malloc(required_size);
        if (vSceneStorage == NULL)
        {
            ESP_LOGE(bleTag, "Stack is full. Cant get the free space");
            return;
        }
        err = nvs_get_blob(myHandle, "sceneDatabase", vSceneStorage, &required_size);
        if (err != ESP_OK)
        {
            ESP_LOGE(bleTag, "nvs storage problem due to %s", esp_err_to_name(err));
        }
        memcpy(vSceneStorage + i, &vStore_scene, sizeof(struct nvs_storage_scene));
        err = nvs_set_blob(myHandle, "sceneDatabase", vSceneStorage, required_size);
        free(vSceneStorage);

        if (err != ESP_OK)
        {
            ESP_LOGE(bleTag, " nvs storage due to %s", esp_err_to_name(err));
        }

        err = nvs_commit(myHandle);
        if (err != ESP_OK)
        {
            ESP_LOGE(bleTag, " nvs storage due to %s", esp_err_to_name(err));
        }
        nvs_close(myHandle);
        break; // break for the main for loop for processing the scene storage
    }

and this is how i am trying to erase the partition
case ESP_BLE_MESH_NODE_PROV_RESET_EVT:
ESP_LOGI(tag, "ESP_BLE_MESH_NODE_PROV_RESET_EVT");
ESP_LOGI(tag, "Resetting the node to the unprovisioned state");
ESP_ERROR_CHECK(nvs_flash_deinit());
ESP_ERROR_CHECK(nvs_flash_erase());
ESP_LOGI(tag, "Restarting the device....");
readDataFromNvs();
vTaskDelay(pdMS_TO_TICKS(10000));
esp_restart();
break;


Add Asteroid Day from Kerbal Stuff

This pull request was automatically generated by Kerbal Stuff on behalf of Micha, to add Asteroid Day to CKAN.
Please direct questions about this pull request to Micha.

Closing in favor of KSP-CKAN/CKAN-meta#659


Raises a useful error message on missing table (sqlite3)

Raises a useful error message if the table_info could not be requested of the table name. ActiveRecord::JDBCError "query does not return ResultSet"

Looks good, thanks for fixing this.


Use hyper-bump-it for this repository

Now that there is a functional release of the package, this repository should start using the package for future releases to dog-food the implementation.

Fixed by #127


osu_latency is raising a NoMetricException and failing when run on multiple nodes

to be investigated further

SLURM pooped in his pants again, so there was no metrics to extract.
The real issue here is that metrics are extracted even if the command failed. I am fixing that.

done


Don't merge, test pr build when en-us enable v3 but loc hasn't

Don't merge, test pr build when en-us enable v3 but loc hasn't

Docs Build status updates of commit b7ecb44:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/OPS-E2E-PPE/E2E_DocFxV3.cs-cz, working directory: C:\LocalRun\W\w5st-s, target branch: master, target branch commit: d4f35698aafe609fdf3bba8a90885cd0aca8fe2c, source commit: b7ecb4498e89815e23f6adfc1c2955a2e60761f5.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit b7ecb44:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/OPS-E2E-PPE/E2E_DocFxV3.cs-cz, working directory: C:\LocalRun\W\k33s-s, target branch: master, target branch commit: d4f35698aafe609fdf3bba8a90885cd0aca8fe2c, source commit: b7ecb4498e89815e23f6adfc1c2955a2e60761f5.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit b7ecb44:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/OPS-E2E-PPE/E2E_DocFxV3.cs-cz, working directory: C:\LocalRun\W\afq5-s, target branch: master, target branch commit: d4f35698aafe609fdf3bba8a90885cd0aca8fe2c, source commit: b7ecb4498e89815e23f6adfc1c2955a2e60761f5.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

Docs Build status updates of commit b7ecb44:
:x: Validation status: errors
Please follow instructions here which may help to resolve issue.

File
Status
Preview URL
Details

:x:Error

Details

[Error] Cannot sync git repo to specified state. Please make sure the pull request is mergeable. Details: Git merge results in conflict, repository remote url: https://github.com/OPS-E2E-PPE/E2E_DocFxV3.cs-cz, working directory: C:\LocalRun\W\mmr0-s, target branch: master, target branch commit: d4f35698aafe609fdf3bba8a90885cd0aca8fe2c, source commit: b7ecb4498e89815e23f6adfc1c2955a2e60761f5.

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


There are spelling errors in files

Hi,
In the file SwiftEdScreenRecorderPlugin.swift, on line 123, this should be
self.videoOutputURL = URL(fileURLWithPath: String(filePath.appendingPathComponent(fileName))),
NOT
self.videoOutputURL = URL(fileURLWithPath: String(self.filePath.appendingPathComponent(fileName)))

Version 0.0.13 has been released. Could you please check again and report back to me?

It's useful for me


Restore text by default

When abandoning a message, whether from page refresh, switching streams, or otherwise, more often than not I've wanted to restore the text. Hence I think it's a better experience to restore the text by default, and provide a means to clear the restored text if desired. (Clearing text is easy enough anyway, at least for keyboard junkies, compared to clicking the link).
This might be best as a user-defined setting.

I agree the "draft management" issue in the compose box is a power user pain point :).  A related issue issue is having better handling for storing multiple drafts (to handle the case where you're composing something long, and then get a quick question, and want to reply to that while you continue composing).  We can solve part of the quick reply issue with e.g. emoji reactions, but certainly not the general case.
One relatively thing we could think about for your specific problem is a "restore last draft" keyboard shortcut that you'd use instead of opening the compose box in the first place...

I think that's a great idea! r for composing new messages, maybe cmd-r to restore the last draft?
For multiple drafts, it might be sufficient to maintain just one draft per stream. Or per thread, if desired. (I haven't noticed if this is the current behavior.)

Just a quick comment: We're not necessarily fixated on vim in particular for hotkeys so much as trying to do things that will be as intuitive as possible.
Isn't cmd-r already bound by the browser to reload the page?  I wouldn't want to override that...

Also current behavior is storing 1 draft, total.

Tagged this as "feedback wanted" to encourage more brainstorming on hotkeys.  This could also be a good topic to discuss at today's group hangout (5PM Pacific on https://zulip.tabbott.net)

@timabbott Does this match the requests?

This was fixed by adding the new drafts feature.  Closing.


Delayed retries

I am trying the advanced example and the retries do not seem to use any delay.
My steps were:

clone this repository
npm i
npm run docker
npm run test - all tests are green
node ./examples/advanced/cluster.js

Console output:
Saving user: Katherine_Garcia
Saving user: Don_Bensi
Deleting user: Marion_Moore
Saving user: Carl_Sugimoto
Saving user: Anthony_Falsini
Deleting user: Leroy_Ferrer
C:\Projects\rascal\examples\advanced\handlers\deleteUser.js:11
            if (user.crash) throw new Error('Crashing on user: ' + user.username)
                            ^

Error: Crashing on user: Leroy_Ferrer
    at Immediate.<anonymous> (C:\Projects\rascal\examples\advanced\handlers\deleteUser.js:11:35)
    at processImmediate (internal/timers.js:439:21)
Deleting user: Leroy_Ferrer
C:\Projects\rascal\examples\advanced\handlers\deleteUser.js:11
            if (user.crash) throw new Error('Crashing on user: ' + user.username)
                            ^

Error: Crashing on user: Leroy_Ferrer
    at Immediate.<anonymous> (C:\Projects\rascal\examples\advanced\handlers\deleteUser.js:11:35)
    at processImmediate (internal/timers.js:439:21)
Deleting user: Leroy_Ferrer
C:\Projects\rascal\examples\advanced\handlers\deleteUser.js:11
            if (user.crash) throw new Error('Crashing on user: ' + user.username)
                            ^

Error: Crashing on user: Leroy_Ferrer
    at Immediate.<anonymous> (C:\Projects\rascal\examples\advanced\handlers\deleteUser.js:11:35)
    at processImmediate (internal/timers.js:439:21)
Deleting user: Leroy_Ferrer
C:\Projects\rascal\examples\advanced\handlers\deleteUser.js:11
            if (user.crash) throw new Error('Crashing on user: ' + user.username)
                            ^

Error: Crashing on user: Leroy_Ferrer
    at Immediate.<anonymous> (C:\Projects\rascal\examples\advanced\handlers\deleteUser.js:11:35)
    at processImmediate (internal/timers.js:439:21)
Deleting user: Leroy_Ferrer
C:\Projects\rascal\examples\advanced\handlers\deleteUser.js:11
            if (user.crash) throw new Error('Crashing on user: ' + user.username)
                            ^

Error: Crashing on user: Leroy_Ferrer
    at Immediate.<anonymous> (C:\Projects\rascal\examples\advanced\handlers\deleteUser.js:11:35)
    at processImmediate (internal/timers.js:439:21)
Deleting user: Leroy_Ferrer
C:\Projects\rascal\examples\advanced\handlers\deleteUser.js:11
            if (user.crash) throw new Error('Crashing on user: ' + user.username)
                            ^

Error: Crashing on user: Leroy_Ferrer
    at Immediate.<anonymous> (C:\Projects\rascal\examples\advanced\handlers\deleteUser.js:11:35)
    at processImmediate (internal/timers.js:439:21)
Redeliveries Exceeded Message 429c5cf5-808f-49e3-baf0-9f698cd778fd has exceeded 5 redeliveries

All of this is happening without any delay. Am I missing any specific setup? According to the configuration in the advanced example I would assume there is a one minute delay between retries.

Hi @Zehelein,
The advanced example demonstrates many different error scenarios.  The example is configured to nack those messages after 5 redeliveries. This type of handling is important as unless a 'poison' message is acked/nacked it will continue to be redelivered, crashing your application over and over again.
The delayed retry occurs when the example simulates what it considers to be a recoverable error. You can console.error(err) here to make this more obvious.
I've run locally and can see messages being routed to the delay queue.

I could also see the same user being retried later, so confident the example still works.

Hi,
thank you for your very quick and great answer! Yes this makes sense. I mixed both concepts about retries (app did not crash and we can on our own decide how to proceed with the message) and redeliveries (a message crashes the applicatoin). But it works exactly as you describe.
So poisonous messages will be re-delivered immediately. I see no option to add a delay for that - they will just be added back to the beginning of the queue, will be redelivered up to the configured "limit". If I would like to have also delayed retries I would need a try/catch block inside the full handler function, catch the poisonous message on my own and then decide if I want a (delayed) retry or not.

Hi @Zehelein,
Glad things worked out. You are right, there's no way to stop a poisonous message being redelivered, other than to configured the consumer to autoack, in which case RabbitMQ removes the message from the queue before it is delivered. Of course the problem with this is that if something goes wrong, there is no automated retry and the message is lost.

If I would like to have also delayed retries I would need a try/catch block inside the full handler function, catch the poisonous message on my own and then decide if I want a (delayed) retry or not.

The snag here is that as careful as you are, there's always the chance of a bug meaning that something in the catch goes wrong. They could also be uncatchable errors, e.g. maybe something in the message triggers a bug in node, or the message is so big it consumes exceeds a memory threshold. Poison messages don't happen very often, but they're usually not recoverable, so the best course of action is to detect them, and nack them to a dead letter queue.

thanks for your insights - this helps :-)

I wanted to add one input: I was trying it out now without using clusters and just running the index.js with the redis counter implementation. When using cluster all was fine but when starting index.js directly the poisonous message would kill the process (which is fine). But the redis counter was then not increased. That might be obvious for some but maybe you can adjust your example to cleanly shutdown the broker:
    process
      .on("SIGINT", function () {
        broker.shutdown(function () {
          process.exit();
        });
      })
      .on("unhandledRejection", (reason, p) => {
        console.error(reason, "Unhandled Rejection at Promise", p);
        broker.shutdown(function () {
          process.exit();
        });
      })
      .on("uncaughtException", (err) => {
        console.error(err, "Uncaught Exception thrown");
        broker.shutdown(function () {
          process.exit();
        });
      });

And me again - but this time I think I found one error in the advanced example.
In my tests the broker.subscribe ... .on("message"... always runs into the error scenario. Because the saveUser and deleteUser will always send an error. Be it on purpose for error cases 5/7 in saveUser or in the line
publication.on("success", cb).on("error", console.error);
The "success", cb part will forward the parameters of the ".on" callback to the cb function. This means the index.js part from above will receive a UUID string as error which is not null/undefined. I think those lines in save/create Uers should rather be:
publication.on("success", () => cb()).on("error", console.error);

Hi @Zehelein, good spot re the success callback. Thanks for reporting it. I'll fix shortly.

I'm a little confused by the following...

But the redis counter was then not increased. That might be obvious for some but maybe you can adjust your example to cleanly shutdown the broker (not sure about process.exit or rather rethrow the error):

Do you mean there are two separate concerns...

The redis counter was not updated
The example would be improved with graceful shutdown

Assuming so, then I can probably explain the first one...
When a message is delivered for the first time and crashes the app, rascal does nothing. When you think about it, it can't - even with try/catch as discussed earlier.
However when a message is redelivered after being rolled back, RabbitMQ adds a redelivery flag. Unfortunately this is a boolean rather than a count of the failed attempts.
When Rascal sees a message has been redelivered, it starts counting the redeliveries (using whatever counter is configured).So you will only see the count incremented the second time the message crashes the application.
Re (2) I agree this would improve the example. Thanks for the suggestion.  I would also add SIGTERM too. Happy to accept a PR, but otherwise I'll make the changes in due course.

Ah yes - you are right. It is handled on the second start of the application, it is then added as a redis counter and correctly exceeded after the 5th retry.
And sure - creating a PR for this change. The () => cb one I saw that you already fixed it - thanks!


Compare changes across branches, commits, tags, and more below. If

Pull Request Test Coverage Report for Build 109608301

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.03%) to 94.554%

Totals

Change from base Build 105818270:
0.03%

Covered Lines:
1974

Relevant Lines:
2049

💛  - Coveralls


Customize health syncing status via parameter

Customize health check status when node is syncing

use request parameter to override default syncing status
return default status if wrong parameter passed

Documentation
Health check syncing status can be overridden with custom value passed via query parameter syncing_status.
Therefore, it would be compatible with kubernetes standard health check where 200-399 statuses are considered healthy.
Changelog

[ ] I thought about adding a changelog entry, and added one if I deemed necessary.

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.Juan Dominguez seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.You have signed the CLA already but the status is still pending? Let us recheck it.

@jmcruz1983 could you take a look at the CLA for me? thanks...

I did sign the CLA,
but don't know why still shows unsigned.

Yeah it has approved your GitHub user but doesn't seem to be able to map the commits to that user.  From the comment it left above:

Juan Dominguez seems not to be a GitHub user. You need a GitHub account to be able to sign the CLA. If you have already a GitHub account, please add the email address used for this commit to your account.

May need to edit the commit so it has an email address with it (can just be the one GitHub generates rather than your real one) and do a force push to replace the commit.

Thanks @ajsutton
but I do have a real GitHub user that is @jmcruz1983
I'll check about the commit


Initial typo sweep of migration docs section

OK, reapplied my documentation cleanup to a new branch and made into one commit. For review whenevere, not urgent.

ack


Documentation error on the "Manage accelerated database recovery" document

There is a documentation error on the page. The page refers to the system view sys.dm_persistent_version_store_stats but that view does not exist. A bit of searching on a 2019 database indicates the actual name of the view is sys.dm_tran_persistent_version_store_stats. Thanks for considering this.

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

ID: 98d6d147-a7a7-cd75-13fb-4f4f72a16a15
Version Independent ID: bb4f71b0-3103-06af-0560-e28860c752bc
Content: Manage accelerated database recovery - SQL Server
Content Source: docs/relational-databases/accelerated-database-recovery-management.md
Service: sql
Sub-service: backup-restore
GitHub Login: @MashaMSFT
Microsoft Alias: mathoma

@bjrazumich -- Robert, thank you for catching this.  I am updating the article.

Updated article should publish today. Thanks again for your feedback, @bjrazumich.


SyntaxError:  Invalid regular expression returned when parsing

Grammar file: https://github.com/opencybersecurityalliance/kestrel-lang/blob/develop/src/kestrel/syntax/kestrel.lark
Generated parser:
kestrelParser.js.zip
When parsing this statement procs2 = GET process abc, the parser throws the exception like below which is not caught by parser.

Code
function handle_errors(e) { return true; }

  try {
    treeData = parser.parse(text, null, handle_errors).children[0];
  } catch (e) {
    console.debug("uncaught error:", e)
  }

Expected:
This kind of error can be handled by the parser, so we can get the parsing tree and the error info like Unexpected character or Unexpected Token.

@erezsh  could you please take a look at this issue?

Sorry, I had a few busy weeks.
I compiled the grammar with the latest larkjs (master version) and everything worked without a problem.
Can you please include:

Version of your node.js
A full minimal script that reproduces this error?

This happens because Javascript's regex implementation doesn't support all the features that Python has.
This might take a bit longer to fix.
Meanwhile, a possible work around is to change
FUNCNAME: (MIN|MAX|SUM|AVG|COUNT|NUNIQUE)

to
funcname: (MIN|MAX|SUM|AVG|COUNT|NUNIQUE)

Thank you for the response. Looking forward to your fix. :)

This happens because Javascript's regex implementation doesn't support all the features that Python has.
This might take a bit longer to fix.
Meanwhile, a possible work around is to change
FUNCNAME: (MIN|MAX|SUM|AVG|COUNT|NUNIQUE)

to
funcname: (MIN|MAX|SUM|AVG|COUNT|NUNIQUE)

Do you mean to edit the generated parser.js? However, I could not find the string.
 FUNCNAME: (MIN|MAX|SUM|AVG|COUNT|NUNIQUE)

No... edit the grammar!

Got it. Thanks! Let me try.

yeah, updating the grammar from FUNCNAME to funcname works. Looking forward to your fix. :)

The "fix" is most likely going to be preventing users from doing what you were trying to do and throwing an error instead.
I don't know if there is a way to make it work in Javascript. At least, without implementing part of the regex mechanism myself.

I got it. Thanks. Would you mind to release a version which contains other fixes first?

Released https://github.com/lark-parser/Lark.js/releases/tag/0.1.3


provisioning hangs indefinitely when there is no output from provisioner script

Hi,
When I use the following Vagrantfile the provisioning freezes when I use provider AWS (but works ok when I use provider Virtualbox):
 -*- mode: ruby -*-
# vi: set ft=ruby :

# Vagrantfile API/syntax version. Don't touch unless you know what you're doing!
VAGRANTFILE_API_VERSION = "2"

Vagrant.configure(VAGRANTFILE_API_VERSION) do |config|

  # Config for Virtualbox provider
  config.vm.provider "virtualbox" do |_,override|
    override.vm.box = "hashicorp/precise64"
    override.vm.network "private_network", ip: "<IP_ADDRESS>"
  end

  # Config for AWS provider
  config.vm.provider "aws" do |aws,override|
    override.vm.box = "dummy"
    override.vm.box_url = "https://github.com/mitchellh/vagrant-aws/raw/master/dummy.box"
    override.ssh.private_key_path = "CHANGEME"
    override.ssh.username = "ubuntu"

    aws.access_key_id = ENV['AWS_ACCESS_KEY_ID']
    aws.secret_access_key = ENV['AWS_SECRET_ACCESS_KEY']

    aws.region = "us-west-2"
    aws.instance_type = "c3.large"
    aws.keypair_name = "CHANGEME"
    aws.ami = "ami-937959a3" # latest AMI for Ubuntu Precise
    aws.security_groups = "Testing" # Changeme
  end

  sleep = []
  7.times do |x|
    sleep << "echo -n '#{x}: '"
    sleep << "date"
    sleep << "sleep 600"
  end
  config.vm.provision 'shell', inline: sleep.join(';')
  config.ssh.forward_agent = true
end

If I set sleep interval as low as ~120 seconds I see 10 "echo" lines which I'd expect but when I set it large enough I see only the first "echo" line. I think I've seen that for as low as 300 seconds but I could not reproduce that. With 600 seconds reproduces reliably.
Here is the output of vagrant up --debug --provider=aws (stripped):
==> default: Running provisioner: shell...
 INFO environment: Running hook: provisioner_run
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 4 hooks defined.
 INFO runner: Running action: #<Method: Vagrant::Action::Builtin::Provision#run_provisioner>
 INFO warden: Calling IN action: #<Proc:0x00000100f8a650@/opt/vagrant/embedded/gems/gems/vagrant-1.7.2/lib/vagrant/action/warden.rb:94 (lambda)>
 INFO machine: Calling action: read_ssh_info on provider AWS (i-77865a7a)
 INFO runner: Preparing hooks for middleware sequence...
 INFO runner: 4 hooks defined.
 INFO runner: Running action: #<Vagrant::Action::Builder:0x00000100feaa50>
 INFO warden: Calling IN action: #<Vagrant::Action::Builtin::ConfigValidate:0x00000100ff3380>
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Action::ConnectAWS:0x00000100ff3358>
 INFO connect_aws: Connecting to AWS...
 INFO warden: Calling IN action: #<VagrantPlugins::AWS::Action::ReadSSHInfo:0x000001050208e0>
 INFO warden: Calling OUT action: #<VagrantPlugins::AWS::Action::ReadSSHInfo:0x000001050208e0>
 INFO warden: Calling OUT action: #<VagrantPlugins::AWS::Action::ConnectAWS:0x00000100ff3358>
 INFO warden: Calling OUT action: #<Vagrant::Action::Builtin::ConfigValidate:0x00000100ff3380>
DEBUG ssh: Checking key permissions: /private/tmp/testcase/engg-qa.pem
DEBUG ssh: Re-using SSH connection.
 INFO ssh: Execute: chown -R ubuntu /tmp/vagrant-shell (sudo=true)
DEBUG ssh: stderr: stdin: is not a tty

DEBUG ssh: Re-using SSH connection.
 INFO ssh: Execute: echo; printf $SSH_AUTH_SOCK (sudo=false)
DEBUG ssh: stdout:

DEBUG ssh: stdout: /tmp/ssh-sEiTibr981/agent.981
DEBUG ssh: Exit status: 0
 INFO ssh: Setting SSH_AUTH_SOCK remotely: /tmp/ssh-sEiTibr981/agent.981
DEBUG ssh: stderr: chown: cannot access `/tmp/vagrant-shell'
DEBUG ssh: stderr: : No such file or directory

DEBUG ssh: Exit status: 1
DEBUG ssh: Uploading: /var/folders/5j/z2j_7z957vg9t4sv218wjwjw0000gn/T/vagrant-shell20150322-15516-11a5oc4.ps1 to /tmp/vagrant-shell
DEBUG ssh: Re-using SSH connection.
 INFO interface: detail: Running: inline script
 INFO interface: detail:     default: Running: inline script
    default: Running: inline script
DEBUG ssh: Re-using SSH connection.
 INFO ssh: Execute: chmod +x /tmp/vagrant-shell && /tmp/vagrant-shell (sudo=true)
DEBUG ssh: stderr: stdin: is not a tty

 INFO interface: info: stdin: is not a tty
 INFO interface: info: ==> default: stdin: is not a tty
==> default: stdin: is not a tty
DEBUG ssh: Re-using SSH connection.
 INFO ssh: Execute: echo; printf $SSH_AUTH_SOCK (sudo=false)
DEBUG ssh: stdout:

DEBUG ssh: stdout: /tmp/ssh-sEiTibr981/agent.981
DEBUG ssh: Exit status: 0
 INFO ssh: Setting SSH_AUTH_SOCK remotely: /tmp/ssh-sEiTibr981/agent.981
DEBUG ssh: stdout: 0:
 INFO interface: info: 0:
 INFO interface: info: ==> default: 0:
==> default: 0:
DEBUG ssh: stdout: Sun Mar 22 17:25:57 UTC 2015

 INFO interface: info: Sun Mar 22 17:25:57 UTC 2015
 INFO interface: info: ==> default: Sun Mar 22 17:25:57 UTC 2015
==> default: Sun Mar 22 17:25:57 UTC 2015
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
..................

The DEBUG ssh: Sending SSH keep-alive... lines repeat indefinitely each 5 seconds but after 10 minutes I see no new "echo" lines. If I reduce the interval or select virtualbox provider I'll see the output like the following:
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: stdin: is not a tty
==> default: 0:
==> default: Sun Mar 22 15:18:59 UTC 2015
==> default: 1:
==> default: Sun Mar 22 15:28:59 UTC 2015
==> default: 2:
==> default: Sun Mar 22 15:38:59 UTC 2015
==> default: 3:
==> default: Sun Mar 22 15:48:59 UTC 2015
==> default: 4:
==> default: Sun Mar 22 15:58:59 UTC 2015
==> default: 5:
==> default: Sun Mar 22 16:08:59 UTC 2015
==> default: 6:
==> default: Sun Mar 22 16:18:59 UTC 2015
==> default: Configuring cache buckets...

timurb@macpro777:~$ vagrant --version
Vagrant 1.7.2
timurb@macpro777:~$ uname -a
Darwin macpro777 14.1.0 Darwin Kernel Version 14.1.0: Thu Feb 26 19:26:47 PST 2015; root:xnu-2782.10.73~1/RELEASE_X86_64 x86_64

While I see no signs of script working looking from my PC, on the server the script continues to run:
PC:
==> default: Running provisioner: shell...
    default: Running: inline script
==> default: stdin: is not a tty
==> default: 0:
==> default: Sun Mar 22 17:50:15 UTC 2015

Remote server:
ubuntu     998   752  0 17:48 ?        00:00:00 sshd: ubuntu@notty
root      1298   998  0 17:50 ?        00:00:00 sudo -E -H bash -l
root      1299  1298  0 17:50 ?        00:00:00 bash -l
root      1308  1299  0 17:50 ?        00:00:00 bash -l
root      1311   615  0 17:50 ?        00:00:00 sshd: ubuntu [priv]
ubuntu    1425  1311  0 17:50 ?        00:00:00 sshd: ubuntu@pts/0
ubuntu    1426  1425  0 17:50 pts/0    00:00:00 -bash
root      1524  1426  0 17:50 pts/0    00:00:00 sudo -i
root      1525  1524  0 17:50 pts/0    00:00:00 -bash
root      1589  1308  0 18:00 ?        00:00:00 sleep 600

If I break the Vagrant run using Ctrl-C twice the script still continues working on the server:
ubuntu     998   752  0 17:48 ?        00:00:00 sshd: ubuntu@notty
root      1298   998  0 17:50 ?        00:00:00 sudo -E -H bash -l
root      1299  1298  0 17:50 ?        00:00:00 bash -l
root      1308  1299  0 17:50 ?        00:00:00 bash -l
root      1311   615  0 17:50 ?        00:00:00 sshd: ubuntu [priv]
ubuntu    1425  1311  0 17:50 ?        00:00:00 sshd: ubuntu@pts/0
ubuntu    1426  1425  0 17:50 pts/0    00:00:00 -bash
root      1524  1426  0 17:50 pts/0    00:00:00 sudo -i
root      1525  1524  0 17:50 pts/0    00:00:00 -bash
root      1595  1308  0 18:10 ?        00:00:00 sleep 600

At the moment I hit Ctrl-C the ssh session created by Vagrant is still seen from server side:
root      1283     1  0 19:41 ?        00:00:00 sudo -E -H bash -l
root      1284  1283  0 19:41 ?        00:00:00 bash -l
root      1293  1284  0 19:41 ?        00:00:00 bash -l
root      1296   597  0 19:44 ?        00:00:00 sshd: ubuntu [priv]
ubuntu    1410  1296  0 19:45 ?        00:00:00 sshd: ubuntu@pts/0
ubuntu    1411  1410  0 19:45 pts/0    00:00:00 -bash
root      1513  1293  0 20:01 ?        00:00:00 sleep 600
root      1514     2  0 20:08 ?        00:00:00 [flush-202:1]
root      1515   597  0 20:09 ?        00:00:00 sshd: ubuntu [priv]
ubuntu    1629  1515  0 20:09 ?        00:00:00 sshd: ubuntu@pts/1
ubuntu    1630  1629  2 20:09 pts/1    00:00:00 -bash
ubuntu    1728  1630  0 20:09 pts/1    00:00:00 ps -ef
ubuntu@ip-10-21-147-148:~$ sudo netstat -lapn | grep 22
tcp        0      0 <IP_ADDRESS>:22              <IP_ADDRESS>:*               LISTEN      597/sshd
tcp        0    144 <IP_ADDRESS>:22        <IP_ADDRESS>:52400     ESTABLISHED 1515/sshd: ubuntu [
tcp        0      0 <IP_ADDRESS>:22        <IP_ADDRESS>:51768     ESTABLISHED 1296/sshd: ubuntu [
tcp6       0      0 :::22                   :::*                    LISTEN      597/sshd

On my PC side when I hit Ctrl-C the output changes not much and is going to be the following:
DEBUG ssh: Sending SSH keep-alive...
^C INFO interface: warn: Waiting for cleanup before exiting...
 INFO interface: warn: ==> default: Waiting for cleanup before exiting...
==> default: Waiting for cleanup before exiting...
DEBUG ssh: Sending SSH keep-alive...
DEBUG ssh: Sending SSH keep-alive...
...


List JWT credentials

Fixes: https://github.com/Mashape/getkong.org/issues/423

Manually merged, thank you!


⚠ Bofrost.lu has degraded performance

In 5b2de4b, Bofrost.lu (https://www.bofrost.lu) experienced degraded performance:

HTTP code: 200
Response time: 1542 ms

Resolved: Bofrost.lu performance has improved in c485f58 after 35 minutes.


Create base class for chat view.

Its done to reduce the complexity of code from chat view controller.


futures dependency has a very specific version pin

The futures dependency is defined as
futures = "0.1.11"
I have been maintaining a fork for a little while with it defined as
futures = "0.1"
in order to get a few fixes in .12/.13/.14 and haven't had any trouble. Is there a reason for the very specific version pin?

The version defined in the Cargo.toml is a minimum version (but less than 0.2). If you cargo update, it will use the newer patch versions.
The reason for the minimum futures is to force anyone who has hyper with an older version to upgrade futures to when it gained Stream::concat.

Thanks for the explanation. I had not run cargo update and was having problems with multiple versions of futures being installed, which lead to me making the fork. This can be closed!


Can't Faraday be integrated with LND?

This is more of a question, than an issue.
It will be super convenient if Faraday is an integrated solution with LND.
Running multiple servers is challenge for building an integrated UI solution. With Loopd and now Faraday, the list of servers required to run lightning node operations is ever growing.
Or, if your plan is to enable integration with other lightning implementations like Eclair or C-Lightning, then it may make sense to keep it as a separate server.

This is certainly something we are looking into! We want it to be as easy as possible for operators and applications to run the lnd/loop/faraday stack.
Faraday will remain decoupled from lnd for a few reasons. Having a separate tool allows users who don't want this additional functionality to use lnd as is, and on the development side of things it allows us to iterate more quickly. However, we also see the need for an integrated solution, so watch this space!


Missing trailing slash for UberServerToken Code

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.

@eddygee Great catch and thanks for the PR! When you have a chance, could you sign the Uber CLA? Once you do that I'll be happy to merge this in

Of course, CLA signed.

Closes #134 and #159


There is no robot connected to server

Describe the bug
I have changed my wifi AP but it has the same ssid and security password. I see connected with another ip.
I can enter to the web interface but the robot is not working.
A message appears when i click in play button:
An error occurred while sending command to BasicControlCapability: There is no robot connected to server
Do you know what i can do?
Screenshots

Vacuum Model
Conga 5490
Congatudo Version
2023.12

Solved. I had to change etc/hosts


Does not support msd::channel<std::function<void()>>

It seems that msd::channel does not support function pointer.
[]() {} >> chan;
( []() {} ) >> chan;

I never considered this. Is there a real use case to pass functions between threads?

I have a single socket fd, in which all the messages (request and response) should be done sequentially.
So I want some callback to be passed to sequentia-lize betweens those messages.

Understood. It will take me a while to find time for this. Please leave the issue open.
If it's urgent for you, I can only suggest to use a class in the channel (with dynamic polymorphism or std::variant) if it's suitable for you.

This is because you try to push a lambda into a channel with type std::function<void()>. But the lambda does not have that type; it has a unique type.
You can assign a lambda to a std::function object.
using function_type = std::function<void()>;
msd::channel<function_type> channel;

const function_type func = []() {};
channel << func;

function_type out;
channel >> out;
out();

Does this help you?

@leiless, have you tested this?

When you test again, please come back if the proposed solution does not work.


The key OLDisableJunkOptionsPrefKey in macOS configuration profiles does not actually work

In the latest version (16.55) of the Outlook preferences deployed via Configuration Profile, the OLDisableJunkOptionsPrefKey does not work. The Junk options are visible whether the key is applied as true or false in the New Outlook experience. Tested by deploying from Jamf Pro and installing the profile manually; in both cases the button is still visible.
[Enter feedback here]

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

ID: ee85c2aa-f4df-d3b9-1491-76b662cc748a
Version Independent ID: eadbcd7e-16f3-0ead-3e6a-530bfd999e1b
Content: Set preferences for Outlook for Mac - Deploy Office
Content Source: DeployOffice/mac/preferences-outlook.md
Service: o365-proplus-itpro
Sub-service: office-mac
GitHub Login: @DHB-MSFT
Microsoft Alias: danbrown

@pbowden-msft   Do you know anything about this? Thanks.

@DHB-MSFT I checked the sources as the key doesn't have the 'OL' prefix, so the op is correct. I created a pull request for the updated key name.

@ianhoopes  Looks like we had an error in the key name. Should be DisableJunkOptionsPrefKey  (no OL at the beginning). We've updated the article. Thanks for bringing this issue to our attention.

Working as expected now with the updated preference key. Thanks folks! Now here's hoping Jamf updates their built-in repository in the near future.

@ianhoopes thanks for confirming! I've spoken to Jamf, and the built-in repo will be updated by the end of this week.
Thanks for reporting!


Re: [Litecoin Foundation: Litewallet] Re: Litecoin is not appearing in my wallet

This is a follow-up to your previous request #3085 "Litecoin is not appearing i..."
Hello,
I synthesized the wallet multiple times and its not there. Any other recommendations?
Regards
Attachments: IMG_0757.jpg(created from Zendesk ticket #3093) gz#3093

Agent comment from Mohammad Rateb in Zendesk ticket #3109:Please see my comments below
--
°°°

Agent comment from Jim Flanagan in Zendesk ticket #3108:Hello,
So, I know you got a new phone, and tried to recover your wallet with your paper wallet (seed words) and we checked that your original words you wrote down were the same as on the wallet that you recovered.
Have you tried to recover your wallet on a different device, or could you try, to see if this issue happens again.
Also, I know you also said you originally couldn't find your seed phrase, are you sure that the seed phrase you have was for the wallet that had the Litecoin?
There isn't much we can do on our end to locate or recover your Litecoin. This is why it is so important to write down and keep safely.
Jim Flanagan
Litewallet Support
°°°

Agent comment from Jim Flanagan in Zendesk ticket #3109:Hey Mohammad,
I responded to you in another ticket. If you could answer that one for me thanks.
Jim Flanagan
Litewallet Support
°°°

Closing this as it is a customer error and not a bug.


feat: expose linkedin auth and update readme

I saw that the remix-auth-linkedin package was already installed when I was opening a PR to add it.
I have simply exposed it and updated the repo.

Came across this while looking for the LinkedIn auth. Can this be merged please, as it seems ready?


Use Font XML resources and standardise font usage on native platforms

Details
This PR standartise and improve font usage across the entire project.

Native platforms will now consume the fonts in the same way with a combination of fontFamily, fontStyle and fontWeight.
Android will now use Font XML resources to make possible the point above.
All files under src/styles/utils/FontUtils were refactored and simplified to standartise the font usage in E/App.

We will be using the @react-native-community/cli-link-assets tool to manage font assets in the native platforms, as part of this effort to implement it into the RN CLI.
Relevant links/discussions in chronological order:

Original issue in Expensify repo
CK proposal to implement the new feature in react-native-asset library
PR with the new feature
Issue about lack of maintenance and offer to help
Decision to create a separate package under CK org, and proposal to move the feature to CLI
Approval to move the feature to CLI

Fixed Issues

$ https://github.com/Expensify/App/issues/13772
PROPOSAL:
Tests

[x] Verify that no errors appear in the JS console

Full regression test to ensure fonts are correctly applied.
Offline tests

N/A
QA Steps

[x] Verify that no errors appear in the JS console

Full regression test to ensure fonts are correctly applied.
PR Author Checklist

[x] I linked the correct issue in the ### Fixed Issues section above
[x] I wrote clear testing steps that cover the changes made in this PR

[x] I added steps for local testing in the Tests section
[x] I added steps for the expected offline behavior in the Offline steps section
[x] I added steps for Staging and/or Production testing in the QA steps section
[x] I added steps to cover failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[x] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)
[x] I tested this PR with a High Traffic account against the staging or production API to ensure there are no regressions (e.g. long loading states that impact usability).

[x] I included screenshots or videos for tests on all platforms
[x] I ran the tests on all platforms & verified they passed on:

[x] Android: Native
[x] Android: mWeb Chrome
[x] iOS: Native
[x] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[x] MacOS: Desktop

[x] I verified there are no console errors (if there's a console error not related to the PR, report it or open an issue for it to be fixed)
[x] I followed proper code patterns (see Reviewing the code)

[x] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick)
[x] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[x] I verified that comments were added to code that is not self explanatory
[x] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[x] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method

[x] If any non-english text was added/modified, I verified the translation was requested/reviewed in #expensify-open-source and it was approved by an internal Expensify engineer. Link to Slack message:

[x] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[x] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[x] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[x] I verified the JSDocs style guidelines (in STYLE.md) were followed

[x] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[x] I followed the guidelines as stated in the Review Guidelines
[x] I tested other components that can be impacted by my changes (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar are working as expected)
[x] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[x] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[x] I verified that if a function's arguments changed that all usages have also been updated correctly
[x] If any new file was added I verified that:

[x] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[x] If a new CSS style is added I verified that:

[x] A similar style doesn't already exist
[x] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG))

[x] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[x] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[x] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[x] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[x] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[x] I verified that all the inputs inside a form are aligned with each other.
[x] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[x] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[x] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.

Screenshots/Videos

Android: Native

https://github.com/Expensify/App/assets/20051562/b3653534-d914-41ea-8120-77f7f34d3a73

Android: mWeb Chrome

https://github.com/Expensify/App/assets/20051562/d0747a3f-0466-4749-b74a-b8e519902912

iOS: Native

https://github.com/Expensify/App/assets/20051562/aff17ca0-25ce-4f81-b8fb-f994c02ded39

iOS: mWeb Safari

https://github.com/Expensify/App/assets/20051562/9dcf7659-cf48-4a6d-9c34-5ed1c2a15604

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/20051562/26dfc329-48e8-4bc1-8c60-42483347b3d6
https://github.com/Expensify/App/assets/20051562/a25b72e6-e1a5-49f6-beb0-6de1482ee564

MacOS: Desktop

https://github.com/Expensify/App/assets/20051562/2519b69b-b35b-405c-995d-a89b7689cdfb

I assume there's no visual changes as part of this?

No visual changes intended, no

Exactly, after this PR everything is supposed to be the same.

Update: Improved the refactors to unify native and web to use the same font family naming, did the same for ExpensifyHelp docs and Storybook, and did other minor improvements / fixes.
What's left to do:

Update PR's description to be more descriptive
Add docs for Fonts management on E/App
Add comments to explain difference between platform, single and multi fonts.

@fabioh8010 I'm marking this as WIP until you think it's ready for final review

Update: There is still some feedback I need to address in the PR before removing the WIP label. I plan to address everything next week as this one I need to focus to get the detailed section of a design doc ready to review.

@roryabraham Sorry for the delay here. I've applied the last feedback and removed the PR from WIP state, you can review it now and ask for full regression test if everything is okay.

Running AdHoc build: https://github.com/Expensify/App/actions/runs/9452216785

@roryabraham Builds were successful, what are the next steps here?

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

mweb/Chrome - Bold markdown is not applied
Version Number: 1.4.81-1
Reproducible in staging?: N
Reproducible in production?: N
Issue reported by: Applause-Internal Team
Action Performed:

Go to https://41115.pr-testing.expensify.com/
Tap on a report
Enter 55677
Send the message

Expected Result:
Bold markdown must be applied
Actual Result:
Bold markdown is not applied
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] iOS: Native
[x] MacOS: Chrome / Safari

Screenshots/Videos
https://github.com/Expensify/App/assets/78819774/b0141e16-fafe-4c57-adcb-9239e662d882

View all open jobs on GitHub

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

mweb/Chrome - Room - Quote markdown is not shown in live preview in room description
Version Number: 1.4.81-1
Reproducible in staging?: N
Reproducible in production?: N
Issue reported by: Applause-Internal Team
Action Performed:

Go to https://41115.pr-testing.expensify.com/home

Tap on a room

Tap header -- room description

Enter > 45677

Note live quote markdown is not shown

Tap save

Note now live quote markdown is shown

Expected Result:
Quote markdown must be shown in live preview in room description
Actual Result:
Quote markdown is not shown in live preview in room description
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: mWeb Chrome

Screenshots/Videos
https://github.com/Expensify/App/assets/78819774/18f71ebf-881d-4eca-9af5-1c55e125d119

View all open jobs on GitHub

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Address - In the Address Line 1 it is impossible to enter more than one letter and the focus
Version Number: 1.4.81-1
Reproducible in staging?: N
Reproducible in production?: N
Issue reported by: Applause-Internal Team
Action Performed:

Go to https://41115.pr-testing.expensify.com/home
Go to the Profile > Address
Enter characters in address line 1

Expected Result:
Address Line 1 should retain focus after entering a character
Actual Result:
In the Address Line 1 it is impossible to enter more than one letter and the focus is lost
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/Expensify/App/assets/78819774/8d602337-4025-4e5e-89a7-290a623bc0d1

View all open jobs on GitHub

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Track expense - Error page when user navigate to track expense via QAB
Version Number: 1.4.81-1
Reproducible in staging?: N
Reproducible in production?: N
Issue reported by: Applause-Internal Team
Action Performed:

Open Global Create (FAB)
Choose Track expense
Create a manual expense for $1
Create the expense
Verify it's created in the self DM
Click the FAB
Verify the "Quick Action Button" offers to track a manual expense
Click on Track expense from "Quick Action Button"

Expected Result:
Track expense modal should open
Actual Result:
Error page opens when user navigate to track expense via QAB
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/Expensify/App/assets/78819774/b93e950f-fc23-45d1-9ef2-f861727beec9

View all open jobs on GitHub

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Group - Member amount is zero in group details page
Version Number: 1.4.81-1
Reproducible in staging?: N
Reproducible in production?: N
Issue reported by: Applause-Internal Team
Action Performed:

Open ad-hoc New app
Click FAB, start chat and create group message with more than 3 members
Click on the header and observe detail page

Expected Result:
Member amount should have the correct number displayed corresponding with the amount of members
Actual Result:
The member amount is shown to be zero
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[x] MacOS: Chrome / Safari
[ ] MacOS: Desktop

Screenshots/Videos
https://github.com/Expensify/App/assets/78819774/d13d4059-52de-457f-903a-9cbc70b4d13d

View all open jobs on GitHub

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

mWeb - Group - Changing role of user and navigating back shows user remains selected
Version Number: 1.4.81-1
Reproducible in staging?: N
Reproducible in production?: N
Issue reported by: Applause-Internal Team
Action Performed:

Go to https://41115.pr-testing.expensify.com/
Tap fab-- start chat
Create a group selecting few members
Tap header -- members
Tap on a member
Change the role of the member
Tap apps back button
Note the user in members page

Expected Result:
In group chat, changing role of user and navigating back must not show user as selected
Actual Result:
In group chat, changing role of user and navigating back shows user remains selected
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: mWeb Chrome

Screenshots/Videos

https://github.com/Expensify/App/assets/78819774/02d0a575-c805-41d3-a90f-53930ce15d2a
View all open jobs on GitHub

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

mWeb - Room - On changing visibility, room name is not selected
Version Number: 1.4.81-1
Reproducible in staging?: N
Reproducible in production?: N
Issue reported by: Applause-Internal Team
Action Performed:

Go to https://41115.pr-testing.expensify.com/
Tap fab start chat
Shift between "chat" and "room" tab until you see an error "Please enter a room name"
Enter room name
Change the visibility

Expected Result:
On changing visibility, room name is selected
Actual Result:
On changing visibility, room name is not selected
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: mWeb Chrome

Screenshots/Videos

https://github.com/Expensify/App/assets/78819774/5925f936-b149-44ba-a92e-e63cdf71191d
View all open jobs on GitHub

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

IOU - Selected currency is not shown in the right position in the currency list
Version Number: 1.4.81-1
Reproducible in staging?: N
Reproducible in production?: N
Issue reported by: Applause-Internal Team
Action Performed:

Go to https://41115.pr-testing.expensify.com/

login

Go to any chat
Click on the + button next to the composer > Submit expense
Switch to manual
Click on the currency
scroll the list
Click the back button
Return to currency list
Repeat step 5 -7 two or three times
Notice that every time you enter the currency list the selected currency position on the list is not consistent

Expected Result:
Selected currency is found in the middle of the list every time
Actual Result:
Every time you enter the currency list the selected currency position on the list is not consistent
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: mWeb Chrome

Screenshots/Videos
https://github.com/Expensify/App/assets/78819774/51cf48ff-9432-4594-a39c-d235523221de

View all open jobs on GitHub

Track expense - Error when share expense with accountant with no existing workspace
Version Number: v1.4.81-1
Reproducible in staging?: N
Reproducible in production?: N
Issue reported by: Applause-Internal Team
Action Performed:
Precondition:

User has no existing workspace

Steps:

Submit a track expense in the self DM
On the actionable whisper options of a track expense click on Share it with your accountant
Enter a merchant and click Submit

Expected Result:
Transaction should move to the new workspace and no error page should appear
Actual Result:
Error page appear when user with no existing workspace share expense with accountant
Workaround:
Unknown
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android: mWeb Chrome
[x] Windows: Chrome

Screenshots/Videos
https://github.com/Expensify/App/assets/115492554/780d0469-2995-4e9f-bae4-337e41c477ec

View all open jobs on GitHub

@roryabraham Here is the analysis and result after checking all reported bugs.

mweb/Chrome - Bold markdown is not applied - Not reproducible on main. Reproducible on this PR. Fixed here ✅
mweb/Chrome - Room - Quote markdown is not shown in live preview in room description - Not reproducible on main. Not reproducible on this PR.
Address - In the Address Line 1 it is impossible to enter more than one letter and the focus - Not reproducible on main. Not reproducible on this PR.
Track expense - Error page when user navigate to track expense via QAB - Not reproducible on main. Not reproducible on this PR.
Group - Member amount is zero in group details page - Not reproducible on main. Not reproducible on this PR.
mWeb - Group - Changing role of user and navigating back shows user remains selected - Reproducible on main.
mWeb - Room - On changing visibility, room name is not selected - Not reproducible on main. Not reproducible on this PR.
IOU - Selected currency is not shown in the right position in the currency list - Not reproducible on main. Not reproducible on this PR.
Track expense - Error when share expense with accountant with no existing workspace - Not reproducible on main. Not reproducible on this PR.

@roryabraham Kind bump 🙂

@mollfpr kindly bump

@mollfpr bump

Checking 👀

Looks good to me!
We also need to update the font for storybook theme.
https://github.com/Expensify/App/blob/f3a8f736208166286e6f7da3562f1503d5ef2a3d/.storybook/theme.ts#L9

@mollfpr  Good catch! I've applied the fix, please have another look

Reviewer Checklist

[ ] I have verified the author checklist is complete (all boxes are checked off).
[ ] I verified the correct issue is linked in the ### Fixed Issues section above
[ ] I verified testing steps are clear and they cover the changes made in this PR

[ ] I verified the steps for local testing are in the Tests section
[ ] I verified the steps for Staging and/or Production testing are in the QA steps section
[ ] I verified the steps cover any possible failure scenarios (i.e. verify an input displays the correct error message if the entered data is not correct)
[ ] I turned off my network connection and tested it while offline to ensure it matches the expected behavior (i.e. verify the default avatar icon is displayed if app is offline)

[ ] I checked that screenshots or videos are included for tests on all platforms
[ ] I included screenshots or videos for tests on all platforms
[ ] I verified tests pass on all platforms & I tested again on:

[ ] Android: Native
[ ] Android: mWeb Chrome
[ ] iOS: Native
[ ] iOS: mWeb Safari
[ ] MacOS: Chrome / Safari
[ ] MacOS: Desktop

[ ] If there are any errors in the console that are unrelated to this PR, I either fixed them (preferred) or linked to where I reported them in Slack
[ ] I verified proper code patterns were followed (see Reviewing the code)

[ ] I verified that any callback methods that were added or modified are named for what the method does and never what callback they handle (i.e. toggleReport and not onIconClick).
[ ] I verified that the left part of a conditional rendering a React component is a boolean and NOT a string, e.g. myBool && <MyComponent />.
[ ] I verified that comments were added to code that is not self explanatory
[ ] I verified that any new or modified comments were clear, correct English, and explained "why" the code was doing something instead of only explaining "what" the code was doing.
[ ] I verified any copy / text shown in the product is localized by adding it to src/languages/* files and using the translation method
[ ] I verified all numbers, amounts, dates and phone numbers shown in the product are using the localization methods
[ ] I verified any copy / text that was added to the app is grammatically correct in English. It adheres to proper capitalization guidelines (note: only the first word of header/labels should be capitalized), and is either coming verbatim from figma or has been approved by marketing (in order to get marketing approval, ask the Bug Zero team member to add the Waiting for copy label to the issue)
[ ] I verified proper file naming conventions were followed for any new files or renamed files. All non-platform specific files are named after what they export and are not named "index.js". All platform-specific files are named for the platform the code supports as outlined in the README.
[ ] I verified the JSDocs style guidelines (in STYLE.md) were followed

[ ] If a new code pattern is added I verified it was agreed to be used by multiple Expensify engineers
[ ] I verified that this PR follows the guidelines as stated in the Review Guidelines
[ ] I verified other components that can be impacted by these changes have been tested, and I retested again (i.e. if the PR modifies a shared library or component like Avatar, I verified the components using Avatar have been tested & I retested again)
[ ] I verified all code is DRY (the PR doesn't include any logic written more than once, with the exception of tests)
[ ] I verified any variables that can be defined as constants (ie. in CONST.js or at the top of the file that uses the constant) are defined as such
[ ] If a new component is created I verified that:

[ ] A similar component doesn't exist in the codebase
[ ] All props are defined accurately and each prop has a /** comment above it */
[ ] The file is named correctly
[ ] The component has a clear name that is non-ambiguous and the purpose of the component can be inferred from the name alone
[ ] The only data being stored in the state is data necessary for rendering and nothing else
[ ] For Class Components, any internal methods passed to components event handlers are bound to this properly so there are no scoping issues (i.e. for onClick={this.submit} the method this.submit should be bound to this in the constructor)
[ ] Any internal methods bound to this are necessary to be bound (i.e. avoid this.submit = this.submit.bind(this); if this.submit is never passed to a component event handler like onClick)
[ ] All JSX used for rendering exists in the render method
[ ] The component has the minimum amount of code necessary for its purpose, and it is broken down into smaller components in order to separate concerns and functions

[ ] If any new file was added I verified that:

[ ] The file has a description of what it does and/or why is needed at the top of the file if the code is not self explanatory

[ ] If a new CSS style is added I verified that:

[ ] A similar style doesn't already exist
[ ] The style can't be created with an existing StyleUtils function (i.e. StyleUtils.getBackgroundAndBorderStyle(theme.componentBG)

[ ] If the PR modifies code that runs when editing or sending messages, I tested and verified there is no unexpected behavior for all supported markdown - URLs, single line code, code blocks, quotes, headings, bold, strikethrough, and italic.
[ ] If the PR modifies a generic component, I tested and verified that those changes do not break usages of that component in the rest of the App (i.e. if a shared library or component like Avatar is modified, I verified that Avatar is working as expected in all cases)
[ ] If the PR modifies a component related to any of the existing Storybook stories, I tested and verified all stories for that component are still working as expected.
[ ] If the PR modifies a component or page that can be accessed by a direct deeplink, I verified that the code functions as expected when the deeplink is used - from a logged in and logged out account.
[ ] If the PR modifies the UI (e.g. new buttons, new UI components, changing the padding/spacing/sizing, moving components, etc) or modifies the form input styles:

[ ] I verified that all the inputs inside a form are aligned with each other.
[ ] I added Design label and/or tagged @Expensify/design so the design team can review the changes.

[ ] If a new page is added, I verified it's using the ScrollView component to make it scrollable when more elements are added to the page.
[ ] If the main branch was merged into this PR after a review, I tested again and verified the outcome was still expected according to the Test steps.
[ ] I have checked off every checkbox in the PR reviewer checklist, including those that don't apply to this PR.

Screenshots/Videos

Android: Native

Android: mWeb Chrome

iOS: Native

iOS: mWeb Safari

MacOS: Chrome / Safari

MacOS: Desktop

@roryabraham bump 😄

skipping further design review here since the goal was no visible changes, and we used a full regression suite on an AdHoc build to try and accomplish that.

:hand: This PR was not deployed to staging yet because QA is ongoing. It will be automatically deployed to staging after the next production release.

🚀 Deployed to staging by https://github.com/roryabraham in version: 9.0.13-0 🚀

platform
result

🤖 android 🤖
success ✅

🖥 desktop 🖥
success ✅

🍎 iOS 🍎
success ✅

🕸 web 🕸
success ✅

@roryabraham Do we have specific QA steps?

Not really, just be on the lookout for broken fonts. Looks like tester found one issue which was already fixed


Thanks Tarang!


Newly added mobj are set not to appear in Time Attack mode by default

When an object is first added into a course through the NKM Editor, it is set not to appear in Time Attack mode by default.
This behavior was originally suggested so that Item Boxes would not appear in Time Attack mode by mistake.
However, this has led to more troublesome problem where objects that should appear in Time Attack mode are set not to by mistake.
This behavior also serves as a redundant solution considering that Item Boxes that appear in Time Attack mode are reported in the Error List.

I have a suggestion, maybe adding a map object through the add button or draw tool should copy the settings from the last selected object, at least the object ID and TT visibility flag.

I feel that could be expanded into something better, like being able to provide information to the draw tool about what's being placed beforehand. For example, if you're placing EPOI you could set it to place EPOI with a specific radius set, ect


Revert "Release brian10"

Reverts MicrosoftDocs/CSIDev-Public#1482

@adunndevster : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Change dark mode toggle to use a return path as a request argument rather than using the Referer header. Fixes #76

Summary
Change dark mode toggle to use a return path as a request argument rather than using the Referer header.
Fixes #76
Details
Really simple change, it'll add a return path to the toggle-darktheme route as a query string, if one isn't provided it will default to directing the user to / after toggling.
Checks

[x] Tested changes

perfect, thanks!


volume_from breaks dependancy of services

In stack when combining volume_from and depends_on/links, services that are configured with volume_from are deployed before services that are defined in depends_on.
Example:
---
stack: kraken/test
version: 1.0.2
services:
  web:
    image: web:latest
    volumes_from:
      - data-1
    depends_on:
      - data
      - db
  db:
    image: db:latest
  data:
    image: data:latest

Correct deployment order:

data or db
db or data
web

Currently deployed in order:

data
web
db

This behavior breaks dependency as service web is deployed before service db.

Also additional info, when volume_from defined within service, it is deployed right after referenced service and is not mentioned in cli that service was deployed.

The server StackDeployWorker is responsible for deploying the services in the correct order, but it does not deploy the services that are dependent on other services: skipping deployment of #{service.to_path} because it will be deployed by dependencies
Instead, the GridServiceSchedulerWorker will create deployments for each dependent service once the data service has been deployed. However, it does not take the stack service ordering into account.
Perhaps we should replace the GridServiceSchedulerWorker#deploy_dependant_services logic and just let the StackDeployWorker take care of the volumes_from dependencies using the same sorting logic used for the depends_on links... I'm not sure why the two are handled differently, except that volumes_from can also be used outside of stacks, but I don't see why the server should necessarily deploy dependent non-stack services in that case? Ping @jakolehm
Workaround is to use either scope: instance volumes or stateful services instead of volumes_from.

@SpComb reason I dont use volumes is that this stack serves staging environment, therefore ideal for not using volume/stateful services for data / db. When new db image is build, it will be redeployed.

Fixed in #3100


how to use router.on(event, handler) for Vue

Describe the bug
i dont use this ，cant find ducument teach
Screenshots

you can use add it on app params ie. params = {}

thanks

thanks

Did this worked for you?

Did that worked for you?

i dont use ，i use router.on

Did that worked for you?

This is wrong

What is the question? Hard to understand.
Are you asking for details about how to use router.on() events?

What is the question? Hard to understand.
Are you asking for details about how to use router.on() events?

What is the question? Hard to understand.
Are you asking for details about how to use router.on() events?

yes i dont ues, how to use?

Firstly, questions should go into the forums, not as an issue. This is for issues with the code.
In regards to router.on() and it's use, you need to reference under the "Router Instance Events" section of the doc.
Can be used as such: (I think this is what you are after?)
router.on(Event, (Arguments) => { /* your function using the arguments */ });
eg:
View.router.on('pageInit', (pageData) => { console.log(pageData); };

@nolimits4web suggest close


What is the best way to regularize supervised UMAP?

I am working on a regression problem where I am attempting to use UMAP for supervised feature embedding, and use the resulting low-dimensional embeddings as input variables of a subsequent regression model.
Using the L2 target metric, UMAP successfully transforms my very high dimensional sparse feature matrix into a low-dimensional one for the training set. Visualizations of the resulting embeddings show a nice and smooth variation of the target variable with the  UMAP features. However, when I embed the data of my validation set using the trained UMAP model, I see that the model generalizes poorly to unseen data, which appears to be a typical overfitting problem.
I tried to perform hyper-parameter optimization of the composite model comprising UMAP + the regression model on top of it by maximizing the R2 metric of the regression on top of UMAP. By tweaking several hyper-parameters of the UMAP model, so far I have been unable to effectively achieve a good bias-variance tradeoff of the embedding. The manual also does not seem to address the question of how to regularize supervised UMAP.
I would be extremely grateful for any advice as to which hyper-parameters to focus on in order to achieve better generalization properties of the supervised UMAP algorithm.

I don't have a good answer. Since nobody else has answered & I like the question, I thought I'd follow up with a bad answer and an offer to try some things out.
Clarifying the question: It isn't 100% clear to me what terms like "bias," "variance," and "overfitting" should mean in the context of supervised embedding without any underlying data model. Based on your description of what you're looking for in your visualization, I'm going to guess that you basically want the combined workflow of (UMAP)+(KNN regression) to not overfit - that is, if KNN regression fails on your test set, the labels of the training data shouldn't vary smoothly with the embedding!
I don't think there is anything in UMAP that explicitly tries to solve this regularization problem. Here are some elements of UMAP that do some regularization of similar-looking problems:

Quick-and-dirty: the most relevant hyperparameters are metric_scale in discrete_metric_simplicial_set_intersection (and also far_distance in the same function). These control how important the labels are, and e.g. setting metric_scale = 0 will ignore the labels entirely (and thus presumably completely get rid of overfitting if you agree with my definition above). I've used this in the past with OK results, but sometimes you need to essentially ignore the labels to avoid overfitting. Is this what you tweaked? Could you at least get it to not overfit this way, even if the resulting model was "bad"?

Quick-and-dirty with a model: the quick-and-dirty approach basically assigns a universal confidence score to each point (the single hyperparameter metric_scale). An alternative is to directly model the confidence at each point. The following tutorial does this for a different notion of confidence (the parameter sigma) using "Gaussian energy": https://umap-learn.readthedocs.io/en/latest/embedding_space.html. You could extend this to labels by including a model that embedded each point as a vector of the sort (embedded_point, confidence) and replacing the function gaussian_energy_gradient in the file "distances.py".

If you wanted to dive into the code a bit more, there are a few places where people have worked on regularization strategies that would be easy to add:

There is a large amount of work on regularization for neural networks. None of these tricks are currently implemented for parametric UMAP, but many of them would be fairly easy to implement. The simplest would be to simply use a penalty on the weights in the neural network - this exists as a default in keras/pytorch/etc, and would involve tweaks in lines 565-570 of https://github.com/lmcinnes/umap/blob/master/umap/parametric_umap.py. Other methods such as dropout could also be incorporated.

Continuing with parametric UMAP, the original "denoising autoencoder trick" could also be inserted to the autoencoder.

None of these approaches directly regularize the thing you're looking for. Some other approaches could easily be tweaked to do this (e.g. the fully model-based approach https://arxiv.org/abs/2304.07658), but the approaches I'm aware of in this direction are very slow.
I'm interested in this question but don't check github very often. If you feel like following up (especially if there is a version of the problem that you can share), my very-public-email-address is username asmi28, domain uottawa CA.


Add README.md

It would be good to add a README.md with build and installation instructions.
Also, there are two licenses, so it is not clear which one is the actually being applied?

I'll get one started to get things rolling.


How to place BK4802P in RX or TX mode? It does not have a dedicated TX-RX pin to commute.

How to place BK4802P in RX or TX mode? It does not have a dedicated TX-RX pin to commute like BK4802N.
Please help!
You use I2C to place it in RX or TX mode?
Do you have datasheet for BK4802P? I only found one for BK4802N.

BK4802N cannot be switched by hardware.
You can use I2C to change the sending and receiving.
Maybe you can use reg 9 to switch.
I'm the same. I only have BK4802N too.
The software for this TNC is below.
https://github.com/amedes/ESP32TNC
Another example program is below.
https://github.com/jk1mly/fm-trcv/tree/pic1705

I already downloaded your examples and in 1-2 months maybe I will make something out of it. I want to build a FM CB receiver for 27.225 Mhz because on this CB channel we get realtime traffic info about accidents, police locations and so on.
I got a board from Aliexpress like this:
https://www.aliexpress.com/item/1005006451715094.html
I stripped the original microcontroler and the 24C02 memory (wich was full of 0xFF, it didn't contain any data) and I will piggy back an ATMEL AVR to set the BK4802P on the CB channel I want.
Thank you for the info!

I hope it works.


Update handling of productName and add a temporary workaround

Given the CPUID mismatch between machine and certificate, any verification failures that see "0x0 is not 0x1" should add --workaround_kds_productname=true to skip Stepping comparisons.
There is some confusion in the KDS specification between product_name that's used in the URL, and productName that's used in the VCEK certificate extensions. I've changed the disparate uses of product, productString, and productName to instead always have the following meaning:

product should only mean *spb.SevProduct
productString is deprecated. Use productLine for the name of the family and model without stepping, e.g., Milan, Genoa.
productName should only mean the decoded IA5String value of certificate extension <IP_ADDRESS>.4.1.3704.1.2.

No, secure defaults. I’d be willing to update the readme or wiki with info
On Wed, Feb 28, 2024 at 18:10 Chong Cai @.***> wrote:

@.**** approved this pull request.
In verify/verify.go
https://github.com/google/go-sev-guest/pull/116#discussion_r1506908117:

@@ -47,7 +48,9 @@ const (
var (
// ErrMissingVlek is returned when attempting to verify a VLEK-signed report that doesn't also
// have its VLEK certificate attached.

ErrMissingVlek = errors.New("report signed with VLEK, but VLEK certificate is missing")

ErrMissingVlek     = errors.New("report signed with VLEK, but VLEK certificate is missing")
workaroundStepping = flag.Bool("workaround_kds_productname", false, "If true, don't compare "+

If this is default to false, users will still run into issues unless they
explicitly set this flag. Shall this be default to true until the issue is
addressed?
—
Reply to this email directly, view it on GitHub
https://github.com/google/go-sev-guest/pull/116#pullrequestreview-1907804426,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AAFL4HA42CJDS73VA5SIP3DYV7PRTAVCNFSM6AAAAABD64OM3OVHI2DSMVQWIX3LMV43YUDVNRWFEZLROVSXG5CSMV3GSZLXHMYTSMBXHAYDINBSGY
.
You are receiving this because you authored the thread.Message ID:
@.***>


Use explicit reload to force collection association for network inventory.

This fixes a deprecation warning in the save_inventory_network.rb file.
DEPRECATION WARNING: Passing an argument to force an association to reload is now deprecated
and will be removed in Rails 5.1. Please call `reload` on the result collection proxy instead. (called from
save_cloud_subnet_network_ports_inventory at /Users/dberger/Repositories/manageiq-
djberg96/app/models/ems_refresh/save_inventory_network.rb:244)

Originally mentioned in https://github.com/ManageIQ/manageiq/issues/8996

@djberg96 @Fryguy is there a BZ for this?

@chessbyte No, it's just something we noticed filling up the dev.log and wanted to cleanup, and it was a simple fix.


Add a wiki: Prison Architect Wiki

Link to origin wiki: https://prison-architect.fandom.com
Link to destination (independent) wiki: https://prisonarchitect.paradoxwikis.com/index.php/Deliveries
The destination wiki is hosted by the publisher of Prison Architect. While this means it technically isn't independent of the developers, it is independent of wiki giants, and the developer oversight is not controversial within the community as far as I know. Overall, this wiki is the highest-regarded one within the Prison Architect community, often providing more useful information than the Fandom wiki.

Download: https://github.com/freedomgamesdev/wikigg-redirect-extension

Hi @Galactipod - thanks for the submission! Even if not independent, this should be fine. I'm planning for the next update to start bringing in wikis that aren't strictly independent (wiki.gg, Telepedia, etc.) and this can be a part of that.

Added in v3.3.0! Will also explore adding the other Paradox wikis.


disallowStringLiteralStatements: create new rule

A common error I see is a misspelled 'use strict' directive. By
adding a rule to not allow string literal statements, we can
avoid this whole class of errors.  This new rule causes an error
any time a string statement other than 'use strict' appears.

@mrjoelkemp would you mind taking a look?

@samlecuyer, thanks for contributing!
We currently have a policy of only focusing on style issues, and not ones of program correctness, which are better suited for JSHint or ESLint. Also, you can write custom additionalRules for jscs and open source them as well. Not everything needs to get into core :-)
Also, it's best to open an issue first before implementing so we can discuss a feature's merits before you go and do all that work.
With that said I'm going to close this pull request, but please don't let it discourage you from taking a crack at some of our other open issues.

@mikesherov thanks for the feedback!


Oauth2 client support

[Current coverage][cc-pull] is 80.69%

Merging [#4][cc-pull] into [master][cc-base-branch] will increase coverage by +4.75%

2 files (not in diff) in .../stups/tokens/config were modified. more

Misses +1
Partials -2

1 files (not in diff) in ...zalando/stups/tokens were modified. more

Misses -1
Partials -10
Hits +11

File ...toConfiguration.java was modified. more

Misses 0
Partials -1
Hits 0

@@           master         #4   diff @@
========================================
  Files           9         10     +1
  Lines         316        347    +31
  Methods         0          0
  Branches       23         24     +1
========================================
+ Hits          240        280    +40
- Misses         62         67     +5
+ Partials       14          0    -14

Powered by Codecov. Last updated by [e507401...af3ea4f][cc-compare]
[cc-base-branch]: https://codecov.io/gh/zalando-stups/spring-boot-zalando-stups-tokens/branch/master?src=pr
[cc-compare]: https://codecov.io/gh/zalando-stups/spring-boot-zalando-stups-tokens/compare/e5074018903df60d98540c25911bd49b9fc9019c...af3ea4f029c6b304fbf0014c24f9fb8326ec1eb2
[cc-pull]: https://codecov.io/gh/zalando-stups/spring-boot-zalando-stups-tokens/pull/4?src=pr


Update Sinner Token to remove tags

Please note: This repository is being rebuilt to accept the new volume of token additions and modifications. PR merges will be delayed.

I agree to not ping anybody on Discord/Twitter/email about this pull request. Instead I will inquire by posting a new comment in the pull request if needed.

PRs are reviewed in bulk and and can take up to two weeks to be merged.
This repository is managed using an auto merge action. Please ensure your PR has no deleted lines, and it will be merged.
Please provide the following information for your token.
Please include change to the src/tokens/solana.tokenlist.json file in the PR.
DON'T modify any other token on the list.
At minimum each entry should have

Token Address:
Token Name:
Token Symbol:
Logo: (logo should be uploaded under assets/mainnet//*.<png/svg>)
Link to the official homepage of token:
Coingecko ID if available (https://www.coingecko.com/api/documentations/v3#/coins/get_coins__id_):

Auto merge requirements
Your pull request will be automatically merged if the following conditions are met:

Your pull request only adds new tokens to the list. Any modification to existing
tokens will require manual review to prevent unwanted modifications.

Your pull request does not touch unrelated code. In particular, reformatting changes to unrelated
code will cause the auto merge to reject your PR.

Any asset files added correspond to the token address you are adding. Asset files
must be PNG, JPG or SVG files.

Your change is valid JSON and conforms to the schema. If your change failed validation,
read the error message carefully and update your PR accordingly.

No other tokens shares the same name, symbol or address.

For example, this change would be rejected due to unrelated changes:

The bot runs every 60 minutes and bulk-merges all open pull requests to prevent conflicts.
This means that you need to wait up to 60 minutes for your pull request to be merged or reprocessed.

I didn't realise the tags where going to affect the way the token was viewed by other apps such as Phantom wallet. I put an NFT tag on the token which I realise now as a mistake so I'm requesting to remove all tags from Sinner Token. To get my token to display in apps properly like it should.

added in https://github.com/solana-labs/token-list/commit/c499487d10dddeee625745c6610e365c97899781


Addressing by name or ID

The README states addressing of datasets is done by "using the unique ID defined at creation time" - when I look at the example it looks like the addressing is done by the name of dataset CR - can you maybe clarify that in the README?

Nice catch @vpavlin
You are right, it's the name that is used. Also a PVC will be created with the exact same name.
Updated the README accordingly


Add Access to Transit: Car Commute for QOL Outputs

access_transit_car.py
Pretty simple stuff and takes a lot of logic from code that has already been written. One thing worth noting is that this script joins two xlsx sheets (08-12 ACS PUMS + 15-19 ACS PUMS) to create one output with unique column headers with the year the data reflects. This is different from some of the other work we have done with PUMS where there are two separate outputs for each set of years. Another thing worth noting is that in the original xlsx files the Wk16p columns indicate a denominator for the calculation Erica did but we don't add the age_ suffix in the renaming per AD & Erica.
The column renaming got me in a tizzy but the columns look good, could probably find a better way to do that.
resources/ACS_PUMS
We might want to talk about where these xlsx files are stored in the repo - I hastily created this ACS PUMS folder but maybe we want to keep it somewhere else....something to think about but also maybe not.

Thanks Sasha! I can move the chucks of code into utils and create the helper functions I think might be useful to ingest erica's data

Hey Max is the understanding that this pull request won't deal with the util refactoring and it would be handled in another work addressed to the new issue #200? In that case I think it should be ready for approval.

@td928  Yes, that is correct.


Physical memory usage is too high: physicalBytes (5701M) > maxPhysicalBytes (5419M) error

Solution at https://github.com/CertifaiAI/CertifAI-Knowledge-Base/wiki/Increase-maximum-heap-space-in-IntelliJ


Invalid memory address or nil pointer dereference

Tested slrp_0.1.3_linux_amd64.tar.gz on two different Linux machines (Ubuntu 20.04.5 LTS and Linux Mint 21), and after running for a few minutes it crashed with a NULL pointer reference issue:
panic: runtime error: invalid memory address or nil pointer dereference
[signal SIGSEGV: segmentation violation code=0x1 addr=0x18 pc=0x8b86e9]

goroutine 38597 [running]:
github.com/bdandy/go-socks4.socks4.Dial.func1()
	/home/runner/work/slrp/slrp/vendor/github.com/bdandy/go-socks4/socks4.go:73 +0x29
github.com/bdandy/go-socks4.socks4.Dial({0xc0026ceab0?, {0xf1baa0?, 0x15359b0?}}, {0xc2a6d3?, 0x90?}, {0xc001de3350, 0x16})
	/home/runner/work/slrp/slrp/vendor/github.com/bdandy/go-socks4/socks4.go:85 +0x114d
github.com/nfx/slrp/pmux.dialProxiedConnection({0xf1f8b0, 0xc0024c9560}, {0xc2a6d3, 0x3}, {0xc001de3350, 0x16})
	/home/runner/work/slrp/slrp/pmux/proxy.go:175 +0x177
net/http.(*Transport).customDialTLS(0x0?, {0xf1f8b0?, 0xc0024c9560?}, {0xc2a6d3?, 0xf1f040?}, {0xc001de3350?, 0xc00271b358?})
	/opt/hostedtoolcache/go/1.18.8/x64/src/net/http/transport.go:1317 +0x50
net/http.(*Transport).dialConn(0xc00032e8c0, {0xf1f8b0, 0xc0024c9560}, {{}, 0x0, {0xc3f9a5, 0x5}, {0xc001de3350, 0x16}, 0x0})
	/opt/hostedtoolcache/go/1.18.8/x64/src/net/http/transport.go:1583 +0x3ff
net/http.(*Transport).dialConnFor(0xf19980?, 0xc002a10a50)
	/opt/hostedtoolcache/go/1.18.8/x64/src/net/http/transport.go:1449 +0xb0
created by net/http.(*Transport).queueForDial
	/opt/hostedtoolcache/go/1.18.8/x64/src/net/http/transport.go:1418 +0x3d2

updated lib here https://github.com/nfx/slrp/pull/40 but i need help with tests, not sure why they fails now

Released v0.1.4, please run slrp -update to pick the latest version and see if it fixes the issue

or in case of error like this
./slrp -update

[================================================] 100%
panic: looking up path of "slrp": exec: "slrp": executable file not found in $PATH

goroutine 1 [running]:
github.com/nfx/slrp/internal/updater.AutoUpdate({0xf14490, 0x5})
	/home/runner/work/slrp/slrp/internal/updater/auto.go:42 +0x207
main.main()
	/home/runner/work/slrp/slrp/main.go:30 +0xa8

This fixes it
PATH=.:$PATH ./slrp -update

This fixed the issues. Thanks.

@doomedraven Please file a bug about -update flag 😂


VPN Server Group Membership

In the guide above it indicates that an AD group should be used to grant access to the certificate templates which issue certificates to the VPN servers. This would seem to suggest that the VPN servers should be Domain Joined - however I have always thought that machines in a DMZ should not be joined to the Domain. Is it no longer best practice for DMZ / Perimeter machines to be non domain joined?

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

ID: 0e886cf2-b2cc-1942-2e93-b83ba3f5c81a
Version Independent ID: 14185f76-c920-66a5-9d3b-51ddc4845ee8
Content: Configure the Always On VPN Server Infrastructure | Microsoft Docs
Content Source: WindowsServerDocs/remote/remote-access/vpn/always-on-vpn/deploy/vpn-deploy-server-infrastructure.md
Service: unspecified
GitHub Login: @jamesmci
Microsoft Alias: jamesmci

It’s certainly recommended that VPN Servers which are placed in the DMZ/Perimeter are not domain joined. However some customers prefer to have the VPN Servers domain joined for better manageability (Group Policies, Backup/Monitoring agent, no local users to manage etc).  To do this, add an AD group to the VPN Server certificate template, which is only required when the VPN Servers are domain joined.

Having a trouble following this documentation on configuring the RAS server non-domain joined configuration.
This article needs rework. To many information tips not documented correctly.
ex. On the RRAS server, generate a file called VPNGateway.inf based upon the example certificate policy request provided in Appendix A (section 0) and customize the following entries.
Where is Appendix A (section 0)?
another one is:
You can find a copy of the VPNGateway.inf script in the VPN Offering IP Kit under the Certificate Request Policies folder. Only update the 'Subject' and 'continue' with customer specific values.
Where is the VPN Offering IP Kit under the Certificate Request Policies folder?