import/no-duplicates  performance slow

code:
import fs from 'node:fs/promises';
import os from 'node:os';
import path from 'node:path';
import util from 'node:util';

import { findWorkspacePackagesNoCheck } from '@pnpm/find-workspace-packages';
import consola from 'consola';
import c from 'picocolors';

console.log(fs, path, findWorkspacePackagesNoCheck, consola, c, os, util);

Versions:

  System:
    OS: macOS 13.2.1
    CPU: (8) x64 Intel(R) Core(TM) i5-8257U CPU @ 1.40GHz
    Memory: 1.74 GB / 16.00 GB
    Shell: 5.8.1 - /bin/zsh
  Binaries:
    Node: 18.15.0 - ~/Library/Caches/fnm_multishells/87111_1679468379491/bin/node
    npm: 9.6.2 - ~/Library/Caches/fnm_multishells/87111_1679468379491/bin/npm
  npmPackages:
    eslint: ^8.36.0 => 8.36.0
    eslint-plugin-import": 2.27.5

I have the same problem :(
Rule                              | Time (ms) | Relative
:---------------------------------|----------:|--------:
import/no-duplicates              | 72224.446 |    63.4%
import/default                    | 31071.649 |    27.3%
indent                            |  2149.804 |     1.9%
no-imports/outside-special-folder |  2124.553 |     1.9%
import/no-unresolved              |  1399.763 |     1.2%
react/no-direct-mutation-state    |   600.695 |     0.5%
import/export                     |   268.659 |     0.2%
import/no-named-as-default-member |   251.551 |     0.2%
react/no-typos                    |   230.053 |     0.2%
react/require-render-return       |   205.671 |     0.2%

and if you comment out no-duplicates, what happens to the other import rules?

It might not a problem about a specific rule.
For our project, import/extensions is extremely slow consitently.
Rule                                 |  Time (ms) | Relative
:------------------------------------|-----------:|--------:
import/extensions                    | 103423.841 |    64.9%
import/no-extraneous-dependencies    |  19748.530 |    12.4%
import/no-cycle                      |  14308.905 |     9.0%
import/order                         |   2371.498 |     1.5%
import/no-relative-packages          |   1831.405 |     1.1%
@typescript-eslint/naming-convention |   1697.527 |     1.1%
react/no-unstable-nested-components  |   1021.375 |     0.6%
react/function-component-definition  |    915.998 |     0.6%
import/no-unresolved                 |    685.094 |     0.4%
react/prefer-stateless-function      |    638.503 |     0.4%

However, when I turn off import/extensions as https://github.com/import-js/eslint-plugin-import/issues/2746#issuecomment-1654483023 suggests, the other rule get extremely slow.
Rule                                 |  Time (ms) | Relative
:------------------------------------|-----------:|--------:
import/no-extraneous-dependencies    | 114140.980 |    77.9%
import/no-cycle                      |  12257.164 |     8.4%
import/order                         |   2212.973 |     1.5%
import/no-relative-packages          |   1627.329 |     1.1%
@typescript-eslint/naming-convention |   1573.758 |     1.1%
react/no-unstable-nested-components  |    963.062 |     0.7%
react/function-component-definition  |    809.087 |     0.6%
import/no-unresolved                 |    678.688 |     0.5%
react/prefer-stateless-function      |    608.823 |     0.4%
react/static-property-placement      |    557.109 |     0.4%

I don't know plugin-import internal but I'm suspicous of something like common setup.

Related to ExportMap performance?

true, but it does invoke the resolver, which in turn uses the ModuleCache, so maybe that's the problem.

I'm investigating it. I'm testing by TIMING=1 npx eslint ./src/test/browser/fixtures/esbuild.browser.config.mjs on https://github.com/nodejs/readable-stream.
Rule                 | Time (ms) | Relative
:--------------------|----------:|--------:
import/no-duplicates |     3.102 |    15.1%
indent               |     2.234 |    10.9%
n/no-deprecated-api  |     1.241 |     6.0%
no-extra-parens      |     0.689 |     3.3%
keyword-spacing      |     0.689 |     3.3%
no-unused-vars       |     0.589 |     2.9%
comma-dangle         |     0.414 |     2.0%
key-spacing          |     0.401 |     1.9%
object-shorthand     |     0.379 |     1.8%
object-curly-newline |     0.301 |     1.5%

requireResolver() and withResolver() is suspicious. Skipping them the rule gets faster.
diff --git a/utils/resolve.js b/utils/resolve.js
index b332d2ec..7669d4ee 100644
--- a/utils/resolve.js
+++ b/utils/resolve.js
@@ -197,6 +197,7 @@ function fullResolve(modulePath, sourceFile, settings) {
   for (const pair of resolvers) {
     const name = pair[0];
     const config = pair[1];
+    continue;
     const resolver = requireResolver(name, sourceFile);
     const resolved = withResolver(resolver, config);

Rule                 | Time (ms) | Relative
:--------------------|----------:|--------:
indent               |     2.074 |    12.4%
n/no-deprecated-api  |     1.047 |     6.3%
keyword-spacing      |     0.674 |     4.0%
import/no-duplicates |     0.615 |     3.7%
no-unused-vars       |     0.560 |     3.3%
no-extra-parens      |     0.515 |     3.1%
object-shorthand     |     0.343 |     2.0%
key-spacing          |     0.326 |     1.9%
comma-dangle         |     0.322 |     1.9%
space-in-parens      |     0.303 |     1.8%

【FYI / NITS】
settings['import/core-modules']?.includes() ?? false should be faster than new Set() -> coreSet.has(settings['import/core-modules']). Though Set.prototype.has() costs only O(1), new Set() costs O(n).
https://github.com/import-js/eslint-plugin-import/blob/67cc79841fc823ad4af2532af2dc6704e4b3b03a/utils/resolve.js#L155-L156
It shouldn't be bottleneck, though.

@seiyab so the slowest one takes 3 milliseconds? that seems plenty fast enough.

@ljharb yes, after posting that I've also considered the measurement didn't reproduce problem like https://github.com/import-js/eslint-plugin-import/issues/2746#issuecomment-1759205571. I'll look for another reproducible open project. or will use our private project.

https://github.com/mui/material-ui
TIMING=1 pnpm run lint

Rule                                 | Time (ms) | Relative
:------------------------------------|----------:|--------:
import/no-cycle                      | 11629.303 |    15.7%
import/no-named-as-default           |  8170.978 |    11.0%
@typescript-eslint/naming-convention |  6511.814 |     8.8%
@next/next/no-html-link-for-pages    |  5490.743 |     7.4%
@typescript-eslint/no-redeclare      |  2707.642 |     3.7%
import/extensions                    |  2278.599 |     3.1%
react/default-props-match-prop-types |  2108.763 |     2.9%
react/no-unstable-nested-components  |  1746.450 |     2.4%
react/no-direct-mutation-state       |  1738.888 |     2.4%
react/prefer-stateless-function      |  1412.814 |     1.9%

user@projects/material-ui [master] % pnpm ls eslint-plugin-import eslint
Legend: production dependency, optional only, dev only

<EMAIL_ADDRESS>/home/user/projects/material-ui (PRIVATE)

devDependencies:
eslint 8.57.1
eslint-plugin-import 2.31.0

Using our private repository, I found mysterious & suspicious performance behavior.
with our usual setting ( import/resolver': 'webpack' as default, 'import/resolver': {'typescript': {}} for test):
Rule                 | Time (ms) | Relative
:--------------------|----------:|--------:
import/no-duplicates | 21406.288 |    94.3%
import/extensions    |  1301.346 |     5.7%

with 'import/resolver': {'typescript': {}} for all files:
Rule                 | Time (ms) | Relative
:--------------------|----------:|--------:
import/no-duplicates |  3216.390 |    81.0%
import/extensions    |   753.628 |    19.0%

with 'import/resolver': 'typescript' for all files:
Rule                 | Time (ms) | Relative
:--------------------|----------:|--------:
import/no-duplicates |  8249.529 |    90.5%
import/extensions    |   861.413 |     9.5%

with 'import/resolver': 'webpack' for all files:
Rule                 | Time (ms) | Relative
:--------------------|----------:|--------:
import/extensions    | 19207.499 |    82.5%
import/no-duplicates |  4085.457 |    17.5%

with 'import/resolver': {'webpack': {}} for all files:
Rule                 | Time (ms) | Relative
:--------------------|----------:|--------:
import/extensions    | 19307.205 |    82.2%
import/no-duplicates |  4169.535 |    17.8%

Webpack resolver looks slow
For TypeScript resolver, object style configuration is faster (why?)

We can use https://github.com/metabase/metabase to reproduce import/no-duplicates performance issue.
TIMING=1 yarn lint-eslint-pure

Rule                       | Time (ms) | Relative
:--------------------------|----------:|--------:
import/no-duplicates       | 22372.314 |    85.8%
import/extensions          |  3298.641 |    12.7%
no-restricted-imports      |   208.093 |     0.8%
cypress/no-async-tests     |    50.804 |     0.2%
no-unscoped-text-selectors |    36.703 |     0.1%
react/prop-types           |    33.530 |     0.1%
quotes                     |    17.916 |     0.1%
no-var                     |    17.713 |     0.1%
cypress/no-pause           |    15.507 |     0.1%
jest/expect-expect         |     6.906 |     0.0%

.eslintrc.js customized for this issue
const shouldLintCssModules =
  process.env.LINT_CSS_MODULES === "true" || process.env.CI;

module.exports = {
  rules: {
    "no-var": 'error',
    "import/no-duplicates": "error",
    "import/extensions": "error",
  },
  globals: {
    before: true,
    cy: true,
    Cypress: true,
  },
  env: {
    browser: true,
    es6: true,
    commonjs: true,
    jest: true,
    "jest/globals": true,
  },
  parser: "babel-eslint",
  plugins: ["react", "no-only-tests", "postcss-modules", "jest", "jest-dom", "testing-library", "react-hooks", "import"],
  settings: {
    "import/internal-regex": "^metabase/|^metabase-lib/",
    "import/resolver": {
      webpack: {
        typescript: true,
      },
    },
    "import/ignore": ["\\.css$"],
    react: {
      version: "detect",
    },
    "postcss-modules": {
      baseDir: "./frontend/src",
    },
  },
  parserOptions: {
    ecmaFeatures: {
      legacyDecorators: true,
    },
  },
  overrides: [
    {
      // extends: ["plugin:@typescript-eslint/recommended"],
      files: ["*.ts", "*.tsx"],
      parser: "@typescript-eslint/parser",
      plugins: ["@typescript-eslint"],
    },
  ],
};

With original .eslintrc.js, import/namespace looks extremely slow.
Rule                              | Time (ms) | Relative
:---------------------------------|----------:|--------:
import/namespace                  | 52543.252 |    68.1%
@typescript-eslint/no-unused-vars |  4169.029 |     5.4%
react/no-direct-mutation-state    |  2229.357 |     2.9%
react/display-name                |  1494.308 |     1.9%
import/order                      |  1132.319 |     1.5%
import/no-unresolved              |  1028.299 |     1.3%
react/require-render-return       |   729.862 |     0.9%
react/prop-types                  |   715.279 |     0.9%
import/export                     |   679.368 |     0.9%
depend/ban-dependencies           |   653.273 |     0.8%
error Command failed with exit code 1.

What about if you add node: {} at the end of the object?

With 'import/resolver': {'webpack': {}, 'node': {}}
Rule                 | Time (ms) | Relative
:--------------------|----------:|--------:
import/extensions    | 19836.250 |    82.8%
import/no-duplicates |  4123.201 |    17.2%

With 'import/resolver': {'node': {}} (fails to resolve)
Rule                 | Time (ms) | Relative
:--------------------|----------:|--------:
import/extensions    |  2864.346 |    63.3%
import/no-duplicates |  1663.351 |    36.7%

Viewing framegraph, I found that our webpack.config.js costs a lot. new ForkTsCheckerWebpackPlugin() is dominant. Probably function style webpack config is evaluated every resolution. I'll investigate whether we can cache it.
Workaround for who uses webpack resolver + function style webpack config + fork-ts-checker-webpack-plugin:
Option 1: Exclude FortkTsCheckerWebpackPlugin in ESLint
Option 2: Instantiate FortkTsCheckerWebpackPlugin only once:
const ftcwp = new FortkTsCheckerWebpackPlugin()
// ...
module.exports = module.exports = (_env, arg) => {
  // ..
  plugins: [
    ftcwp,
    // ...

I'm confused why you'd be doing anything with typescript in webpack at all (beyond stripping types and building source maps) - bundlers should be building, not validating. Type checking is a linter like eslint, and should run separately as part of that stage of your CI.

Our main type check runs on another script but we use fork-ts-checker-webpack-plugin to find problem earlier on dev server. Honestly, I'd rather remove it. Just inheriting legacy. But cant' it make sense at all?
I'm not sure whether I understand you or not, I'm not an English speaker.
On the other hand, it might be a good time to remove it. I'll discuss with our team, thanks.
I'd also like to ask you whether caching function webpack config result makes sense. Other plugin can cause problem for others. Or it might improve performance even if we omit type checker.

I’m not sure caching it is possible, since it’s not static, so it could change each time

What is not static? You mean that multiple webpack configs can exist in single project?
Caching it worked fine for our project. With 'import/resolver': {'webpack': {}}:
Rule                 | Time (ms) | Relative
:--------------------|----------:|--------:
import/extensions    |  2709.963 |    73.1%
import/no-duplicates |   996.104 |    26.9%

My cache implementation:
const _fnCache = [];
function evaluateFunctionConfig(config, env, argv) {
  const cacheKey = { config, args: [env, argv] };
  for (let i = 0; i < _fnCache.length; i++) {
    if (config === _fnCache[i].key.config && isEqual(_fnCache[i].key.args, cacheKey.args)) {
      return _fnCache[i].value;
    }
  }
  const cached = {
    key: cacheKey,
    value: config(env, argv),
  };
  // put in front and pop last item
  if (_fnCache.unshift(cached) > MAX_CACHE) {
    _fnCache.pop();
  }
  return cached.value;
}

I mean that a single webpack config can generate different results for different inputs, because it's not a static configuration.
Certainly if your own config is deterministic then it can be cached, but there's no way for this plugin to be sure of that.

Different results for different inputs shouldn't be a matter as we include arguments as cache key.
Does deterministic mean same results for same inputs? I can't imagine meaningful config with different results for same inputs.
Do I misunderstand?
If you mind compatibility, can I implement the cache feature under cache: true config?
Or if you also worry about complexity and maintainability, I will give up to change eslint-import-resolver-webpack and will employ a workaround or publish my own cached resolver.

If it's opt-in for the webpack resolver, then sure, that sounds great to include.


RELEASE: q2 remdripper bot eth

Codecov Report

Merging #227 (830a1b5) into main (d78310d) will increase coverage by 0.04%.
The diff coverage is 100.00%.

@@            Coverage Diff             @@
##             main     #227      +/-   ##
==========================================
+ Coverage   37.88%   37.92%   +0.04%
==========================================
  Files          19       19
  Lines        1465     1466       +1
==========================================
+ Hits          555      556       +1
  Misses        910      910

Impacted Files
Coverage Δ

config/constants.py
100.00% <100.00%> (ø)

src/utils.py
97.14% <100.00%> (ø)


ShimGen is slow

use this command to see what i mean:
choco install sysinternals
It takes "Forever"!
If you Shim 1 exe, no big deal.
When you Shim 123 exes from sysinternals, oh my....

Based on some changes happening to the Chocolatey repositories, this issue has been moved from the chocolatey/shimgen repository to the chocolatey/home repository.


Support for odata any() fluent filter with empty filter body

Right now odata2ts filter builder supports expressions like ~/Movies/?$filter=any(Actors,any(it/Tags, it eq 'Favorite')) but does not support a valid filter like the following: ~/Movies/?$filter=Tags/any() where any() filter body is empty.

With release<EMAIL_ADDRESS>there's now support for empty lambda operators.
So these usages are valid now:
qPerson.trips.any().toString() === "Trips/any()"
qPerson.trips.any(() => {})).toString  === "Trips/any()"

The same goes for all, of course.
See tests

Seems to work well. Thank you 🙂


Onboarding Design for Importing Partners

Resolves #001
Description

• The "Import Partners" button currently links to a modal with detailed download & upload instructions. To improve the user experience, the instructions have been divided into two major steps and the design now includes font awesome icons, a modern font, and a clean, padded look. These design changes only effect the modal structure and style on the app/views/partners/index.html.erb file. Application.scss currently holds the updates modal's styles. This was requested during Ruby for Good 2018.
Type of change
• Design change
How Has This Been Tested?
• This has been tested in Chrome, Firefox, and Safari. IE has NOT been tested but the HTML and CSS changes shouldn't present a problem in IE11 or IEedge. The responsive flow is perfect.

Screenshots
• Before and After screenshots are attached.

Thanks @melaniew ! :100: :100:


The query_log configuration doesn't seem to be working

Hello, great job on this library, it made it a lot easier for me when I had to quickly integrate the OS. Much appreciated.
🙋 Do these configuration settings from database connection even work?
    'query_log'    => [
        'index'      => false,  // Or provide a name for the logging index ex: 'laravel_query_logs'
        'error_only' => true,   // If false, then all queries are logged if the query_log index is set
    ],

Despite providing the name of the index that exists, nothing is logged into it.
I also searched the source code of your library and found no references to these configuration variables anywhere.

Hey @m-kas, this was an alpha feature from the elasticsearch version of this package quite some time ago. I can't remember why I abandoned this feature. I think in part that logging every query was impractical but logging the errors still makes sense. I'll revisit this and let you know.
Just looking for the errors right?

If possible, logging all queries, not just errors, would be great. If not, at least errors 🙏
Thanks in advance, best!

Hi @m-kas, I have fixed this up now, however you'll need to upgrade to the latest version of the package (v2.0.2) and change some settings in your database.php file as follows:
// database.php
'opensearch' => [
  'driver'          => 'opensearch',
  //......
  //......
  //......
  'error_log_index' => env('OS_ERROR_INDEX', false),
],

If you set OS_ERROR_INDEX in your .env then that will be the index that the errors are written to. This will be useful when keeping track of index errors throughout your app.
Keep track of all queries was not a viable option as it inundated the tracking index, however, if you want to see what's happening under the hood, the latest release has a toDsl() method that you can use to see how the query builder is being parsed, docs: https://opensearch.pdphilip.com/os-specific#to-dsl
All the best


drop support for QUIC draft-29

The only remaining user of draft-29 I'm aware of is the IPFS network, see https://github.com/ipfs/kubo/issues/9496 and https://github.com/libp2p/go-libp2p/issues/1841.
go-libp2p v0.24.0 was the first version that introduced the new QUIC code point, and was released in Kubo v0.18.0. The current distribution of versions can be found in the weekly ProbeLab measurement reports.
I expect to drop draft-29 support some time in the (Northern hemisphere) summer this year.

To all quic-go users: If you're relying on draft-29, please let us know in the comments.

For anyone following this issue, #3903 drops support for draft-29. I'm planning to cut v0.36 without this PR (i.e. still supporting draft-29), and merge #3903 as one of the first commits for the v0.37 release.


Feature/company api

Went ahead and added basic support for the company API as we needed it for a project. Let me know if all looks good.

Merged - thanks!


Metamask is unable to fetch data

Hi,
For the past few days I have been facing the issue of not getting  data when using Metamask as web3 provider in remix. While Infura is returning correct data for same contract. I am testing on Kovan testnet.
Below are the screenshots :

Any help would be appreciated.
Thanks!

this seems like a metamask issue, please file over on https://github.com/MetaMask/metamask-extension/issues/new if this is still an issue


DocsArchive-<IP_ADDRESS>Auto archive content

Please don't merge this PR until target archive repo PR https://github.com/OPS-E2E-PPE/docs-archive-test-target/pull/1012 is merged into live branch.
Auto archive content to https://github.com/opstest2/docs-archive-test-target.git

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

File
Status
Preview URL
Details

:x:Error

Details

[Error: GitBranchDeletedOrForcePushed] Cannot sync git repo to specified commit because branch Release_Archive_main_2022-01-25-05-41-46 has been deleted or has been force pushed

For more details, please refer to the build report.
If you see build warnings/errors with permission issues, it might be due to single sign-on (SSO) enabled on Microsoft's GitHub organizations. Please follow instructions here to re-authorize your GitHub account to Docs Build.
Note: Broken links written as relative paths are included in the above build report. For broken links written as absolute paths or external URLs, see the broken link report.
Note: Your PR may contain errors or warnings unrelated to the files you changed. This happens when external dependencies like GitHub alias, Microsoft alias, cross repo links are updated. Please use these instructions to resolve them.
For any questions, please:Try searching the docs.microsoft.com contributor guidesPost your question in the Docs support channel


⚠ Bofrost.be has degraded performance

In 6ec763c, Bofrost.be (https://www.bofrost.be) experienced degraded performance:

HTTP code: 200
Response time: 1163 ms

Resolved: Bofrost.be performance has improved in ded5376.


Yankpad inserts table at level of Org heading instead of left margin as expected

First, thanks for sharing this software, it's really useful! :beers:
It is entirely possible that I am not understanding something here, but after searching around docs, variables, the Internet, Issues here, etc. I still cannot seem to figure this out.
Say I have a table like so in my yankpad.org file:
** table: plain 2Cx2R
|---+---|
|   |   |
|---+---|
|   |   |
|---+---|

If I try to yankpad that in under an Org heading, I end up with:
*** heading

    |---+---|
    |   |   |
    |---+---|
    |   |   |
    |---+---|

Whereas what I would expect would be:
*** heading

|---+---|
|   |   |
|---+---|
|   |   |
|---+---|

Is there some setting I can change, or...?  This is driving me nuts.  I used to indent everything to Org heading, but more recently I started writing everything aligned to left margin because I have some fairly deep level headings and I was running out of room.
I thought I could wrap it in some script to automate what I now do manually (removing spaces on left side), but then I thought to myself "that is crazy and there must be some setting you have overlooked" and then I decided to post here.
At one point I checked the default behavior of "C-c |" (org-table-create-or-convert-from-region) which did what I expect, aligning the table with the left margin.  I don't like how the top and bottom of the default tables are left open however, so that's not a solution for me, unfortunately.
I also thought changing the setting of yankpad-respect-current-org-level might help, but it did not (and I even did yankpad-reload afterward (not sure if necessary).
So, any hints would be greatly appreciated.  With the small amount of hair I have left to work with, I cannot afford to pull any more out... :smile:

Hi! I'm glad you enjoy Yankpad! Have you tried what's suggested under the indent_nil special tag in the README?

@Kungsgeten,
That worked!  Thank you so much for very fast reply!
I feel very foolish now, as it is right there in the README as you say.  :frowning_face:
I didn't realize all that useful information was so far down there, but now I will refer back to it much more often.  I think I only get so far into all the examples each time before reading a bunch of things that don't apply to me and bailing out.  But on each re-read I penetrate a little further...  It's a powerful tool though with lots of features (which is a Good Thing) so shame on me for not reading more before posting...

No worries at all! I think its quite hard (and sometimes cumbersome) to write documentation which is easy to follow and understand.

We were having very same discussion in another project that I am involved in.  Project lead referenced some book he had read, which made the point not to make people work too hard to find the information.  I think I must be on the spectrum somewhere (not suggesting you are, only speaking for myself), because this is something I have struggled with, personally, for years (when writing docs, or anything, really).  I have a tendency to ramble on and on...  So it is in the sense of "yes I have been there" that I offer up this hopefully constructive comment.
Perhaps move things around?  Move the examples down?  Or maybe not?  Maybe I am the only one who had problem finding this information.  I also been reading about format of eg., man pages and --help command line output, etc. for use in my own little tools recently.  So maybe I assume most important info at top and examples further down.
Also, I may have made another bad assumption.  There are so many little projects on GitHub with little to no documentation, that only provide examples and no real explanation.  So after reading through certain number of examples on the README, I think I gave up before getting to the information I was looking for.  I suppose I assumed that was the case here, but turned out not to be the case at all.  You actually have lots of really good and pertinent documentation, it's just way down there after the examples.
Anyway, my two cents.  Perhaps useful for your consideration as en educator.  Or perhaps I presume too much, and you could likely educate me volumes on the subject. :smile:  Anyway, nice chatting with you. :beers:


Realtime database SetValue Future never completes

EDIT: I tried to run the quickstart-cpp database testapp and it fails as well.
Initialize Firebase Auth and Firebase Database.
Attempt to initialize Firebase Auth.
Attempt to initialize Firebase Database.
Successfully initialized Firebase Auth and Firebase Database.
WARNING: Persistence is not currently supported.
Auth: Signed in anonymously.
URL: https://testproject-e881a.firebaseio.com/test_app_data/-MDy62gVjP503BviBOGF
TEST: Set simple values.

The log stops there.
Again, the futures don't complete.
So that should rule out any errors in code. I think the only thing that's left is my internet connection/firewall.
My understanding is that the database uses https on port 443, however other SSL applications work fine.
Could it be an expired SSL certificate or something? What else happens under the hood, how is the connection established? Do I need to open/forward any ports?
Is the future thread is never started perhaps? Is  there a deadlock? Am I running in single threaded mode and need to switch to multithreaded?
This would all be much easier if there was an actual error message.
EDIT2:
I tethered my phone to my laptop and used my LTE data connection. Everything works like a charm. So clearly my internet connection is to blame here. Again, it would be helpful to know the specifics of the firebase connection protocol to see where it breaks exactly.
EDIT3:
The REST api works fine as well.
Both these requests execute successfully and the data shows up in the console.
curl -X POST -d '{"user_id" : "jack", "text" : "Ahoy!"}' 'https://testproject-e881a.firebaseio.com/users/jack/name.json'
curl -X PUT -d '{ "first": "Jack", "last": "Sparrow" }' 'https://testproject-e881a.firebaseio.com/users/jack/name.json'
Please fill in the following fields:
Pre-built SDK from the website or open-source from this repo: Pre-built
Firebase C++ SDK version: 6.15.1
Firebase plugins in use (Auth, Database, etc.): database, auth, app, firestore, messaging, functions
Additional SDKs you are using (Facebook, AdMob, etc.): n/a
Platform you are using the C++ SDK on (Mac, Windows, or Linux): Windows 10
Platform you are targeting (iOS, Android, and/or desktop): desktop
Please describe the issue here:
I'm trying to write some data to my realtime database using SetValue. However, the future returned by SetValue never completes and the data is not written. The weird thing is that this is intermittent - it used to work reliably but after switching my work location and upgrading from 6.15.0 to 6.15.1 it only works sometimes. Super weird. Looking at the firebase console I see that this has nothing to do with permissions because no requests are received. Here's my code
database->set_log_level(firebase::kLogLevelDebug);
firebase::database::DatabaseReference myRef =
    database->GetReference().Child("uids");
std::string key = myRef.PushChild().key();
auto future = myRef.Child(key).Child("uid").SetValue("waiting");
future.OnCompletion([](const firebase::Future< void >& completed_future,
                     void* user_data) {
  if (completed_future.error() == 0) {
    LogMessage("FUTURE COMPLETED");
  }
  else {
    LogMessage("Error %d: %s",
             completed_future.error(),
             completed_future.error_message());
  }
}, nullptr);
ProcessEvents(5000);

This code does not print anything and no value gets written which makes it difficult to debug. Initially I thought it might be my internet connection but it appears the future never completes at all. Maybe it is my internet connection, I don't know how to debug this.
Please answer the following, if applicable:
Have you been able to reproduce this issue with just the Firebase C++ quickstarts ?
Haven't tried it yet, will do asap though.
What's the issue repro rate? 9/10

@deekay42
Firebase Realtime Database is using WebSocket protocol, which is using 443 port for ssl connection but not running HTTP protocol after the initial handshake.
Is it possible that your wireless router block non-HTTP communication at port 443?  Could you try to disable the Firewall on your PC and your router and try it again.
As Wikipedia stated
Some proxy servers are transparent and work fine with WebSocket; others will prevent WebSocket from working correctly, causing the connection to fail.


Help for plugins duplicated after running get model services

if plugins are loaded and the model service status is run. Model Help is duplicated in help display.

will be available in 0.6.6


[GitHub] Fix undefined badges

This pull request addresses issue #1768.
I noticed that many other GitHub badges were suffering from this same problem, but for now I've only fixed it for the "issues" badge and will wait for some initial feedback before tackling the other ones. 😉

Warnings

:warning:

Found 'assert' statement added in lib/github-helpers.spec.js. Please ensure tests are written using Chai expect syntax

Messages

:book:

:sparkles: Thanks for your contribution to Shields, @PyvesB!

  Generated by :no_entry_sign: dangerJS

this is a rather strange way for GitHub to report when a repo is not found:
{
  "message": "Validation Failed",
  "errors": [
    {
      "message": "The listed users and repositories cannot be searched either because the resources do not exist or you do not have permission to view them.",
      "resource": "Search",
      "field": "q",
      "code": "invalid"
    }
  ],
  "documentation_url": "https://developer.github.com/v3/search/"
}

Do you think it would be worth checking the message field matches and isn't trying to report a different error?

I get your point and I did think about that alternative as well, but I felt slightly less enthusiastic about it:

to avoid parsing the response body several times, we would probably have to parse it before we check the response codes and pass it as a parameter to githubCheckErrorResponse, which seems to me as the wrong ordering of operations. Also, would this lead us to more trouble when we migrate the GitHub services to the new refactored service structure?
It seems quite clumsy, we would have to iterate through all the elements inside the errors array and look for a message that is more likely to change than a status code.

Does this make sense?

No worries, I think it should be fine as is 👍

I'll have a go at fixing the other badges in the coming days, we can think about it some more in the meantime and see how it looks once everything is done. 😉

Is this waiting for another review? Let me know if you need me to take another look.

Yes, I wouldn't mind someone taking a look at the final result! 👍


Reversible typecasts (parent task)

When we ingest data into TileDB from, say, AnnData, we need to remap a few things to be storable:

Categorical strings to strings
bool to uint8
Unicode array dimensions to ASCII dimensions -- necessary for TileDB at present
Unicode array attributes to ASCII array attributes -- TileDB allows attributes to be Unicode, but, they are not queryable via the QueryCondition API. See also #99.

Source links:

util_ann.decategoricalize
util._to_tiledb_supported_array_type

Related: #105
Item 2 will be addressed in TileDB Core 2.10, where we'll have native boolean support. The remaining ones, though, are ongoing concerns.
Proposal for item 1:

Use TileDB group/array metadata tags
Indicate the following at the SOMA-group level:

Source provenance (e.g. anndata, seurat)
Language and package version of the code that wrote the data

Indicate the following at the SOMA-array level:

Either a dict from all columns to their original types, or, just the 'exceptions' (e.g. categorical-string columns)

Proposal for items 3 and 4:

See #99

Split out remaining issues to #866 and #867. cc @maniarathi


Default to speakeasy prod grpc endpoint

Signed-off-by: Sagar Batchu<EMAIL_ADDRESS>

@simplesagar I am going to close this as I handle it in my PR


Login doesn't place cursor in username/email field by default

This issue was moved to tightenco/symposium#4


Unrecognised processing directive and token

Unrecognised processing directive on all the header files in Cocoa_stubs.c
#import <caml/threads.h>
^^^^^^^

and unrecognised token on annotations
@interface View : NSView
^

Any idea what's causing this ?

Hey @rauanmayemir,  yeah I suppose that's why the error occurs since classes are also a part of objective-c. so what's the roadmap for this ?
I can try to rewrite it in C.

You don't have to. clang understands this if you just pass -x objective-c to the compiler.
Note that we don't use XCode when working on stubs. I couldn't figure out all the ARC warnings, but you can try playing around with it.
If you run esy bootstrap:cocoa, it will create an XCode project from xcodegen spec.
esy bootstrap:mac will create an XCode project in BRTesterMac/mac that you can build and run. The steps would be:
% from the root
esy install
esy build:mac
esy bootstrap:mac
esy run:mac

Those steps end up showing this
error: tool 'xcodebuild' requires Xcode, but active developer directory '/Library/Developer/CommandLineTools' is a command line tools instance

Do you have XCode on your mac? You'll also need to install XCode command line tools.

Yeah I have that already installed. How do I use that for running ?

You don't use it, you just need it for xcodebuild to work from command line. esy run:mac would be the one calling those commands.

This command sudo xcode-select -s /Applications/Xcode.app/Contents/Developer got the job done :-).


JavaVisitors should visit modifiers

What problem are you trying to solve?
While solving #2838 I realized that modifiers are currently not properly visited. In consequence I can neither react to approached modifiers by marking nor can I discover annotations on these modifiers as we stop visiting on modifier-level.
To further illustrate, the following test case shows how modifiers are not further visitted. A testcase exactly for "not visiting" modifiers was not possible as the method does not exist, but here we try to visit the annotation which is a sub element of our modifier.
  @Test
  @ExpectedToFail("https://github.com/openrewrite/rewrite/issues/3502")
  void shouldVisitAnnotationWhenBoundToModifier() {
      rewriteRun(
        spec -> spec
          .executionContext(new InMemoryExecutionContext())
          .recipe(toRecipe(() -> new JavaIsoVisitor<>() {
              @Override
              public J.Annotation visitAnnotation(final J.Annotation a, final ExecutionContext executionContext) {
                  J.Annotation annotation = super.visitAnnotation(a, executionContext);
                  if (annotation.getComments().isEmpty()) {
                      annotation = annotation.withComments(List.of(new TextComment(true, "I was visited!", "", Markers.EMPTY)));
                  }
                  return annotation;
              }
          })),
        java(
          """
            public @Deprecated final class A {
            }
            """,
          """
            public /*I was visited!*/@Deprecated final class A {
            }
            """
        )
      );
  }

Describe the solution you'd like

We should extend the JavaVisitor with a method public J visitModifier(J.Modifier modifier, P p). Also, this should delegate two visit child elements such as annotations.

public J visitModifier(J.Modifier modifier, P p) {
    J.Modifier m = modifier;
    m = m.withPrefix(visitSpace(m.getPrefix(), Space.Location.MODIFIER_PREFIX, p));
    m = m.withMarkers(visitMarkers(m.getMarkers(), p));
    m = m.withAnnotations(ListUtils.map(m.getAnnotations(), a -> visitAndCast(a, p)));
    return m;
}

Then any other visit function that works with modifiers, hopefully already calls visit, but we should check.

Have you considered any alternatives or workarounds?
They are translated into J.Modifier but as they are not visited separately there is no work around.
Additional context
This one is necessary to solve the last few issues with annotations on modifiers in #2838

Good to see you're back @AlexanderSkrock ; hope all is well. I'll tag @knutwannheden for review; typically we're very careful adding in new API surface, but we can discuss what you need and how best to approach that.

Thank you for that! I totally understand.
I added both a test case and a possible default implementation for visitting modifiers. Looking forward to hear your thoughts!

I would like to add that visiting modifiers would be an enhancement but the fact, we do not deeply visit child elements is rather a bug as we simply do not detect and visit occurences of annotations. For various recipes this could end in invalid results or non-compilable code. Though, I have to admit that usage of annotation on modifiers is rarely seen.

Quick note:
J.Modifiers are technically visited already, so it is possible to update a recipe to visit the annotations like so:
                @Override
                public @Nullable J visit(@Nullable Tree tree, ExecutionContext executionContext) {
                    if (tree instanceof J.Modifier modifier) {
                        return modifier.withAnnotations(ListUtils.map(modifier.getAnnotations(), it -> visitAndCast(it, executionContext)));
                    }
                    return super.visit(tree, executionContext);
                }

I ended up adding
	public J.MethodDeclaration visitMethodDeclaration(J.MethodDeclaration method, ExecutionContext context) {
		method = method.withModifiers(ListUtils.map(method.getModifiers(), mods -> mods.withAnnotations(ListUtils.map(mods.getAnnotations(),anno -> visitAnnotation(anno, context)))));
		return super.visitMethodDeclaration(method, context);
	}

to a visitor to make sure the annotations get visited. Any chance a similar step could be added to the the base definition in JavaVisitor?

Fixed in https://github.com/openrewrite/rewrite/pull/4562


scrcpy not working

[ ] I have read the FAQ.
[ ] I have searched in existing issues.

Environment

OS: Debian 11
scrcpy version: 1.17
installation method: apt
device model: Samsung Galaxy A71
Android version: 12

I wan't to use scrcpy. but I get the following error:
/usr/share/scrcpy/scrcpy-server: 1 f...d. 39.7 MB/s (34015 bytes in 0.001s)
[server] INFO: Device: samsung SM-A715F (Android 12)
[server] ERROR: Exception on thread Thread[main,5,main]
java.lang.AssertionError: java.lang.reflect.InvocationTargetException
        at com.genymobile.scrcpy.wrappers.SurfaceControl.setDisplaySurface(SurfaceControl.java:75)
        at com.genymobile.scrcpy.ScreenEncoder.setDisplaySurface(ScreenEncoder.java:243)
        at com.genymobile.scrcpy.ScreenEncoder.internalStreamScreen(ScreenEncoder.java:91)
        at com.genymobile.scrcpy.ScreenEncoder.streamScreen(ScreenEncoder.java:60)
        at com.genymobile.scrcpy.Server.scrcpy(Server.java:80)
        at com.genymobile.scrcpy.Server.main(Server.java:252)
        at com.android.internal.os.RuntimeInit.nativeFinishInit(Native Method)
        at com.android.internal.os.RuntimeInit.main(RuntimeInit.java:374)
Caused by: java.lang.reflect.InvocationTargetException
        at java.lang.reflect.Method.invoke(Native Method)
        at com.genymobile.scrcpy.wrappers.SurfaceControl.setDisplaySurface(SurfaceControl.java:73)
        ... 7 moreINFO: Renderer: opengl
INFO: OpenGL version: 4.6 (Compatibility Profile) Mesa 20.3.5
INFO: Trilinear filtering enabled
INFO: Initial texture: 1080x2400
WARN: Device disconnected

Caused by: java.lang.IllegalArgumentException: displayToken must not be null
        at android.view.SurfaceControl$Transaction.setDisplaySurface(SurfaceControl.java:3370)
        at android.view.SurfaceControl.setDisplaySurface(SurfaceControl.java:2344)
        ... 9 more
WARN: Killing the server...

Android 12 requires scrcpy >= 1.18. #2129

would it be possible to show some kind of warning about incompatible android versions? I followed the apt install scrcpy instruction from the readme on ubuntu 20.04 and ran directly into this

would it be possible to show some kind of warning about incompatible android versions?

No, because these incompatibility are not known at the time a release is out. They are fixed or worked around in a future version, so an old version can't know. (And scrcpy does not communicate with any server, it's unnecessary and it's better for privacy).


Fixed a double https display

With version 2.0.1 and jvSettings set to
"sort.metadata.priority.trailerurl": ["dmmja"]
The "https" output is doubled and the download fails:
[2020-09-21T18:59:32][DEBUG] [bbi00094] [Get-JVAggregatedData] [TrailerUrl - dmmja] Set to ["https:https://cc3001.dmm.co.jp/litevideo/freepv/b/bbi/bbi00094/bbi00094_dmb_s.mp4"]
Again, I can't test this for DMM-en. Was this left on purpose?

Thanks, somehow I left that in on accident.


Feat/added chattBaiduWenxin chat model

Fixes: #2751
Added ChatBaiduWenxin chat model

thank you! some linting issue

Thanks for you code, I used it。but It seems to require two keys, and need streaming。 like：
        const obj: Partial<ChatBaiduWenxin> = {
            streaming: true,
            baiduApiKey,
            baiduSecretKey,
            modelName,
            temperature: temperature ? parseFloat(temperature) : undefined
        }

    }

@iceycc i have done the required changes

In langchanJs ,  Wenxin becomes Qianfan,  here ,  and then I refer to yours and it says an error ： stream.getReader is not a function。
See details here：
https://github.com/FlowiseAI/Flowise/issues/2786


Installation fails macOS Ventura 13.0.1 version

Describe the bug
While installing and building on new macos version. This is due to the version of blst-ts package
Need to bump up from @chainsafe/blst:^0.2.4 to  @chainsafe/blst:^0.2.6
Expected behavior
Should Install the packages and build.
Steps to Reproduce

Clone project
Install via yarn install --ignore-optional

Screenshots

OS:  OSX Ventura
Version: 13.0.1
Branch: stable / unstable
Commit hash: 1ceaa20ebef7a7adcf9709c323b128d4b4fbeba6

@AmanRaj1608 can you retry with latest lodestar v1.4.2 ?

looks like it's the good ol' "package for darwin-arm64 doesn't exist" issue?
Retrieving BLST native bindings<EMAIL_ADDRESS>...
Error: Error importing BLST native bindings: 404 Not Found

Where can I get this prebuild for darwin-arm64?

We currently don't have the capability to provide darwin-arm64 prebuilds, see https://github.com/ChainSafe/blst-ts#supported-environments

looks like it's the good ol' "package for darwin-arm64 doesn't exist" issue?
Retrieving BLST native bindings<EMAIL_ADDRESS>...
Error: Error importing BLST native bindings: 404 Not Found

Where can I get this prebuild for darwin-arm64?

You can find the supported environments here, which includes up to the latest Long-Term Support build of Node - 18.14.2
We have an issue for the current Node raised .
If you are still experiencing this issue, please ensure you have python installed You can use homebrew

looks like it's the good ol' "package for darwin-arm64 doesn't exist" issue?
Retrieving BLST native bindings<EMAIL_ADDRESS>...
Error: Error importing BLST native bindings: 404 Not Found

Where can I get this prebuild for darwin-arm64?

You should be able to build on darwin-arm64  depending on your OS since this fix upstream. We also released that fix in  blst-ts v0.2.6 . We support up to the latest Long-Term Support build of Node - 18.14.2 and we have an issue for the current Node raised.
If you are still experiencing this issue, please ensure you have python installed.

Was facing the same issue, and creating a symlink called python pointing to the python3 binary solved the issue for me.

Will close this issue with the solutions above working for most users. Feel free to re-open or create a new one if the above solutions no longer work.

I confirm that it would be good to fix the script, where on mac os python is used instead of python3. In the meantime, this is not there, you can treat it like this:

ln -s /opt/homebrew/bin/python3 /usr/local/bin/python

And happy hacking =)


Running the test suite leave hanging application namespaces

Summary
When running the test suite locally I noticed that there were several application namespace that persisted between runs that I then had to manually delete by hand.
NAME                           STATUS   AGE
acorn                          Active   8d
acorn-system                   Active   8m54s
acorn-test-224hk               Active   47h
acorn-test-5r7gp               Active   24h
acorn-test-5vb68               Active   20h
acorn-test-8qcgd               Active   22h
acorn-test-9rcvw               Active   24h
acorn-test-dbshd               Active   47h

Instead, these namespaces should get automatically cleaned up between runs.

Removed the bug label because bugs are product/user facing. An issue in the tests themselves shouldnt be categorized as a bug


az -v fails.

az feedback auto-generates most of the information requested below, as of CLI version 2.0.62

Describe the bug

az -v fails.
The command failed with an unexpected error. Here is the traceback:

'NoneType' object has no attribute 'rjust'
Traceback (most recent call last):
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\knack\knack\cli.py", line 207, in invoke
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\__init__.py", line 107, in show_version
  File "C:\Users\VSSADM~1\AppData\Local\Temp\pip-install-7cl6xofh\azure-cli-core\azure\cli\core\util.py", line 198, in get_az_version_string
AttributeError: 'NoneType' object has no attribute 'rjust'

az version works.
To Reproduce

I installed a new version of Azure CLI. During the installation, it prompts python is running. When the installation is finished, it asks me restart computer. When I restart, az -v crash. The reason is one extension's version is missing.
Expected behavior

Environment summary

Version: 2.5.1
OS: Windows 10
Additional context

@fengzhou-msft please take a look

Added default for ext.version:
https://github.com/Azure/azure-cli/blob/58198af0d650df1433f329f2ab42572836bae62e/src/azure-cli-core/azure/cli/core/util.py#L243
Please try with the latest dev branch and see which extension has Unknown version info.

It is the image-copy-extension

Does this issue still exist? I cannot reproduce it now. @qwordy

The extension version is still unknown. But I can run az -v now.
image-copy                       Unknown


The extensions option doesn't seem to be working

This option seems to be totally ignored:
  "browserify": {
    "extensions":  [".jsx", "jsx"],
    "transform": ["reactify" ]
  }

http://stackoverflow.com/questions/28159631/require-jsx-files-without-specifying-extension/28161749#28161749

You can only configure the transform field from package.json.

Got it, thanks.  Extensions work like so when using node api
    var b = browserify({
        "debug": true,
        "extensions":  [".jsx", ".scss"]
    })
        .transform(babelify);


m2m_foreign_field TypeError when foreign field is null in database

https://github.com/morlandi/django-ajax-datatable/blob/10229938371f439f8dab7981d1555c4325f4942b/ajax_datatable/columns.py#L227
Hi,
Congrats for this project, it is very useful and easy to get results even when we do not know how it works deeply.
I'm just starting using your module but I think I found a bug. So forgive me if I'm mistaking.
I want to display a ManyToMany field value which is not always available in the database (the field can be NULL).
When the DB field is NULL, the code crashes at line 227 with the following error :
File "/usr/local/lib/python3.9/site-packages/ajax_datatable/columns.py", line 227, in get_foreign_value
    current_value = ', '.join(list_values)
TypeError: sequence item 0: expected str instance, NoneType found

It would be interesting to check if list_values is None and put blank or a default value if it is None.
Thank you

Fix with PR #57 and merged into master.
I will publish a new version for Pypi soon, after marging PR #65 too


Jssor slider does not work properly

Hi , I have a Jssor slider in my website and due to some error , it does not load the main slider on landing page properly , instead it loads it correctly on reload . The error generated by chrome is "Uncaught ReferenceError: $JssorCaptionSlider$ is not defined" and "Uncaught ReferenceError: $JssorEasing$ is not defined" I know it means that Jssor slider has not been loaded but I already did put jssor , easing and JQuery scripts in the head tag of my code , please do review .

Please check if it is asynchronous loading issue.
Make sure the library has been loaded successfully before jssor slider initialization.


Flat files folders, support for windows

Hi,
found out that the nested folders with flat files does not work on windows.
example:
└── users+
    ├─ $userId.tsx

on linux you would get auth+/$userId.tsx but on windows you get auth+\$userId.tsx,
seems to be that routeRegex in defaultOptions is not correct, at least does not support win backslashes .
Regards, Thorsteinn

Thanks for the bug report. I'll get that fixed!

Fixed in v0.5.2


feat: component archictecture concept Next.js

Checklist:

[ ] I have read and followed the contribution guidelines.
[ ] I have read and followed the how to open a pull request guide.
[ ] My pull request targets the main branch of freeCodeCamp.
[ ] I have tested these changes either locally on my machine, or GitPod.

Closes #XXXXX

Please consider using your fork instead of the main repo for development work. I usually do housekeeping and cleanup, and it's trivial to delete a branch I do not recognize.


Variable ROS_LOCALHOST_ONLY (to avoid broadcasting) does not work with micro-ros client/agent

Hello! We would like to not broadcast the ROS topics on our WiFi network. We can't find out how to do so, while running micro-ROS agent and client.
System:

Ubuntu 20.04, ROS2 Foxy
Teensy 3.5

Steps to follow:
In order to avoid to broadcast the ROS topics we set up this environment variable on our system:
export ROS_LOCALHOST_ONLY=1.
It works great for our ROS nodes running on this system, the topics are not broadcasted.
Issues:

On the system, the communication between ROS and the micro-ROS-agent is not established
The micro-ROS-client node running on the board is still broadcasting on the network

Question:
How can we avoid broadcasting ROS topics on our WiFi network, but still normally use micro-ROS?
Thanks for helping!

Hello @anaelle-sw, I'm not sure to have understood this well:

You want to avoid micro-ROS topic being published to the ROS 2 dataspace?
Does this mean that you only want micro-ROS nodes to exchange data between them?
Why do you want this behavior because of network load? Have you thought about changing the domain id for the micro-ROS nodes?

Hello @anaelle-sw, I'm not sure to have understood this well:

You want to avoid micro-ROS topic being published to the ROS 2 dataspace?
Does this mean that you only want micro-ROS nodes to exchange data between them?
Why do you want this behavior because of network load? Have you thought about changing the domain id for the micro-ROS nodes?

Hi @pablogs9 !
Sorry it wasn't clear. Let me precise a bit more our use case:
On our system, we have a computer on which run ROS nodes. Some of theses nodes need to receive/send data to a Teensy board. On this board, we run a single micro-ROS-arduino node, and on the computer we run a micro-ROS-agent. Communication between the board and the agent is done via serial communication. Everything used to work fine this way.
The problem is that the ROS nodes running on the computer, as well as the micro-ROS-arduino node running on the Teensy board, are broadcasting on the WiFi network that the computer has access to. The result is that we can access the ROS nodes running on a system from another system. But we don't want our systems to be able to communicate between them. So, more than specifying a domain ID, we really need to make secured our system and avoid any ROS and micro-ROS-arduino node been broadcasted on a network.
The solution we found to secure this is to set up this environment variable on our system's computer: export ROS_LOCALHOST_ONLY=1. Thanks to it, the ROS nodes running on the computer are not broadcasted anymore on the WiFi network. But two problems linked to micro-ROS happened then:

The micro-ROS-arduino node is still broadcasting on the network, which is really unwanted. How can we prevent this?
The ROS nodes cannot receive/send data to the board anymore. How can we fix this?

So, to answer your questions:

We do want to have micro-ROS topic published to the ROS 2 dataspace
We only have one micro-ROS node per system, and we don't want systems to be able to access to each other micro-ROS nodes.
We don't want node broadcasting to have secured systems, we don't think changing the domain id would be enough securised.

Hi @pablogs9 !
Sorry it wasn't clear. Let me precise a bit more our use case:
On our system, we have a computer on which run ROS nodes. Some of theses nodes need to receive/send data to a Teensy board. On this board, we run a single micro-ROS-arduino node, and on the computer we run a micro-ROS-agent. Communication between the board and the agent is done via serial communication. Everything used to work fine this way.
The problem is that the ROS nodes running on the computer, as well as the micro-ROS-arduino node running on the Teensy board, are broadcasting on the WiFi network that the computer has access to. The result is that we can access the ROS nodes running on a system from another system. But we don't want our systems to be able to communicate between them. So, more than specifying a domain ID, we really need to make secured our system and avoid any ROS and micro-ROS-arduino node been broadcasted on a network.
The solution we found to secure this is to set up this environment variable on our system's computer: export ROS_LOCALHOST_ONLY=1. Thanks to it, the ROS nodes running on the computer are not broadcasted anymore on the WiFi network. But two problems linked to micro-ROS happened then:

The micro-ROS-arduino node is still broadcasting on the network, which is really unwanted. How can we prevent this?
The ROS nodes cannot receive/send data to the board anymore. How can we fix this?

So, to answer your questions:

We do want to have micro-ROS topic published to the ROS 2 dataspace
We only have one micro-ROS node per system, and we don't want systems to be able to access to each other micro-ROS nodes.
We don't want node broadcasting to have secured systems, we don't think changing the domain id would be enough securised.

The first solution that cames to my mind is:

Using micro-ROS by references
Create a participant reference...
... that has transports whitelisted in DDS: check here

I have not tested this, but it should work.
Maybe we should discuss what localhost means in micro-ROS because it can be:

communications inside the same MCU
communications inside the same Agent
communications in the localhost where the agent is <- Wyca case.

Thoughs @jamoralp?

The first solution that cames to my mind is:

Using micro-ROS by references
Create a participant reference...
... that has transports whitelisted in DDS: check here

I have not tested this, but it should work.
Maybe we should discuss what localhost means in micro-ROS because it can be:

communications inside the same MCU
communications inside the same Agent
communications in the localhost where the agent is <- Wyca case.

Thoughs @jamoralp?

For reference, it used to be an issue on standard ROS2 nodes too: https://answers.ros.org/question/333687/restrict-ros-2-to-localhost/
That issue was solved by a behavior based on the ROS_LOCALHOST_ONLY env variable since Eloquent:

https://index.ros.org/doc/ros2/Releases/Release-Eloquent-Elusor/#new-features-in-this-ros-2-release
https://github.com/ros2/ros2/issues/798

For reference, it used to be an issue on standard ROS2 nodes too: https://answers.ros.org/question/333687/restrict-ros-2-to-localhost/
That issue was solved by a behavior based on the ROS_LOCALHOST_ONLY env variable since Eloquent:

https://index.ros.org/doc/ros2/Releases/Release-Eloquent-Elusor/#new-features-in-this-ros-2-release
https://github.com/ros2/ros2/issues/798

* communications in the localhost where the agent is <- Wyca case.

It would be nice of this behavior would be enabled by simply reading the ROS_LOCALHOST_ONLY env variable of the localhost where the agent is

* communications in the localhost where the agent is <- Wyca case.

It would be nice of this behavior would be enabled by simply reading the ROS_LOCALHOST_ONLY env variable of the localhost where the agent is

Hi @pablogs9!
For now, we are using distinct ROS_DOMAIN_IDs on all our systems. To do so, we set the environment variable ROS_DOMAIN_ID, and we create the node running on the board this way:
  node = rcl_get_zero_initialized_node();
  rcl_node_options_t node_ops = rcl_node_get_default_options();
  node_ops.domain_id = 56;
  RCCHECK(rclc_node_init_with_options(&node, "micro_ros_teensy_node", "", &support, &node_ops));

But using this, if system A includes a Teensy board A, then we are still able to catch the node running on the board A by calling ros2 node list from system B, even with both systems having different domain ID's.  Is this normal? I can precise that the ROS nodes running on system A (other than the one of the board) are not visible from system B.
About the reference file solution, as @doisyg said, we would enjoy a more easy way to not allow network broadcasting. For now, we will keep the ROS_DOMAIN_ID solution, but this is not the safer way, we would rather cut off any network broadcasting by using ROS_LOCALHOST_ONLY, so this is temporary only.

Hi @pablogs9!
For now, we are using distinct ROS_DOMAIN_IDs on all our systems. To do so, we set the environment variable ROS_DOMAIN_ID, and we create the node running on the board this way:
  node = rcl_get_zero_initialized_node();
  rcl_node_options_t node_ops = rcl_node_get_default_options();
  node_ops.domain_id = 56;
  RCCHECK(rclc_node_init_with_options(&node, "micro_ros_teensy_node", "", &support, &node_ops));

But using this, if system A includes a Teensy board A, then we are still able to catch the node running on the board A by calling ros2 node list from system B, even with both systems having different domain ID's.  Is this normal? I can precise that the ROS nodes running on system A (other than the one of the board) are not visible from system B.
About the reference file solution, as @doisyg said, we would enjoy a more easy way to not allow network broadcasting. For now, we will keep the ROS_DOMAIN_ID solution, but this is not the safer way, we would rather cut off any network broadcasting by using ROS_LOCALHOST_ONLY, so this is temporary only.

Regarding the domain ID problem, maybe @jamoralp can tell us something about how the node concept is managed in ROS 2 graph. I'm pretty sure that two DDS participants with different domain ID are not visible for each other, but ROS 2 nodes are not exactly DDS participants... Let me do some tests.
Regarding the localhost isolation, we are working right now on version 2.0.0 of XRCE-DDS, when we finish maybe we can design some solution for this. I'll keep this open to remember it.

Regarding the domain ID problem, maybe @jamoralp can tell us something about how the node concept is managed in ROS 2 graph. I'm pretty sure that two DDS participants with different domain ID are not visible for each other, but ROS 2 nodes are not exactly DDS participants... Let me do some tests.
Regarding the localhost isolation, we are working right now on version 2.0.0 of XRCE-DDS, when we finish maybe we can design some solution for this. I'll keep this open to remember it.

Hello @anaelle-sw we have been testing this and we found a XML profile that works for your purposes:
<dds>
	<profiles>
		<transport_descriptors>
			<transport_descriptor>
				<transport_id>udp_localhost</transport_id>
				<type>UDPv4</type>
				<interfaceWhiteList>
					<address><IP_ADDRESS></address>
				</interfaceWhiteList>
			</transport_descriptor>
		</transport_descriptors>
	</profiles>
	<participant>
		<rtps>
			<name>default_xrce_participant</name>
			<useBuiltinTransports>false</useBuiltinTransports>
			<userTransports>
				<transport_id>udp_localhost</transport_id>
			</userTransports>
		</rtps>
	</participant>
</dds>

Using this, the micro-ROS participants created in an Agent will only be able to talk "ROS 2" using localhost interface, so ROS 2 nodes o other agents in the same machine will be in communication but other computers in the same LAN will not receive anything.
You can set this profile using this guide: https://micro-ros.github.io/docs/tutorials/core/create_dds_entities_by_ref/
I'm going to close since it is almost resolved. But if you try it and it does not work please reopen this same issue.
Thanks!!

Hi @pablogs9,
The link mentioned in your previous reply seems to be broken. Is there any example of this in the updated docs?

I think the doc is now here: https://micro.ros.org/docs/tutorials/advanced/create_dds_entities_by_ref/

Hi. I have the same problem as @anaelle-sw had and I didn't succeed to solve it using the ref file as @pablogs9 suggested.
I've tried the suggested steps to use .ref file but it didn't work - the broadcast still happened.
I'm using Ubuntu 20.4 and ROS2 humble (compiled from source) inside docker container the runs on Jetson Xavier nx.
in our ROS2 system (that we are trying to integrate micro-ros to) we're using cyclone dds.
Thanks!


feat(aws): add custom sts endpoint configuration field for various aws features in kong gateway

Description
This is a new feature in kong gateway 3.8. The original PR is here: https://github.com/Kong/kong-ee/pull/9654
The feature covers the update for three parts of the AWS-related features inside Kong gateway: the aws-lambda plugin, the aws vault backend, and the IAM authentication for RDS database.
KAG-4599

Testing instructions
Preview link:
Checklist

[x] Review label added
[x] Conditional version tags added, if applicable.

There are two things that I did not update in this PR: one is the new fields in kong.conf page, another is the aws-lambda plugin's schema page.
I think those two are auto updated after new gateway version release, could you please help verify? @lena-larionova Thank you!
If not then I can update those two manually

There are two things that I did not update in this PR: one is the new fields in kong.conf page, another is the aws-lambda plugin's schema page.
I think those two are auto updated after new gateway version release, could you please help verify? @lena-larionova Thank you! If not then I can update those two manually

@windmgc Yep, those are updated automatically and I think Lena's already updated them in the docs site.


Godot froze by inflating the editor_settings.tres file to 385MB with 82 C2 and 82 C3 pairs of bytes

Operating system or device - Godot version:
Arch Linux
Godot 2.2.r6004.4235abe (godot-git)
Issue description (what happened, and what was expected):
While working on a project, I added a Sprite and realized I have the filter on. I went to Project Settings, Image Loader, unchecked the box on the left of filter and suddenly Godot froze. I forcefully closed it by killing it's parent process (the desktop environment).
From that point on, every single attempt to start Godot ended in it being stuck on the logo screen with 100% CPU and ever-increasing memory usage.
Through the use of strace I have located the source of this bug to be the editor_settings.tres file, and immediately realized I was not wrong - the file weighed 385 MB. Through the use of head and tail commands I have managed to locate the position of the problem - the file was filled with pairs of bytes 82 C2 and 82 C3. However, this wasn't the whole file - the beginning was intact.
Further inspection revealed that the corruption started at the character that was supposed to be ż in the name of a different project (not the one I was working on before Godot froze for the first time) - represented as C5 BC in Unicode.
Steps to reproduce:
I have not yet found any way to reproduce this.
I have tried reimporting the two projects with a fresh .godot, and deselecting filter - which worked.
Link to editor_settings.tres:
https://zatherz.eu/junk/editor_settings.zip
Note: the zip is 3.6 MB, but 385MB after unpacking.

I have the same bug (#6888) on Ubuntu, but i did not have notice the size increasing of this file (not at this point), after some launches (maybe 10) Godot don't start (memory dump error) and then reinitialize this file.

Right, that's a duplicate of #6888 (and 6888 is such a nice number anyway... :smile:)


Add repr call in registry tests - gets 100% test coverage :innocent:

Codecov Report

Merging #47 (1d23a32) into main (64dfef1) will increase coverage by 0.74%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main       #47      +/-   ##
===========================================
+ Coverage   99.25%   100.00%   +0.74%
===========================================
  Files           6         6
  Lines         134       134
===========================================
+ Hits          133       134       +1
+ Misses          1         0       -1

Impacted Files
Coverage Δ

kotsu/registration.py
100.00% <0.00%> (+1.78%)
:arrow_up:

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 64dfef1...1d23a32. Read the comment docs.


Prevent generating accessors if the name is not a valid Kotlin identifier

fix https://github.com/gradle/gradle/issues/30340
Context
Users will benefit from this change because Gradle will not generate invalid code that cannot compile.
Dear Gradle reviewers: if you want to make any changes, please go ahead and make them. I have enabled permission to modify the branch, and it's easier if you make the changes directly.
Contributor Checklist

[ ] Review Contribution Guidelines.
[ ] Make sure that all commits are signed off to indicate that you agree to the terms of Developer Certificate of Origin.
[ ] Make sure all contributed code can be distributed under the terms of the Apache License 2.0, e.g. the code was written by yourself or the original code is licensed under a license compatible to Apache License 2.0.
[ ] Check "Allow edit from maintainers" option in pull request so that additional changes can be pushed by Gradle team.
[ ] Provide integration tests (under <subproject>/src/integTest) to verify changes from a user perspective.
[ ] Provide unit tests (under <subproject>/src/test) to verify logic.
[ ] Update User Guide, DSL Reference, and Javadoc for public-facing changes.
[ ] Ensure that tests pass sanity check: ./gradlew sanityCheck.
[ ] Ensure that tests pass locally: ./gradlew <changed-subproject>:quickTest.

Reviewing cheatsheet
Before merging the PR, comments starting with

❌ ❓must be fixed
🤔 💅 should be fixed
💭 may be fixed
🎉 celebrate happy things

Thank you for your contribution!
This PR has a valid DCO and tests. The relevant team for this area will confirm the design of the implementation choices.

@bot-gradle test APT

I've triggered the following builds for you. Click here to see all build failures.

All Performance Tests (Trigger)

Thanks @adam-enko


Translation sync.

Stubs changes: https://github.com/microbit-foundation/micropython-microbit-stubs/pull/73
Error message changes: https://github.com/microbit-foundation/pyright/pull/23

Code change looks good. Simulator dropdowns are as expected. I'll review this further tomorrow before merging.

LGTM, all translations work.


Getting this error for ALSA

when I executed the command "aplay -D bluealsa file.wav"
bluealsa-pcm.c:550:(_snd_pcm_bluealsa_open) Unknown field delay aplay: main:788: audio open error: Invalid argument


Use newer versions of node

Tests are failing on older versions of node. This is something to do with how it handles dependencies.
In this PR:

Dependancies have been locked down. Will need upgrading with every new release of react-native.
Change Travis test versions. Allows us to properly test the library on multiple platforms.
Cleanup .babelrc file. Use react-native preset
Add in extra eslint packages and setup. Will add to test pipeline later

cc @lelandrichardson
Done a couple of cleanup jobs.Could use a double check over and a sign off. Has been tested on an external project to work :+1:

Having to push PR forwards. Builds currently breaking due to react-native requiring 1 version of react, and react-addons-* requiring another.


Backpack UAVs/UGVs Missing ACE Actions

I am not entirely sure if this would be a bug, or a feature request.
Basically, I initially noticed that the AP-5 Bustard drone from the Western Sahara CDLC was missing every possible action except for the action to attach Chemlight grenades to it. This means that the actions regarding "Assembling", "Disassembling", "Connecting UAV/UGV To UAV Terminal", etc. were missing.
At first I suspected that this was merely an incompatibility problem with the Western Sahara CDLC drones not having these actions added to them. However, after testing the vanilla UAV backpacks I realized that this seems to affect every backpack UAV and UGV.
So I would like to suggest adding those features to backpack UAVs/UGVs.
Would be worth to make an observation that the "Assemble UAV/UGV" action should be on the "Self-Interaction" menu, and that the Western Sahara CDLC AP-5 Bustard and IED UAV have additional actions regarding removing and loading weapons/grenades.
Would also be worth investigating if large UAVs and UGVs also lack options to connect the UAV/UGV to the UAV terminal.

I am not entirely sure if this would be a bug, or a feature request.
Basically, I initially noticed that the AP-5 Bustard drone from the Western Sahara CDLC was missing every possible action except for the action to attach Chemlight grenades to it. This means that the actions regarding "Assembling", "Disassembling", "Connecting UAV/UGV To UAV Terminal", etc. were missing.
At first I suspected that this was merely an incompatibility problem with the Western Sahara CDLC drones not having these actions added to them. However, after testing the vanilla UAV backpacks I realized that this seems to affect every backpack UAV and UGV.
So I would like to suggest adding those features to backpack UAVs/UGVs. Would be worth to make an observation that the "Assemble UAV/UGV" action should be on the "Self-Interaction" menu, and that the Western Sahara CDLC AP-5 Bustard and IED UAV have additional actions regarding removing and loading weapons/grenades. Would also be worth investigating if large UAVs and UGVs also lack options to connect the UAV/UGV to the UAV terminal.

It's a feature request, as the actions you describe were never added. They will be added in the next update, which will come out when ACE 3.16.0 releases.
I'm not going to bring special compatibility between AIMEE and WS though. I'm not motivated enough to do it and don't see the point for a handful of unique actions.

@LuizBarros99 Check if the issue has been addressed.

Considered to be resolved.


install-kubectl: choose one installation method

The previous text layout suggested that all installations had to be done, one after another.

Thank you for your contribution. Please sign the CLA so we can accept your pull request.

@rillig Please sign the license agreement.

/lgtm


kata-deploy: add ACRN runtime to Docker configuration

Add an ACRN runtime ('kata-acrn') to the Docker configuration (daemon.json)
Signed-off-by: Geoffroy Van Cutsem<EMAIL_ADDRESS>

@vijaydhanraj FYI

thanks @gvancuts - please fix the commit message https://github.com/kata-containers/community/blob/master/CONTRIBUTING.md#patch-format
https://github.com/kata-containers/community/blob/master/CONTRIBUTING.md#examples

thanks @gvancuts - please fix the commit message https://github.com/kata-containers/community/blob/master/CONTRIBUTING.md#patch-format
https://github.com/kata-containers/community/blob/master/CONTRIBUTING.md#examples

I have added a Fixes: line in my commit message. Was there something else that I needed to change? (I don't think so... but double-checking)

/test

/AzurePipelines run

The formatting seems off for previous blocks. Also is there a closing bracket missing?

The formatting seems off for previous blocks. Also is there a closing bracket missing?

Ouch... indeed... good catch. Should be fixed now.
Btw, is there an easy way I can test this on my system (sorry, not very familiar with how this all works together). Thanks!

https://github.com/kata-containers/packaging/tree/master/kata-deploy#docker-quick-start
you can mount your version of the script to test.
/cc @egernst

https://github.com/kata-containers/packaging/tree/master/kata-deploy#docker-quick-start
you can mount your version of the script to test.
/cc @egernst

Done, I tested this using
$ sudo docker run -v /home/acrn/work/packaging/kata-deploy/scripts:/opt/kata-artifacts/scripts -v /opt/kata:/opt/kata -v /var/run/dbus:/var/run/dbus -v /run/systemd:/run/systemd -v /etc/docker:/etc/docker -it katadocker/kata-deploy kata-deploy-docker install

And Docker could see and successfully use this new kata-acrn runtime (after a couple of minor tweaks, unrelated to this PR).

/test kata-deploy

Just to make sure, since I'm not a regular contributor to this project, do I still need to do anything for this PR or it's on track?

/AzurePipelines run

/AzurePipelines run


LINQ : Add UDF Translation Support

LINQ : Add UDF Translation Support
Description
Turns on UDF translation support for LINQ. The API looks like this:
IQueryable<Book> queryable = client
    .GetContainer("database", "container")
    .GetItemLinqQueryable<Book>()
    .Where(b => UserDefinedFunctionProvider.Invoke("toLowerCase", b.Title) == "war and peace");

FeedIterator<Book> bookIterator = queryable.ToFeedIterator();
while (feedIterator.HasMoreResults)
{
    FeedResponse<Book> responseMessage = await feedIterator.ReadNextAsync();
    DoSomethingWithResponse(responseMessage);
}

The PR mainly makes UserDefinedFunctionProvider a public type and turns on the LINQ UDF translation tests.

Closing since there has been no update for over 30 days. Please re-open if necessary.

Closing since there has been no update for over 30 days. Please re-open if necessary.


Show address as well as symbol name in disassembly

Is it possible to show the address AND the function/ptr name in ghidra?
Eg
st.b [a8]0x36e8=>index1,index2
st.b [a8]0x3745=>val2,d8
call function_b

st.b [a8]0x36e8=>index1,index2    index1 = 6002c868,  index2  = d2
st.b [a8]0x3745=>val2,d8               val2, = 6002c8c5
call function_b                                function_b = 804449fa

This way I don't have to look up the address each time.

Can you just hover on the symbol and see the address?

If you select the instruction the raw instruction will be displayed in the low-right status area of the window.


removeCookie('name') does not work.

authRouter
  .use(
    jwt({
      name: "verify",
      secret: SECRET,
    })
  )
  .use(cookie())
  .get("/verify", async ({ set, verify, cookie: { auth } }) => {
    const user = await verify.verify(auth);
    if (!user) {
      set.status = 401;
      return "Unauthorized";
    }
    return user;
  })
  .get("/logout", async ({ removeCookie, set, cookie }) => {
    // console.log(cookie);

    removeCookie("auth");
    // console.log(cookie);
    set.status = 200;
    return "YEP"
  });

When i console.log (cookie) , It logs it out correctly with an empty object.
But the changes are not reflected on the  Client

  "dependencies": {
    "@elysiajs/cookie": "^0.7.0",
    "@elysiajs/cors": "^0.7.0",
    "@elysiajs/jwt": "^0.7.0",
    "@elysiajs/static": "^0.7.1",
    "@elysiajs/swagger": "^0.7.2",
    "@lucia-auth/adapter-mongoose": "^3.0.0",
    "@lucia-auth/oauth": "^3.3.0",
    "elysia": "latest",
    "lucia": "^2.7.0",
    "mongoose": "^7.5.3"
  },

These are the version of the packages i use

Yeah I am having the same issue too. I have tried both removeCookie('name') and delete cookie.name and from checking the logs I can see the values are deleted from the cookie object but this change is not reflected in the app.

Looks like this PR: https://github.com/elysiajs/elysia-cookie/pull/4 might fix it @anasmohammed361

Having the same issue.

For now, overwriting it with an immediately expiring cookie will work.
setCookie("auth", '', {
          maxAge: 0, // 24 hours
          path: "/",
        });
        ```

Hi
having the same issue. the browser won't set the cookie again if you send the Set-Cookie header that contains the expiration date, but the value of the cookie is empty (as removeCookie() does).
to fix it, just set the cookie again, but with a value of null, plus an older expiration date
setCookie("auth", "null", {
   expires: new Date(new Date().getTime() - 1),
});


"ciw" doesn't respect delimiters when cursor is at beginning of word

Steps to reproduce (| is cursor in normal mode):
abc.de|f → type ciw → abc.| (expected behaviour)
abc.|def → type ciw → abc| (expected: abc.|)
Is this an isolated bug or a side effect of a larger existing issue?

+1 this seems to be a newly added bug.

+1

+1

@maxbrunsfeld I found another bug for the latest version:
ab|c.def → type ciw → .def (expected behaviour)
abc|.def → type ciw → def (expected: .def)

Thanks for the report, @tony612.
/cc @benmccormick, in case you're interested in looking into that one as well, despite how long it took me to merge your last PR. :bow:

Yeah I'll take a look.  Probably should have realized that would be a problem the first time.  For some reason I seem to delete/change from the start of words much more often than the end.

@maxbrunsfeld so as far as I can tell the root issue here is really this: https://github.com/atom/atom/issues/6538  It seems like getCurrentWordBufferRange has issues.  As far as I can tell its behavior is greedy to the right

If the cursor is just selecting part of a word or has no selection but is inside a word, it just selects that word (this is why the ciw behavior used to work a good deal of the time)

If the cursor/selection is adjacent to 2 "words" and there is no selection, it grabs both words. This is what was causing the original issue I fixed.  Unfortunately I thought this was because it wasn't able to tell which word to grab if there was no selection.  But in reality it seems that its a bit more complicated.  If its just a plain cursor it grabs both.  But if there is a selection that ends on a word boundary, it grabs the selected word and a word to the right.

So thats a bug there.  I think working around that probably requires reimplementing at least some of the getCurrentWordBufferRange in vim-mode, or as a hack, calculating the range twice if the selector is empty (which it really always should be for text objects).  We could calculate it once with just the empty cursor, once with a selection of the character to the right of the cursor, and then take the smaller of the 2 selection.
Thats a horrifically hacky workaround to something that should probably be resolved upstream of this repo though.

@maxbrunsfeld looks like https://github.com/atom/atom/pull/8906 is headed in the right direction for vim-mode to be able to fix this cleanly without hacks, so I'll keep an eye on that and put out a PR here if necessary when that goes through (possibly the result of that PR will just fix this issue?  I'm not totally positive.  It will definitely make it clean to fix)

@benmccormick Thanks for figuring that out; sounds exactly right. Let's stay tuned for atom/atom#8906.

@benmccormick thanks for fixing the first issue!
I keep getting bitten by the issue described by @tony612 here: https://github.com/atom/vim-mode/issues/868#issuecomment-151733960
It looks like the atom issue is a bit stalled right now, maybe a horrific hacky workaround is okay in the meantime? @maxbrunsfeld I can open a new issue if that'd help with tracking.

@drifkin you could pull request something?  I didn't see a good way to catch both ends of the bugs without getting much much hackier.  And I don't like doing that to other people's codebases :)  But if you see a better idea I'd be curious.


GeochemAnalyticalMethod.ttl: Error loading with Protege (skos: already exists, inconsistency)

Hi everyone,
I was trying to use Analytical methods for geochemistry within Protege but it could not open the vocabulary due to an error [1]*, which was summed up as Ontology already exists. OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>)) Apparently, the vocabulary tries to import skos and also contains skos axioms itself. It could not be loaded with Protege.
To proceed, I downloaded the file and removed the import statement in the local copy. Protege was able to load the remaining statements, but then there is an inconsistency in the skos axioms which seems to result from defining skos:inScheme as a subproperty of skos:member in the skos axioms that are hardcoded into the file. These skos data hardcoded into the file also differ from the data loaded from the SKOS namespace by the import statement. Seems like this was not intended.
Also, I saw that the metadata get mixed up in the "active ontology tab" of Protege, when two items declare to be an owl:Ontology. This is a bit confusing.
All of these three things can be resolved by getting all skos statements with owl:imports instead of hardcoding these axioms into the Analytical methods for geochemistry vocabulary, I'd say.
We would very much appreciate if you could look into this and hopefully fix it here at the source.
Thank you and all the best
Susanne
[1]

I had to shorten the error message, otherwise I could not save this issue.

2024-10-07 10:00:47.464 [AWT-EventQueue-0] INFO  OWLModelManagerImpl    ------------------------------- Loading Ontology -------------------------------
2024-10-07 10:00:47.464 [AWT-EventQueue-0] INFO  OWLModelManagerImpl    Loading ontology from https://raw.githubusercontent.com/amds-ldeo/Vocabulary/refs/heads/master/geochemistry/GeochemAnalyticalMethod.ttl
2024-10-07 10:00:50.825 [pool-5-thread-1] INFO  OntologyLoader    Finished loading imported ontology at http://www.w3.org/2004/02/skos/core
2024-10-07 10:00:50.861 [pool-5-thread-1] ERROR OWLOntologyManagerImpl    OWLOntologyManagerImpl.checkForOntologyIDChange() existing:Ontology(OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>))) [Axioms: 205 Logical Axioms: 42] First 20 axioms: { Functional: memberList OrderedCollection SubClassOf Collection member Domain Collection topConceptOf Domain Concept hasTopConcept Domain ConceptScheme memberList Domain OrderedCollection semanticRelation Domain Concept example SubPropertyOf: note historyNote SubPropertyOf: note scopeNote SubPropertyOf: note prefLabel SubPropertyOf: label editorialNote SubPropertyOf: note hiddenLabel SubPropertyOf: label definition SubPropertyOf: note changeNote SubPropertyOf: note altLabel SubPropertyOf: label <http://www.w3.org/2004/02/skos/core#scopeNote> definition "A note that helps to clarify the meaning and/or the use of a concept."@en <http://www.w3.org/2004/02/skos/core#narrower> isDefinedBy <http://www.w3.org/2004/02/skos/core> <http://www.w3.org/2004/02/skos/core#narrowerTransitive> label "has narrower transitive"@en <http://www.w3.org/2004/02/skos/core#note> label "note"@en}
2024-10-07 10:00:50.863 [pool-5-thread-1] ERROR OWLOntologyManagerImpl    OWLOntologyManagerImpl.checkForOntologyIDChange() new:Ontology(OntologyID(Anonymous-20)) [Axioms: 3787 Logical Axioms: 1218] First 20 axioms: {tableOfContents SubPropertyOf: description creator SubPropertyOf: contributor created SubPropertyOf: date altLabel SubPropertyOf: label conformsTo SubPropertyOf: relation isVersionOf SubPropertyOf: relation spatial SubPropertyOf: coverage language SubPropertyOf: language subject SubPropertyOf: subject format SubPropertyOf: format date SubPropertyOf: date valid SubPropertyOf: date prefLabel SubPropertyOf: label isPartOf SubPropertyOf: relation hasVersion SubPropertyOf: relation abstract SubPropertyOf: description creator SubPropertyOf: creator medium SubPropertyOf: format spatial SubPropertyOf: coverage references SubPropertyOf: relation}
2024-10-07 10:00:50.865 [pool-5-thread-1] ERROR OWLOntologyManagerImpl    OWLOntologyManagerImpl.checkForOntologyIDChange() only in existing:[]
2024-10-07 10:00:50.865 [pool-5-thread-1] ERROR OWLOntologyManagerImpl    OWLOntologyManagerImpl.checkForOntologyIDChange() only in new:[inScheme SubPropertyOf: member, modified SubPropertyOf: date, available SubPropertyOf: date, alternative SubPropertyOf: title, dateCopyrighted SubPropertyOf: date, dateAccepted SubPropertyOf: date, created SubPropertyOf: date, valid SubPropertyOf: date, bibliographicCitation SubPropertyOf: identifier, dateSubmitted SubPropertyOf: date, issued SubPropertyOf: date, identifier Range: Literal, created Range: Literal, dateSubmitted Range: Literal, alternative Range: Literal, dateCopyrighted Range: Literal, available Range: Literal, valid Range: Literal, date Range: Literal, dateAccepted Range: Literal, modified Range: Literal, bibliographicCitation Range: Literal, issued Range: Literal, title Range: Literal, FileFormat SubClassOf MediaType, MediaType SubClassOf MediaTypeOrExtent, Location SubClassOf LocationPeriodOrJurisdiction, PeriodOfTime SubClassOf LocationPeriodOrJurisdiction, SizeOrDuration SubClassOf MediaTypeOrExtent, Collection SubClassOf Thing, ConceptScheme SubClassOf Thing, Jurisdiction SubClassOf LocationPeriodOrJurisdiction, LicenseDocument SubClassOf RightsStatement, Concept SubClassOf Thing, AgentClass SubClassOf Class, PhysicalMedium SubClassOf MediaType, DCMIType issued "2000-07-11"^^date, infraredabsorptionspectrometry notation "IR-A-S", nuclearmicroprobeanalysis notation "SPM", isRequiredBy issued "2000-07-11"^^date, laserabsorptionspectrometry notation "L-A-S", identifier issued "2008-01-14"^^date, cavityringdownspectrometry notation "CRD-S", ...]
2024-10-07 10:00:50.869 [pool-5-thread-1] INFO  OntologyLoader    Finished loading https://raw.githubusercontent.com/amds-ldeo/Vocabulary/refs/heads/master/geochemistry/GeochemAnalyticalMethod.ttl
2024-10-07 10:00:50.881 [AWT-EventQueue-0] WARN  OntologyLoadErrorHandlerUI    Ontology already exists. OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>))
org.semanticweb.owlapi.model.OWLOntologyAlreadyExistsException: Ontology already exists. OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>))
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:1253) ~[na:na]
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntologyFromOntologyDocument(OWLOntologyManagerImpl.java:1200) ~[na:na]
	at org.protege.editor.owl.model.io.OntologyLoader.loadOntologyInternal(OntologyLoader.java:116) ~[na:na]
	at org.protege.editor.owl.model.io.OntologyLoader.lambda$loadOntologyInOtherThread$0(OntologyLoader.java:71) ~[na:na]
	at java.base/java.util.concurrent.FutureTask.run(Unknown Source) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) ~[na:na]
	at java.base/java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) ~[na:na]
	at java.base/java.lang.Thread.run(Unknown Source) ~[na:na]
Caused by: org.semanticweb.owlapi.model.OWLOntologyRenameException: Could not rename ontology. An ontology with this ID already exists: OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>)) change: SetOntologyIDData(OntologyID(OntologyIRI(<http://www.w3.org/2004/02/skos/core>) VersionIRI(<null>)))
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.checkForOntologyIDChange(OWLOntologyManagerImpl.java:882) ~[na:na]
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.enactChangeApplication(OWLOntologyManagerImpl.java:642) ~[na:na]
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.applyChanges(OWLOntologyManagerImpl.java:670) ~[na:na]
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.applyChange(OWLOntologyManagerImpl.java:820) ~[na:na]
	at org.semanticweb.owlapi.rdf.rdfxml.parser.OWLRDFConsumer.applyChange(OWLRDFConsumer.java:733) ~[na:na]
	at org.semanticweb.owlapi.rdf.rdfxml.parser.OWLRDFConsumer.chooseAndSetOntologyIRI(OWLRDFConsumer.java:1492) ~[na:na]
	at org.semanticweb.owlapi.rdf.rdfxml.parser.OWLRDFConsumer.endModel(OWLRDFConsumer.java:1393) ~[na:na]
	at org.semanticweb.owlapi.rio.RioOWLRDFConsumerAdapter.endRDF(RioOWLRDFConsumerAdapter.java:78) ~[na:na]
	at org.semanticweb.owlapi.rio.RioParserImpl$RioParserRDFHandler.endRDF(RioParserImpl.java:300) ~[na:na]
	at org.eclipse.rdf4j.rio.turtle.TurtleParser.parse(TurtleParser.java:170) ~[na:na]
	at org.eclipse.rdf4j.rio.turtle.TurtleParser.parse(TurtleParser.java:125) ~[na:na]
	at org.semanticweb.owlapi.rio.RioParserImpl.parseDocumentSource(RioParserImpl.java:245) ~[na:na]
	at org.semanticweb.owlapi.rio.RioParserImpl.parse(RioParserImpl.java:185) ~[na:na]
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyFactoryImpl.loadOWLOntology(OWLOntologyFactoryImpl.java:220) ~[na:na]
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.actualParse(OWLOntologyManagerImpl.java:1303) ~[na:na]
	at uk.ac.manchester.cs.owl.owlapi.OWLOntologyManagerImpl.loadOntology(OWLOntologyManagerImpl.java:1243) ~[na:na]
	... 7 common frames omitted

Thanks for the alert. I've removed the SKOS definitions from the ttl file, and it opens in protege for me here. Its updated in ARDC RVA and in the github. Hopefully that fixes the problem.

Dear Stephen (@smrgeoinfo) - sorry for replying this late. Unfortunately, I was only now able to properly test this. All problems I described above, are fixed by your latest commits. So from my side, this issue can be closed - but I may have others to report, or at least questions to discuss. Thanks for helping out with this one so quickly!


Can't Find PixivUtil2.exe

Sorry for asking such a silly question, but I've retried fruitlessly for many times.
The issues site, the wiki and readme.md are referred.
Environment: Windows10
Discription: I downloaded the latest release and unzipped it.
I've installed the libs listed in requirements.txt, and installed the setup.py.
but i can't find PixivUtil2.exe in the root.
I've tried the method of "Run From Source Code" referred in the wiki, but it's still unworkable.
Thank you.

The standalone PixivUtil2.exe is provided in the releases tab, specifically pixivutil202305.zip is the current release as of now.

Thanks again but I think I didn't catch that....
PixivUtil2.exe seems not included in the zip. Do you mean that the exe can be downloaded along in the release tab or something?
thanks.

I downloaded pixivutil202305.zip and confirmed PixivUtil2.exe is there. Don't download the source code releases if you want to use the exe (easier for new users and Windows users)


Fail to share PDF file with symbol character on android

I am going to share pdf file, but if the pdf name include some symbol character like !@#$%^&*()'".  It will prompt the error message when running "Share.open()".  For the iOS, it can share normally.
The error message:

Version.
android: 8.1.0
react-native: 0.39.2
react-native-share : 1.1.1
Thank You!

hey @jvaisaonna could you send a PR fixing it?

On android, special characters and not supported by android file system itself. So, it would be not possible to handle these file names.
@jvaisaonna, you must pre-validate file that it is readable or not

makes sense
it is on user land to make this validation


Pie Chart with negative values.

Hello team,
I've tried to provide some negative values in the Pie chart. Which results in unexpected outcomes. Since pie chart is not applicable for negative values, maybe taking the absolute value before plotting the chart would resolve this issue I think. The following are the steps to reproduce the issue:

Create a pie chart with PieChartBuilder.
While adding series using addSeries() give in some negative values. Eg;: chart.addSeries("A",-100);

I've also attached the screen shot of the rendered chart with [100,-100,100] as the series.
Thanks and Kindly do the needful.

taking the absolute value before plotting the chart would resolve this issue

That's one way to address the problem.
IMHO another and yet cleaner would be to throw an exception for invalid input.

yes, I think there's similar "sanity check" code in other chart types that checks the input and throws an exception when the input is invalid.


Modify type value

#5017

Pull Request Test Coverage Report for Build 11055

0 of 0   changed or added relevant lines in 0 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 57.523%

Totals

Change from base Build 11054:
0.0%

Covered Lines:
11852

Relevant Lines:
20604

💛  - Coveralls


Behaviour of properties such as fetch.min.bytes under the topic encryption use-case

Client properties such as fetch.min.bytes have interesting implications for topic-encryption.   This configuration setting is relayed to the broker via the FetchRequest (min_bytes).  In the topic encryption scenario, as encryption inflates the payload, the overall effect could be that client receives fewer bytes than they expect.  Whether in practice the effect would be sufficient enough to cause a functional issue isn't clear to me at the moment.
The potentially more serious problem is the fetch control that convey a maximum: max_bytes and partition_max_bytes for instance.  Topic Encryption could mean that the client receives more data than it expects.  This could cause a Kafka Client fail or over allocate memory.  (Maybe the filter could keep tally and make sure it flies under the limits by sending fewer records than returned by the broker).
I haven't looked for other fields that might present similar issues.  We should do that first to quantify the problem.

Triaged 2023-11-08: Should investigate, but not a priority right now.


Update main menu icon

Purpose
Change main menu to burger icon + change it to back button on setting subpages.
Checklist

[x] My code follows the style of this project.
[x] The code compiles without warnings.
[x] I have performed a self-review of the changes.
[x] I have documented my code, in particular the intent of the
hard-to-understand areas.
[ ] (If necessary) I have updated the CHANGELOG.

The icons themselves are too low quality, they don't look close to what is in Figma.

The icons themselves are too low quality, they don't look close to what is in Figma.

I've tried my very best to improve this.

They are still not good 😢

They are still not good cry

I tried.

It still looks quite janky on my homescreen, and the selected version is still not close to what I see in Figma, but I guess you talked to Jens about that?

I think the icon is a bit small now, but it looks okay now. It still renders inconsistently across the 3 lines on my screen. If I zoom, then they render as the same, so I don't think the rest is fixable.


Interested in a PR to SAM-ify the project?

I've been converting aws-to-slack to an AWS SAM application so that it fits better into my infrastructure.
Happy to submit a PR if there is an interest?

yes please!

Sorry mate, that's a year too late unfortunately ;-) I don't have access to the code base any more.


apply more patters for the mask

Not only numbers
Could be taken from here - https://igorescobar.github.io/jQuery-Mask-Plugin/

done


Adding MSI N-glycan training and small updates for the other MSI trainings

With the Galaxy 19.01 update, composite files can now be uploaded directly from zenodo with the paste function.

Merci!


Fix issue with navigation immediately on mount to first screen

In case the animation is immediately interrupted for some reason,
we move this to the next frame so that onTransitionStart can fire
first (https://github.com/react-navigation/react-navigation/issues/5247)

I would need you to provide more context on which this fixes it, I don't want to merge something without understanding it


Added Accessibility tools as per #500

This will add the three tools recommended by @philhagen in SIFT Issue #500: magnus, orca, and onboard.
I've configured the state to add the repo for magnus then install the pkg for Ubuntu 18 (to avoid the snap), but for Ubuntu 20 this isn't needed, since magnus is in the apt package listing. This does create a minor versioning gap as installing from the flexiondotorg repo in 18 gives version 1.0.2, but installing from APT in 20 gives 1.0.3.

As always thank you for the contribution.

Any time!