fix regexp again

Since Version 4.1.0 the regexp are not stored in validator anymore but inside a special regexp property.
I changed the if statement and the assignment accordingly

See: https://github.com/Automattic/mongoose/compare/fa5f52e8b0d467409d54bd3c7ceced8d0d13d3cd...709a006ff6c497101307841905dd7cd8e25efa70#diff-ba4973cabd8acf2625a48e3dfedce40dL348

Thank you!

I had to revert this change, it didn't work in my environment. Can you elaborate the reason for your change?
4.1.0 is the mongoose version? it is not working for me in 4.2.4

@sieira Can you tell me what is the error you are encountering. I would suggest putting in both versions for now and find out later why it fails.


AWS MySql RSD not working

Hi
I'm trying to monitor my MySQL rds DB.  I get the log message "Waiting for database vents" bu nothing happens when I change values in the DB tables
I'm using this example code
`
const MySQLEvents = require('@rodrigogs/mysql-events');

const program = async () => {
    const instance = new MySQLEvents({
        host: DB_HOST,
        user: DB_USER,
        password: DB_PASSWORD,
     }, {
         startAtEnd: true,
    });

    await instance.start();

    instance.addTrigger({
        name: 'Whole database instance',
        expression: '*',
        statement: MySQLEvents.STATEMENTS.ALL,
        onEvent: (event) => {
            console.log(event);
        },
    });

     instance.on(MySQLEvents.EVENTS.CONNECTION_ERROR, console.error);
     instance.on(MySQLEvents.EVENTS.ZONGJI_ERROR, console.error);
};

program()
    .then(() => console.log('Waiting for database vents...'))
    .catch(console.error);

`
Any ideas?

In your parameter group, is binlog_format set to "ROW"?
I think I had the same issue, RDS' default value being "MIXED".
Also, if you use RDS and decide to eventually use the latest binlog position, keep in mind that RDS regularly purges the binlogs, unless you set the binlog retention yourself (not as a mysql config parameter): https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_set_configuration.html#mysql_rds_set_configuration-usage-notes.binlog-retention-hours

In your parameter group, is binlog_format set to "ROW"?
I think I had the same issue, RDS' default value being "MIXED".
Also, if you use RDS and decide to eventually use the latest binlog position, keep in mind that RDS regularly purges the binlogs, unless you set the binlog retention yourself (not as a mysql config parameter): https://docs.aws.amazon.com/AmazonRDS/latest/UserGuide/mysql_rds_set_configuration.html#mysql_rds_set_configuration-usage-notes.binlog-retention-hours

Hi
Thanks for the quick response.
You are right, the binlog_format is set to MIXED.
It seems that it isn't possible to edit the default parameter group.
I created a new one and set the binlog_format to ROW (all other params i left with no change).
Do I need to delete the default parameter group?
Do I need to restart RDS?
Thanks for your help

Hi
Thanks for the quick response.
You are right, the binlog_format is set to MIXED.
It seems that it isn't possible to edit the default parameter group.
I created a new one and set the binlog_format to ROW (all other params i left with no change).
Do I need to delete the default parameter group?
Do I need to restart RDS?
Thanks for your help

Thanks a lot
That fixed it

mind closing the issue :smile:

Thanks a lot
That fixed it

mind closing the issue :smile:


renew OGC badge certicate for WMS 1.3

Hi there,
I finally managed to renew the OGC certification for QGIS server. Here is the updated badge.

Here is the updated badge.

Nice, thanks Régis  :+1:


[dif/adc_ctrl] cleanup dif_adc_ctrl_irq_cause_t enum to use autogenerated macros

Due to a meson issue, in #11483 I could not include the autogenerated register header in the manually implemented ADC controller DIF header in order to more cleanly define, IRQ causes, such as kDifAdcCtrlIrqCauseOneshot. Once we transition all of the sw/ build to Bazel, this will no longer be an issue and can be cleaned up.

@timothytrippel Can we close this issue now?

@cindychip #17207 will fix and close this


Fix(dockerfile) Upgrade webpack version

Signed-off-by: Siye Wang<EMAIL_ADDRESS>https://github.com/longhorn/longhorn/issues/4283

I saw many dependencies updated except webpack? I would suggest if they are not mandatory, don't update for now, because this PR will be backported to 1.3.1.
But we can do it after 1.3.1 is released. WDYT?

https://webpack.js.org/migrate/5/#upgrade-webpack-to-5 According to the official documentation these dependencies need to be updated together with webpack. So upgrading webpack alone will not work. The dependency packages I updated this time were all used in the compile stage. It shouldn't affect the functionality of the page.
If we want to keep the updates to a minimum this time. This pr can be left alone for a while. I'll look into the current dependency package to fix some of the dependency versions. This may take some time.

I saw many dependencies updated except webpack? I would suggest if they are not mandatory, don't update for now, because this PR will be backported to 1.3.1.
But we can do it after 1.3.1 is released. WDYT?

webpack.js.org/migrate/5/#upgrade-webpack-to-5 According to the official documentation these dependencies need to be updated together with webpack. So upgrading webpack alone will not work. The dependency packages I updated this time were all used in the compile stage. It shouldn't affect the functionality of the page.
If we want to keep the updates to a minimum this time. This pr can be left alone for a while. I'll look into the current dependency package to fix some of the dependency versions. This may take some time.

Thanks. If it will not impact functionality, then I am good for that. Let's go with the current approach of this PR.

I saw many dependencies updated except webpack? I would suggest if they are not mandatory, don't update for now, because this PR will be backported to 1.3.1.
But we can do it after 1.3.1 is released. WDYT?

webpack.js.org/migrate/5/#upgrade-webpack-to-5 According to the official documentation these dependencies need to be updated together with webpack. So upgrading webpack alone will not work. The dependency packages I updated this time were all used in the compile stage. It shouldn't affect the functionality of the page.
If we want to keep the updates to a minimum this time. This pr can be left alone for a while. I'll look into the current dependency package to fix some of the dependency versions. This may take some time.

Thanks. If it will not impact functionality, then I am good for that. Let's go with the current approach of this PR.

https://github.com/fb55/htmlparser2/issues/1237#issuecomment-1182522861 This issue like ours. I researched the compilation issue we encountered this time, mainly due to the use of ^version in the longhorn dependencies. (^version “Compatible with version”, will update you to all future minor/patch versions, without incrementing the major version. ^2.3.4 will use releases from 2.3.4 to <3.0.0.).The Longhorn dependencies should have been recently updated and use the new syntax export * as ns. And this syntax is only available in webpack5. So upgrading webpack would be a good option.

Sounds good to me.

As discussed with @smallteeths , even though this is just for the devDependencies update, we still need to minimize the change if possible for the patch release.
I would suggest the below items.

Update the exact version match for @webassemblyjs/ast and @webassemblyjs/wasm-edit to 1.11.1, the previous successful version for all "@webassemblyjs" packages.

Because the current dependency strategy is "@webassemblyjs/ast": "^1.3.1", it will make the version upgrade to the latest minor release instead. At the moment, it's 1.11.3, but it uses the exact version dep of @webassemblyjs/helper-numbers 1.11.3 which does not exist, so the dep resolving failed when running npm install.

package.json
{
  "name": "longhorn",
  "version": "0.0.1",
  "private": true,
  "scripts": {
    "dev": "webpack-dev-server --config=webpack.config.development.js --mode development",
    "build": "cross-env NODE_ENV=production webpack --config=webpack.config.production.js --mode production",
    "lint": "eslint --ext .js src",
    "precommit": "npm run lint",
    "test": "jest"
  },
  "dependencies": {
    "@babel/runtime-corejs2": "^7.0.0",
    "antd": "3.26.16",
    "axios": "^0.21.1",
    "classnames": "^2.2.5",
    "cron-parser": "^2.11.0",
    "dva": "^2.4.1",
    "dva-loading": "^1.0.0",
    "history": "^4.7.2",
    "jquery": "^3.4.0",
    "meteor-later": "^1.2.0",
    "moment": "^2.29.2",
    "nprogress": "0.2.0",
    "prettycron": "^0.10.0",
    "prop-types": "^15.7.2",
    "qs": "^6.3.0",
    "query-string": "^6.4.2",
    "react": "16.8.4",
    "react-copy-to-clipboard": "^5.0.1",
    "react-countup": "4.1.3",
    "react-dom": "16.8.4",
    "react-helmet": "^5.0.0",
    "react-markdown": "^v4.3.1",
    "react-resize-detector": "1.1.0",
    "recharts": "^1.1.0",
    "robust-websocket": "^1.0.0",
    "semver": "^5.6.0"
  },
  "devDependencies": {
    "@babel/core": "^7.0.0",
    "@babel/plugin-proposal-class-properties": "^7.0.0",
    "@babel/plugin-proposal-decorators": "^7.0.0",
    "@babel/plugin-proposal-do-expressions": "^7.0.0",
    "@babel/plugin-proposal-export-default-from": "^7.0.0",
    "@babel/plugin-proposal-export-namespace-from": "^7.0.0",
    "@babel/plugin-proposal-function-bind": "^7.0.0",
    "@babel/plugin-proposal-function-sent": "^7.0.0",
    "@babel/plugin-proposal-json-strings": "^7.0.0",
    "@babel/plugin-proposal-logical-assignment-operators": "^7.0.0",
    "@babel/plugin-proposal-nullish-coalescing-operator": "^7.0.0",
    "@babel/plugin-proposal-numeric-separator": "^7.0.0",
    "@babel/plugin-proposal-optional-chaining": "^7.0.0",
    "@babel/plugin-proposal-pipeline-operator": "^7.0.0",
    "@babel/plugin-proposal-throw-expressions": "^7.0.0",
    "@babel/plugin-syntax-dynamic-import": "^7.0.0",
    "@babel/plugin-syntax-import-meta": "^7.0.0",
    "@babel/plugin-transform-runtime": "^7.0.0",
    "@babel/preset-env": "^7.0.0",
    "@babel/preset-react": "^7.0.0",
    "@webassemblyjs/ast": "1.11.1",
    "@webassemblyjs/wasm-edit": "1.11.1",
    "acorn": "^6.1.1",
    "add-asset-html-webpack-plugin": "^3.1.3",
    "address": "^1.0.3",
    "babel-eslint": "^8.2.3",
    "babel-loader": "^8.0.0",
    "babel-plugin-dva-hmr": "^0.4.1",
    "babel-plugin-import": "^1.7.0",
    "babel-plugin-transform-remove-console": "^6.9.2",
    "body-parser": "^1.18.3",
    "clean-webpack-plugin": "^0.1.19",
    "copy-webpack-plugin": "^4.5.1",
    "cross-env": "^5.1.1",
    "cross-port-killer": "^1.0.1",
    "css-hot-loader": "^1.4.4",
    "css-loader": "^2.1.1",
    "cssnano": "^4.1.10",
    "es5-imcompatible-versions": "^0.1.34",
    "eslint": "^5.16.0",
    "eslint-config-airbnb": "^17.1.0",
    "eslint-plugin-compat": "^2.2.0",
    "eslint-plugin-import": "^2.17.3",
    "eslint-plugin-jsx-a11y": "^6.0.3",
    "eslint-plugin-react": "^7.7.0",
    "estraverse": "^4.2.0",
    "expect": "^1.20.2",
    "file-loader": "^1.1.11",
    "friendly-errors-webpack-plugin": "^1.7.0",
    "happypack": "^5.0.0-beta.4",
    "html-webpack-plugin": "^3.2.0",
    "husky": "^1.0.0-rc.4",
    "jest": "^26.1.0",
    "keymaster": "^1.6.2",
    "less": "3.0.4",
    "less-loader": "^4.1.0",
    "mini-css-extract-plugin": "^0.4.0",
    "mockjs": "^1.0.1-beta3",
    "open-browser-webpack-plugin": "0.0.5",
    "optimize-css-assets-webpack-plugin": "^5.0.1",
    "pre-commit": "^1.2.2",
    "pro-download": "^1.0.1",
    "progress-bar-webpack-plugin": "^1.12.1",
    "redbox-react": "^1.5.0",
    "redux-devtools": "^3.4.1",
    "redux-devtools-dock-monitor": "^1.1.3",
    "redux-devtools-log-monitor": "^1.4.0",
    "regenerator-runtime": "^0.11.1",
    "sass-loader": "^7.0.1",
    "serve-index": "^1.9.1",
    "string-replace-loader": "^2.1.1",
    "style-loader": "^0.21.0",
    "type-is": "^1.6.15",
    "uglifyjs-webpack-plugin": "^1.2.5",
    "url-loader": "^1.0.1",
    "webpack": "^4.33.0",
    "webpack-cli": "^3.1.1",
    "webpack-dev-server": "^3.1.4",
    "webpack-manifest-plugin": "^2.0.4"
  },
  "overrides": {
    "htmlparser2": "^7.0.0"
  },
  "pre-commit": [
    "precommit"
  ]
}

Override htmlparser2 back to the previous working version ^7.0.0 to ensure the compatibility with webpack 4

After resolving the first issue, the following comes with some updated dependencies causing htmlparser2 resolving to 8.0.x which will cause the current version of webpack 4.x unable to load some syntax correctly as @smallteeths mentioned.

Use package-lock.json instead of just relying on dynamic version update at runtime

Just use package-lock.json and don't need to try to figure out other versions in package.json, but this should be stabilize in 1.4.0 instead.

Take David's suggestion to fix this issue by locking only the dependencies. refer to pr https://github.com/longhorn/longhorn-ui/pull/526. cc @innobead
Close this for now.


[feat] I need help locating my crypto (doge)

Feature Request
Describe the Feature Request

Describe Preferred Solution

Describe Alternatives

Related Code

Additional Context

this unfortunately isnt the best resource to help with this sort of issue.  The best thing you can do is join the discord or reddit groups and provide a detailed summary of the problem. Maybe someone would be able to assist then. Best of luck to you!


WIP: Use the default compile items in core libs.

Now we're using the new project system, we don't need to have a <Compile Include="..."/> element for each file.

Codecov Report

Merging #921 into master will increase coverage by <.01%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master     #921      +/-   ##
==========================================
+ Coverage   60.74%   60.74%   +<.01%
==========================================
  Files         533      533
  Lines       20270    20270
  Branches     2889     2889
==========================================
+ Hits        12312    12313       +1
  Misses       7106     7106
+ Partials      852      851       -1

Impacted Files
Coverage Δ

src/Avalonia.Base/Threading/JobRunner.cs
45% <0%> (+2.5%)
:white_check_mark:

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 e83d7d1...96d9cfa. Read the comment docs.


cleanup(build): some bazel related cleanup

Ensures that bazel build ... succeeds
Removed unused dep in e2e-app
Updates rules_sass

#15649 resolved the highlight.js issue, reverted the change in this PR

ahh that explains it, will fix


Update Roslyn tooling versions.

Moved from 3.4.0 Roslyn to 3.6.0-3.20168.4 for tooling builds.
As part of this change I found that our package versions were starting to get really confusing for which Roslyn packages were runtime vs. which ones were tooling. Therefore, I rebranded each of the versions to be Tooling_ or Runtime_ accordingly. Moved all VSIX_ => Tooling_.
Roslyn's bits depended on a newer StreamJsonRpc, Microsoft.VisualStudio.Threading and Microsoft.VisualStudio.LanguageServer.Client packages so updated those dependencies to not have version conflicts.
This new update brought in loads of new analyzers. Went through the warnings and either applied the fix or suppressed.
This is in preparation for consuming new pieces from latest Roslyn packages.
Updated the way our HtmlCSharpLanguageServer handled completion events. After updating the Microsoft.VisualStudio.LanguageServer.Client package the completion event would throw on attempt to deserialize. Found a way to force the LSP platform to deserialize on our behalf using their JSonConverters.

LGTM. I'm a bit curious about the ConfigureAwait stuff, is there an article/description about why that's desirable?

Here's an article I found on it: https://medium.com/bynder-tech/c-why-you-should-use-configureawait-false-in-your-library-code-d7837dce3d7f
The gist though is that when you do ConfigureAwait(false) you're letting the runtime know that it doesn't need to marshal you back to the original thread that awaited. For instance, if you do:
await SwitchToMainThread()
await DoSomething().ConfigureAwait(false);
// There's no guaruntee that we're back on the main thread at this point because we did `ConfigurAwait(false)`

FYI @JoeRobich since this Roslyn version is used in our Razor O# plugin. I verified things continue to work locally with the updated version but wanted to give you a heads up in case you foresaw any issues.

LGTM. I'm a bit curious about the ConfigureAwait stuff, is there an article/description about why that's desirable?

Here's an article I found on it: https://medium.com/bynder-tech/c-why-you-should-use-configureawait-false-in-your-library-code-d7837dce3d7f
The gist though is that when you do ConfigureAwait(false) you're letting the runtime know that it doesn't need to marshal you back to the original thread that awaited. For instance, if you do:
await SwitchToMainThread()
await DoSomething().ConfigureAwait(false);
// There's no guaruntee that we're back on the main thread at this point because we did `ConfigurAwait(false)`

I also found this to be a good resource on ConfigureAwait(false):
https://devblogs.microsoft.com/dotnet/configureawait-faq/


remove twitter from allowed_hostnames in pender client

We are getting a few 429 ('too many requests') on sentry caused by fetch. Those items are not being created, they should be created with the default value. So, at least for now, we are removing twitter from allowed_hostnames.
As part of this I had to update some tests that were using a twitter url (changed it to a youtube one), and updated the fixture (pender_response.json) to be the one from youtube.
Relates to this PR

Looks good to me! @vasconsaurus squash and merge when you are ready and I can run a deploy.


KafkaKameletsWithScram512

Added a Kafka sink and Kafka source Kamelet definition that support SCRAM-SHA-512 authentication.

I'll fix this later.

Thanks a lot for this PR.

@mthirion: Good job!
Linked to:

https://github.com/scram-sasl/info/issues/1


embedart: Respect ignore setting

if you have the following in your config.yaml
ignore: .AppleDouble ._* *~ .DS_Store
When you run the importer it will ignore files like ._song.mp3 but import song.mp3, however embedart will not honor this and will try to use the bogus file ._album.jpg to embed as the art file instead of using the correct file album.jpg
If you execute beet with verbose logging you'll even see it fail
Sending event:art_set
embedart: Embedding album art into Artist - Album
embedart: not embedding image of unsupported type: image/x-None
embedart: not embedding image of unsupported type: image/x-None
embedart: not embedding image of unsupported type: image/x-None
embedart: not embedding image of unsupported type: image/x-None

Seems like a solid addition.

Hey guys, we would like to tackle this issue, if anyone is going to work on this soon let me know so we can look at other issues! We're planning to start working on this on Monday February 1st. Thanks! -Jake

@BeetsStudentTeam Since the latest update on this issue is from last October I don't think anybody will be working on this anytime soon, so feel free to start!

This issue is fixed by #3099. It should be fine to close it. :blush:


Multiple styles within a cell

Hi,
Great work, but just ran into a limitation perhaps. Can you have multiple styles within a cell? Such as, within a single cell, a sentence of text that is black, and a sentence of text that is red?
Thanks!

Jesse

That requires rich text, which isn't fully supported at the moment. You can hack it by setting an array of rich text run objects that map to the required XML. To see what this looks like, you can create a workbook in Excel with rich text like you want, then open it with xlsx-populate and get cell.value(). You should get an array of objects representing the XML. Then in your actual application you can set the value with a similar data structure. It should work, but it might break in the future when rich text is properly supported.

Hey thanks for the reply, yes, funny... that's exactly what I did. I saw another 'issue' on it where you fixed what comes out, not just the first object... mostly what I gleaned was the schema. So I created an array of "children" (of "si" I think) and pass that in as "value". I saw in your code, you check for an array. I couldn't believe it worked! Ha. Let me know when you break it. :) I'll try to post the code soon.

Jesse

If you are reading in a spreadsheet and encounter a cell with multiple styles, but all you want is just its plain text string value, ignoring any internal styles it may have, what is the best way to get that?

OK, I went ahead and wrote this just purely based on inspection of the array that is returned when you call call.value() on a cell with rich text. It seems to work...
`
richToPlainText(richTextArray: any[]) {
    let text = '';
    richTextArray.forEach((node:any) => {
        if (node.children && node.children.length) {
            node.children.forEach((child: any) => {
                if (child.name && child.name === 't' && child.children && child.children.length) {
                    text += child.children[0];
                }
            });
        }
    });
    return text;
}`

is that really the way to go (and does it seem correct), or is there a smarter way to do this?

@jbrecht you snipped above saved me! You could perhaps create a MR to add this to the project, with a method on cell called "plainText" which would call this if the type is not a string? I think this is a common enough use case...


[Quais] - Integrate with Ontology API

Quais should be able to pass requests and route to this API in Core when requested. (relates to #1341 as far as integration)
If the call fails, an error is returned.

Here is @Djadih 's PR for the ontology API: https://github.com/dominant-strategies/go-quai/issues/1341


basedpyright: 1.19.0 -> 1.21.0

Diff:
https://github.com/detachhead/basedpyright/compare/refs/tags/v1.19.0...v1.21.0
Changelog:
https://github.com/detachhead/basedpyright/releases/tag/1.21.0

The package is a lot simpler as basedpyright changed from lerna to npm workspaces.
nix-update can now update the package automatically, so the custom shell script is no longer needed
as the project uses the root package-lock.json, patching the lockfiles is no longer needed
a couple of dependencies were added, apparently pkg-config and libsecret are needed, I guess to store credentials into the password manager
tweaked the test script a bit to add a couple more errors

Let me know if you find anything missing!

Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

For non-Linux: Is sandboxing enabled in nix.conf? (See Nix manual)

[ ] sandbox = relaxed
[ ] sandbox = true

[x] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
24.11 Release Notes (or backporting 23.11 and 24.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module

[x] Fits CONTRIBUTING.md.

Add a :+1: reaction to pull requests you find important.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 354204

x86_64-linux

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

aarch64-linux

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

x86_64-darwin

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

aarch64-darwin

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

Thank you for this detailed report and the PR too. This is much simpler indeed !
A few things:
* Do `version` and `src` still need to be in a `let` `in` block ? Couldn't we go back to a more standard `finalAttrs` implem ?

I think they still need to be there, yes. docstubs needs to be in the let [...] in block, and that needs access to src, which needs access to version.

* Could you add `versionCheckHook` (and then maybe remove `passthru.tests.version`). See [here](https://github.com/NixOS/nixpkgs/blob/10ff7c5e10cbef2c21433c560abcea04e805c1fe/pkgs/by-name/ty/typst/package.nix#L69-L73) for an example.

Done!

* You commented `sourceRoot` but didn't remove it completely.

Good catch! A couple more comments needed updating too. Thanks for the tip!

I think they still need to be there, yes. docstubs needs to be in the let [...] in block, and that needs access to src, which needs access to version.

Ins't this achievable with finalAttrs or rec ? (I could be wrong).

I think they still need to be there, yes. docstubs needs to be in the let [...] in block, and that needs access to src, which needs access to version.

Ins't this achievable with finalAttrs or rec ? (I could be wrong).

I moved the docstubs block so that we can achieve the same effect inside the rec. After this change, the docstubs are not in a separate derivation so the result can't be reused in case of incremental building. Not a drama, though.
As for the rec, I can't seem to find examples of the finalAttrs pattern with buildNpmPackage so it might be not compatible. For now it looks like rec might be the only way.

I moved the docstubs block so that we can achieve the same effect inside the rec. After this change, the docstubs are not in a separate derivation so the result can't be reused in case of incremental building. Not a drama, though.

Ok it is a bit more streamlined now at least.
Thanks for taking the time to conduct the change.

As for the rec, I can't seem to find examples of the finalAttrs pattern with buildNpmPackage so it might be not compatible. For now it looks like rec might be the only way.

Indeed, my bad. The finalAttrs is only possible with the original mkDerivation builder.

nixpkgs-review result
Generated using nixpkgs-review.
Command: nixpkgs-review pr 354204

x86_64-linux

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

aarch64-linux

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

x86_64-darwin

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

aarch64-darwin

:white_check_mark: 2 packages built:

basedpyright
emacsPackages.lsp-bridge

Thanks for the review!


[$1000] Composer input is empty when editing the word [block] in chat

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

Action Performed:

Log into staging.new.expensify.com
Click into any chat
Type the word [block] and send it as a message
Click the pencil icon to edit the comment
Notice the composer input is empty

Expected Result:
The composer input should be text [block] in editing mode
Actual Result:
The composer input is empty
Platforms:

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

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: 1.3.3
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
Notes/Photos/Videos: Any additional supporting documentation
https://user-images.githubusercontent.com/43996225/233535465-20d83e6a-1279-4ddd-8a77-aaab3ebd04b6.mp4
https://user-images.githubusercontent.com/43996225/233535477-bc59a995-b10c-4ad7-9b52-88df4ffadbcb.mov
Expensify/Expensify Issue URL:
Issue reported by: @eh2077
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1681920140787049
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~01a0c0a4619ff68e29
Upwork Job ID:<PHONE_NUMBER>774252544
Last Price Increase: 2023-04-24

Triggered auto assignment to @maddylewis (Bug), see https://stackoverflow.com/c/expensify/questions/14418 for more details.

Bug0 Triage Checklist (Main S/O)

[ ] This "bug" occurs on a supported platform (ensure Platforms in OP are ✅)
[ ] This bug is not a duplicate report (check E/App issues and #expensify-bugs)

If it is, comment with a link to the original report, close the issue and add any novel details to the original issue instead

[ ] This bug is reproducible using the reproduction steps in the OP. S/O

If the reproduction steps are clear and you're unable to reproduce the bug, check with the reporter and QA first, then close the issue.
If the reproduction steps aren't clear and you determine the correct steps, please update the OP.

[ ] This issue is filled out as thoroughly and clearly as possible

Pay special attention to the title, results, platforms where the bug occurs, and if the bug happens on staging/production.

[ ] I have reviewed and subscribed to the linked Slack conversation to ensure Slack/Github stay in sync

@maddylewis Whoops! This issue is 2 days overdue. Let's get this updated quick!

im not able to reproduce this -
https://user-images.githubusercontent.com/38016013/234073996-0f680b47-a83b-440d-8d43-595b444f6e13.mp4

oh, i see. it's if you literally type the word [block] and then try to edit:
https://user-images.githubusercontent.com/38016013/234074352-8bdae192-a168-4549-8915-1e95dbd82c54.mp4

Triggered auto assignment to @cead22 (Engineering), see https://stackoverflow.com/c/expensify/questions/4319 for more details.

hiya - just confirming that this can be fixed externally before i add the corresponding label!

@maddylewis yes this can be fixed externally, so you can apply the label. Can you update the issue description to make it extra clear what the steps to reproduce should be, and remove any boilerplate info from there?

Current assignee @maddylewis is eligible for the External assigner, not assigning anyone new.

Triggered auto assignment to Contributor-plus team member for initial proposal review - @rushatgabhane (External)

Proposal
Please re-state the problem that we are trying to solve in this issue.
The composer is empty if editing the text [block] that was sent.
What is the root cause of that problem?
The root cause is from here https://github.com/Expensify/expensify-common/blob/e93e1eb448ad6bdbde911fd6239f70d5e749635e/lib/ExpensiMark.js#L531, we use [block] as a separator in place of a number of html tags as can be seen in https://github.com/Expensify/expensify-common/blob/e93e1eb448ad6bdbde911fd6239f70d5e749635e/lib/ExpensiMark.js#L528, then we have logic to replace [block] by new lines in https://github.com/Expensify/expensify-common/blob/e93e1eb448ad6bdbde911fd6239f70d5e749635e/lib/ExpensiMark.js#L475.
So the problem is the [block] text entered by the user happens to be the one used internally by us.
What changes do you think we should make in order to solve the problem?

A question is: why does it happen for block but doesn't happen if we edit raw html tags like <h1>, <em> that were sent?
That's because we have the logic to escape the special characters in https://github.com/Expensify/expensify-common/blob/e93e1eb448ad6bdbde911fd6239f70d5e749635e/lib/ExpensiMark.js#L333, so  <h1> entered by the user will become <h1>, thus will never collide with the HTML tags that we convert from the markdown.
We should do the same for the [block] special string that we use internally. We can replace all instances of [block] by <block>, it will never collide with the user input because it has special html characters (<, >). It will also look logical because we're replacing a number of legit HTML tags by <block> for further processing in https://github.com/Expensify/expensify-common/blob/e93e1eb448ad6bdbde911fd6239f70d5e749635e/lib/ExpensiMark.js#L528, so <h1> -> <block> makes more sense to me than [block].
What alternative solutions did you explore? (Optional)
As long as we replace [block] by any string that has a HTML special character, it will most likely work. I prefer the <, > pair since it looks logical and already proven since with the current logic we can process raw HTML tags sent by the user without any issue.

Hi @rushatgabhane, I think [block] is the only special string that might conflict with user's input in the expensify-common lib.

@rushatgabhane One defect I can see about <block> is that it'll be stripped by method Str.stripHTML before being processed in method replaceBlockWithNewLine, see here
        generatedMarkdown = generatedMarkdown.replace(
            /<div.*?>|<\/div>|<comment.*?>|\n<\/comment>|<\/comment>|<h2>|<\/h2>|<h3>|<\/h3>|<h4>|<\/h4>|<h5>|<\/h5>|<h6>|<\/h6>|<p>|<\/p>|<li>|<\/li>/gm,
            '[block]',
        );
        return Str.htmlDecode(this.replaceBlockWithNewLine(Str.stripHTML(generatedMarkdown)));

cc @tienifr

@eh2077 yeah for that we can strip the HTML but excludes the ‘ specifically, then we won’t have that problem

@rushatgabhane ’’ is only used in front end side to replace new lines correctly when convert html to markdown. It won’t be sent to the backend, same as the current ‘[block]’ that is used

Hi @rushatgabhane, would you like to have a look at my comment about  the drawback of the <block> solution here https://github.com/Expensify/App/issues/17776?notification_referrer_id=NT_kwDOBwEW8LQ2MjI3MDQyMjI1OjExNzUxMTkyMA#issuecomment-1526606921 ?
IMHO, I don’t think it’ll be working. Using <block> depends on the well-encoded input html string, so it’s not a robust solution from the beginning.
cc @cead22

Using  depends on the well-encoded input html string, so it’s not a robust solution from the beginning.

All our HTML tags decoding relies on well-encoded html string. Without well-encoded html string, the premise of decoding HTML to markdown does not work, so I don’t think indicates the solution is not robust.

@tienifr I think first you need to change the other basic method Str.stipHTML to get it work which is not simple and is not a good pattern to fix a issue.
We can copy and paste html from web page outside of the App. So the robustness matters.

We can copy and paste html from web page outside of the App. So the robustness matters.

@eh2077 any HTML from inside or outside the app will be HTML encoded before being processed by our html-to-markdown rules. If you find any case where it won't work I'd love to hear also.

@rushatgabhane I like @eh2077 's solution better. To me it's simpler than @tienifr 's because it's self contained, and I actually like the approach of using a string like \u200Bblock\u200B over <block> because in my opinion it's more immediately obvious that it's an arbitrary string used for replacing text and not something that's likely to be entered by a user

@cead22 @eh2077  there’s 1 issue with using such string though, if the user input contains it (it can happen when the user copies it from other sites), we’ll have to strip it. Even though it’s a zero width joiner, I don’t think we should modify the user’s input, we should leave it as is.
Regarding the having to modify the stripHTML in the <block> solution, we can easily avoid that by using another pair of special HTML entities, I only suggested <block> since it looks more neat and readable. If our goal is to use an obviously-different string, we can use another pair like <block<. It satisfies:

not having to modify “stripHTML”
it's more immediately obvious that it's an arbitrary string used for replacing text
not something that can ever be entered by a user or some form of HTML (unlike the zero width string which can be copied from other sources)
not having to use the workaround in the case of user inputs contains that exact string (which is step 2 in @eh2077 ’s proposal )

@cead22 do you think that it’d be simpler?
cc @rushatgabhane

Candidly, I still like using \u200Bblock\u200B better then <block<, and I think we can skip step 2. in @eh2077 's proposal, because I don't think it's realistic that \u200Bblock\u200B will be copied from other places

@cead22 the zero width space is widely used though, especially in other languages that don’t use spaces to separate words (see here).
The issue in this case ([block] in the message) is already a rare-occuring one and only occurs for that specific string combination. So I’m afraid if we do that, we’re replacing a rare bug by introducing another rarer bug rather than fixing it completely.

@cead22 the zero width space is widely used though, especially in other languages that don’t use spaces to separate words (see here).

Interesting, I didn't know that! That said, is it typical for those languages to have zero width space, then block, and then zero width space? It seems very unlikely to me that we'll encounter this situation, and I think it's more likely to find <block<.
If we think it's not that unlikely, then let's pick something different from \u200Bblock\u200B and <block<, maybe a rare unicode character, then "block", then another rare unicode character.

I found another possible solution to fix this issue. We can generate a id as the block separator instead of having a fixed one.
To achieve this we can initialise a separator this.BLOCK_SEPARATOR inside the constructor of ExpensiMark, like
export default class ExpensiMark {
    constructor() {
        /**
         * We generate a special id as the separator between markdown block elements to avoid
         * conflicting with user input.
         */
        this.BLOCK_SEPARATOR = Str.guid('block');

And then replace all [block] with this.BLOCK_SEPARATOR.
The BLOCK_SEPARATOR will look like blockc41de41b-2767-617b-b78d-49ca52a0fb0c which won't conflict with user input.
@cead22 @rushatgabhane I'll be happy to hear your feedback about this new solution.

We can make the separator a UUID to make it extremely unlikely that we'll find it anywhere else. However

It feels like overkill, I bet \u200Bblock\u200B is random enough, or that we can come up with a random-enough string that's not a UUID
I think we should make it static to make this predictable
If we use a UUID, I think we should remove the "block" prefix, cause I don't think it serves any purpose

It seems very unlikely to me that we'll encounter this situation, and I think it's more likely to find <block<.

@cead22 even though the user input contains <block<, it will never conflict with our <block< because user input is always properly encoded, which is why our HTML to markdown conversion works. So <block< in the user input will become <block<. So using <block< is already a complete solution without any edge case.

@cead22 @rushatgabhane  Actually I find this way which can save us all the trouble of inventing a random string.
The [block] is currently used basically to represent a group of HTML tags that, when converted to markdown, should add a new line, see https://github.com/Expensify/expensify-common/blob/afe46976cbc7c5966118a32ae2e3737109d849b4/lib/ExpensiMark.js#L545.
And then, we split the htmlString by [block] in here https://github.com/Expensify/expensify-common/blob/afe46976cbc7c5966118a32ae2e3737109d849b4/lib/ExpensiMark.js#L493 for replacing with new lines.
We can remove [block] completely as an intermediary, and split the string directly by using the regex in https://github.com/Expensify/expensify-common/blob/afe46976cbc7c5966118a32ae2e3737109d849b4/lib/ExpensiMark.js#L545
There'll be a few more small changes required like updating the h1 replacing logic, stripHTML for an array of strings that are already split, but it will work.
@cead22 @rushatgabhane if there's interest in this solution, I'm happy to create a full proposal for it. It might take more changes but will solve the problem fully and avoid any random string to be used.

@cead22 even though the user input contains <block<, it will never conflict with our <block< because user input is always properly encoded, which is why our HTML to markdown conversion works. So <block< in the user input will become <block<

What if the user input contains <block<?

What if the user input contains <block<?

@cead22 then the & will be encoded. And the string will become: &lt;block&lt;, it will not collide with <block<

I just don't see any advantages to using <block< over \u200Bblock\u200B

@cead22 basically <block< doesn’t have any edge case where it won’t work, while \u200Bblock\u200B does as pointed out above. Would you see that as an advantage?

@tienifr I’m not sure if I’m missing something but <block< doesn’t work either. Please check the regex of method stripHTML or see below screenshot

@tienifr I’m not sure if I’m missing something but <block< doesn’t work either. Please check the regex of method stripHTML or see below screenshot

@eh2077 >block> will work just fine (two >, not <), feel free to try it out.

@tienifr that looks promising to me! Please post a proposal. We just need to make sure all unit tests work fine

@rushatgabhane Thanks for your interest! I'll post a full proposal for that tomorrow

What if the user input contains <block<?

@cead22 then the & will be encoded. And the string will become: &lt;block&lt;, it will not collide with <block<. It’s impossible for any conflict because the input string (after encoded) will never contain <.

I just don't see any advantages to using <block< over \u200Bblock\u200B

@cead22 basically >block> doesn’t have any edge case where it won’t work, while \u200Bblock\u200B does as pointed out above. Would you see that as an advantage?

Yes 👍 I didn't realize that would be the case for <block<, thanks for clarifying

@rushatgabhane let me know what you think. The expensimark solution seems more robust, but also more likely to create regressions

@cead22 we have plenty of unit tests in expensimark. I think we should go ahead with @tienifr's proposal because it's a better solution as it gets rid of the problem itself.
Regressions shouldn't stop us. We'll take care of it in the PR, and in the worst case expensify-bugs channel is pretty fast to spot anything.

@rushatgabhane Based on the expenerience I have worked on several line break issues related to the Expensify-common lib, I would say @tienifr 's last proposal is ambitious but is easy to introduce new regressions.

communicating here that i am OOO May 11 and 12. i am adding the BZ label in case this issue needs to be actioned while I'm away, but will keep myself assigned / remove the other assignee once i return from OOO.

i trust you, @rushatgabhane! @cead22 - if you're around today/tomorrow, let us know what you think!

@rushatgabhane - to keep the momentum, lets go with the proposal you suggested. if we need to switch gears, @cead22 will let us know once he's back from OOO.
thanks!

The expensify-common PR is ready for review: https://github.com/Expensify/expensify-common/pull/541. @maddylewis Please help assign the C+ there. Thanks in advance!
cc @cead22 @rushatgabhane

I reviewed it, but I couldn't assign @rushatgabhane. The PR looks good, but I left a comment there saying we need to do a lot more testing, and suggested adding all those tests to the App PR that will update the version of expensify-common. What do you think?

The PR on expensify-common is merged. The PR in App should be ready soon, it just needs to be re-tested on the latest commit of expensify-common

moving to daily since payment is coming up!

@rushatgabhane - will you go through this checklist when you have a chance - thanks! https://github.com/Expensify/App/issues/17776#issuecomment-1573404748

apologies! sending offers now!

hiya @flaviadefaria - all that's needed here is:

[ ] process payment for @tienifr (offer here - https://www.upwork.com/nx/wm/offer/25014584)
[ ] process payment for @rushatgabhane (offer here - https://www.upwork.com/nx/wm/offer/25014435)
[ ] bump @rushatgabhane to complete the BZ checklist if need be
[ ] create a GH for a regression test update if applicable

I'll be back on June 20 - thanks!

@rushatgabhane can you please complete the list here so that I can issue your payment? Thanks!

Still waiting for @rushatgabhane to fill the tasks I mentioned above so that I can issue payment and close this.

all good! i will keep at daily just for my own organization. but, no worries if you don't complete the checklist until Friday 👍

@maddylewis since you're back I'll unassign myself from this issue.

@rushatgabhane - let us know know if you think a regression test update is required for this one - thanks!

thanks @rushatgabhane - just waiting for you to accept the offer I sent you and then i will close this out 👍

of course! thank you for letting me know :)
moving to weekly.


Web worker support

This PR adds support for detecting crypto within a Web Worker, where window is not defined but self (and therefore self.crypto) is.
Fixes #83

Codecov Report

Merging #82 (0180ded) into master (a583120) will not change coverage.
The diff coverage is n/a.

:exclamation: Current head 0180ded differs from pull request most recent head bfa1663. Consider uploading reports for the commit bfa1663 to get more accurate results

@@           Coverage Diff           @@
##           master      #82   +/-   ##
=======================================
  Coverage   93.08%   93.08%
=======================================
  Files           2        2
  Lines         246      246
  Branches       31       31
=======================================
  Hits          229      229
  Misses         17       17

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 a583120...bfa1663. Read the comment docs.

Hi, any reason this hasn't been merged?

Hey, if anyone else finds this issue like I did and is using cloudflare workers, here's what worked for me:
import {monotonicFactory} from 'ulid'
// or import {factory} from 'ulid'

const prng = () => {
  const buffer = new Uint8Array(1)
  crypto.getRandomValues(buffer)
  return buffer[0] / 0xff
}
export const ulid = monotonicFactory(prng) // or factory(prng)

This will bypass the code that checks for browser crypto and allow you to set your own. The PRNG function is the same as used internally with a different global reference.
I think this package may be abandoned, I'm working on potentially forking it.


[9.x] Add missing and missingAny Collection methods

Hey there!
I'd like to propose adding the missing() and missingAny() methods to the Collection class in.
I found that I was using the inverse of the has() method (! $collection->has()) quite frequently in my code and thought it would be more convenient to have a dedicated method for this purpose.
Here's a simple example of how the missing() and missingAny() methods could be used:
missing()
$collection = collect(['apple', 'banana', 'orange']);

if ($collection->missing('mango')) {
    // true, because mango is missing
}

if ($collection->missing(['orange', 'mango'])) {
    // false, because orange is present
}

missingAny()
$collection = collect(['apple', 'banana', 'orange']);

if ($collection->missingAny(['banana', 'mango'])) {
    // true, because at least mango is missing
}

if ($collection->missingAny(['banana', 'orange'])) {
    // false, because both banana and orange are present
}

In addition to being more convenient to use, these methods fit nicely with the existing has() and hasAny() methods in terms of naming and functionality.
I'd love to see these methods added to the Collection class. Let me know what you think!

Thanks for your pull request to Laravel!
Unfortunately, I'm going to delay merging this code for now. To preserve our ability to adequately maintain the framework, we need to be very careful regarding the amount of code we include.
If possible, please consider releasing your code as a package so that the community can still take advantage of your contributions!
If you feel absolutely certain that this code corrects a bug in the framework, please "@" mention me in a follow-up comment with further explanation so that GitHub will send me a notification of your response.


Local currency rounding can show discrepancies between amount input and confirmation screen

Expected Behavior
When sending an amount using a local currency, the amount entered and the amount in the confirmation screen should be the same.
Current Behavior
When sending an amount using a local currency, the amount entered and the amount in the confirmation screen can be slightly different.
Looks like the logic in place is not enough:
https://github.com/celo-org/celo-monorepo/blob/3e4b1866c0917b417a2696ea8a95b9f88db4ce3d/packages/mobile/src/localCurrency/convert.test.ts#L9-L25
Input screen

Confirmation screen

The raw exchange rate showing this prob is 0.9066183137

@jmrossy I have also observed the same issue and observed that the issue is repro only for EUR currency. I have verified with the remaining (CAD, MXN, PHP, USD ) currency and observe that the issue does not repro.
Attachment: Android_CurrencyIssue.mp4


[Feature Request] where is the ‘Scrollbar’ component on 'http://element.eleme.io/#/zh-CN/component/installation'?

Existing Component
Yes
Component Name
Scrollbar
Description
the 'scrollbar' component has exists in source code,but I can't find it's document on element-ui website

#8495


python3: can't open file 'LeReS/tools/test_depth.py': [Errno 2] No such file or directory

in the notebook: LeReS/tools/test_depth.py not exist

Hi, the path to test_depth.py has been changed to "LeReS/Minist_Test/tools/test_depth.py". The code in the notebook has not been updated yet, so we recommend you to follow the README.md.

Hi, the path to test_depth.py has been changed to "LeReS/Minist_Test/tools/test_depth.py". The code in the notebook has not been updated yet, so we recommend you to follow the README.md.

Will it be updated in the future? I had the same problem running in colab

@xiaoguo426 We will update the code in the colab later after I finished my deadlines. Thanks for your following and I will remind you after updating the colab code.

Colab is still broken
!python3 LeReS/Minist_Test/tools/test_depth.py --load_ckpt res101.pth --backbone resnext101
returns
/env/python:/content/AdelaiDepth/LeReS
/content/AdelaiDepth
Traceback (most recent call last):
  File "LeReS/Minist_Test/tools/test_depth.py", line 9, in <module>
    from lib.multi_depth_model_woauxi import RelDepthModel
ModuleNotFoundError: No module named 'lib'

@EllieFar no, if repository owner doesn't provide fixes there is nothing we can do

@milkliker @xiaoguo426 @IgorKasianenko @EllieFar Sorry for the late response, bug has been fixed in https://github.com/aim-uofa/AdelaiDepth/issues/65#issuecomment-1492816706.


QBO - Error message appears when change any of the configuration on Advanced tab

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: v1.4.66-3
Reproducible in staging?: y
Reproducible in production?: n
Issue found when executing PR: https://github.com/Expensify/App/pull/41002
Issue reported by: Applause - Internal Team
Action Performed:

Go to URL https://staging.new.expensify.com/
Login with any Expensify account
Create a workspace, enable the Accounting feature on the More Features page, and connect to Quickbooks Online on the Accounting page.
Click on the Advanced tab and change any of the configurations (toggle on/off several times)

Expected Result:
No error message appears
Actual Result:
Error message appears
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

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

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

Screenshots/Videos
Add any screenshot/video evidence
https://github.com/Expensify/App/assets/93399543/1e5e1c87-6d20-4fba-a744-4bb693726c9e
View all open jobs on GitHub

We think that this bug might be related to #wave-collect - Release 1

I believe some of these errors are known, the backend is not fully supporting this. cc @hayata-suenaga @aldo-expensify @trjExpensify @teneeto @narefyev91

Its behind beta so not a blocker

FWIW the error is 400 Current value and value are using different types, expected both to be JSON

I was just looking at that as well when testing to try and figure it out.
Network tab:
"400 Current value and value are using different types, expected both to be JSON"
onyxData
requestID
"87a7d5a0ba774164-LHR"

Here are the logs from a recent attempt.
Processing 'UpdatePolicyConnectionConfiguration' for 'expensify.com' from '<IP_ADDRESS>' ~~ command: 'UpdatePolicyConnectionConfiguration' policyID: '9D04CF0F37B62AC9' connectionName: 'quickbooksOnline' settingName: 'autoCreateVendor' settingValue: 'true' appversion: '1.4.66-2' pusherSocketID: '706150.195755' authToken: '<REDACTED>' referer: 'ecash' platform: 'web' api_setCookie: 'false' email<EMAIL_ADDRESS>isFromDevEnv: 'false' partnerName: 'expensify.com' browserGUID: '662bd19a1b35e' HTTP_CF_BOT_SCORE: '99' HTTP_CF_JA3_HASH: '28f8b76bbfbc4a3e5733a62d625cd973'

[OOPS!] API Threw: Auth UpdatePolicyConnectionConfiguration returned an error ExpException - 83187a0d1e744a12a5bd7f3d584d169d ~~ message: '400 Current value and value are using different types, expected both to be JSON' exceptionMessage: 'Auth UpdatePolicyConnectionConfiguration returned an error' exceptionFile: '/git/releases/expensify.com/b62fe01/lib/Auth.php' exceptionLine: '125' exceptionCode: '400'

Comes from here in Auth.
    JSON::Value currentValueJSON(JSON::NIL);
    try {
        currentValueJSON = JSON::Value::parse(currentSettingValue);
    } catch (...) {
        // We're catching this so the comand doesn't fail, we just want to try to parse it and see if it's the same type
    }
    if (currentValueJSON.type() != requestValueJSON.type()) {
        STHROW("400 Current value and value are using different types, expected both to be JSON");
    }

Maybe something to do with this is wrong, or that settingValue=true which seems like a boolean and not a string maybe?
I also have another example here for settingName exportCompanyCardAccount, but that doesn't have a settingValue in the logs at all 🤔
Processing 'UpdatePolicyConnectionConfiguration' for 'expensify.com' from '<IP_ADDRESS>' ~~ command: 'UpdatePolicyConnectionConfiguration' policyID: '9D04CF0F37B62AC9' connectionName: 'quickbooksOnline' settingName: 'exportCompanyCardAccount' appversion: '1.4.66-2' pusherSocketID: '706150.195755' authToken: '<REDACTED>' referer: 'ecash' platform: 'web' api_setCookie: 'false' email<EMAIL_ADDRESS>isFromDevEnv: 'false' partnerName: 'expensify.com' browserGUID: '662bd9f1e8eab' HTTP_CF_BOT_SCORE: '99' HTTP_CF_JA3_HASH: '28f8b76bbfbc4a3e5733a62d625cd973'

PolicyAPI::updatePolicyConnectionConfiguration(): Argument #5 ($settingValue) must be of type string, null given, called in /git/releases/expensify.com/b62fe01/api.php on line 2159"
requestID: "87a809c5d8a64164-LHR"

maybe there is something when we're storing the boolean? the type of value received and the value read from the database isn't matching for some reason in this line
we can also log the type if that helps with debugging. What do you thing @aldo-expensify ?

Another one:

Choosing an Accounts Payable account to export as is throwing the invalid setting name this time.
{jsonCode: 400, message: "400 Invalid setting name", onyxData: [], requestID: "87a853ed2b824164-LHR"}

Logs
Processing 'UpdatePolicyConnectionConfiguration' for 'expensify.com' from '<IP_ADDRESS>' ~~ command: 'UpdatePolicyConnectionConfiguration' policyID: '9D04CF0F37B62AC9' connectionName: 'quickbooksOnline' settingName: 'exportAccountPayable' settingValue: 'Accounts Payable (A/P) - NEW' appversion: '1.4.66-2' pusherSocketID: '706130.231519' authToken: '<REDACTED>' referer: 'ecash' platform: 'web' api_setCookie: 'false' email<EMAIL_ADDRESS>isFromDevEnv: 'false' partnerName: 'expensify.com' browserGUID: '662be5cf02869' HTTP_CF_BOT_SCORE: '99' HTTP_CF_JA3_HASH: '28f8b76bbfbc4a3e5733a62d625cd973'

So that one is down to the settingName exportAccountPayable missing from here which we need to add.

P.S - @narefyev91 PR here that you can test an adhoc build of here has cleared up a lot of the below type of error for me, as the account is selected when the export type is selected.
PolicyAPI::updatePolicyConnectionConfiguration(): Argument #5 ($settingValue) must be of type string, null given, called in /git/releases/expensify.com/b62fe01/api.php on line 2159"

Mainly want errors remain for me on that build are:

That invalid setting name error for exportAccountPayable for company card export
Toggling off default vendor shows an error
Automatically create entities on the Advanced page shows an error when toggled on

Choosing an Accounts Payable account to export as is throwing the invalid setting name this time.

The error is coming from the following lines in the Auth code:
https://github.com/Expensify/Auth/blob/12244a365ca86635b327d6782a1dc66588a5f9f2/auth/command/UpdatePolicyConnectionConfiguration.cpp#L47-L49

I don't see new errors for the missing settings after the deploy: https://www.expensify.com/_devportal/tools/logSearch/#query=blob%3A "400 Invalid setting name" AND timestamp%3A[2024-04-25T00%3A00 TO 2024-04-30T23%3A59]&index=_all
Please reopen if we find new missing settings


Implement a whatprovides backend

It would be awesome to have a "whatprovides" backend that has an index over

binaries (commands) that are in packages
so libraries in packages
python modules that are in packages

So that we can have a mamba command that can do mamba repoquery whatprovides ncurses.6.so and the correct packages are returned.
Other queries:
mamba repoquery whatprovides 7zip
to find the packages that contain 7zip.exe etc.

R libraries also deliver into predictable directories and similarly diverge from the package names (though the r- and bioconductor- patterns for package naming are nearly ubiquitous).


async beforeEach

i need for some acceptance tests to run some async stuff before the the very first test

i've tried to return Promise didn't word in beforeEach
i've try to check for done() method, and i couldn't find
i've try to use application.deferReadiness, didn't work

i still don't want to use ES7 async functions, so is there a way to solve it?

The first two things should work (returning a promise or using assert.async).

ok, the asset.async works in beforeEach (yay! thanks), but:
beforeEach() {
  return new Promise(() => null);
}

doesn't seem delay even in a miliseconds

What version of ember-qunit?
Are you using the native promise implementation (looked like it in your snippet)?

qunit:
  "name": "ember-cli-qunit",
  "version": "1.0.1",

I'm using Ember.RSVP.Promise. every time i'm using promises, on the top of the file i'm using this const { Promise } = Ember.RSVP

The ember-qunit version is stored in the bower.json (and is different from the ember-cli-qunit version).

yep, my mistake. got it after i got out of home. anyway...:
"ember-qunit": "0.4.9",
"qunit": "~1.18.0"

I'm pretty sure this works by now, so I'm going to go ahead and close this issue. Please reopen if this is still a problem.


enable to custom allocations in Ebiten

I was checking out DrawTriangles impl and found this: https://github.com/hajimehoshi/ebiten/blob/57c45a13e4289a9e0ef270a6030540d8ce191e8e/image.go#L359
Is this allocation really necessary? Or can we somehow avoid it by allowing the user to store this slice and then pass it along with other stuff?
I know that this makes interface harder, but maybe we can hide it somehow? Because when I profile memory with a big batch, I get this:

Looks like this allocation is unnecessary if nothing changes about vertices
One API we can have is something like VertexBuffer which will store underlying vertex slice (which DrawTriangles now recomputes on each frame when calling graphics.Vertices). I see that there's some caching of vertices in implementation, but it still seems to cause unnecessary allocs on each frame.
(UPD: my bad, no allocations are done on each frame once the internal slice grows large enough)
So, the interface could be like this:
buf := ebiten.NewVertexBuffer(4) // this will contain the needed slice which `graphics.Vertices` allocates
buf.AddVertex(ebiten.Vertex{...})
...
screen.draw(buf, ...)

This certainly causes an allocation (and a bigger one if there are many vertices required), but from what I read, it only "frees" allocated vertices if they have been unused for a while, and it's only reallocated if more are required.
But once you drew N vertices and need <=N next frames, this doesn't necessarily reallocate "each" frame, right ?
Do you suggest something along these lines ?
type VertexBuffer struct {
	vertices []ebiten.Vertex
	slice []float32 // The one that was previously managed graphics.Vertices(n int)
}

func (vb *VertexBuffer) AddVertex(vertices ebiten.Vertex...) {
	// Also growing vb.slice here instead of /graphics one ?
}

Could be nice !
I don't know what else it would imply for ebiten, maybe breaking changes / making ebiten's API more complex for user+maintainer :/

But once you drew N vertices and need <=N next frames, this doesn't necessarily reallocate "each" frame, right ?

Indeed, I've tested and it doesn't allocate more memory once the buffer grows large enough.

Do you suggest something along these lines ?
Yes. This will also make allocations a lot more predictable - they won't happen during the first draw - they will happen during VertexBuffer setup (which is usually done during resource loading, tile map loading, etc.)

I think that it's not necessary to make breaking changes for this - we just need an additional "overload" for DrawTriangles which will essentially work the same way.
The growing API is indeed an issue, but I don't see another way of resolving this, unless there's some API which will allow us to "preallocate" internal vertex slice (but this solution is not ideal since it's hard to predict how large of a slice you'll need)

Is this allocation really necessary?

Yes, as we cannot predict exactly when the vectors are actually used. Rendering commands are queued first (graphicscommand package) and the vectors might be recorded there. Does this make sense?

Yes, I understand now. I'm wondering what you think of giving user a control over how these allocations are performed and provide "allocation-free" overloads.
This example shows that it's possible to let user create vertex buffers manually and not rely on internal ones.

I'm wondering what you think of giving user a control over how these allocations are performed and provide "allocation-free" overloads.

I was wondering how a user can control the allocations.
User-control allocations seem very interesting and should be worth considering, but at the same time I don't want to 'expose' the internal implementation in Ebiten. It is risky to expose an allocation details in any forms.

https://github.com/hajimehoshi/ebiten/blob/2b1e9615407726fe7484e2f0813110a810fe4940/uicontext.go#L160
Note that the vertices slice position is reset every frame and the capacity is reused for next frames.

User-control allocations seem very interesting and should be worth considering, but at the same time I don't want to 'expose' the internal implementation in Ebiten. It is risky to expose the allocation details in any forms.

I think that allowing user to allocate memory themselves and not have to rely on Ebiten's internal implementation actually hides a lot of detail.
This is the way SFML and SDL_Renderer work. They don't allocate unless you tell them to do it. You create buffers/sprites/textures yourself and "Draw" methods don't allocate/batch in background.
Yes, it's a bit more complicated for users (and might have some maintenance cost...), but might be worth it for performance-intensive games. And in WASM you need to optimize a lot.

Enabling a custom allocation sounds interesting, but I'd like to keep this low-priority unless we really think this is needed... Allocations in third party libraries cannot be modified anyway.

Sure, it's OK to keep it low-priority.
And I don't mind allocations of third-party libraries if they can't be avoided. :)

Now the situation should be much changed. I'll close this once, but feel free to reopen this if you think this is still an issue.


PHP 8 Container

Add a container for PHP 8.

Hey, @luisdalmolin I'm interested to contribute to this issue.
I just wanted to know which php image I should use?

Hey @pushpak1300, that's awesome - No real preference here, if you can make it work with the ondrej/php repository is better, otherwise whatever you can make it work. I didn't dig into to see if PHP 8 beta is already published in this repository.

I think https://github.com/oerdnj/deb.sury.org/issues/1439 ondrej/php will take time so I will build it from source for now!


Screenshots

Uploaded two screenshots and updated README. Issue #8

Thanks @raj-subhankar

@oswalpalash You are welcome!


[Bug]: uploading file with chinese name results in failure because of system locale setting

Bug expectation
I use npm 'youtube-videos-uploader' in docker to upload video and it failed without any error message. After tried many methods, I found it worked when I change the system locale to 'zh_CN.UTF8' .
Bug behavior

[ ] Flaky
[ ] PDF

Minimal, reproducible example
import { upload } from 'youtube-videos-uploader' //Typescript
//OR
const { upload } = require('youtube-videos-uploader'); //vanilla javascript

// recoveryemail is optional, only required to bypass login with recovery email if prompted for confirmation
const credentials = { email: 'Your Email', pass: 'Your Password', recoveryemail: 'Your Recovery Email' }

// minimum required options to upload video
const video1 = { path: 'video1.mp4', title: 'title 1', description: 'description 1' }

const onVideoUploadSuccess = (videoUrl) => {
    // ..do something..
}

// Returns uploaded video links in array
upload (credentials, [video1]).then(console.log)

Error string
no error
Puppeteer configuration
No response
Puppeteer version
14.4.1
Node version
v16.13.0
Package manager
npm
Package manager version
8.1.0
Operating system
Linux

您的来件我已收到。I‘ve received your e-mail.            ---dy


Add numpy array constructors

Add support for several array constructors (the zeros(), zeros_like() etc. series as well as arange() and linspace()).
Also allow casting to np.bool_ and numba.types.bool_ (as with integer and real types).
Also, complex division now raises ZeroDivisionError when necessary.

Moving back to "in progress" as there may be small cleanups to do.

I don't feel strongly about either supporting keyword args for numpy constructors as opposed to just supporting positional arguments, but this looks good to me. However, if we only support positional arguments, it should be mentioned in the manual.
Would it be worth adding np.eye with this as well?

However, if we only support positional arguments, it should be mentioned in the manual.

That's the same for every other supported library function, but perhaps we should mention it regardless.

Would it be worth adding np.eye with this as well?

I don't know, it seems hard to use it without any keyword arguments...

Would it be worth adding np.eye with this as well?
I don't know, it seems hard to use it without any keyword arguments...

Ah, I hadn't realised it wasn't just a synonym of np.identity. Although I'm not really sure why it would be hard to use without kwargs - I could imagine doing eye(2), eye(2, 3), eye(2, 3, 1.5) and eye(2, 3, 1, int) without too much trouble, but it is definitely a bit less convenient without being able to use kwargs. Have I missed something?

I thought that people would often omit the second parameter... if not, then good, I can add it :)

We have kwargs now, so feel free to add np.eye.  :)

Okay, I've added np.eye() as well as kwarg support for zeros() and friends.

(closed by mistake!)

Is np.array() planned? Naturally I could create a zeros first and then fill the values, just wondering if I can still save some lines :)

Is np.array() planned?

With which kind of arguments? if it's np.array([1,2,3,4]), we will first have to support Python lists :-)

True, didn't notice Python lists were not supported yet! Still, there's the possibility to use tuples too:
In [46]: np.array((1, 2, 3))
Out[46]: array([1, 2, 3])


Added np.iscomplexobj implementation

Came up in the dask-ml test suite. The current NumPy implementation is
    try:
        dtype = x.dtype
        type_ = dtype.type
    except AttributeError:
        type_ = asarray(x).dtype.type
    return issubclass(type_, _nx.complexfloating)

since Dask array's have a dtype, we're fine with checking .dtype.type. This avoids the warning on master.
In [1]: import numpy as np

In [2]: import dask.array as da

In [3]: a = da.from_array(np.array([1, 2, 3+0j]), 2)

In [4]: np.iscomplexobj(a)
/Users/taugspurger/sandbox/dask/dask/array/core.py:1356: FutureWarning: The `numpy.iscomplexobj` function is not implemented by Dask array. You may want to use the da.map_blocks function or something similar to silence this warning. Your code may stop working in a future release.
  FutureWarning,
Out[4]: True

Thanks @TomAugspurger .  There seem to be a lot of failures.  I restarted the Github CI to see if that does fix things.  I no longer can restart jobs on TravisCI.  There are so many and the changes seem unrelated I thought restarting seemed reasonable

Just restarted the Travis CI builds. I suspect the test will pass now as we should pull in the latest fsspec release which contains a fix for those tests (xref https://github.com/intake/filesystem_spec/pull/262)

I no longer can restart jobs on TravisCI

Hrm, that's weird. Sometimes I get automatically signed out of Travis and the restart button goes away. Just checking, are you signed in?

Thanks @jrbourbeau logging out and in again fixed my problem

Everything is passing now.  Thanks again @jrbourbeau for the TravisCI note and @TomAugspurger for the work.  Merging in


Milestone 2 Feedback

Great work on your dashboard everyone! Here is my feedback:
Mechanics: Overall mechanics look great, team members are communicating through issues, using pull requests, and commit messages are informative.
App: The types of visuals are well chosen for the data, and you have implemented an impressive amount of interactive elements! Everything in the app seems to be functioning as expected and the research questions are addressed. The axes labels are clear and easy to read, and the choices for different axes options are relevant. Here are a few suggestions:

For the line plots, there is a default showing for developing countries but not for developed countries, which is confusing when you first open up the app because the developing countries are plotted, but "developed countries" is selected. This should be fixed (High priority).
The app description is good, but you could clarify that the values listed at the top are the mean for the entire world. You should also clarify the purpose of “GDP log” in the World Map graph.
The user needs to use a scroll bar to see the entire graph, which is inconvenient.
For the “point colour” part in the scatterplot, it would be interesting to have the option to only show developed vs. undeveloped countries rather than both at the same time (lower priority).

Reflection: The reflection is thorough and well-written. A few minor typos/grammatical errors.
Overall, nice work, I enjoyed exploring your app! @agdal1125 @zoepan00 @SamEdwardes

Thank you for the feedback Ellen! We have reviewed and summarized what we  have addressed in #44.


Mobile compatibility for Simulator

I think it will be difficult to maintain both Desktop and mobile in one HTML file, so one approach is to use a separate html file for mobiles.

[ ] Setup mobile HTML5 layout
[ ] Add touchscreen listeners

This is a good idea. I was looking at circuitverse on my phone recently and was disappointed with the lack of formatting on mobile. but being able to edit and view circuits on mobile sounds awesome!

What is the updates on this issue?

Any updates? So that simulator can be used in phone browser's also.

Any updates? So that simulator can be used in phone browser's also.


Add support for async requests for wasm plugin

[approve ci autest]

[approve ci autest]

[approve ci autest]

There are quite a lot of materials on async requests in a wasm module in this talk - https://events.istio.io/istiocon-2021/slides/c8p-ExtendingEnvoyWasm-EdSnible.pdf

[approve ci clang-format]

[approve ci autest]

[approve ci autest]

[approve ci autest]


gaits, beinked (logical-conflict)

This pull request was generated by the 'mq' tool

/trunk merge


Add more ways of bestowing points

by replying to a message
by reacting with certain emojis
by specifying "everyone" as the recipient
by specifying multiple names separated by commas or "and"

Bump

number 1 will be satisfied with #31


.npmignore added

Related to issue: https://github.com/adius/shaven/issues/26

Dammit. You had a typo in the name of the file =D

Daaaaam. Supersorry...

Thanks.


Added Neo4j Content Retriever example

Example for code added in #685

@langchain4j please take a look

@langchain4j can you please merge this?

@langchain4j it's been 3 weeks now. Can you please merge this?


Fail to load the App Service Plan when creating a Function App (Advance)

OS: Win10
Build Version: 20200519.2
VS Code-Insider: 1.46.0

Repro Steps:
F1->Azure Functions: Create Function App in Azure...(Advance)->Provide a name for this Function App->Select a runtime->Select an OS->Select Premium or App Service Plan
Expect:
Load the Linux/Windows App Service Plan successfully.
Actual:
Keep loading the App Service Plan more than 3 mins, an error occurs "Resource provider 'Microsoft.Web' failed to return collection response for type 'serverFarms'." after several mins.

More Info:
This issue only reproduces in VS Code Insider, does not reproduce in VS Code.

@v-ruizh does this reproduce consistently? I'm skeptical I can reproduce this or fix this. It's probably just an intermittent error in Azure

@EricJizbaMSFT This issue only reproduces on 1 subscription. There is something wrong with this subscription. We will use other subscription to test.


Migrate CBs and Sems to kernel config ring buffer

Ticket
#4984
Problem description
Migration of sems and cb configs to ring buffer
What's changed
Move semaphores and CB configs to ring buffer.
Had to hack disable code in cq_dispatch due to code issues
Had to hack around race in llks (this code sped things up exposing a race, added a delay to compensate)
Checklist

[ ] Post commit CI passes
[ ] Blackhole Post commit (if applicable)
[ ] Model regression CI testing passes (if applicable)
[ ] New/Existing tests provide coverage for changes

Closing.  Semaphore change ran into major issues w/ T3k tests, fixed in a separate branch, will pull those in isolation then rebase the rest of this work on that.


Ctrl+D setup guide breaks default Ctrl+D action

This is breaks default Ctrl+D action
  {
    "args": "<C-d>",
    "command": "vscode-neovim.send",
    "key": "ctrl+d",
    "when": "editorFocus && neovim.init"
  }

This one is not. And it work more like original command
  {
    "args": "<C-d>",
    "command": "vscode-neovim.send",
    "key": "ctrl+d",
    "when": "editorFocus && neovim.init && neovim.mode == 'visual'"
  }

Should I make the pr to the docs? Or it's intentional?

It's intentional. It's just an example


chore: remove unused test utils

This PR resolves []
Description

[x] remove unused snapshot-diff test util

PR Checklist

[ ] I have tested my changes on iOS and Android.
[ ] I hid my changes behind a feature flag, or they don't need one.
[ ] I have included screenshots or videos, or I have not changed the UI.
[ ] I have added tests, or my changes don't require any.
[ ] I added an app state migration, or my changes do not require one.
[ ] I have documented any follow-up work that this PR will require, or it does not require any.
[ ] I have added a changelog entry below, or my changes do not require one.

To the reviewers 👀

[ ] I would like at least one of the reviewers to run this PR on the simulator or device.

Changelog updates
Changelog updates

Cross-platform user-facing changes

iOS user-facing changes

Android user-facing changes

Dev changes

Need help with something? Have a look at our docs, or get in touch with us.

Warnings

:warning:

❌ An error occurred while validating your changelog, please make sure you provided a valid changelog.

  Generated by :no_entry_sign: dangerJS against 89bc0ead276b11a440f47baa384535939a1ec7c5


[Security] No biometric verification at XDAG-Pro launch

No illustration for this outcome.
If you close the program completely and go back to the Android springboard, and restart the application, no biometric identification is requested.
So anyone can launch XDAG-Pro on the smartphone without our knowledge (if our back is turned) and know the balance of our account.

The latest version already supports

Works. Perfect. Thanks 👍


Separation of editor view and selector view

Add this functionality to the blog post screen and we're golden!

Inline comments and then :ok:


Internal handling of extra_options seems inconsistent

This issue arises from when I was looking into the code considering #1082 and #1119
(@danwos as we discussed this morning)
The use of the config variable needs_extra_options and of the global variable NEEDS_CONFIG.extra_options seem inconsistent, in that:

Sometimes needs_extra_options is used, where it seems that NEEDS_CONFIG.extra_options should probably be used instead
NEEDS_CONFIG.extra_options is difficult to track, because at different stages it has new items added, which are obviously not taken into account in previous stages.

Below is a summary of their use in the code base:

Extra options are created by either:

A user adds them via the needs_extra_options configuration, as a list[str]
A user / extension uses api.configuration.add_extra_option to "programmatically" add a name to NEEDS_CONFIG.extra_options (raises NeedsApiConfigWarning if already added). For example sphinx-test-reports uses this in a config-inited event

They are used in the following places (in this order):

In load_config (config-inited event), needs_extra_options are added to NEEDS_CONFIG.extra_options object (a warning is raised if one already exists)

In load_config (config-inited event), each NEEDS_CONFIG.extra_options is added as an option on:

NeedDirective
NeedserviceDirective
NeedextendDirective (and also as +<name> -> unchanged and -<name> -> flag)

In check_configuration (config-inited event):

needs_filter_data keys are checked against needs_extra_options names; matching keys cause a NeedsConfigException
needs_extra_options names are checked against INTERNALS list; matching keys cause a NeedsConfigException
link type names (and their corresponding <name>_back key) are checked against needs_extra_options names; matching keys cause a NeedsConfigException
ensure all needs_variant_options keys match a needs_extra_options name, or a link type, or a default option; if not, a NeedsConfigException is raised

In prepare_env (env-before-read-docs event):

the ServiceManager is initialised and the GithubService and OpenNeedsService classes are registered via ServiceManager.register. In ServiceManager.register, for all options on the service class, the option is added to NEEDS_CONFIG.extra_options (if not already present)

additional "default" extra names are added to NEEDS_CONFIG.extra_options: hidden, duration, completion, constraints (if not already present)

In load_external_needs (env-before-read-docs event) for each loaded need, all fields in needs_extra_options are always kept (this data is then parsed on to add_external_need -> add_need)

In NeedDirective.run (called during read) for all names in NEEDS_CONFIG.extra_options gather pass kwargs to add_need, i.e. kwarks[name] = self.options.get(name, "")

It is of note that duration and completion are specifically gathered, but then surely must be overridden, since these are both added as defaults above (in prepare_env)

In NeedimportDirective.run, NEEDS_CONFIG.extra_options are added to the known_options list then, for each import need item, if a field is not in known_options it is dropped, the rest are passed to add_need

This is similar to the logic in load_external_needs, BUT that uses needs_extra_options instead of NEEDS_CONFIG.extra_options

In add_need (called before/during read) NEEDS_CONFIG.extra_options is passed to _merge_extra_options, as well as the kwargs passed to add_need:

All kwargs passed to add_need must either be in NEEDS_CONFIG.extra_options or in needs_extra_links (or a NeedsInvalidOption is raised)

In _merge_extra_options, for all the NEEDS_CONFIG.extra_options keys:

if the key is in kwargs, but not already set by add_need (i.e. is not an internal key), its value is set to kwargs[key], or
if the key is not already set by add_need (i.e. is not an internal key), it is set to a default value of ""

In NeedReportDirective, if required, need_extra_options are listed

One thing else I note @danwos:
I see now that the duration and completion fields are added for use by the needgantt directive.
For this there are also needs_duration_option and needs_completion_option configuration options, to change the name of these fiels.
However, since  duration and completion are hard-coded in the code base in a number of places,
I think if users were to use these configurations options to change the names, this would not work very well


Add DPG: OpenLMIS (Issue #555)

created with https://github.com/ericherman/dpg-csv-to-json - some cleanup may be desired.
See: https://github.com/unicef/publicgoods-candidates/issues/555#issuecomment-882435168

OpenLMIS initially submitted with several gaps in the DPG standard indicators which need to be addressed before we can proceed with the review:

[ ] Clear Ownership
[ ] Platform Independence
[ ] Adherence to Standards & Best Practices
[ ] Adherence to Privacy and Applicable Laws
[ ] Do No Harm
[ ] Protection from Harassment

I have contacted the person who made the submission and will update once they come through.


XCreds 5: Password Change window & login window

-Bug? The XCreds menubar app Sign-in window refreshBannerText key doesn't seem to work. I still see the default message: "Your local account password needs to be changed..." even though I have a custom string set for this. Im referring to XCreds menu item > Sign-in...> XCreds Passord Update window
-Feature Request: The "Password Update" window header/title cant be modified.  It currently says "XCreds Password Update" . Id prefer to be able to customize this string to remove the word "Xcreds" as my end-users don't know what XCReds is and it would be nice to add my org's name to ensure that users know its not malicious. I think this is slated for XCreds 5?
-Bug? If the Mac is offline, sometimes my org's cached custom "Sign in" wallpaper (menuItemWindowBackgroundImageURL) is not used, rather the XCreds default blue wallpaper is rendered (i.e.: with the XCreds logo in bottom right).  I dont see any cached files for this image in /Library/Caches/com.twocanoes.xcreds associated with the URL key.
I have also seen this behavior with the login window overlay a few times: I see the default macOS Sonoma wallpaper when offline,  not a cached version of my org's wallpaper (loginWindowBackgroundImageURL).  I do see a cached image file as expected in /Library/Caches/com.twocanoes.xcreds. One way to test this is to simply pull Ethernet from a Mac desktop running XCreds and  reboot. I see the macOS default wallpaper. Then I plug Ethernet back in and refresh the XCreds overlay. My custom wallpaper renders again. Stating the obvious, but my image is processed via a publically-readable URL -not locally.

worked for me. Added:
		<key>refreshBannerText</key>
		<string>abcasdfa asdf asdf asdf asdf asdf as dfads f</string>

I think I see what is happening. I have a group of test Macs using XCReds in AD only, and a set of Macs testing Azure/Entra + AD.
On the Azure/Entra Macs, the new <key>refreshBannerText</key> key is working. On the AD Macs it is not. Im using the same keys/values on both test group's profile. Example:
<key>shouldShowRefreshBanner</key>
<true/>
<key>refreshBannerText</key>
<string>Your local account password needs to be updated to match your Stowers cloud password.</string>

Screenshots:
Top = Entra + AD, bottom = AD only

Also, semi-related to this topic:  I may have misunderstood, but I was thinking that we would have the ability to remove "XCreds" in the window title bar (i.e. add our own custom string etc - users don't really now what XCReds is).

Update: The new customizable banner string is working as expected. The refreshBannerText key is functioning. Thanks.


Offline suggestions don't work in Android

Describe the bug
Offline suggestions don't work in Android
To Reproduce
Steps to reproduce the behavior:

Put the device in airplane mode
Import a photo of something you know the offline model will do well on
Tap "ADD AN ID" when you land on ObsEdit
On Suggestions, you get the activity indicator, but the offline suggestions never load

Expected behavior
Offline suggestions should load while offline
Context (please complete the following information):

Device: Pixel 8
OS: Android 14
App version: v0.20.0+68

Additional context
I'm fairly sure this is a bug in https://github.com/inaturalist/vision-camera-plugin-inatvision that I had to work around here because it was causing a crash, but I don't feel like I know enough about the problem to file an issue there. Clearly android.graphics.Bitmap.getWidth() is getting called on a null object, but I don't know how to replicate it only within the context of that package.

That's odd: the parameter for the image is named uri but a URI is not supported on Android.  Parameter uri is passed to BitmapFactory.decodeFile which expects a file path.
Even when the parameter issue is fixed, the offline suggestion still crashes on Android: A list of predictions is the expected return value. But on Android an object with a single name, value pair is returned instead. The name is predictions and the value is the array of predictions.

@kueda This should ideally be fixed in https://github.com/inaturalist/vision-camera-plugin-inatvision but a workaround is available and I can file a pull request for it if desired.

Thanks for looking into it, @joergmlpts, but I'm more interested in fixing the problem in vision-camera-plugin-inatvision. If you can articulate the problem there in concrete terms, perhaps you could file an issue in that repo?

@kueda I've tried to articulate the issue there. The pull request for this issue has maybe a simpler description.


installation problems

Hi. After cloning the repo and attempting to update node (not your problem I know), I can get to at most node 12.22.9
this is latest ubuntu
Then when I try run npm run dev
john@john-GF63-Thin-11SC:~/ai/minimal-llm-ui$ npm run dev

<EMAIL_ADDRESS>dev
next dev

sh: 1: next: not found

run npm install
then npm run dev
should work

Not a repo issue


Added Inverse depth projection factor

Added inverse depth projection measurement to support the new factor and Jacobians for various projection and backprojection functions.  Added unit tests for each of these along with the factor.  Reorganized some code in vision common for use with the depth projection factor.   More refactoring is being done in a different pr to allow for adding feature id's to the graph for optimization.

Looks good once build is fixed. Seems like there are multiple tests with the same name.


sciond: do not use snet.Addr in config

sciond config needs only the listening IP address.
The IA is being taken from topo itopo.Get().IA()
This commit introduces a breaking change in the sciond config.
The public now should be of <ip>:<port>, not ia,<ip>:port

This change is

go/sciond/internal/config/sample.go, line 36 at r1 (raw file):
Previously, lukedirtwalker (Lukas Vogel) wrote…
Yeah that's true. But I don't know what the correct wording should be. Maybe ask @scrye

It's probably the "Local" word that's misleading. Maybe reword to:
Listening address to register with the local dispatcher

?


unable to install -Inside the virtualenv, install TensorFlow:

everytime i execute the line
(tensorflow)$ pip install --upgrade <$url_to_binary.whl>
I get below errors. Experts pls help.
Hemanths-MBP:tensorflow hemanthreganti$ (tensorflow)$ pip install --upgrade <$url_to_binary.whl>
-bash: syntax error near unexpected token $' Hemanths-MBP:tensorflow hemanthreganti$  pip install --upgrade <$url_to_binary.whl> -bash: syntax error near unexpected token newline'
Hemanths-MBP:tensorflow hemanthreganti$ pip install --upgrade <$url_to_binary.whl>
-bash: syntax error near unexpected token newline' Hemanths-MBP:tensorflow hemanthreganti$  source bin/activate  (tensorflow)Hemanths-MBP:tensorflow hemanthreganti$ pip install --upgrade <$url_to_binary.whl> -bash: syntax error near unexpected token newline'
(tensorflow)Hemanths-MBP:tensorflow hemanthreganti$ (tensorflow)$ pip install --upgrade <$url_to_binary.whl>
-bash: syntax error near unexpected token $' (tensorflow)Hemanths-MBP:tensorflow hemanthreganti$ (tensorflow)$ python tensorflow/models/image/mnist/convolutional.py -bash: syntax error near unexpected token $'
(tensorflow)Hemanths-MBP:tensorflow hemanthreganti$ python tensorflow/models/image/mnist/convolutional.py
python: can't open file 'tensorflow/models/image/mnist/convolutional.py': [Errno 2] No such file or directory
(tensorflow)Hemanths-MBP:tensorflow hemanthreganti$

Hemanths-MBP:tensorflow hemanthreganti$ sudo pip install --upgrade virtualenv
Password:
The directory '/Users/hemanthreganti/Library/Caches/pip/http' or its parent directory is not owned by the current user and the cache has been disabled. Please check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
The directory '/Users/hemanthreganti/Library/Caches/pip' or its parent directory is not owned by the current user and caching wheels has been disabled. check the permissions and owner of that directory. If executing pip with sudo, you may want sudo's -H flag.
Requirement already up-to-date: virtualenv in /Library/Python/2.7/site-packages

The string "<$url_to_binary.whl>" should be replaced with the correct URL; please see elsewhere in that document to see which version of the whl file is right for you.

Thanks ebrevdo. I am unable to find any link on the page http://tensorflow.org/get_started/os_setup.md .Would you be able to provide me with the right link.

That page lists it under OS X section:
https://storage.googleapis.com/tensorflow/mac/tensorflow-0.5.0-py2-none-any.whl


[C#] Parquet to Arrow conversion

Hello,
I am trying to convert a Delta Table to an Arrow Stream.
The table can have any number of parquet files and may or may not be partitioned. I am using Parquet.Net to read Parquet Files.
How should I think about parity between parquet files and RecordBatch. Should I create one RecordBatch per parquet file? What should the overall parquet to arrow conversion logic look like? Any pointers?
Here's a tentative algorithm I have in mind.

Iterate over the list parquet files
Read ParquetRowGroupReader reader = parquetReader.OpenRowGroupReader(rowGroupIndex);
Extract Columns and Add them to a record batch one by one
Read RecordBatch into ArrowStreamWriter().

Appreciate any help with this.
Component(s)
C#

As an alternative to Parquet.Net, you could use ParquetSharp, which wraps the Arrow C++ Parquet library and has built-in support for reading Parquet files as Arrow record batches: https://github.com/G-Research/ParquetSharp/blob/master/docs/Arrow.md
Disclaimer: I'm a maintainer of ParquetSharp
But otherwise your algorithm seems sensible. I'd only suggest you might want one RecordBatch per row group rather than per file, in case your files contain many row groups and could be large.

Marking this as closed. In the absence of an "official" Apache C# implementation of a Parquet reader, I think there isn't much to add here. Interestingly, early versions of Parquet.Net also had an Arrow API but it was removed because the maintainer didn't see any advantage to it. (Utilization of Arrow was much less widespread in those days.)

Got it. Thanks @CurtHagenlocher

As an alternative to Parquet.Net, you could use ParquetSharp, which wraps the Arrow C++ Parquet library and has built-in support for reading Parquet files as Arrow record batches: https://github.com/G-Research/ParquetSharp/blob/master/docs/Arrow.md
Disclaimer: I'm a maintainer of ParquetSharp
But otherwise your algorithm seems sensible. I'd only suggest you might want one RecordBatch per row group rather than per file, in case your files contain many row groups and could be large.

Thanks @adamreeve - Looks like eventually I will need to move to ParquetSharp only. Arrow conversion with other Parquet parsers is pretty tedious to work with.


Prevent timing attacks in API authentication

By first finding the user by its ID, and then comparing the
authentication tokens, we prevent timing attacks.
This solution however requires sending the user's ID alongside its
token.

I don't understand the vulnerability. Could you explain it better or share the source?

I don't understand the vulnerability. Could you explain it in more depth or share the source?

More info here. https://app.asana.com/0/1142794766483633/1156142856809501/f
Perhaps we should use aid for PRing here so that the asana task gets linked?


[REQUEST] Re-splittable Layouts

I'm playing with some TUI-like ideas using Rich, in particular, adjustable layouts like tmux can do. I find myself wanting to change the splits for a layout dynamically.
If I understand the API correctly, once a Layout is split using Layout.split, there is no way to "unsplit" it - you can call split again to add more sub-layouts or change the direction, but you can't "start over". For my own experimentation I've been manually setting layout._children = [] and then calling split again with the new set of children I'd like it to have, like this:
header = Layout(Header(options), name="header", size=1)
footer = Layout(Footer(state=state, options=options), name="footer", size=1)
body = Layout(name="body", ratio=1)

root = Layout(name="root")
root.split(header, body, footer)

def resplit():
    body._children = []
    verts = []
    for group in state.tile_groups:
        v = Layout()
        v.split(*(tile.layout for tile in group), direction="vertical")
        verts.append(v)
    body.split(*verts, direction="horizontal")

... which is obviously not part of the public API :)
You can already dynamically change the renderable attached to a Layout using Layout.update, so I'm imagining a feature that provides a parallel capability for sub-layouts. It seems like the alternative is rebuilding Layout from scratch on every refresh, which would certainly work, but since the parents are also split Layouts, I would need to build the entire tree. So, this seems like a natural extension of the existing API and would lessen the need to store the desired layout structure externally to Rich.
Some possibilities I thought of for the implementation:

Add a keyword argument to split that make it split "from scratch" (Layout.split(..., resplit=True) ?). Given that you can already change the split direction by calling split again with a different keyword argument, this seems like the most natural implementation.
Add a separate method (Layout.resplit?) that clears the internal _children, then calls split.
Make the children property writeable (exposes much more API surface than I imagine you want to expose).

If you like the idea, I'm happy to do a PR to add the feature if you can provide some guidance on your preferred solution!

Hi Josh,
Perhaps an unsplit method that sets children to []?  Then you could call split again.
Let me think about that one. In the meantime, you have my permission to use the private method... :-)

There will be an unsplit() method in the next version. split() will reset the splits as though you set children to [], and there will be a add_split() which adds additional layouts to the current split.


Support JSend style

I LIKE IT.
http://labs.omniti.com/labs/jsend
This works for me.
We can make this the standard way we send responses.
We can use a flag when constructing the endpoint using the builder to denote the JSend style. endpointBuilder.setJSend(true).

Here is the official spec for this feature.
https://github.com/advantageous/qbit/wiki/[Z-Proposal]-JSend-style-support-for-idiomatic-QBit-REST-Java-support

started this