[$500] Details - Comma appears before username in the detail page

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

Version Number: <IP_ADDRESS>
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Expensify/Expensify Issue URL:
Issue reported by: @ayazhussain79
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1697040699753639
Action Performed:

Navigate to Settings > Workspace > New workspace
Go to the workspace expense room
Send a message
Click on “Reply in thread”
Click on the thread header
Observe that a comma is displayed before the username

Expected Result:
Comma should not be displayed before the username
Actual Result:
Comma is shown before the username on the detail page.
Workaround:
Unknown
Platforms:

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

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

Screenshots/Videos

Android: Native

Android: mWeb Chrome

https://github.com/Expensify/App/assets/93399543/0622940e-1ad2-4c03-9c82-9a0468f7fbba

iOS: Native

iOS: mWeb Safari

https://github.com/Expensify/App/assets/93399543/6ddbd2eb-fa4d-461d-b0fc-6d9251def2eb

MacOS: Chrome / Safari

https://github.com/Expensify/App/assets/93399543/83ba73fc-262f-4a84-984e-0a2e1ca4fcfd
https://github.com/Expensify/App/assets/93399543/a448e16d-e7ce-40db-a0ca-3c694c09c7d7

MacOS: Desktop

https://github.com/Expensify/App/assets/93399543/98e8749f-1551-4200-b989-8903d8583232

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~014b6b128d6dc38a95
Upwork Job ID:<PHONE_NUMBER>690822144
Last Price Increase: 2023-10-12

Proposal
Please re-state the problem that we are trying to solve in this issue.
fake  or empty string followed by comma and then then user is shown in display name for a thread created in workspace policy expense chat
What is the root cause of that problem?
When we create a thread for the first time in a policy expense chat the backend adds a participantID '0' to the participants and this here
https://github.com/Expensify/App/blob/633c94b9a4793230b06fd5a89cb1a5f7239c329a/src/pages/ReportDetailsPage.js#L146
fetched the details for accountID '0' as well which returns fake or Hidden for the '0' accountID
What changes do you think we should make in order to solve the problem?

We should fix the backend to not add '0' accountID as a participant
I think it is better if we return early here when accountID is '0' instead of adding details of it to personal details as an extra check.
https://github.com/Expensify/App/blob/4df658462ecabe8679242ebe425e6e2f7699c880/src/libs/OptionsListUtils.js#L142-L148

    _.each(accountIDs, (accountID) => {
        if (!accountID ) {         // or accountID === '0'
                 return;
        }
        const cleanAccountID = Number(accountID);

What alternative solutions did you explore? (Optional)

Proposal
Please re-state the problem that we are trying to solve in this issue.
In the Details modal in the user name, we are seeing fake or comma before the actual user name content.
What is the root cause of that problem?
We are getting a falsy value i.e. 0 in our case inside the accountIDs array passed into getPersonalDetailsForAccountIDs which gets looped further down the application inside DisplayNamesWithToolTip component to give us the above mentioned issue.
https://github.com/Expensify/App/blob/fe282b45cb13e01519282ccc023e5bfbd7714158/src/libs/OptionsListUtils.js#L142C1-L143C1
What changes do you think we should make in order to solve the problem?
We need to clean the accountIDs array that is passed inside of getPersonalDetailsForAccountIDs so that it only contains Numbers and remove any falsy values.
Instead of checking or removing the falsy value inside of specific components, we should check and remove the falsy values inside of getPersonalDetailsForAccountIDs.
function getPersonalDetailsForAccountIDs(accountIDs, personalDetails) {
    const personalDetailsForAccountIDs = {};
    if (!personalDetails) {
        return personalDetailsForAccountIDs;
    }

    here ---> accountIDs = _.compact(accountIDs)

    _.each(accountIDs, (accountID) => {
        const cleanAccountID = Number(accountID);
        let personalDetail = personalDetails[accountID];
        if (!personalDetail) {
            personalDetail = {
                avatar: UserUtils.getDefaultAvatar(cleanAccountID),
            };
        }

        if (cleanAccountID === CONST.ACCOUNT_ID.CONCIERGE) {
            personalDetail.avatar = CONST.CONCIERGE_ICON_URL;
        }

        personalDetail.accountID = cleanAccountID;
        personalDetailsForAccountIDs[cleanAccountID] = personalDetail;
    });
    return personalDetailsForAccountIDs;
}

I have added   accountIDs = _.compact(accountIDs) to make it consistent with the application coding structure and used it outside of  _.each .
What alternative solutions did you explore? (Optional)
Alternate solution would be to remove it in the data that comes from the backend. But if it is not possible, this solution is well sufficient for the fix.

Contributor details
Your Expensify account email<EMAIL_ADDRESS>Upwork Profile Link: https://www.upwork.com/freelancers/~016a4ffa68a382833c

@burczu what do you think of the proposals?

I'm OOO Oct 16-23. Adding leave buddy
Status: looking for/choosing proposal

I've just reviewed all the proposals and I think all of them identified the root cause correctly. Also, proposed solutions are quite similar (filtering out accountID === 0 in getPersonalDetailsForAccountIDs) and I think the way how we do it is an implementation detail.
That's why I think we should choose the proposal from @c3024, because they was the first.
🎀 👀 🎀 C+ reviewed

@saranshbalyan-1234 Returning in each loop ends the loop?! Can you please provide the link to the documentation of underscore that explains that? From what I know, returning in the each callback does not break the loop, it acts like continue not break.

Back from OOO. Thanks for pushing this along, Bartek!

@c3024 fix + bonus = $750 - paid ✔
@ayazhussain79 report = $50 - offer sent

@sonialiap offer accepted, Thank you

@burczu please complete the checklist :)

BugZero Checklist: The PR fixing this issue has been merged! The following checklist (instructions) will need to be completed before the issue can be closed:

[ ]  [@burczu] The PR that introduced the bug has been identified. Link to the PR: https://github.com/Expensify/App/pull/20473
[ ]  [@burczu] The offending PR has been commented on, pointing out the bug it caused and why, so the author and reviewers can learn from the mistake. Link to comment: https://github.com/Expensify/App/pull/20473#discussion_r1377582526
[ ]  [@burczu] A discussion in #expensify-bugs has been started about whether any other steps should be taken (e.g. updating the PR review checklist) in order to catch this type of bug sooner. Link to discussion: didn't find
[ ]  [@burczu] Determine if we should create a regression test for this bug. I don't think this issues needs any regression tests - the bug wasn't impactful and didn't break any important App flow.
[ ]  [@burczu] If we decide to create a regression test for the bug, please propose the regression test steps to ensure the same bug will not reach production again.
[ ]  [@sonialiap] Link the GH issue for creating/updating the regression test once above steps have been agreed upon:

@burczu I'm not seeing the conclusion for the last point on the checklist, do you think we should do a regression test for this?

@sonialiap As I wrote in my previous comment:

I don't think this issues needs any regression tests - the bug wasn't impactful and didn't break any important App flow.

Thanks!


Creating namespaces in sqld following the docs does not work.

According to https://github.com/tursodatabase/libsql/blob/main/docs/USER_GUIDE.md#multitenancy it should be possible to create namespaces using the simple curl command state in the referred doc.
However the call returns 404.
See the following screenshot:

In the lower half, sqld is running with --enable-namespaces using the officially provided docker image. In the upper half, curl command was issued with a response code 404

I think you need to follow this guide. Essentially namespaces are managed via the admin API, not the users api. So the route you want to access is expected not to be found on this host.

^that is correct. Make sure to set the admin listen address:
export SQLD_ADMIN_LISTEN_ADDR="<IP_ADDRESS>:8000"


VS code Server for WSL closed unexpectedly. After vscode upgrade

Does this issue occur when all extensions are disabled?: Yes/No

VS Code Version: 1.71.0
OS Version: Windows_NT x64 10.0.22000 (WSL:  <IP_ADDRESS>-microsoft-standard-WSL2) ( Ubuntu 20.04.5 LTS)

Steps to Reproduce:

Opening a terminal of a remote WSL project, see screendump

output of:
VSCODE_WSL_DEBUG_INFO=true code ..
`+ COMMIT=784b0177c56c607789f9638da7b6bf3230d47a8c

APP_NAME=code
QUALITY=stable
NAME=Code
SERVERDATAFOLDER=.vscode-server
realpath /mnt/c/Users/Dekker/AppData/Local/Programs/Microsoft VS Code/bin/code
dirname /mnt/c/Users/Dekker/AppData/Local/Programs/Microsoft VS Code/bin/code
dirname /mnt/c/Users/Dekker/AppData/Local/Programs/Microsoft VS Code/bin
VSCODE_PATH=/mnt/c/Users/Dekker/AppData/Local/Programs/Microsoft VS Code
ELECTRON=/mnt/c/Users/Dekker/AppData/Local/Programs/Microsoft VS Code/Code.exe
IN_WSL=false
[ -n Ubuntu ]
IN_WSL=true
[ true = true ]
export WSLENV=ELECTRON_RUN_AS_NODE/w:WT_SESSION::WT_PROFILE_ID
wslpath -m /mnt/c/Users/Dekker/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js
CLI=C:/Users/Dekker/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js
WSL_EXT_ID=ms-vscode-remote.remote-wsl
ELECTRON_RUN_AS_NODE=1 /mnt/c/Users/Dekker/AppData/Local/Programs/Microsoft VS Code/Code.exe C:/Users/Dekker/AppData/Local/Programs/Microsoft VS Code/resources/app/out/cli.js --ms-enable-electron-run-as-node --locate-extension ms-vscode-remote.remote-wsl
cat /tmp/remote-wsl-loc.txt
WSL_EXT_WLOC=c:\Users\Dekker.vscode\extensions\ms-vscode-remote.remote-wsl-0.66.3
[ -n c:\Users\Dekker.vscode\extensions\ms-vscode-remote.remote-wsl-0.66.3 ]
wslpath -u c:\Users\Dekker.vscode\extensions\ms-vscode-remote.remote-wsl-0.66.3
WSL_CODE=/mnt/c/Users/Dekker/.vscode/extensions/ms-vscode-remote.remote-wsl-0.66.3/scripts/wslCode.sh
/mnt/c/Users/Dekker/.vscode/extensions/ms-vscode-remote.remote-wsl-0.66.3/scripts/wslCode.sh 784b0177c56c607789f9638da7b6bf3230d47a8c stable /mnt/c/Users/Dekker/AppData/Local/Programs/Microsoft VS Code/Code.exe code .vscode-server ..
[ -z .vscode-server ]
[ .vscode-server = .vscode-insiders ]
[ ! -t 0 ]
VSCODE_REMOTE_BIN=/home/pepdek/.vscode-server/bin
AUTHORITY=wsl+default
[ Ubuntu ]
AUTHORITY=wsl+Ubuntu
dirname /mnt/c/Users/Dekker/.vscode/extensions/ms-vscode-remote.remote-wsl-0.66.3/scripts/wslCode.sh
/mnt/c/Users/Dekker/.vscode/extensions/ms-vscode-remote.remote-wsl-0.66.3/scripts/wslDownload.sh 784b0177c56c607789f9638da7b6bf3230d47a8c stable /home/pepdek/.vscode-server/bin
[ ! -d /home/pepdek/.vscode-server/bin/784b0177c56c607789f9638da7b6bf3230d47a8c ]
RC=0
[ 0 -ne 0 ]
mktemp /tmp/vscode-distro-env.XXXXXX
STORED_ENV=/tmp/vscode-distro-env.OpPpuo
env
dirname /mnt/c/Users/Dekker/.vscode/extensions/ms-vscode-remote.remote-wsl-0.66.3/scripts/wslCode.sh
VSCODE_CLIENT_COMMAND=/mnt/c/Users/Dekker/AppData/Local/Programs/Microsoft VS Code/Code.exe VSCODE_CLIENT_COMMAND_CWD=/mnt/c/Users/Dekker/.vscode/extensions/ms-vscode-remote.remote-wsl-0.66.3/scripts VSCODE_CLI_AUTHORITY=wsl+Ubuntu VSCODE_CLI_REMOTE_ENV=/tmp/vscode-distro-env.OpPpuo VSCODE_STDIN_FILE_PATH= WSLENV=VSCODE_CLI_REMOTE_ENV/w:ELECTRON_RUN_AS_NODE/w:WT_SESSION::WT_PROFILE_ID /home/pepdek/.vscode-server/bin/784b0177c56c607789f9638da7b6bf3230d47a8c/bin/remote-cli/code ..
exit 0`

The workaround described here:
https://www.reddit.com/r/vscode/comments/kffqcr/after_upgrading_to_vscode_1521_unable_to_connect/
worked for me as well

Looks like an issue with corruption in build 784b0177c56c607789f9638da7b6bf3230d47a8c.
Please speak up if you still get this.


Do averaging in MATLAB when X6 is in DIGITIZER mode.

I had a version in feature/x6-digitizer-mode but I think yours looks more complete.  I also have a branch in PyQLab for the GUI stuff.  I wanted to test all of them in the experiment before merging.

Yeah, I unfortunately duplicated your work on the python side, too, and didn't realize it until I went to push the change up to GitHub.

On the python side we were nearly identical, except that I made AVERAGER and DIGITIZER all caps in the enum. I didn't know what would happen in set.digitizerMode() if you passed a lowercase string, and was too lazy to find out or to inject case-conversion code.

@dieris says it works so we're good to go

unfortunately the branch I tested was x6-digitizer-mode, and not stream-selector-mode. Sorry for the oversight, testing it now (not successfully yet)


chore: bdd-sbhg-1585313299 to 0.0.1

chore: Promote bdd-sbhg-1585313299 to version 0.0.1

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

Needs approval from an approver in each of these files:

OWNERS

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


fix the bug create space on group

This PR make sure the data of the "create space on group" sentence on the group you mentioned instead of all the storage nodes.

 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.You have signed the CLA already but the status is still pending? Let us recheck it.

plz sign the cla


Incorporate grid_1D_delayed task

Troubleshoot the grid_1D_delayed task. RIght now it's producing odd results, but it's something that I think BECCA ought to be able to handle. I want to add it into the set of benchmark tasks.

Done and tested. This will be included in the next release.


Consecutive newline characters missing in docstring

Description
Racer seems to either remove consecutive newline characters or ignore (inner) empty lines, thus breaking markdown rendering in certain places, for example std::path.
Example using racer complete-with-snippet std::path
The rust source-code:
//! * The root directory component represents a separator that designates
//!   starting from root. For example, `/a/b` has a root directory component
//!   followed by normal components `a` and `b`.
//!
//! On Windows, an additional component type comes into play:
//!
//! * Prefix components, of which there is a large variety. For example, `C:`
//! and `\\server\share` are prefixes. The path `C:windows` has a prefix
//! component `C:` and a normal component `windows`; the path `C:\windows` has a
//! prefix component `C:`, a root directory component, and a normal component
//! `windows`.
//!
//! ### Normalization
//!
//! Aside from splitting on the separator(s), there is a small amount of
//! "normalization":

The returned doc-string is (excerpt with un-escaped special characters):
* The root directory component represents a separator that designates
  starting from root. For example, `/a/b` has a root directory component
  followed by normal components `a` and `b`.
On Windows, an additional component type comes into play:
* Prefix components, of which there is a large variety. For example, `C:`
and `\\server\share` are prefixes. The path `C:windows` has a prefix
component `C:` and a normal component `windows`; the path `C:\windows` has a
prefix component `C:`, a root directory component, and a normal component
`windows`.
### Normalization
Aside from splitting on the separator(s), there is a small amount of
"normalization":

Displaying the above:

The root directory component represents a separator that designates
starting from root. For example, /a/b has a root directory component
followed by normal components a and b.
On Windows, an additional component type comes into play:
Prefix components, of which there is a large variety. For example, C:
and \\server\share are prefixes. The path C:windows has a prefix
component C: and a normal component windows; the path C:\windows has a
prefix component C:, a root directory component, and a normal component
windows.

Normalization
Aside from splitting on the separator(s), there is a small amount of
"normalization":

How it should look:

The root directory component represents a separator that designates
starting from root. For example, /a/b has a root directory component
followed by normal components a and b.

On Windows, an additional component type comes into play:

Prefix components, of which there is a large variety. For example, C:
and \\server\share are prefixes. The path C:windows has a prefix
component C: and a normal component windows; the path C:\windows has a
prefix component C:, a root directory component, and a normal component
windows.

Normalization
Aside from splitting on the separator(s), there is a small amount of
"normalization":

In this example, the two separated lists get merged due to a missing newline character.

Thanks for the thorough issue report!

I'm happy to help. It seems like this is only related to the module documentation (i. e. the find_mod_doc function) and to this particular line. Removing the space after //! should fix it, I'll try that out and respond.

I have added a PR which applies the fix described above.


Rename platform into something else (engine ?)

Currently a browser or Node.js process used to execute a file is named a platform.
This naming is problematic because a platform is more window, linux, macos.
For instance inside Node.js process.platform returns the operating system name.
A better naming would be execution environment but it's too long and if it was shortened for environment or env it would also collide with the env concept from process.env.
An other solution would be runtime but not a big fan.
Engine looks good, it's short and the wikipedia description matches the concept.
The only thing is that engine is low level while node process or browsers are built on top of js engines.
As Node.js description states:

Node.js® is a JavaScript runtime built on Chrome's V8 JavaScript engine.

It's between engine and runtime.
My concern with engine is that v8 is the engine so saying engine: chrome or engine: Node.js is wrong because they are both using v8.
My concern with runtime is that the word meaning is not very specific and looking for description on google is harder than for engine showing runtime is not a well known word.

Node.js used to call itself a platform but no more
In package.json node version is specified with engines (other version for npm are here too but npm is not an engines so to speak)
runtime is different from the engine
engine implements call stack and things like that, runtime is where js actually executes (see also https://medium.com/@olinations/the-javascript-runtime-environment-d58fa2e60dd0 or https://blog.bitsrc.io/javascript-internals-javascript-engine-run-time-environment-settimeout-web-api-eeed263b1617)
This stack overflow answer says it all: https://stackoverflow.com/a/29027933

In fact there is the js engine working + js runtime = js execution environement.

So the correct naming would be runtime environement or execution environment.
Environment is great because it resonates with jsenv which is why I named it jsenv in the first place by the way.

runtime

execution 1 of 1 completed (all completed).
file: whatever.js
runtime: node
duration: 0.50s

environment

execution 1 of 1 completed (all completed).
file: whatever.js
environment: node
duration: 0.50s

runtime environment

execution 1 of 1 completed (all completed).
file: whatever.js
runtime environment: node
duration: 0.50s

execution environment

execution 1 of 1 completed (all completed).
file: whatever.js
execution environment: node
duration: 0.50s

Also there is other thing like collectPlatformName or collectPlatformVersion that would be renamed.
I was about to decide runtime because it not very common and reflects the execution concept and does not collides with the concept behind process.env.
However this repositoy is called jsenv and the repository description says:

Execute JavaScript on multiple environments for testing.

So if I go for runtime I have to update the description to

Execute JavaScript on different runtimes for testing.

But as I said runtime might be less familiar than environment (and less correct).
At the same time runtime environment looks like a good name (see https://medium.com/@olinations/the-javascript-runtime-environment-d58fa2e60dd0).
Let's go with runtime as short version for runtime environment without changing the description (or the description could say multiple runtime environments instead of just environments. But updating description is optionnal.)


feat(SlashCommands): add slash command builders

Please describe the changes this PR makes and why it should be merged:
Building your slash commands is now easier than ever! For those that dislike the nested arrays, this might tickle your fancy!

Status and versioning classification:

Code changes have been tested against the Discord API, or there are no code changes
I know how to update typings and have done so, or typings don't need updating
This PR changes the library's interface (methods or parameters added)

Codecov Report

Merging #3 (6c0aca4) into main (97cf337) will not change coverage.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##              main        #3    +/-   ##
==========================================
  Coverage   100.00%   100.00%
==========================================
  Files            1         5     +4
  Lines           12       120   +108
  Branches         4        22    +18
==========================================
+ Hits            12       120   +108

Impacted Files
Coverage Δ

src/interactions/slashCommands/Assertions.ts
100.00% <100.00%> (ø)

.../interactions/slashCommands/SlashCommandBuilder.ts
100.00% <100.00%> (ø)

.../interactions/slashCommands/SlashCommandOptions.ts
100.00% <100.00%> (ø)

...eractions/slashCommands/SlashCommandSubCommands.ts
100.00% <100.00%> (ø)

Continue to review full report at Codecov.

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

This needs a rebase now.


Address::verifyAddress failing is some valid addresses

For example,
The address: 31h1xbL6cDR1CCxJ7GTaww5pHRVguRXjty
Is valid:
https://www.blockchain.com/btc/address/31h1xbL6cDR1CCxJ7GTaww5pHRVguRXjty
But the function failing to validating it
checksum is "3308449822"
where  crypto::checksum(hash)  is 107380314
Any thought hot to deal with such addresses?

this software only support address  starting with address 1 , not for segwit address


There is a problem in the LongConverter.java

I have a PLC with a totalizer that is greater than 2^31, what causes the variables serialized as DWORD to display wrong values.
Values Example:
TOT8 - OVERALL:
Wrong Value: -2007590462
Correct Value:<PHONE_NUMBER>

Code Usage:
        System.out.println("TOT8 - OVERALL:");
        S7_Overall tot8_overall = plc.dispense(S7_Overall.class, 121, 368);
        System.out.println(tot8_overall.overall);
        System.out.println(tot8_overall.getValue());

Workaround:
public class S7_Overall {
    @S7Variable(byteOffset=0, bitOffset=0, type= S7Type.DWORD)
    public long overall;

    public long getValue() {
        return overall & 0x00000000ffffffffL;
    }
}

PR's welcome :wink: (i'm not actively maintaining this repo anymore, see #74)


Allow forced file creation for new subcommand

System Info
OS: Mac OS 10.15.1
Muxed Version: v0.7.2-development
Description
When running the subcommand muxed new test if the file exists an error is thrown. The same error occurs with the -f flag which should overwrite the existing file if one exists.
thread 'main' panicked at 'called `Result::unwrap()` on an `Err` value: "Could not create the file /Users/brianp/.muxed/test.yml. Error: File exists (os error 17)"', src/libcore/result.rs:1189:5

Questions
The code isn't written to respect the -f flag but it should.
Additionally the error message should be much nicer.
Steps to reproduce

Run muxed new test
Re-run muxed new -f test

Expected
The test.yml file to be overwritten.
Actual
An error is thrown.

fixed by #47


[Release-1.30] - Bump helm-controller to add support for skip-verify/plain-http and updated tolerations

Backport fix for Bump helm-controller to add support for skip-verify/plain-http and updated tolerations

#10831

Verified using go mod changes: https://github.com/rancher/distros-test-framework/actions/runs/10909206690
github.com/k3s-io/helm-controller v0.16.4
github.com/k3s-io/helm-controller v0.16.4
github.com/k3s-io/helm-controller v0.16.4

k3s -v
k3s version v1.30.5-rc1+k3s1 (dbbb73e0)
go version go1.22.6

k3s crictl img ls | grep helm
docker.io/rancher/klipper-helm               v0.9.2-build20240828   1932cb543c3e4       72.2MB


Training an Adapter using own classification head and pytorch training loop

Details
Hello ! I want to add adapter approach in my text-classification pre-trained bert, but I did not find a good explanation in the documentation on how to that.
My model class is the following:
class BertClassifier(nn.Module):
    """Bert Model for Classification Tasks."""
    def __init__(self, freeze_bert=True):
        """
         @param    bert: a BertModel object
         @param    classifier: a torch.nn.Module classifier
         @param    freeze_bert (bool): Set `False` to fine-tune the BERT model
        """
        super(BertClassifier, self).__init__()

        # Instantiate BERT model
        # Specify hidden size of BERT, hidden size of our classifier, and number of labels
        self.bert = BertAdapterModel.from_pretrained(PREETRAINED_MODEL')
        self.D_in = 1024
        self.H = 512
        self.D_out = 2

        # Add a new adapter
        self.bert.add_adapter("thermo_cl",set_active=True)
        self.bert.train_adapter(["thermo_cl"])

        # Instantiate the classifier head with some one-layer feed-forward classifier
        self.classifier = nn.Sequential(
            nn.Linear(self.D_in, 512),
            nn.Tanh(),
            nn.Linear(512, self.D_out),
            nn.Tanh()
        )

         # Freeze the BERT model
        if freeze_bert:
            for param in self.bert.parameters():
                param.requires_grad = True

    def forward(self, input_ids, attention_mask):
        ''' Feed input to BERT and the classifier to compute logits.
         @param    input_ids (torch.Tensor): an input tensor with shape (batch_size,
                       max_length)
         @param    attention_mask (torch.Tensor): a tensor that hold attention mask
                       information with shape (batch_size, max_length)
         @return   logits (torch.Tensor): an output tensor with shape (batch_size,
                       num_labels) '''
         # Feed input to BERT
        outputs = self.bert(input_ids=input_ids,
                             attention_mask=attention_mask)

         # Extract the last hidden state of the token `[CLS]` for classification task
        last_hidden_state_cls = outputs[0][:, 0, :]

         # Feed input to classifier to compute logits
        logits = self.classifier(last_hidden_state_cls)

        return logits

The training loop is the following:
def initialize_model(epochs):
    """ Initialize the Bert Classifier, the optimizer and the learning rate scheduler."""
    # Instantiate Bert Classifier
    bert_classifier = BertClassifier(freeze_bert=False) #false=freezed

    # Tell PyTorch to run the model on GPU
    bert_classifier = bert_classifier.to(device)

    # Create the optimizer
    optimizer = AdamW(bert_classifier.parameters(),
                      lr=lr,    # Default learning rate
                      eps=1e-8    # Default epsilon value
                      )

    # Total number of training steps
    total_steps = len(train_dataloader) * epochs

    # Set up the learning rate scheduler
    scheduler = get_linear_schedule_with_warmup(optimizer,
                                                num_warmup_steps=0, # Default value
                                                num_training_steps=total_steps)

    return bert_classifier, optimizer, scheduler

def train(model, train_dataloader, val_dataloader, valid_loss_min_input, checkpoint_path, best_model_path, start_epochs, epochs, evaluation=True):

    """Train the BertClassifier model."""
    # Start training loop
    logging.info("--Start training...\n")

    # Initialize tracker for minimum validation loss
    valid_loss_min = valid_loss_min_input

    for epoch_i in range(start_epochs, epochs):

                          ..............................

     if evaluation == True:
            # After the completion of each training epoch, measure the model's performance
            # on our validation set.
            val_loss, val_accuracy = evaluate(model, val_dataloader)

            # Print performance over the entire training data
            time_elapsed = time.time() - t0_epoch

            logging.info(f"{epoch_i + 1:^7} | {'-':^7} | {avg_train_loss:^12.6f} | {val_loss:^10.6f} | {val_accuracy:^10.6f} | {time_elapsed:^9.2f}")

            logging.info("-"*70)
        logging.info("\n")

         # create checkpoint variable and add important data
        checkpoint = {
            'epoch': epoch_i + 1,
            'valid_loss_min': val_loss,
            'state_dict': model.state_dict(),
            'optimizer': optimizer.state_dict(),
        }

        # save checkpoint
        save_ckp(checkpoint, False, checkpoint_path, best_model_path)

        ## TODO: save the model if validation loss has decreased
        if val_loss <= valid_loss_min:
            print('Validation loss decreased ({:.6f} --> {:.6f}).  Saving model ...'.format(valid_loss_min,val_loss))
            # save checkpoint as best model
            save_ckp(checkpoint, True, checkpoint_path, best_model_path)
            valid_loss_min = val_loss

    model.save_adapter("./final_adapter", "thermo_cl")
    logging.info("-----------------Training complete--------------------------")

bert_classifier, optimizer, scheduler = initialize_model(epochs=n_epochs)
train(model = bert_classifier....)

As you can see I have my own personalized classification head, so I don't want to use the .add_classification_head() method. Is it correct to train and activate the adapter in this way?
I would like to know if I'm using adapter properly and also how to save the checkpoint and my model weights because at the end of the training (where i suppose to save the adapter) I receive this error:
AttributeError: 'BertClassifier' object has no attribute 'save_adapter'

Thanks for the help!

Hey @Ch-rode,
your adapter adding and activation code looks right. For saving the adapter, you should call model.bert.save_adapter("./final_adapter", "thermo_cl") since your model is an instance of your custom class and does not have a save_adapter() method.

Thanks for the answer @calpt
SO, to be sure, I don't need to activate a head keeping the same name of the adapter, right? Because in this tutorial it says something like that.
Another question, Have I to save the adapter after all the training right? not as a checkpoint. Like the following:
`
def train(model, train_dataloader, val_dataloader, valid_loss_min_input, checkpoint_path, best_model_path, start_epochs, epochs, evaluation=True):
"""Train the BertClassifier model."""
# Start training loop
logging.info("--Start training...\n")

# Initialize tracker for minimum validation loss
valid_loss_min = valid_loss_min_input

for epoch_i in range(start_epochs, epochs):

    # =======================================
    #               Training
    # =======================================
    # Print the header of the result table
    logging.info((f"{'Epoch':^7} | {'Batch':^7} | {'Train Loss':^12} | {'Val Loss':^10} | {'Val Acc':^9} | {'Elapsed':^9}"))

    # Measure the elapsed time of each epoch
    t0_epoch, t0_batch = time.time(), time.time()

    # Reset tracking variables at the beginning of each epoch
    total_loss, batch_loss, batch_counts = 0, 0, 0

    # Put the model into the training mode
    model.train()

    # For each batch of training data...
    for step, batch in enumerate(train_dataloader):
        batch_counts +=1
        # Load batch to GPU
        b_input_ids, b_attn_mask, b_labels = tuple(t.to(device) for t in batch)

        # Zero out any previously calculated gradients
        model.zero_grad()

        # Perform a forward pass. This will return logits.
        logits = model(b_input_ids, b_attn_mask)

        # Compute loss and accumulate the loss values
        loss = loss_fn(logits, b_labels)
        batch_loss += loss.item()
        total_loss += loss.item()

        # Perform a backward pass to calculate gradients
        loss.backward()

        # Clip the norm of the gradients to 1.0 to prevent "exploding gradients"
        torch.nn.utils.clip_grad_norm_(model.parameters(), 1.0)

        # Update parameters and the learning rate
        optimizer.step()
        scheduler.step()

        # Print the loss values and time elapsed for every 20 batches
        if (step % 500 == 0 and step != 0) or (step == len(train_dataloader) - 1):
            # Calculate time elapsed for 20 batches
            time_elapsed = time.time() - t0_batch

            # Print training results
            logging.info(f"{epoch_i + 1:^7} | {step:^7} | {batch_loss / batch_counts:^12.6f} | {'-':^10} | {'-':^9} | {time_elapsed:^9.2f}")

            # Reset batch tracking variables
            batch_loss, batch_counts = 0, 0
            t0_batch = time.time()

    # Calculate the average loss over the entire training data
    avg_train_loss = total_loss / len(train_dataloader)

    logging.info("-"*70)
    # =======================================
    #               Evaluation
    # =======================================
    if evaluation == True:
        # After the completion of each training epoch, measure the model's performance
        # on our validation set.
        val_loss, val_accuracy = evaluate(model, val_dataloader)

        # Print performance over the entire training data
        time_elapsed = time.time() - t0_epoch

        logging.info(f"{epoch_i + 1:^7} | {'-':^7} | {avg_train_loss:^12.6f} | {val_loss:^10.6f} | {val_accuracy:^10.6f} | {time_elapsed:^9.2f}")

        logging.info("-"*70)
    logging.info("\n")

     # create checkpoint variable and add important data
    checkpoint = {
        'epoch': epoch_i + 1,
        'valid_loss_min': val_loss,
        'state_dict': model.state_dict(),
        'optimizer': optimizer.state_dict(),
    }

    # save checkpoint
    save_ckp(checkpoint, False, checkpoint_path, best_model_path)

    ## TODO: save the model if validation loss has decreased
    if val_loss <= valid_loss_min:
        print('Validation loss decreased ({:.6f} --> {:.6f}).  Saving model ...'.format(valid_loss_min,val_loss))
        # save checkpoint as best model
        save_ckp(checkpoint, True, checkpoint_path, best_model_path)
        valid_loss_min = val_loss

model.bert.save_adapter("./final_adapter", "thermo_cl")
logging.info("-----------------Training complete--------------------------")

`
Thanks for the help !

SO, to be sure, I don't need to activate a head keeping the same name of the adapter, right? Because in this tutorial it says something like that.

You don't have to do this if you're using a custom prediction head on top of the model (as you are doing). The BertAdapterModel provides built-in head implementations for common tasks (such as classification) which you can use if they fit your use case. The comment about keeping a head with the same name as the adapter enables automatic loading and saving of the head together with the adapter.

To resume the model I'm doing something like that, is it correct?

Yes, your code for saving and loading the adapter looks good to me. However, you don't have to pass model_name to load_adapter() as long as you're loading the adapter from the local file system.

Thanks a lot, it works ! However I am facing trouble when I have to re-load the model (like for testing or inference). I save the model using
# saving the model in hugginface format
        model.save_pretrained('./best_model_hugginface/model_hugginface')

        if adapter == 'True':
            #save only the adapter separately
            model.bert.save_adapter('./best_model_hugginface/final_adapter','adapter_v1')

So when I load it using BertClassifier.from_pretrained(''./best_model_hugginface/model_hugginface') without loading the adapter (because it is suppose to be inside the all model weights) and I check the structure, i can see it BUT i have this warning There are adapters available but none are activated for the forward pass.
This is an extract from the structure:
(adapters): ModuleDict(
                (adapter_v1): Adapter(
                  (non_linearity): Activation_Function_Class(
                    (f): ReLU()
                  )
                  (adapter_down): Sequential(
                    (0): Linear(in_features=1024, out_features=64, bias=True)
                    (1): Activation_Function_Class(
                      (f): ReLU()

This is my updated BertClassifier:
class BertClassifierConfig(PretrainedConfig):
......

class BertClassifier(PreTrainedModel):
    """Bert Model for Classification Tasks."""
    config_class = BertClassifierConfig
    def __init__(self, freeze_bert=True):
        """
         @param    bert: a BertModel object
         @param    classifier: a torch.nn.Module classifier
         @param    freeze_bert (bool): Set `False` to fine-tune the BERT model
        """
        super(BertClassifier, self).__init__()

        # Instantiate BERT model
        # Specify hidden size of BERT, hidden size of our classifier, and number of labels
        self.bert = BertAdapterModel.from_pretrained(PREETRAINED_MODEL')
        self.D_in = 1024
        self.H = 512
        self.D_out = 2

        # Add a new adapter
        self.bert.add_adapter("thermo_cl",set_active=True)
        self.bert.train_adapter(["thermo_cl"])

        # Instantiate the classifier head with some one-layer feed-forward classifier
        self.classifier = nn.Sequential(
            nn.Linear(self.D_in, 512),
            nn.Tanh(),
            nn.Linear(512, self.D_out),
            nn.Tanh()
        )

         # Freeze the BERT model
        if freeze_bert:
            for param in self.bert.parameters():
                param.requires_grad = True

    def forward(self, input_ids, attention_mask):
        ''' Feed input to BERT and the classifier to compute logits.
         @param    input_ids (torch.Tensor): an input tensor with shape (batch_size,
                       max_length)
         @param    attention_mask (torch.Tensor): a tensor that hold attention mask
                       information with shape (batch_size, max_length)
         @return   logits (torch.Tensor): an output tensor with shape (batch_size,
                       num_labels) '''
         # Feed input to BERT
        outputs = self.bert(input_ids=input_ids,
                             attention_mask=attention_mask)

         # Extract the last hidden state of the token `[CLS]` for classification task
        last_hidden_state_cls = outputs[0][:, 0, :]

         # Feed input to classifier to compute logits
        logits = self.classifier(last_hidden_state_cls)

        return logits

I had used the PretrainedConfig and PreTrainedModel from hugginface.
Thanks a lot !

also if i print out print I have:
bert_classifier = BertClassifier.from_pretrained('bestmodel_hugginface/model_hugginface/') print(bert_classifier.config.adapters.adapters)
I can see it:
{'adapter_v1': 'pfeiffer'}

Hey, sorry for taking so long to answer. This warning: There are adapters available but none are activated for the forward pass usually means that haven't activated any adapters to be used in a forward pass. While the adapters are re-loaded together with the model automatically, they still have to be activated again to be used: model.set_active_adapters("adapter_v1"). The currently active adapters can be printed using model.active_adapters.

Thanks for the reply. If I use  model.set_active_adapters("adapter_v1") I receive Overwriting existing adapter 'adapter_v1'.

That's interesting, this warning should not possibly occur when calling set_active_adapters() as this method is not loading any adapter weights. Usually, this happens when you load weights from an adapter that is already added to the model. E.g., when an adapter is loaded together with the model using from_pretrained() and, afterwards, is loaded once again using load_adapter() somwhere. However, as long as the last loaded checkpoint is the correct one, this warning will not result in any issues.

This issue has been automatically marked as stale because it has been without activity for 90 days. This issue will be closed in 14 days unless you comment or remove the stale label.

This issue was closed because it was stale for 14 days without any activity.


Premature Return from VideoRecorderActivity

"lauch videoActivity, start recording, back relaunch activity, can't start recording, back again, few seconds later : crash"
Reported as being reproducible on Nexus 5. I cannot reproduce the crash on a Nexus 5, but I can reproduce the "can't start recording" part.
VideoRecorderActivity should not exit (even via BACK) until things are cleaned up enough to support re-launching the activity.

Addressed in v0.5.2, but track #157 for performance-related improvements.

Prior implementation had bugs, reopening.

Re-fixed in v0.5.4.


[Feature Request] Run 'EvolvePokemon' When Pokemon Storage Full

It would be nice if we had the option to run the EvolvePokemon task once the storage has been filled with Pokemon. So in my case as soon as I hit 250 Pokemon it would run EvolvePokemon and all my Pidgey's, Weedles, etc. would evolve and then get transferred according to the release rules. Maybe something in the EvolvePokemon config could be
"config": {
"evolve_all": "none",
"logic": "or",
"evolve_when_full": true,
"evolve_all": "Pidgey, Weedle, Caterpie",
"evolve_speed": 20,
"use_lucky_egg": true
}

+1 would be a really nice option :)

Or even a warning/quit before dumping all the unevolved pokemon.
I have thousands of Pidgey candy and never get to do the egg trick because each time It has enough pokemon before I get to trigger the egg and evolve it dumps them all!
So I start again collecting and when I am not watching it dumps them all!

@Pyrofer How come it's dumping them all for you? Do you have something in the release config that would release all of them? I have it set to keep_best_cp: 60 for all my evolve pokemon and then I just watch the bot and wait for it to reach capacity on pokemon. Then I stop the bot, change the config to use lucky egg and evolve pokemon and run it again. Once it's done evolving I stop it and go back to my regular config. Works but it's a pain when you have 10 bots..


add tagging support, issue #15

please check if I missed something. This requires a current LaTeX, so if sillypage should also work with older LaTeX some checks must be added additionally.

Thanks, Ulrike! All looks good. Just checking:
Running checks on
  sillypage001 (1/3)
  sillypage002 (2/3)
  sillypage003 (3/3)
          --> failed

  Check failed with difference files
  - ./build/test/sillypage003.pdftex.diff

Maybe we need to update one of the test files?
Thank you!

hm, not sure what local files I had on the other computer that changed the font number. I remade the test. Does it work for you now?


Updating Microcks community operator to 0.2.1

Thanks submitting your Operator. Please check below list before you create your Pull Request.

Flat operator directory structure is obsolete from 23-rd of October 2019, only nested directory structure will be accepted.

New Submissions

[x] Has you operator nested directory structure?
[x] Have you selected the Project Community Operator Submissions in your PR on the right-hand menu bar?
[x] Are you familiar with our contribution guidelines?
[x] Have you packaged and deployed your Operator for Operator Framework?

[x] Is your submission signed?

Updates to existing Operators

[x] Is your new CSV pointing to the previous version with the replaces property?
[x] Is your new CSV referenced in the appropriate channel defined in the package.yaml ?
[x] Have you tested an update to your Operator when deployed via OLM?
[x] Is your submission signed?

Your submission should not

[x] Modify more than one operator
[x] Modify an Operator you don't own
[x] Rename an operator - please remove and add with a different name instead
[x] Submit operators to both upstream-community-operators and community-operators at once
[x] Modify any files outside the above mentioned folders
[x] Contain more than one commit. Please squash your commits.

Operator Description must contain (in order)

[x] Description about the managed Application and where to find more information
[x] Features and capabilities of your Operator and how to use it
[x] Any manual steps about potential pre-requisites for using your Operator

Operator Metadata should contain

[x] Human readable name and 1-liner description about your Operator
[x] Valid category name1
[x] One of the pre-defined capability levels2
[x] Links to the maintainer, source code and documentation
[x] Example templates for all Custom Resource Definitions intended to be used
[x] A quadratic logo

Remember that you can preview your CSV here.
--
1 If you feel your Operator does not fit any of the pre-defined categories, file a PR against this repo and explain your need
2 For more information see here

@lbroudoux looks like you need to rebase your branch - you have unlreated commits in your PR.

/retest

@lbroudoux same as in the other PR #897

I've got trouble correctly doing the rebase. Closing this PR, cleaning up my repo and submitting another one. Sorry...


Latest gulp-header release failed to build

Latest commit/release today just broke us again...had to pin to your last 1.8.9 release to stay afloat...
/node_modules/gulp-angular-templatecache/node_modules/gulp-header/index.js:30
e = data === false ? headerText : lodashTemplate(headerText)(Object.assign({ f
^
TypeError: undefined is not a function
at DestroyableTransform.TransformStream [as _transform] (/node_modules/gulp-angular-templatecache/node_modules/gulp-header/index.js:30:84)
at DestroyableTransform.Transform._read (/node_modules/gulp-angular-templatecache/node_modules/gulp-header/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:184:10)
at DestroyableTransform.Transform._write (/node_modules/gulp-angular-templatecache/node_modules/gulp-header/node_modules/through2/node_modules/readable-stream/lib/_stream_transform.js:172:83)
at doWrite (/node_modules/gulp-angular-templatecache/node_modules/gulp-header/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:418:64)
at writeOrBuffer (/node_modules/gulp-angular-templatecache/node_modules/gulp-header/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:407:5)
at DestroyableTransform.Writable.write (/node_modules/gulp-angular-templatecache/node_modules/gulp-header/node_modules/through2/node_modules/readable-stream/lib/_stream_writable.js:334:11)
at write (/node_modules/gulp-concat/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:623:24)
at flow (/node_modules/gulp-concat/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:632:7)
at DestroyableTransform.pipeOnReadable (/node_modules/gulp-concat/node_modules/through2/node_modules/readable-stream/lib/_stream_readable.js:664:5)
at DestroyableTransform.emit (events.js:104:17)

Okay, are you relying on the file.data (data out of the gulp-data) being available at the root?   Or expressly passing in false for the formatting of the header.
I'm not sure when it was added, but there was always the "file" object available directly, and this seems to be the origin of the problem.
I'm removing the function altogether, and this will break people, then only fixing in the 2.x moving forward.

Thanks for the quick response. But we're not doing anything. Just including the gulp-angular-templatecache in our package-json which references gulp-header, and which broke today after your commit/release.

Is it working now?  Sorry, but it's hard to tell what the actual problem is... if this change broke it, it should have already been broken.

Are you on a really old version of node?

We are currently restricted to an older node (...for unrelated reasons). We will pin our versions of gulp-header and gulp-footer for the time being if need be. Thanks.

Sure thing... you could also patch Object.assign which has been in node for a long while now.


Airport Expenses - Financial Module

Describe the bug
If you set Airport Expenses "per flight", the expense will be applied for every airport, not just the arrival airport
Version
version 7.0.0-beta.4
To Reproduce
Steps to reproduce the behavior:

Go to 'Airport'
Add on 'Add Expenses Per Flight in several airports`
File Pirep
Check finance report of the flight you will notice that all the airports with expenses are calculated in the report.

https://imgur.com/a/4Zda6f0
Only should apply the destinantion Airport ICAO

Thanks for the report, should be fixed in the latest dev


add BlogEngine.NET and Blogifier.NET

CMS/BlogEngine.NET - https://github.com/rxtur/BlogEngine.NET
Simple but full featured ASP.NET blog
CMS/Blogifier.NET - https://github.com/blogifierdotnet/Blogifier.NET
This project is implementation on top of Blogifier.Core.PostgreSql. It is light-weight ASP.NET Core application with blogging module using PostgreSql database and optimized to run on Linux server. It combines excellent MS development tools with inexpensive Linux hosting solutions, making it a great fit for open source or small business.

Please use one PR per project


Importing graph with control flow using TF_GraphImportGraphDef crashes

What related GitHub issues or StackOverflow threads have you found by searching the web for your problem?
https://github.com/tensorflow/tensorflow/issues/8284
https://github.com/tensorflow/tensorflow/issues/5406
Environment info
Operating System:
macOS 10.12.3
Installed version of CUDA and cuDNN:
(please attach the output of ls -l /path/to/cuda/lib/libcud*):
CPU only

The commit hash (git rev-parse HEAD) e895d5ca395c2362df4f5c8
The output of bazel version

Build label: 0.4.4-homebrew
Build target: bazel-out/local-opt/bin/src/main/java/com/google/devtools/build/lib/bazel/BazelServer_deploy.jar
Build time: Thu Feb 2 01:05:15 2017<PHONE_NUMBER>)
Build timestamp:<PHONE_NUMBER>
Build timestamp as int:<PHONE_NUMBER>

If possible, provide a minimal reproducible example (We usually don't have time to read hundreds of lines of your code)
import tensorflow as tf
from tensorflow.python.framework.graph_util import convert_variables_to_constants

x = tf.placeholder(tf.float32, shape=(None), name="x")

def add_one(x):
  return tf.add(x, 1)

y = tf.map_fn(add_one, x)

y = tf.identity(y, name="y")

with tf.Session() as sess:
  print(tf.get_default_graph().as_graph_def().node)
  minimal_graph = convert_variables_to_constants(sess, sess.graph.as_graph_def(add_shapes=True), ["y"])
  tf.train.write_graph(minimal_graph, '.', 'minimal_graph.proto', as_text=False)

package main

import (
  tf "github.com/tensorflow/tensorflow/tensorflow/go"
  "io/ioutil"
)

func main() {
  modelPath := "cond_test/minimal_graph.proto"
  graphDef, _ := ioutil.ReadFile(modelPath)
  graph := tf.NewGraph()
  graph.Import(graphDef, "")
}

What other attempted solutions have you tried?

Loading the graph without the map_fn works as expected. (y = add_one(x))
Originally encountered problem using prebuild tensorflow for python: pip install tensorflow
Same issue when saving / restoring using SavedModel routines.

Logs or other output that would be helpful
fatal error: unexpected signal during runtime execution
[signal SIGSEGV: segmentation violation code=0x1 addr=0x0 pc=0x5de318c]

runtime stack:
runtime.throw(0x40cdc29, 0x2a)
	/usr/local/go/src/runtime/panic.go:596 +0x95
runtime.sigpanic()
	/usr/local/go/src/runtime/signal_unix.go:274 +0x2db

goroutine 1 [syscall, locked to thread]:
runtime.cgocall(0x40973d0, 0xc42004de60, 0x40b34e0)
	/usr/local/go/src/runtime/cgocall.go:131 +0xe2 fp=0xc42004de30 sp=0xc42004ddf0
github.com/tensorflow/tensorflow/tensorflow/go._Cfunc_TF_GraphImportGraphDef(0xbf00020, 0xd0be3f0, 0xd0bee20, 0xd0bd5a0)
	github.com/tensorflow/tensorflow/tensorflow/go/_obj/_cgo_gotypes.go:386 +0x45 fp=0xc42004de60 sp=0xc42004de30
github.com/tensorflow/tensorflow/tensorflow/go.(*Graph).Import.func7(0xbf00020, 0xd0be3f0, 0xd0bee20, 0xd0bd5a0)
	/Users/olav/go/src/github.com/tensorflow/tensorflow/tensorflow/go/graph.go:96 +0x121 fp=0xc42004de98 sp=0xc42004de60
github.com/tensorflow/tensorflow/tensorflow/go.(*Graph).Import(0xc42000e038, 0xc42008a000, 0x1ae9, 0x1ce9, 0x0, 0x0, 0x0, 0x0)
	/Users/olav/go/src/github.com/tensorflow/tensorflow/tensorflow/go/graph.go:96 +0x1ef fp=0xc42004df00 sp=0xc42004de98
main.main()
	/Users/olav/go/src/github.com/olavhn/infer/test.go:14 +0x112 fp=0xc42004df88 sp=0xc42004df00
runtime.main()
	/usr/local/go/src/runtime/proc.go:185 +0x20a fp=0xc42004dfe0 sp=0xc42004df88
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:2197 +0x1 fp=0xc42004dfe8 sp=0xc42004dfe0

goroutine 17 [syscall, locked to thread]:
runtime.goexit()
	/usr/local/go/src/runtime/asm_amd64.s:2197 +0x1

Thanks very much for the detailed bug report and instructions to reproduce, this is very helpful.
Upon investigation, I believe the cause here is exactly the same as #8284, so I'm closing this out as a duplicate. The fix should be in shortly.


accessioning messages

Made a new class BioMetadataDocument to isolate the accession and validationStatus fields from File
merge away if it looks alrite


Kanban Board

Project GitHub link
https://github.com/MMhaidari/rails-group-capstone
note: there are three people in the group
TEAM MEMBER 1: @LoviMadaan
TEAM MEMBER 2: @Rana-Mudassir
TEAM MEMBER 3: @MMhaidari

STATUS: INVALID CODE REVIEW REQUEST 🛑 🛑
Hi @MMhaidari, @Rana-Mudassir and @LoviMadaan,
While you made a great effort in this project, unfortunately, I cannot proceed to review your code.
Invalid Code Review Request
Kindly provide the Kanban board link, not your repository.
Your Code Review Request will be marked as invalid in your Dashboard, so please submit a new one once you are ready 🙏
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear. And please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

Invalid Code Review Request does not count into the code reviews limit.

Kanban board link
https://github.com/MMhaidari/rails-group-capstone/projects/1

Hi Team,
Good job so far, indeed you have spent time on this project!
There are some issues that you still need to work on to go to the next project but you are almost there!

Highlights

Kanban setup ✔
Fair distribution of tasks ✔

Required Changes ♻
Check the comments under the review.

[ ] I will encourage you to add N+1 solution to your tasks

Optional suggestions
Every comment with the [OPTIONAL] prefix is not crucial enough to stop the approval of this PR. However, I strongly recommend you to take them into account as they can make your code better.
Cheers and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.
Please, do not open a new Pull Request for re-reviews. You should use the same Pull Request submitted for the first review, either valid or invalid unless it is requested otherwise.

As described in the Code reviews limits policy you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.

N+1 quires problem is already added to the Group-Task [1pt] General shopping list view. Group Task

Status: Approved 🟢 🟢 🟢
Hi Team,
Your project is complete!  There is nothing else to say other than... it's time to merge it: ship it:
Congratulations! 🎉
Highlights:
✅ Set up Kanban Board correctly 👍🏽
✅ Tasks are shared fairly 👍🏽
✅ Added description for all tasks 👍🏽
Cheers, and Happy coding!👏👏👏
Feel free to leave any questions or comments in the PR thread if something is not 100% clear.
Please, remember to tag me in your question so I can receive the notification.

As described in the Code reviews limits policy  you have a limited number of reviews per project (check the exact number in your Dashboard). If you think that the code review was not fair, you can request a second opinion using this form.


New cell doesn't show up in diff view

Testing #105770
Open a notebook file and insert a cell in between two cells and save, and open diff view. The last cell does not show up in the right side of the diff view (even if I make a change in the last cell).

/duplicate of https://github.com/microsoft/vscode/issues/105778

Regressed when doing the text model / editing refactoring, now fixed again with via 59dcc5c9124ad82d15adc888013b2a861405d794


Improved error codes for irradproc, solar_resource_data

-Fixes #973
-Add output errorcodes from irrad::check(), not just codes
-Add checks for solar_resource_data, including header information such as elev, lat, lon, tz
-Tested on pvwattsv8, feedback needed before propagating across irrad and solar_resource_data instances
@cpaulgilman review needed on language of error messages
@brtietz review needed on functionality

pvwatts8_test.zip
phoenix_az_33.450495_-111.983688_psmv3_60_tmy_test.csv

@mjprilliman I'm using PVWatts to test this in the SAM UI because it is the only model that calls irradproc's getErrorCode(). When I use this weather file with invalid time zone data, SAM crashes:

@mjprilliman I'm using PVWatts to test this in the SAM UI because it is the only model that calls irradproc's getErrorCode(). When I use this weather file with invalid time zone data, SAM crashes:

Sorry Paul, there was an extra callout to code that was in the util::format call in pvwattsv8 that I had been using for troubleshooting. That meant it was trying to format a error code as a string, a string as a integer, and so on. The most recent push should fix that, and rename the errorCode references to errorMessage.

@mjprilliman This is working now in PVWatts, thanks for the fix.
I would like to be able to use formatted strings like this to include useful data in the error messages:
    if (latitudeDegrees < -90 || latitudeDegrees > 90 || longitudeDegrees < -180 || longitudeDegrees > 180 ||
        timezone < -15 || timezone > 15) {
        std::sprintf(errorMessage, "Invalid latitude (%f), longitude (%f), or time zone (%f)", latitudeDegrees, longitudeDegrees, timezone);
        return -2;
    }

But this doesn't work because errorMessage is a string, not the required char. I tried a few things but couldn't figure out how to do this. Is there an easy way to make this work? If not I'll work with the message text as it is.

@mjprilliman This is working now in PVWatts, thanks for the fix.
I would like to be able to use formatted strings like this to include useful data in the error messages:
    if (latitudeDegrees < -90 || latitudeDegrees > 90 || longitudeDegrees < -180 || longitudeDegrees > 180 ||
        timezone < -15 || timezone > 15) {
        std::sprintf(errorMessage, "Invalid latitude (%f), longitude (%f), or time zone (%f)", latitudeDegrees, longitudeDegrees, timezone);
        return -2;
    }

But this doesn't work because errorMessage is a string, not the required char. I tried a few things but couldn't figure out how to do this. Is there an easy way to make this work? If not I'll work with the message text as it is.

Paul, I tested it out and something like this should work:
errorMessage = util::format("Invalid latitude (%lg), longitude (%lg), or time zone (%lg)", latitudeDegrees, longitudeDegrees, timezone);

Not a very elegant example but it reports out this:

@mjprilliman util::format is what I need -- thanks for the reminder~

Are we looking for consistent behavior between cmods for this? For example, cmod_irradproc will throw an error for elevation < 0, but pvwattsv8 will just silently set it to zero and run just fine. Is that expected for optional variables?

For elevation specifically, I was moving away from error messages or text warnings for the changed value and leaning on the elevation output in the results spelling things out. This avoids breaking things like the CSP weather file reader that looks for warning messages whether they throw an error or not. Happy to figure out a workaround, and will take a look at cmod_irradproc.cpp

Overall this is a big improvement and the error messages work well for irradiance, time, and albedo. The highlighted values from hour 2 all should generate warnings or errors, but PVWattsv8 runs just fine with them:

Do we want to fix these as a part of this PR, another issue, or are these unimportant?

Overall this is a big improvement and the error messages work well for irradiance, time, and albedo. The highlighted values from hour 2 all should generate warnings or errors, but PVWattsv8 runs just fine with them:

Do we want to fix these as a part of this PR, another issue, or are these unimportant?

Tdew will throw an error if the heat transfer temperature model is chosen. The other place it is used is the POA decomposition, would need to check error handling there.
Wdir similarly is only referenced by the heat transfer temperature model and should have an error check there (0-360, non-nan)
Pressure and Tamb are treated as optional inputs to irrad same as elevation, so they get rewritten as 1013.25 mbar and 15 degC if the values are not valid (isnan check for each, > 800 mbar for pres). But Tamb should likely throw an error from the thermal model.
Wind speed should likely have a positive sanity check and an upper bound in the thermal models.
I vote for making a new issue for improving error messages and handling at the thermal model level.

I vote for making a new issue for improving error messages and handling at the thermal model level.

I agree with making a new issue for better error checking in the PV models for weather data elements that depend on options.
Note that the "Weather Data Elements" topic in Help attempts to document when different weather data elements are required for all performance models: https://samrepo.nrelcloud.org/help/weather_data_elements.html


Doesn't work right anymore

Issue Type: Bug
The latest version of Code isn't working right for me anymore (Code 1.55.2, and I'm using MacBook Air 10.15.5).
Let's say I close an editor.  Or I close the app by clicking the X . Now I go to the command line and do code . to open the current folder in code.  When Code opens, there's no explorer, editor, or anything.  Completely blank window.  Even if I try to do View... or File... none of those functions work.  I have to completely exit out of Code and restart it, in order for it to work.
Thanks in advance.
VS Code version: Code 1.55.2 (3c4e3df9e89829dce27b7b5c24508306b151f30d, 2021-04-13T09:36:32.643Z)
OS version: Darwin x64 19.5.0

System Info

Item
Value

CPUs
Intel(R) Core(TM) i7-5650U CPU @ 2.20GHz (4 x 2200)

GPU Status
2d_canvas: enabledgpu_compositing: enabledmetal: disabled_offmultiple_raster_threads: enabled_onoop_rasterization: enabledopengl: enabled_onprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledwebgl: enabledwebgl2: enabled

Load (avg)
2, 2, 2

Memory (System)
8.00GB (0.13GB free)

Process Argv
--crash-reporter-id 913dc1bd-bb1e-4ec4-820a-71c6bad4526c

Screen Reader
no

VM
0%

Extensions (12)

Extension
Author (truncated)
Version

bracket-pair-colorizer
Coe
1.0.61

vscode-great-icons
emm
2.1.73

go
gol
0.24.1

beautify
Hoo
1.5.0

remote-containers
ms-
0.166.1

remote-ssh
ms-
0.65.3

remote-ssh-edit
ms-
0.65.3

remote-wsl
ms-
0.54.6

vscode-remote-extensionpack
ms-
0.20.0

material-icon-theme
PKi
4.6.0

LiveServer
rit
5.6.1

vscodeintellicode
Vis
1.2.12

(2 theme extensions excluded)

When you run code --open-devtools from the command line and the window shows empty, is anything printed in the console portion at the bottom of VSCode below?

The problem has been occurring for the past week.  Now when I run code --open-devtools to see if anything is printed, nothing is printed in the console portion at the bottom of VSCode.  And I am now having trouble reproducing the error, after having run code --open-devtools.

Ok 👍


FR-T5.2-13: Template library publishing service should be RADON IAM compliant

ID:
FR-T5.2-13

Type:
USABILITY

User   story:
As a user I would like to use the same credentials for the whole RADON project including template library publishing service.

Requirement:
The TLPS needs to support the use of agreed upon security measures.

Extended   Description:
The TLPS needs to support the use of general RADON credentials as CLI login credentials.

Priority:
Should have

Affected   Tools:
TEMPLATE_LIBRARY

Means   of Verification:
Using template library CLI and template library API with RADON IAM credentials.

This is a new requirement raised by user request, who wants to have one ID management inside RADON.
@gcasale , please confirm and remove "WorkInProgress" label, if OK.

Approved.

Publishing to TPS is possible with RADON credentials (RADON IDE KeyCloak support) at least for Eclipse Che plugin.

Authentication to TPS can now be performed using RADON KeyCloak/Che. This can be done when using TPS REST API where you will be redirected to login as a RADON KeyCloak/Che user or even better you can use Eclipse Che TPS plugin to be able tu use TPS actions within RADON IDE/Eclipse Che. More info about TPS auth is available here: https://template-library-radon.xlab.si/docs/documentation.html#keycloak-user-login-and-authentication.
@cankarm I believe that this is done and can be closed.

Authentication to TPS can now be performed using RADON KeyCloak/Che. This can be done when using TPS REST API where you will be redirected to login as a RADON KeyCloak/Che user or even better you can use Eclipse Che TPS plugin to be able tu use TPS actions within RADON IDE/Eclipse Che. More info about TPS auth is available here: https://template-library-radon.xlab.si/docs/documentation.html#keycloak-user-login-and-authentication.
@cankarm I believe that this is done and can be closed.

@anzoman  what about TPS CLI? Is it possible to use RADON/Che KeyCloak user?

@anzoman  what about TPS CLI? Is it possible to use RADON/Che KeyCloak user?

@cankarm no, on TPS CLI we still need to implement this. Currently the login is possible only through our KeyCloak.

@cankarm no, on TPS CLI we still need to implement this. Currently the login is possible only through our KeyCloak.

@cankarm the feature to login with RADON IDE KeyCloak credentials via Template library CLI is now available in version 0.2.1.
The login process with my RADON KeyCloak credentials is shown below:
(.venv) anzoman@ubuntu:~/Desktop/template-library-cli$ xopera-template-library setup --keycloak
Current Template Library REST API endpoint: https://template-library-radon.xlab.si/api
Modify API endpoint (press enter to keep the current):
Template library REST API endpoint has been set to: https://template-library-radon.xlab.si/api.

Current KeyCloak auth endpoint: https://openid-radon.xlab.si
Modify KeyCloak endpoint (press enter to keep the current):
KeyCloak endpoint has been set to: https://openid-radon.xlab.si.

(.venv) anzoman@ubuntu:~/Desktop/template-library-cli$ xopera-template-library login --keycloak radon
Username<EMAIL_ADDRESS>
Password:
User<EMAIL_ADDRESS>logged in.

(.venv) anzoman@ubuntu:~/Desktop/template-library-cli$ xopera-template-library user info
+User data-----------+--------------------+--------------------+---------------------+
| ID | Name          | Username           | Email              | Created at          |
+----+---------------+--------------------+--------------------+---------------------+
| 6  | KeyCloak user |<EMAIL_ADDRESS>|<EMAIL_ADDRESS>| 2020-10-29 14:55:39 |
+----+---------------+--------------------+--------------------+---------------------+

Perfect! Thanks @anzoman !


upstart support

Add support for upstart script generation.

I guess we could wrap upstarter around the node-linux API?


error after php artisan migrate --seed

and after command :
php artisan migrate --seed
i get this error :
Migration table created successfully.
Migrating: 2016_06_01_000001_create_oauth_auth_codes_table
Migrated:  2016_06_01_000001_create_oauth_auth_codes_table
Migrating: 2016_06_01_000002_create_oauth_access_tokens_table
Migrated:  2016_06_01_000002_create_oauth_access_tokens_table
Migrating: 2016_06_01_000003_create_oauth_refresh_tokens_table
Migrated:  2016_06_01_000003_create_oauth_refresh_tokens_table
Migrating: 2016_06_01_000004_create_oauth_clients_table
Migrated:  2016_06_01_000004_create_oauth_clients_table
Migrating: 2016_06_01_000005_create_oauth_personal_access_clients_table
Migrated:  2016_06_01_000005_create_oauth_personal_access_clients_table
Migrating: 2017_00_00_000000_create_settings_table

   Illuminate\Database\QueryException  : SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'json not null, `created_at` timestamp null, `updated_at` timestamp null) default' at line 1 (SQL: create table `settings` (`id` int unsigned not null auto_increment primary key, `key` varchar(255) not null, `value` json not null, `created_at` timestamp null, `updated_at` timestamp null) default character set utf8mb4 collate 'utf8mb4_unicode_ci')

  at /home/game/domains/global.galaxyofdrones.ir/public_html/vendor/laravel/framework/src/Illuminate/Database/Connection.php:664
    660|         // If an exception occurs when attempting to run a query, we'll format the error
    661|         // message to include the bindings with SQL, which will make this exception a
    662|         // lot more helpful to the developer instead of just the database's errors.
    663|         catch (Exception $e) {
  > 664|             throw new QueryException(
    665|                 $query, $this->prepareBindings($bindings), $e
    666|             );
    667|         }
    668|

  Exception trace:

  1   Doctrine\DBAL\Driver\PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'json not null, `created_at` timestamp null, `updated_at` timestamp null) default' at line 1")
      /home/game/domains/global.galaxyofdrones.ir/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:63

  2   PDOException::("SQLSTATE[42000]: Syntax error or access violation: 1064 You have an error in your SQL syntax; check the manual that corresponds to your MariaDB server version for the right syntax to use near 'json not null, `created_at` timestamp null, `updated_at` timestamp null) default' at line 1")
      /home/game/domains/global.galaxyofdrones.ir/public_html/vendor/doctrine/dbal/lib/Doctrine/DBAL/Driver/PDOConnection.php:61

  Please use the argument -v to see more details.

Switch to postgres database, that's what it was meant to be ran with.

@miladworkshop we only support databases with JSON data type


Data Format

I'm wondering what format the imdb.zip data file is in, ideally for reading. I intend to do some processing which involves iterating through movies, and I can't find a way to do anything besides search with this. As far as I can tell, this program does a fine job of cleaning and organizing the raw files from the IMDb, but no way to iterate. Is this possible, and/or is the data format documented (or standard) in a way that I can iterate myself?

The imdb.zip file contains roughly the same content as the *.list.gz files, with only minimal processing -- primarily the removal of data for video games and TV episodes (in order to to save space). Each data file is packed into the ZIP file in chunks, in order to allow relatively efficient seeking to arbitrary positions. To facilitate lookups by title, some data files encode the title of the first entry in the name of each chunk, while for other files a separate index is used. This format is implemented by chunkedfile.py, which includes a command-line interface for viewing the contents of a file in imdb.zip.
For enumerating the data, the imdb.zip file is not actually necessary. You should be able to iterate over the parsed contents of a data file using expressions like these:
import imdb.parsers
imdb.parsers.IMDbMoviesParser(dbdir='imdb').search()
imdb.parsers.IMDbRatingParser(dbfile='imdb.zip').search()

Where dbfile is the path to an imdb.zip file and dbdir is the path to a directory containing the needed*.list.gz file (or files). Note that imdb.zip does not contain movies.list.gz or aka-titles.list.gz, so you'll need to use dbdir for them. Also, some search methods return a dictionary, while others return a list or an iterator -- see the _make_result and search methods of each parser.
I hope this helps. Let me know if anything is unclear!


android-sdk 23 need permission ACCESS_COARSE_LOCATION

when you use getScanResults() method to get wifi list with android 6.0, you need permission ACCESS_COARSE_LOCATION.

In my ionic2 project：
AndroidManifest.xml I used:

project.properties I used:
target=android-23
I can permit ACCESS_COARSE_LOCATION.
No authorization dialog box is displayed in other cases.

if you look wifiWizard plugin, it already has the necessary permission:
		<config-file target="AndroidManifest.xml" parent="/manifest">
			<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
			<uses-permission android:name="android.permission.CHANGE_WIFI_STATE" />
			<uses-permission android:name="android.permission.ACCESS_COARSE_LOCATION"/>
		</config-file>

so you shouldn't add it manually

for newer versions of Android just use this plugin https://github.com/NeoLSN/cordova-plugin-android-permissions , request / check for the ACCESS_COARSE / FINE permission & in the success start the scan. It worked for me @ SDK 25


Fix: Cancel button in file deletion dialog not visible in dark mode

Close #340

Deletion dialog previews-
Dark:

Light:

This PR contains commits from PR #339 that were already merged in. Rebase the commits in this PR onto the latest development. Further, provide a proper commit subject. And in the commit message mention "Close #340".


During r.init(), [RPA][ERROR] - Unable to open file: F:\TagUI_RPA\RPA - pending checks

[RPA][ERROR] - following happens when starting TagUI...
The following command is executed to start TagUI -
"D:\TagUI_Windows/tagui/src/tagui" rpa_python chrome
It leads to following output when starting TagUI -
Unable to open file: F:\TagUI_RPA\RPA
phantomjs://code/bootstrap.js:113 in __die
Unable to load script F:\TagUI_RPA\RPA; check file syntax
phantomjs://code/bootstrap.js:113 in __die
[RPA][ERROR] - use init() before using url()
[RPA][ERROR] - use init() before using type()
[RPA][ERROR] - use init() before using read()
[RPA][ERROR] - use init() before using snap()
[RPA][ERROR] - use init() before using close()

Hi Wu Hao, thanks for reporting this issue!
It seems like for some reason a file can't be opened. Can you try the following -

pip install rpa to get the latest version that works with folders having spaces
check that you really have a F:\TagUI_RPA\RPA folder and a rpa_python file there
try running below command at F:\TagUI_RPA\RPA folder -
"D:\TagUI_Windows/tagui/src/tagui" rpa_python chrome

From there we can see what are the next steps to troubleshoot. My guess base on above is maybe your package version is not the latest which has a fix for folder names with spaces.

Hello there, I encounter with similar the similar error as following when I try to initiate the rpa package:
RPA][ERROR] - following happens when starting TagUI...
The following command is executed to start TagUI -
"D:\TagUI_Windows/tagui/src/tagui" rpa_python chrome
It leads to following output when starting TagUI -
Unable to open file: F:\TagUI_RPA\RPA
phantomjs://code/bootstrap.js:113 in __die
Unable to load script F:\TagUI_RPA\RPA; check file syntax
phantomjs://code/bootstrap.js:113 in __die
However, [RAP][ERROR] didn't show in my case.
I wonder whether it is because of no Java environment installed on the computer?

Hi Wu Hao, thanks for reporting this issue!
It seems like for some reason a file can't be opened. Can you try the following -

pip install rpa to get the latest version that works with folders having spaces
check that you really have a F:\TagUI_RPA\RPA folder and a rpa_python file there
try running below command at F:\TagUI_RPA\RPA folder -
"D:\TagUI_Windows/tagui/src/tagui" rpa_python chrome

From there we can see what are the next steps to troubleshoot. My guess base on above is maybe your package version is not the latest which has a fix for folder names with spaces.

I have tried your suggestion but it is still negative. Here is what happened during the trials:

I run "D:\TagUI_Windows/tagui/src/tagui" rpa_python chrome at the project folder like you suggested in CMD
It prompted a dialog window saying the MSVCR110.dll is missing
I copied MSVCR110.dll from \System32 to \ SysWOW64 and it worked... sort of
I ended up with 0xc000007b error

Oh if MSVCR110.dll is missing or not installed properly, the package will first attempt to auto-install. If it fails, it will show below message to prompt user to install manually. Can you try below link to install and see if that helps?
[RPA][INFO] - now installing missing Visual C++ Redistributable dependency
[RPA][INFO] - MSVCR110.dll is still missing, install vcredist_x86.exe from
[RPA][INFO] - the vcredist_x86.exe file in ' + home_directory + '\\tagui or from
[RPA][INFO] - https://www.microsoft.com/en-us/download/details.aspx?id=30679
[RPA][INFO] - after that, TagUI ready for use in your Python environment

After installing using above link, try again and share with me the complete error message and when it happens.

Oh if MSVCR110.dll is missing or not installed properly, the package will first attempt to auto-install. If it fails, it will show below message to prompt user to install manually. Can you try below link to install and see if that helps?
[RPA][INFO] - now installing missing Visual C++ Redistributable dependency
[RPA][INFO] - MSVCR110.dll is still missing, install vcredist_x86.exe from
[RPA][INFO] - the vcredist_x86.exe file in ' + home_directory + '\\tagui or from
[RPA][INFO] - https://www.microsoft.com/en-us/download/details.aspx?id=30679
[RPA][INFO] - after that, TagUI ready for use in your Python environment

After installing using above link, try again and share with me the complete error message and when it happens.

Thank you for your response. I didn't response on time because of the weak internet.
I did the following things after my reply this morning:

Deleted all the files related to tag_ui including the rpa modules in site-package file and the 'tag_UI' file unzipped from the windows zip installer.
I removed the MSVCR110.dll from Windows\SysWOW64 file and uninstalled visual c++ 2010 x86 redistributable
I then reinstall rpa package usiing pip install and run r.init() in the console. It finished the line '[RPA][INFO] - after that, TagUI ready for use in your Python environment' but it terminated again when the 'tagui' rpa_python chrome is executed.

[RPA][ERROR]  -  following happens when starting TagUI...
The following comand is executed to start TagUI -
"C:\Users\xxx\AppData\Roaming\tagui/src/tagui" rpa_python chrome
It leads to following output when starting TagUI -
Unable to load script D:\coding\RPA\rpa_python.js; check file syntax
phantomjs://code/bootstrap.js:113 in __die

Then I install visual c++ 2010 x64 redistributable and run the code (in Pycharm Console) again but the aforementioned error still persisted.
I tried CMD with administrator authorisation as well and the MSVCR110.dll missing message prompted again for php.exe whether I copy the MSVCR110.dll  to \ SysWOW64 or not. ('0xc000007b error dismissed this time)

I check the rpa_python.js in D:\coding\RPA and find its size at 0 byte, which is highly suspicious.
Weirdly, I can use this package on my Mac without any problems...

Oh if MSVCR110.dll is missing or not installed properly, the package will first attempt to auto-install. If it fails, it will show below message to prompt user to install manually. Can you try below link to install and see if that helps?
[RPA][INFO] - now installing missing Visual C++ Redistributable dependency
[RPA][INFO] - MSVCR110.dll is still missing, install vcredist_x86.exe from
[RPA][INFO] - the vcredist_x86.exe file in ' + home_directory + '\\tagui or from
[RPA][INFO] - https://www.microsoft.com/en-us/download/details.aspx?id=30679
[RPA][INFO] - after that, TagUI ready for use in your Python environment

After installing using above link, try again and share with me the complete error message and when it happens.

Thank you for your response. I didn't response on time because of the weak internet.
I did the following things after my reply this morning:

Deleted all the files related to tag_ui including the rpa modules in site-package file and the 'tag_UI' file unzipped from the windows zip installer.
I removed the MSVCR110.dll from Windows\SysWOW64 file and uninstalled visual c++ 2010 x86 redistributable
I then reinstall rpa package usiing pip install and run r.init() in the console. It finished the line '[RPA][INFO] - after that, TagUI ready for use in your Python environment' but it terminated again when the 'tagui' rpa_python chrome is executed.

[RPA][ERROR]  -  following happens when starting TagUI...
The following comand is executed to start TagUI -
"C:\Users\xxx\AppData\Roaming\tagui/src/tagui" rpa_python chrome
It leads to following output when starting TagUI -
Unable to load script D:\coding\RPA\rpa_python.js; check file syntax
phantomjs://code/bootstrap.js:113 in __die

Then I install visual c++ 2010 x64 redistributable and run the code (in Pycharm Console) again but the aforementioned error still persisted.
I tried CMD with administrator authorisation as well and the MSVCR110.dll missing message prompted again for php.exe whether I copy the MSVCR110.dll  to \ SysWOW64 or not. ('0xc000007b error dismissed this time)

I check the rpa_python.js in D:\coding\RPA and find its size at 0 byte, which is highly suspicious.
Weirdly, I can use this package on my Mac without any problems...

Hi @Lamarche-Lam from googling php 0xc000007b error it looks like for your Windows system it is missing some DLL which is commonly available on other Windows. You can try this -

type print(r.tagui_location()) to see where TagUI is installed
from above folder look inside tagui\src folder
rename the php folder to php5
try unzipping this PHP from here - https://windows.php.net/downloads/releases/php-7.4.24-Win32-vc15-x64.zip
and save the folder as php
from command prompt go to the php folder and type php -v for any errors
after that try the package to see if it works now

Hi @Lamarche-Lam from googling php 0xc000007b error it looks like for your Windows system it is missing some DLL which is commonly available on other Windows. You can try this -

type print(r.tagui_location()) to see where TagUI is installed
from above folder look inside tagui\src folder
rename the php folder to php5
try unzipping this PHP from here - https://windows.php.net/downloads/releases/php-7.4.24-Win32-vc15-x64.zip
and save the folder as php
from command prompt go to the php folder and type php -v for any errors
after that try the package to see if it works now

Hi  @kensoh,
Good News! I found a way out of this but not in the way you mentioned above.
The missing DLL files gave me some clues: Yes, it did relate to the visual c++ redistributable things and setup() function did try to fix it by installing the visual c++ redistributable things for the user. However, it installed the 2010 version instead of the 2012 version which is used by "TagUI Windows Installer" you created in another project.
I had the 2012  visual c++ redistributable installed and the code worked fine.
Except.. the r.init() invoked x86 chrome instead of x64 chrome somehow so it seemed to not work for the 64-bit chrome?

It's strange that different versions are installed because both are using the same vcredist_x86.exe installation file. Maybe some environment complications, but no point finding out more. I'll see if more users experience the same problem.
The default used by TagUI is C:\Program Files (x86)\Google\Chrome\Application\chrome.exe. You can edit the file tagui\src\tagui.cmd to change it to the Chrome you want to run. However, on next update I think your change will revert.
Can you share more why you are having 2 versions of Chrome on the computer? You can also try deleting the x86 version and TagUI should use the x64 one, if it is found at C:\Program Files\Google\Chrome\Application\chrome.exe or %LOCALAPPDATA%\Google\Chrome\Application\chrome.exe

It's strange that different versions are installed because both are using the same vcredist_x86.exe installation file. Maybe some environment complications, but no point finding out more. I'll see if more users experience the same problem.
The default used by TagUI is C:\Program Files (x86)\Google\Chrome\Application\chrome.exe. You can edit the file tagui\src\tagui.cmd to change it to the Chrome you want to run. However, on next update I think your change will revert.
Can you share more why you are having 2 versions of Chrome on the computer? You can also try deleting the x86 version and TagUI should use the x64 one, if it is found at C:\Program Files\Google\Chrome\Application\chrome.exe or %LOCALAPPDATA%\Google\Chrome\Application\chrome.exe

I didn't have both version of chrome installed on my computer but r.init() went diretly to the C:\Program Files (x86)\Google\Chrome\Application\chrome.exe somehow... Thus, i assumed it used the 32-bit chrome only yesterday.

It's strange that different versions are installed because both are using the same vcredist_x86.exe installation file. Maybe some environment complications, but no point finding out more. I'll see if more users experience the same problem.
The default used by TagUI is C:\Program Files (x86)\Google\Chrome\Application\chrome.exe. You can edit the file tagui\src\tagui.cmd to change it to the Chrome you want to run. However, on next update I think your change will revert.
Can you share more why you are having 2 versions of Chrome on the computer? You can also try deleting the x86 version and TagUI should use the x64 one, if it is found at C:\Program Files\Google\Chrome\Application\chrome.exe or %LOCALAPPDATA%\Google\Chrome\Application\chrome.exe

It tested it on my home computer, both error resulted from  different version of visual c++ redistributable and 32-bit chrome disappeared...
I think you're right, enviormnent complications should be the case.  The error was found on my company computer..
Thank you some much.

I see..  Let me know any error messages or blockers you have when running. To get rid of the Visual C++ errors just need a working PHP installation at the tagui\src\php folder. If the one that comes with the package somehow does not work, see if you can unzip the one from above link I give for PHP to see if that works.

I see..  Let me know any error messages or blockers you have when running. To get rid of the Visual C++ errors just need a working PHP installation at the tagui\src\php folder. If the one that comes with the package somehow does not work, see if you can unzip the one from above link I give for PHP to see if that works.

Okay, thx again


[SUPPORT] does hudi have plans to support default values

Our dataset requires that no field is allowed to have null values, but hudi currently does not support default values, resulting in new fields having null values when querying historical data. The only way currently is to update historical data.
Environment Description

Hudi version : 0.12.1

Spark version : 3.1.3

Hive version : 3.1.0

Hadoop version : 3.1.1

Storage (HDFS/S3/GCS..) : HDFS

Running on Docker? (yes/no) : no

@JoshuaZhuCN Do you have any idea/design how can that be supported or have any thoughts in your mind? Adding @nsivabalan  @yihua @xushiyan @danny0405 @codope

In SQL, a tricky solution is when pasing the SQL, if a column defines a default value, the parser would translate and wrapper it as a function with a null fallback as the default.


Bower package please :)

Can we have a bower package for this please <3

Hi, Sorry for the delay in responding to you. I haven't used bower before, so I don't know much about using or releasing bower packages. From skimming through the docs, it seems you can use bower to install a script from its URL, like this:
bower install http://peterolson.github.com/BigInteger.js/BigInteger.min.js

Does this not work? Is there some benefit to creating a package?

Thanks for the reply!
Yes, there's a benefit from the perspective that you can use a simple namespace like "big-integer" if I'm going to do what you just suggested, I will still need to do this,
bower install big-integer=<file> --save
So that it will register to my bower.json with a simple namespace and it will be easier to uninstall later on that I can just
bower uninstall big-integer
So if you register this to bower, which I think a great module than others (since I've used one before but there are limitations and yours is better), we can get these simple benefits. Plus you own the bower module :smile:

I added a bower.json file. It seems that the bower package big-integer pointing to this repository already exists. Can you confirm that bower install big-integer works as expected?

Sorry for the delayed reply, yes this is working properly thank you so much!


Example/openai

OpenAI ML Backend Example, supporting API calls for prediction.
The core of this code is taken from the Sentiment Analysis example. The Docker Compose file has been modified to deploy the backend server alongside LS.
Open questions:

Should the Docker container be pushed under the LS organization?
Should images be added to the Readme to show how the configuration should look in the UI?

LGTM. @makseq @niklub can we get a quick review and turnaround on this?


Error: multi-currency usage is not authorized

Dear Team,
I had integrated SDK in Codeigniter and trying to initiate a Transfer between one Natural User Wallet to Other User Wallet with following code.
        $Transfer = new MangoPay\Transfer();
        $Transfer->AuthorId = $credituserid;
        $Transfer->CreditedUserId = $credituserid;
        $Transfer->DebitedFunds = new MangoPay\Money();
        $Transfer->DebitedFunds->Currency = "GBP";
        $Transfer->DebitedFunds->Amount = 10;
        $Transfer->Fees = new MangoPay\Money();
        $Transfer->Fees->Currency = "GBP";
        $Transfer->Fees->Amount = 0;
        $Transfer->DebitedWalletId = $debitwid;
        $Transfer->CreditedWalletId = $creditwid;
        $Result = $mangoPayApi->Transfers->Create($Transfer);`

But cameup with following error.
Message: Bad request. Error: multi-currency usage is not authorized
Any idea about it?

I get this error fixed. I am sharing my solution. May be it help others as well.
In my case I am trying to transfer GBP into a user's wallet and credited user wallet currency is EURO.
It means your transfer currency must match with targeted wallet currency.
Good Day.


Lootr Chat Alternative Suggestion

A suggestion would be instead of using the chat to give the player info to instead use the same system that beds use to inform you that you've set your respawn or that you can't sleep cause there are monsters nearby, etc.

This is done in 1.16.5 and is being released, I'll look at porting it forward now that I know where it is.


Get custom spoken forms from Talon

Depends on https://github.com/cursorless-dev/cursorless/pull/1939

Checklist

[-] I have added tests (tests added in #1941)
[-] I have updated the docs and cheatsheet
[-] I have not broken the cheatsheet

ok @AndreasArvidsson this one is also ready for review

ok @AndreasArvidsson all feedback addressed; this one is ready for review again. I managed to get down to 2 type assertions, and they're more reasonable ones. Factoring it out into a function and using a for loop did simplify things 👍


On failure, x:expect with context reports the entire result, not the specified context

test.xsl (just returns the input node intact)
<?xml version="1.0" encoding="UTF-8"?>
<xsl:stylesheet exclude-result-prefixes="#all" version="2.0"
	xmlns:xsl="http://www.w3.org/1999/XSL/Transform">
	<xsl:template as="node()" match="node()">
		<xsl:sequence select="." />
	</xsl:template>
</xsl:stylesheet>

test_old.xspec (tests test.xsl by looking for descendant::baz)
<?xml version="1.0" encoding="UTF-8"?>
<x:description stylesheet="test.xsl" xmlns:x="http://www.jenitennison.com/xslt/xspec">
	<x:scenario label="Scenario-old">
		<x:context><foo><bar><baz>original-text</baz></bar></foo></x:context>
		<x:expect label="Expect success" test="descendant::baz"><baz>original-text</baz></x:expect>
		<x:expect label="Expect failure" test="descendant::baz"><baz>broken-text</baz></x:expect>
	</x:scenario>
</x:description>

x:expect label="Expect failure" is expected to fail, because of the text node difference.
With XSpec 0.3.0, the failure report HTML is generated as follows. (Indent and xmlns omitted for brevity)

Result
Expecting

<baz>original-text</baz>
<baz>broken-text</baz>

So far, so good.
XSpec 0.4.0-RC changed the recommended way to describe the same x:expect. (Just my guess... Any clarification or documentation welcomed.)
test_new.xspec (test attribute in test_old.xspec is replaced with context attribute)
<?xml version="1.0" encoding="UTF-8"?>
<x:description stylesheet="test.xsl" xmlns:x="http://www.jenitennison.com/xslt/xspec">
	<x:scenario label="Scenario-new">
		<x:context><foo><bar><baz>original-text</baz></bar></foo></x:context>
		<x:expect label="Expect success" context="descendant::baz"><baz>original-text</baz></x:expect>
		<x:expect label="Expect failure" context="descendant::baz"><baz>broken-text</baz></x:expect>
	</x:scenario>
</x:description>

Running this scenario with the latest master, the failure report HTML is generated as follows. (Indent omitted for brevity)

Result
Expecting

<foo><bar><baz>original-text</baz></bar></foo>
<baz>broken-text</baz>

Notice the left-hand Result is the entire result, not <baz>original-text</baz> which 0.3.0 used to report.

Thanks for reporting this issue, I'll have a look and keep you posted. Please allow me 7-10 days to get back to you as it is Christmas time.

I merged #38 and close this issue.

I merged #38 and close this issue.


chore(deps): update dependency @types/react to v19.0.0-rc.1

This PR contains the following updates:

Package
Change
Age
Adoption
Passing
Confidence

@types/react
19.0.0-rc.0 -> 19.0.0-rc.1

Configuration
📅 Schedule: Branch creation - At any time (no schedule defined), Automerge - "after 8am and before 4pm on tuesday" in timezone Etc/UTC.
🚦 Automerge: Disabled by config. Please merge this manually once you are satisfied.
♻ Rebasing: Whenever PR becomes conflicted, or you tick the rebase/retry checkbox.
🔕 Ignore: Close this PR and you won't be reminded about this update again.

This PR has been generated by Renovate Bot.

⚠ Artifact update problem
Renovate failed to update an artifact related to this branch. You probably do not want to merge this PR as-is.
♻ Renovate will retry this branch, including artifacts, only when one of the following happens:

any of the package files in this branch needs updating, or
the branch becomes conflicted, or
you click the rebase/retry checkbox if found above, or
you rename this PR's title to start with "rebase!" to trigger it manually

The artifact failure details are included below:
File name: yarn.lock
! Corepack is about to download https://repo.yarnpkg.com/4.2.2/packages/yarnpkg-cli/bin/yarn.js


procfs: make array const to reduce memory use

Summary
Make an array const (not only an array of const elements) so that it is placed on flash and reduces memory requirements.
Impact
Reduces memory use
Testing
procfs builds OK

Is this usage consistent with C89?

I don't understand the question

I think the architecture-independent portions of NuttX need to conform to C89. I was asking if C89 supports the use of 'const' in this way.

I think this is part of basic language. Wouldn't expect it to be only part of a specific standard.

Yes, it's fine. I approved it. Thanks