Significantly increased memory usage in 3.13.0

Issue workflow progress

Progress of the issue based on the Contributor Workflow

[ ] 1. The issue provides a reproduction available on GitHub, Stackblitz or CodeSandbox

Please make sure the graphql-eslint version under package.json matches yours.

[ ] 2. A failing test has been provided
[ ] 3. A local solution has been provided
[ ] 4. A pull request is pending review

Describe the bug
3.13.0 has increased memory consumption over 3.12.0, to the point that in CI the process is OOM-killed when run against the GitLab repository.
Using 3.12.0, the job passes reliably, while on 3.13.0 it fails reliably.
To Reproduce
Steps to reproduce the behavior:
(Apologies that this isn't a minimal reproduction. If/when I have time, I'll make one and post it here.)
For now:

See https://gitlab.com/gitlab-org/gitlab/-/merge_requests/102654.
The commit fb10562ab186e39800f5006601bce362e0d0474b bumps to 3.13.0, and fails to run in CI.
The commit 46548bfb0e624c4eb5fc3f8120373f8ae11dab7d moves back down to 3.12.0, and runs successfully (as does latest master)

Expected behavior
Memory usage shouldn't be significantly higher than with 3.12.0.
Environment:

OS: Linux (Docker image registry.gitlab.com/gitlab-org/gitlab-build-images/debian-bullseye-ruby-2.7.patched-golang-1.18-node-16.14-postgresql-12:rubygems-3.2-git-2.36-lfs-2.9-chrome-103-yarn-1.22-graphicsmagick-1.3.36), though probably any Linux would do.
@graphql-eslint/eslint-plugin: 3.13.0
Node.js: 16.14.0

Additional context
I suspect that https://github.com/B2o5T/graphql-eslint/pull/1222 might be implicated, since it touches some caching-related stuff and was the most significant change between 3.12.0 and 3.13.0. But that's just a hunch.

@markrian thanks for the detailed report, and sorry for this (:
this should be fixed in 3.13.1 version

@B2o5T Thanks for the fast reply and fix!
Unfortunately, I'm still seeing memory issues with 3.13.1. See this job failure, which ran against 3.13.1.
So, I'm going to reopen this. Let me know if you'd like more information or a reduced test case for this!

do you have a failure locally as well?

do you have a failure locally as well?

I ran some tests locally, and I found 3.13.0 uses around 1.5GiB compared to 1.4GiB for 3.12.0 and 3.13.1 for that particular job. That doesn't sound like much, but maybe that's just enough to get killed in our CI (I'm not sure exactly what resource limits are like there).
As far as I can tell, yes, NODE is defined in our CI for that job: https://gitlab.com/gitlab-org/gitlab/-/jobs/3296964272#L72-74.
Given that I see effectively identical memory usage between 3.12.0 and 3.13.1 (but not 3.13.0) locally, I wonder if there's some Ci-related caching issue going on. I'll have a look into this.

I don't think this would help this particular case, but looking at the ModuleCache implementation, would it make sense to evict stale entries? I'm not sure if those stale entries are ever used, otherwise, and could then be GCed.
diff --git a/packages/plugin/src/cache.ts b/packages/plugin/src/cache.ts
index 915c391..748af55 100644
--- a/packages/plugin/src/cache.ts
+++ b/packages/plugin/src/cache.ts
@@ -24,6 +24,9 @@ export class ModuleCache<T, K = any> {
       process.hrtime(lastSeen)[0] < settings.lifetime
     ) {
       return result;
+    } else {
+      // evict stale result
+      this.map.delete(cacheKey);
     }
   }
 }

Between 3.12.0 and 3.13.0 I also updated graphql-tools/utils, I tried to downgrade it to the same version as in 3.12.0, could you test following alpha version if it fixes your issue? 3.13.2-alpha-20221109140613-1815aa1

Sadly it still OOMs. It's frustrating that I can't replicate this locally :weary:
I think I might just set NODE_OPTIONS=--max-old-space-size=3584 for now instead, or at least try different values.

Huh, even with NODE_OPTIONS=--max-old-space-size=3584 it got killed :thinking:
I'm going to have to put this aside for now and stay on 3.12.0 until I have more time to look into this.

I will close this issue due to no activity, will reopen it if it still exist for somebody

@Vitallium managed to figure out what the problem was! Our configuration had this:
operations:
  - '{,ee/,jh/}app/**/*.graphql'

And by enabling logging, we saw we got a lot of cache misses like this:
graphql-eslint:ModuleCache cache miss for [ '{,ee/,jh/}app/**/*.graphql' ]

For whatever reason, the operations array was getting recreated, so it would never result in a cache hit. Switching to a primitive string fixed it:
operations: '{,ee/,jh/}app/**/*.graphql'

That operations gets recreated suggests to me there is an inefficiency somewhere, but I'll leave it up to you @B2o5T as to whether it's worth reopening this for.

@markrian thanks for the detailed report, it’s very helpful. I thought the same reference for the documents key is used here https://github.com/B2o5T/graphql-eslint/blob/b3954231ecee964feccdd334acd3135a92e7ccf8/packages/plugin/src/documents.ts#L30 from graphql-config’s project.document 😬
If anyone wants to deep dive feel free until I will have some time to take a look deeply into why it occurs

@markrian how can I generate ./tmp/tests/graphql/gitlab_schema_apollo.graphql locally?

@B2o5T Two ways:

Run scripts/dump_graphql_schema in the GitLab repository.
Download the latest schema from master.

@markrian seems the problem is with how you run eslint https://gitlab.com/gitlab-org/gitlab/-/blob/master/package.json#L22
I wonder because no one else reported a similar problem once you reported your issue.
"lint:eslint:all": "node scripts/frontend/eslint.js ."

and your custom script https://gitlab.com/gitlab-org/gitlab/-/blob/master/scripts/frontend/eslint.js
const { spawn } = require('child_process');

const runEslint = () => {
  const [, , ...args] = process.argv;
  const child = spawn(`yarn`, ['internal:eslint', ...args], {
    stdio: 'inherit',
  });

  child.on('exit', (code) => {
    process.exitCode = code;

    if (code === 0) {
      return;
    }
    console.log(`
If you are seeing @graphql-eslint offences, the local GraphQL schema dump might be outdated.
Consider updating it by running \`./scripts/dump_graphql_schema\`.
    `);
  });
};

runEslint();

any real benefit of it?
@vitallium I have read your investigation

There is an issue with "graphql-eslint-plugin" cache implementation. The cache is implemented as a Map which stores an array as a reference. Having the "operations" key as an array invokes that issue so we never hit cache because arrays are compared by a reference in JavaScript. See below:
let arr = ['1'];
let cache = new Map();
cache.set(['1'], 1);
cache.has(['1']); // false

But I don't think is true (There is an issue with "graphql-eslint-plugin" cache implementation) because ESLint doesn't reload the config, and return always the same reference for parserOptions (with recommended way of running eslint and without child_process) https://github.com/B2o5T/graphql-eslint/blob/819c046c2a459d2e601a7c58823b3fc4862ece0e/packages/plugin/src/parser.ts#L15

I'm running into memory issues as well as of 3.13.0 and haven't been able to upgrade this library since, but I haven't been able to debug and/or dig into it further so have nothing useful to contribute to this issue. Fwiw, no custom scripts here, just running ESLint directly.

@pleunv try to update to the latest version and run your lint command with debug DEBUG=graphql-eslint:* eslint ...

Locally I can't seem to get it to crash at this time, however, it does still consistently crash on CI:
2023-07-02T20:07:44.5327553Z 2023-07-02T20:07:44.532Z graphql-eslint:schema Loading schema from [ './packages/project/config/api/schema.json', './packages/project/config/api/apollo-graphql-directives.graphql' ]
2023-07-02T20:07:44.5330166Z @graphql-tools/load: normalizePointers ./packages/project/config/api/schema.json: 0.011ms
2023-07-02T20:07:44.5331107Z @graphql-tools/load: normalizePointers ./packages/project/config/api/apollo-graphql-directives.graphql: 0.003ms
2023-07-02T20:07:44.5331731Z @graphql-tools/load: normalizePointers: 0.067ms
2023-07-02T20:07:44.5332379Z @graphql-tools/load: collectDocumentString ./packages/project/config/api/schema.json: 0.005ms
2023-07-02T20:07:44.5332748Z @graphql-tools/load: collectSourcesSync ./packages/project/config/api/schema.json: 0.027ms
2023-07-02T20:07:44.5333133Z @graphql-tools/load: collectDocumentString ./packages/project/config/api/apollo-graphql-directives.graphql: 0.003ms
2023-07-02T20:07:44.5335002Z @graphql-tools/load: collectSourcesSync ./packages/project/config/api/apollo-graphql-directives.graphql: 0.014ms
2023-07-02T20:07:44.5607808Z @graphql-tools/load: loadFileSync ./packages/project/config/api/schema.json: 27.516ms
2023-07-02T20:07:44.5613317Z @graphql-tools/load: collectFallbackSync ./packages/project/config/api/schema.json: 28.053ms
2023-07-02T20:07:44.5623446Z @graphql-tools/load: loadFileSync ./packages/project/config/api/apollo-graphql-directives.graphql: 0.573ms
2023-07-02T20:07:44.5627586Z @graphql-tools/load: collectFallbackSync ./packages/project/config/api/apollo-graphql-directives.graphql: 1.032ms
2023-07-02T20:07:44.5631519Z @graphql-tools/load: collectSourcesSync queue: 29.99ms
2023-07-02T20:07:44.6424505Z @graphql-tools/load: parseSchema /home/vsts/work/1/s/packages/project/config/api/schema.json: 78.718ms
2023-07-02T20:07:44.8370023Z @graphql-tools/load: parseRawSDL /home/vsts/work/1/s/packages/project/config/api/schema.json: 193.915ms
2023-07-02T20:07:44.8479040Z @graphql-tools/load: useComments /home/vsts/work/1/s/packages/project/config/api/schema.json: 0.008ms
2023-07-02T20:07:44.8483385Z @graphql-tools/load: collectValidSources /home/vsts/work/1/s/packages/project/config/api/schema.json: 0.008ms
2023-07-02T20:07:44.8487014Z @graphql-tools/load: parseSource /home/vsts/work/1/s/packages/project/config/api/schema.json: 285.155ms
2023-07-02T20:07:44.8491283Z @graphql-tools/load: parseSchema /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 0.004ms
2023-07-02T20:07:44.8495219Z @graphql-tools/load: parseRawSDL /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 0.008ms
2023-07-02T20:07:44.8524508Z @graphql-tools/load: useComments /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 2.415ms
2023-07-02T20:07:44.8528596Z @graphql-tools/load: collectValidSources /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 0.008ms
2023-07-02T20:07:44.8532489Z @graphql-tools/load: parseSource /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 4.131ms
2023-07-02T20:07:44.8536136Z @graphql-tools/load: prepareResult: 0.011ms
2023-07-02T20:07:44.8539512Z @graphql-tools/load: loadTypedefsSync: 321.322ms
2023-07-02T20:07:47.3035841Z 2023-07-02T20:07:46.802Z graphql-eslint:schema Schema loaded: true
2023-07-02T20:07:47.3036722Z 2023-07-02T20:07:46.803Z graphql-eslint:schema Schema pointers []
2023-07-02T20:07:47.3037144Z 2023-07-02T20:07:46.804Z graphql-eslint:ModuleCache setting entry for [
2023-07-02T20:07:47.3037509Z   './packages/project/config/api/schema.json',
2023-07-02T20:07:47.3037890Z   './packages/project/config/api/apollo-graphql-directives.graphql'
2023-07-02T20:07:47.3038154Z ]
2023-07-02T20:07:47.3038473Z 2023-07-02T20:07:46.866Z graphql-eslint:graphql-config options.skipGraphQLConfig: undefined
2023-07-02T20:07:47.3038957Z 2023-07-02T20:07:46.866Z graphql-eslint:graphql-config Graphql-config path '/home/vsts/work/1/s/.graphqlrc.yml'
2023-07-02T20:07:47.3039382Z 2023-07-02T20:07:46.867Z graphql-eslint:ModuleCache cache miss for [
2023-07-02T20:07:47.3039739Z   './packages/project/config/api/schema.json',
2023-07-02T20:07:47.3040089Z   './packages/project/config/api/apollo-graphql-directives.graphql'
2023-07-02T20:07:47.3040346Z ]
2023-07-02T20:07:47.3040793Z 2023-07-02T20:07:46.867Z graphql-eslint:schema Loading schema from [ './packages/project/config/api/schema.json', './packages/project/config/api/apollo-graphql-directives.graphql' ]
2023-07-02T20:07:47.3041286Z @graphql-tools/load: normalizePointers ./packages/project/config/api/schema.json: 0.011ms
2023-07-02T20:07:47.3041723Z @graphql-tools/load: normalizePointers ./packages/project/config/api/apollo-graphql-directives.graphql: 0.004ms
2023-07-02T20:07:47.3042096Z @graphql-tools/load: normalizePointers: 0.105ms
2023-07-02T20:07:47.3042489Z @graphql-tools/load: collectDocumentString ./packages/project/config/api/schema.json: 0.005ms
2023-07-02T20:07:47.3042898Z @graphql-tools/load: collectSourcesSync ./packages/project/config/api/schema.json: 0.06ms
2023-07-02T20:07:47.3043332Z @graphql-tools/load: collectDocumentString ./packages/project/config/api/apollo-graphql-directives.graphql: 0.003ms
2023-07-02T20:07:47.3043797Z @graphql-tools/load: collectSourcesSync ./packages/project/config/api/apollo-graphql-directives.graphql: 0.032ms
2023-07-02T20:07:47.3044229Z @graphql-tools/load: loadFileSync ./packages/project/config/api/schema.json: 83.123ms
2023-07-02T20:07:47.3044641Z @graphql-tools/load: collectFallbackSync ./packages/project/config/api/schema.json: 89.387ms
2023-07-02T20:07:47.3049570Z @graphql-tools/load: loadFileSync ./packages/project/config/api/apollo-graphql-directives.graphql: 0.871ms
2023-07-02T20:07:47.3050022Z @graphql-tools/load: collectFallbackSync ./packages/project/config/api/apollo-graphql-directives.graphql: 0.978ms
2023-07-02T20:07:47.3050410Z @graphql-tools/load: collectSourcesSync queue: 90.527ms
2023-07-02T20:07:48.8212593Z @graphql-tools/load: parseSchema /home/vsts/work/1/s/packages/project/config/api/schema.json: 1.863s
2023-07-02T20:07:48.9171234Z @graphql-tools/load: parseRawSDL /home/vsts/work/1/s/packages/project/config/api/schema.json: 87.531ms
2023-07-02T20:07:48.9174358Z @graphql-tools/load: useComments /home/vsts/work/1/s/packages/project/config/api/schema.json: 0.006ms
2023-07-02T20:07:48.9175283Z @graphql-tools/load: collectValidSources /home/vsts/work/1/s/packages/project/config/api/schema.json: 0.007ms
2023-07-02T20:07:48.9175842Z @graphql-tools/load: parseSource /home/vsts/work/1/s/packages/project/config/api/schema.json: 1.959s
2023-07-02T20:07:48.9176637Z @graphql-tools/load: parseSchema /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 0.004ms
2023-07-02T20:07:48.9177198Z @graphql-tools/load: parseRawSDL /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 0.005ms
2023-07-02T20:07:48.9180365Z @graphql-tools/load: useComments /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 0.171ms
2023-07-02T20:07:48.9181003Z @graphql-tools/load: collectValidSources /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 0.006ms
2023-07-02T20:07:48.9181518Z @graphql-tools/load: parseSource /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 0.51ms
2023-07-02T20:07:48.9182056Z @graphql-tools/load: prepareResult: 0.01ms
2023-07-02T20:07:48.9182528Z @graphql-tools/load: loadTypedefsSync: 2.051s
2023-07-02T20:07:49.3327813Z 2023-07-02T20:07:49.332Z graphql-eslint:schema Schema loaded: true
2023-07-02T20:07:49.3376475Z 2023-07-02T20:07:49.337Z graphql-eslint:schema Schema pointers []
2023-07-02T20:07:49.3377068Z 2023-07-02T20:07:49.337Z graphql-eslint:ModuleCache setting entry for [
2023-07-02T20:07:49.3377384Z   './packages/project/config/api/schema.json',
2023-07-02T20:07:49.3377665Z   './packages/project/config/api/apollo-graphql-directives.graphql'
2023-07-02T20:07:49.3377855Z ]
2023-07-02T20:07:49.3616597Z 2023-07-02T20:07:49.361Z graphql-eslint:graphql-config options.skipGraphQLConfig: undefined
2023-07-02T20:07:49.3617225Z 2023-07-02T20:07:49.361Z graphql-eslint:graphql-config Graphql-config path '/home/vsts/work/1/s/.graphqlrc.yml'
2023-07-02T20:07:49.3621995Z 2023-07-02T20:07:49.362Z graphql-eslint:ModuleCache cache miss for [
2023-07-02T20:07:49.3622459Z   './packages/project/config/api/schema.json',
2023-07-02T20:07:49.3622759Z   './packages/project/config/api/apollo-graphql-directives.graphql'
2023-07-02T20:07:49.3622943Z ]
2023-07-02T20:07:49.3623371Z 2023-07-02T20:07:49.362Z graphql-eslint:schema Loading schema from [ './packages/project/config/api/schema.json', './packages/project/config/api/apollo-graphql-directives.graphql' ]
2023-07-02T20:07:49.3626602Z @graphql-tools/load: normalizePointers ./packages/project/config/api/schema.json: 0.011ms
2023-07-02T20:07:49.3627406Z @graphql-tools/load: normalizePointers ./packages/project/config/api/apollo-graphql-directives.graphql: 0.003ms
2023-07-02T20:07:49.3628236Z @graphql-tools/load: normalizePointers: 0.075ms
2023-07-02T20:07:49.3630817Z @graphql-tools/load: collectDocumentString ./packages/project/config/api/schema.json: 0.006ms
2023-07-02T20:07:49.3631534Z @graphql-tools/load: collectSourcesSync ./packages/project/config/api/schema.json: 0.036ms
2023-07-02T20:07:49.3632378Z @graphql-tools/load: collectDocumentString ./packages/project/config/api/apollo-graphql-directives.graphql: 0.003ms
2023-07-02T20:07:49.3633478Z @graphql-tools/load: collectSourcesSync ./packages/project/config/api/apollo-graphql-directives.graphql: 0.014ms
2023-07-02T20:07:49.5438094Z @graphql-tools/load: loadFileSync ./packages/project/config/api/schema.json: 180.475ms
2023-07-02T20:07:49.5439462Z @graphql-tools/load: collectFallbackSync ./packages/project/config/api/schema.json: 180.552ms
2023-07-02T20:07:49.5485539Z @graphql-tools/load: loadFileSync ./packages/project/config/api/apollo-graphql-directives.graphql: 4.751ms
2023-07-02T20:07:49.5486590Z @graphql-tools/load: collectFallbackSync ./packages/project/config/api/apollo-graphql-directives.graphql: 4.806ms
2023-07-02T20:07:49.5487563Z @graphql-tools/load: collectSourcesSync queue: 185.423ms
2023-07-02T20:07:51.2703236Z @graphql-tools/load: parseSchema /home/vsts/work/1/s/packages/project/config/api/schema.json: 1.722s
2023-07-02T20:07:51.3405619Z @graphql-tools/load: parseRawSDL /home/vsts/work/1/s/packages/project/config/api/schema.json: 69.749ms
2023-07-02T20:07:51.3413032Z @graphql-tools/load: useComments /home/vsts/work/1/s/packages/project/config/api/schema.json: 0.005ms
2023-07-02T20:07:51.3417040Z @graphql-tools/load: collectValidSources /home/vsts/work/1/s/packages/project/config/api/schema.json: 0.008ms
2023-07-02T20:07:51.3420601Z @graphql-tools/load: parseSource /home/vsts/work/1/s/packages/project/config/api/schema.json: 1.794s
2023-07-02T20:07:51.3424354Z @graphql-tools/load: parseSchema /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 0.005ms
2023-07-02T20:07:51.3428037Z @graphql-tools/load: parseRawSDL /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 0.006ms
2023-07-02T20:07:51.3434426Z @graphql-tools/load: useComments /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 0.175ms
2023-07-02T20:07:51.3438321Z @graphql-tools/load: collectValidSources /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 0.007ms
2023-07-02T20:07:51.3441897Z @graphql-tools/load: parseSource /home/vsts/work/1/s/packages/project/config/api/apollo-graphql-directives.graphql: 1.774ms
2023-07-02T20:07:51.3445502Z @graphql-tools/load: prepareResult: 0.011ms
2023-07-02T20:07:51.3448876Z @graphql-tools/load: loadTypedefsSync: 1.982s
2023-07-02T20:07:51.6687443Z 2023-07-02T20:07:51.668Z graphql-eslint:schema Schema loaded: true
2023-07-02T20:07:51.6780904Z 2023-07-02T20:07:51.677Z graphql-eslint:schema Schema pointers []
2023-07-02T20:07:51.6785864Z 2023-07-02T20:07:51.678Z graphql-eslint:ModuleCache setting entry for [
2023-07-02T20:07:51.6786712Z   './packages/project/config/api/schema.json',
2023-07-02T20:07:51.6787675Z   './packages/project/config/api/apollo-graphql-directives.graphql'
2023-07-02T20:07:51.6788180Z ]
2023-07-02T20:07:51.7164900Z 2023-07-02T20:07:51.716Z graphql-eslint:graphql-config options.skipGraphQLConfig: undefined
2023-07-02T20:07:51.7169697Z 2023-07-02T20:07:51.716Z graphql-eslint:graphql-config Graphql-config path '/home/vsts/work/1/s/.graphqlrc.yml'
2023-07-02T20:07:51.7178691Z 2023-07-02T20:07:51.717Z graphql-eslint:ModuleCache cache miss for [
2023-07-02T20:07:51.7179542Z   './packages/project/config/api/schema.json',
2023-07-02T20:07:51.7180157Z   './packages/project/config/api/apollo-graphql-directives.graphql'
2023-07-02T20:07:51.7180702Z ]
2023-07-02T20:07:51.7220494Z 2023-07-02T20:07:51.721Z graphql-eslint:schema Loading schema from [ './packages/project/config/api/schema.json', './packages/project/config/api/apollo-graphql-directives.graphql' ]
2023-07-02T20:07:51.7225069Z @graphql-tools/load: normalizePointers ./packages/project/config/api/schema.json: 0.011ms
2023-07-02T20:07:51.7228775Z @graphql-tools/load: normalizePointers ./packages/project/config/api/apollo-graphql-directives.graphql: 0.006ms
2023-07-02T20:07:51.7232226Z @graphql-tools/load: normalizePointers: 0.773ms
2023-07-02T20:07:51.7236889Z @graphql-tools/load: collectDocumentString ./packages/project/config/api/schema.json: 0.007ms
2023-07-02T20:07:51.7240892Z @graphql-tools/load: collectSourcesSync ./packages/project/config/api/schema.json: 0.427ms
2023-07-02T20:07:51.7244572Z @graphql-tools/load: collectDocumentString ./packages/project/config/api/apollo-graphql-directives.graphql: 0.006ms
2023-07-02T20:07:51.7248088Z @graphql-tools/load: collectSourcesSync ./packages/project/config/api/apollo-graphql-directives.graphql: 0.367ms
2023-07-02T20:07:54.4745118Z
2023-07-02T20:07:54.4746653Z <--- Last few GCs --->
2023-07-02T20:07:54.4747219Z
2023-07-02T20:07:54.4748608Z [1820:0x66f8430]   263439 ms: Scavenge 1993.6 (2061.1) -> 1987.8 (2077.1) MB, 24.79 / 0.00 ms  (average mu = 0.349, current mu = 0.370) allocation failure;
2023-07-02T20:07:54.4749704Z [1820:0x66f8430]   263537 ms: Scavenge 2003.0 (2077.1) -> 1990.3 (2077.6) MB, 21.98 / 0.00 ms  (average mu = 0.349, current mu = 0.370) allocation failure;
2023-07-02T20:07:54.4750452Z [1820:0x66f8430]   263591 ms: Scavenge 2006.0 (2078.1) -> 1993.9 (2078.9) MB, 14.62 / 0.00 ms  (average mu = 0.349, current mu = 0.370) allocation failure;
2023-07-02T20:07:54.4750930Z
2023-07-02T20:07:54.4751334Z
2023-07-02T20:07:54.4751775Z <--- JS stacktrace --->
2023-07-02T20:07:54.4751904Z
2023-07-02T20:07:54.4752219Z FATAL ERROR: Ineffective mark-compacts near heap limit Allocation failed - JavaScript heap out of memory
2023-07-02T20:07:54.4756868Z  1: 0xc8d700 node::Abort() [node]
2023-07-02T20:07:54.4762272Z  2: 0xb6b8f3  [node]
2023-07-02T20:07:54.4769081Z  3: 0xeac370 v8::Utils::ReportOOMFailure(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [node]
2023-07-02T20:07:54.4775880Z  4: 0xeac657 v8::internal::V8::FatalProcessOutOfMemory(v8::internal::Isolate*, char const*, v8::OOMDetails const&) [node]
2023-07-02T20:07:54.4783486Z  5: 0x10bdcc5  [node]
2023-07-02T20:07:54.4791311Z  6: 0x10be254 v8::internal::Heap::RecomputeLimits(v8::internal::GarbageCollector) [node]
2023-07-02T20:07:54.4799007Z  7: 0x10d5144 v8::internal::Heap::PerformGarbageCollection(v8::internal::GarbageCollector, v8::internal::GarbageCollectionReason, char const*) [node]
2023-07-02T20:07:54.4806684Z  8: 0x10d595c v8::internal::Heap::CollectGarbage(v8::internal::AllocationSpace, v8::internal::GarbageCollectionReason, v8::GCCallbackFlags) [node]
2023-07-02T20:07:54.4814403Z  9: 0x10abc61 v8::internal::HeapAllocator::AllocateRawWithLightRetrySlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
2023-07-02T20:07:54.4821977Z 10: 0x10acdf5 v8::internal::HeapAllocator::AllocateRawWithRetryOrFailSlowPath(int, v8::internal::AllocationType, v8::internal::AllocationOrigin, v8::internal::AllocationAlignment) [node]
2023-07-02T20:07:54.4829476Z 11: 0x108a366 v8::internal::Factory::NewFillerObject(int, v8::internal::AllocationAlignment, v8::internal::AllocationType, v8::internal::AllocationOrigin) [node]
2023-07-02T20:07:54.4839555Z 12: 0x14e5196 v8::internal::Runtime_AllocateInYoungGeneration(int, unsigned long*, v8::internal::Isolate*) [node]
2023-07-02T20:07:54.4839974Z 13: 0x7f294fe99ef6
2023-07-02T20:07:54.8119533Z undefined
2023-07-02T20:07:54.8128324Z /home/vsts/work/1/s/packages/project:
2023-07-02T20:07:54.8130531Z  ERR_PNPM_RECURSIVE_RUN_FIRST_FAIL<EMAIL_ADDRESS>lint: `cross-env NODE_ENV=test DEBUG=graphql-eslint:* eslint --cache --cache-location=node_modules/.cache/eslint/ --cache-strategy content --ext=.js,.jsx,.ts,.tsx,.cts,.mts,.gql src scripts`
2023-07-02T20:07:54.8131027Z Exit status 1
2023-07-02T20:07:54.8380181Z ##[error]Bash exited with code '1'.
2023-07-02T20:07:54.8390665Z ##[section]Finishing: Run eslint

I do notice a massive perf regression when running locally.
v3.12.0:
✖ 135 problems (0 errors, 135 warnings)

pnpm run lint  77.41s user 7.12s system 130% cpu 1:04.88 total

v3.19.3:
✖ 135 problems (0 errors, 135 warnings)

pnpm run lint  269.03s user 34.86s system 163% cpu 3:06.25 total

@pleunv try remove NODE_ENV=test, graphql-eslint doesn't cache graphql-config if process.env.NODE_ENV === test
https://github.com/B2o5T/graphql-eslint/blob/50e853c91655cf4d6f6439d3a25170a3c252b8d7/packages/plugin/src/graphql-config.ts#L26-L30

Oh wow... Yeah, that was it! Back to normal speeds now. Not even sure why it was there, probably a remnant from the babel-parser days where I had a faster test-specific transform config. Many many thanks!


cleanup expects MONGO_URI, deploy to Heroku uses MONGODB_URI

You can run commands with the running bot on Heroku directly.
For example, heroku run node_modules/.bin/cleanup
Currently, this throws an error, starting with "MongoError: failed to connect to server…".
This happens because cleanup has process.env.MONGO_URI, and mongoLab addon uses MONGODB_URI by default.
Work around: edit your Heroku environment that copies your MONGODB_URI to a new config var MONGO_URI.
Suggested fix: add an additional || process.env.MONGODB_URI to the mongoURI line in cleanup.

Nice catch! Will change when I get a moment. :smile:

Fixed in v1.0.6 - sorry for the wait!


[Feature] Sql Server Agent- Run From Step ability

Sql Server Agent is looking excellent. Would love to see the functionality to Run from Step on a job. We have multi step jobs that we need to run from a certain step under certain conditions and would love to be able to do it from SQL OPS and not jump box to a windows machine to do the task.

@kburtram We will have the "Run Job" feature in the Jobs and Jobs History page, but not individual steps. Do we plan to have running individual steps?

The run individual steps is what I was referring to, We utilize an agent job with multiple steps and there are times we go in and run from step 10 for instance of a 30 step job. It would be awesome to have that functionality instead of having to go to another tool.

@abist is this still planned for December release?

@kburtram This is now possible using the Edit Job -> Edit Step and reordering the steps. We don't have a specific button to start from a specific step. Will try to get that in if we want it that way as well.

@kburtram Added new PR for direct functionality.


How to fix this please

System OS
Linux
Python Version
3.9 (CPython)
Install Source
pip / PyPi
Install version / commit hash
Version: 3.9.2
Expected Behavior vs Actual Behavior
how i do fix this things please im new at OS linux can you help me ? please
Steps to reproduce
idunno
Traceback
/usr/lib/python3/dist-packages/requests/__init__.py:89: RequestsDependencyWarning: urllib3 (1.26.8) or chardet (3.0.4) doesn't match a supported version!
  warnings.warn("urllib3 ({}) or chardet ({}) doesn't match a supported "
Traceback (most recent call last):
  File "/usr/local/bin/spotdl", line 8, in <module>
    sys.exit(console_entry_point())
  File "/usr/local/lib/python3.8/dist-packages/spotdl/console/__init__.py", line 18, in console_entry_point
    arguments = parse_arguments()
  File "/usr/local/lib/python3.8/dist-packages/spotdl/parsers/argument_parser.py", line 98, in parse_arguments
    version = pkg_resources.require("spotdl")[0].version
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 901, in require
    needed = self.resolve(parse_requirements(requirements))
  File "/usr/lib/python3/dist-packages/pkg_resources/__init__.py", line 792, in resolve
    raise VersionConflict(dist, req).with_context(dependent_req)
pkg_resources.ContextualVersionConflict: (requests 2.22.0 (/usr/lib/python3/dist-packages), Requirement.parse('requests>=2.25.0'), {'spotipy'})

Other details
No response

pip install -U --force requests urllib3 chardet
The error message is quite self explanatory.
Please put a title describing your issue next time

can you help me once more time how do i solve this ? please
Defaulting to user installation because normal site-packages is not writeable
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/requests/
WARNING: Retrying (Retry(total=3, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/requests/
WARNING: Retrying (Retry(total=2, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/requests/
WARNING: Retrying (Retry(total=1, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/requests/
WARNING: Retrying (Retry(total=0, connect=None, read=None, redirect=None, status=None)) after connection broken by 'SSLError("Can't connect to HTTPS URL because the SSL module is not available.")': /simple/requests/
Could not fetch URL https://pypi.org/simple/requests/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/requests/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping
ERROR: Could not find a version that satisfies the requirement requests (from versions: none)
ERROR: No matching distribution found for requests
WARNING: pip is configured with locations that require TLS/SSL, however the ssl module in Python is not available.
Could not fetch URL https://pypi.org/simple/pip/: There was a problem confirming the ssl certificate: HTTPSConnectionPool(host='pypi.org', port=443): Max retries exceeded with url: /simple/pip/ (Caused by SSLError("Can't connect to HTTPS URL because the SSL module is not available.")) - skipping

pip3 install -U --force requests urllib3 chardet

i cant download it what happens ? how do i fix this, did my connection problems ?

pip3 install -U --force requests urllib3 chardet The error message is quite self explanatory. Please put a title describing your issue next time

thanks it worked now my python3 its not python3 its python and pip3 its not pip3 its pip
Thanks anyways :D


Fix ORM path for docs

📑 Description
Fix ORM path for docs

✅ Checks

[X] My pull request adheres to the code style of this project
[ ] My code requires changes to the documentation
[ ] I have updated the documentation as required
[ ] All the tests have passed

ℹ Additional Information

Showing 404 not found on ORM documentation

Sorry, just saw this PR, and thanks, had fixed.


IPython v0.11 support in Console

From pierre.raybaut on 2011-08-06T05:57:49Z
IPython v0.11 will be not be fully supported on Windows platforms within Spyder's console plugin.
A specific plugin will bring support for IPython v0.11 on all platforms: https://code.google.com/p/spyderlib/issues/detail?id=726
Original issue: http://code.google.com/p/spyderlib/issues/detail?id=727

From pierre.raybaut on 2011-08-06T04:00:20Z
issue #723 has been merged into this issue.

From pierre.raybaut on 2011-08-06T05:03:16Z
issue #708 has been merged into this issue.

From<EMAIL_ADDRESS>on 2011-08-06T05:06:34Z
:D At last

From<EMAIL_ADDRESS>on 2011-08-08T19:41:18Z
"a specific plugin will bring support..." Does this exist yet?  If so, where can I find it?

From<EMAIL_ADDRESS>on 2011-08-09T04:21:09Z
OK, thanks.  See also my post on thread 723.  Enjoy your holidays.

From pierre.raybaut on 2011-08-09T03:50:57Z
No this plugins is not written yet. I've just started to think about it and test some basic things. I don't expect to be able to ready for testing until two or three weeks (I'm quite busy at least in the next 10 days, being in vacation).
I'll write something about this either on Spyder's discussion group or on Spyder's blog.

From pierre.raybaut on 2011-08-09T07:20:12Z
See this post for more details: http://spyder-ide.blogspot.com/2011/08/ipython-has-taken-huge-step-forward.html

From pierre.raybaut on 2011-08-10T06:16:08Z
Apart from the fact that IPython v0.11 will not be fully supported on Windows platforms (see Spyder's blog: link in comment 7), the only thing missing to close this issue is to enable IPython command line option parsing -- this feature was broken with IPython v0.11 (i.e. options specified in Console preferences are simply ignored).

From pierre.raybaut on 2011-09-04T07:24:23Z
Please see this post: http://spyder-ide.blogspot.com/2011/09/no-ipython-v011-support-in-spyders.html
Status: WontFix

From pierre.raybaut on 2011-09-04T06:07:54Z
issue #743 has been merged into this issue.


Fix double named size parameter

Ran into this when creating new GD extension bindings. Parameter had duplicate name.

Thanks!

GDNative is going away soon, I'm writing TextServer GDExtension to replace it right now, so it's probably not worth fixing.

This effected the new GD Extensions as well seeing there are normal classes involved, indeed the GDNative changes are pointless, only needed so we can keep producing the right json :)


Support side-by-side parsing view

Fixes #92, would love feedback on this interface / design @akprasad .

Added a "Parsed View" option that can be set to "in place" (default) or "side by side" (viewing texts side by side)
Added optimizations so that if someone toggles between sandhi / samhita multiple times for the same verse, it doesn't keep making network requests, but rather just uses the value from previous network requests
Added side by side view

Screenshots:

@akprasad ready for another review, switched it to use the new block structure and flexbox.


Update the README

Repo created #1 time to update the README

Created the repo #1 now update the README


[Other Issue] testing new issue notification from CTA

Description of issue
Verify if AwsPortingAssistantSupport could receive email notifications when new issue was created on CTA github.
Additional context
Provide any additional information

Test was successful, closing the ticket now.


loosen network dependency

How about removing the upper bound instead?

I'm not a big fun of not having upper bound, but it seems reasonable in this case, fixing.

done

:+1:


Enable Rekognition Custom Labels as a workflow

Is your feature request related to a problem? Please describe.
Today MIE leverages Rekognition Video, however, for applications where custom labels are needed, this has to be built outside MIE.
Describe the feature you'd like
Create a workflow that leverages Rekognition custom labels within MIE. And enable converting a video file (example .mp4) into frames or images.
Additional context

Thank you for your suggestion. We've carefully considered your feedback and have decided not to include this feature in a future release.


Fix AttachFile icon size in SearchResult component

Checklist

[x] the contributor license agreement is signed
[x] commit message follows commit guidelines
[x] screenshots are included showing significant UI changes

Description of change

https://github.com/openequella/openEQUELLA/issues/1306
Before fix

After fix

Heya @mrblippy
Why does margin vs. padding impact the size of the icon? Is it because padding is reducing some space and it's just creating it fill the area?


Push new 2020.10 image to docker hub

The current 2010.10 image on docker hub is missing /usr/share/perl6/vendor/bin/ from $PATH, which contains zef, prove6 etc. This issue was fixed in https://github.com/Raku/docker/pull/36. A new image should be pushed to docker hub so that these commands can be run normally.

Let me see if I can handle that. Thanks for the report.

Wait, what current image you mean? I just created a "Rakulang" group in Docker Hub to take care of this. I'm not really sure who's in charge of that image. Is it the Rakudo image?

I have created this organization, let me know your Docker Hub user so that I can add you. Also, you can maybe figure out how to create a repo without linking it to my personal account... I have found no way to link it to this organization. Maybe via webhooks.

Nope, no way to link the organization, despite it being theoretically possible...

OTOH, it's entirely possible that I don't have the privileges to do so.

Closing ~because I have fat fingers~because I don't really see a way for me to fix it. Maybe someone else can reopen and try and fix it.

It looks like it needs to be changed in the https://github.com/docker-library/official-images repo. I've created PR https://github.com/docker-library/official-images/pull/9100 for this update.


Fix the error.

Uncaught TypeError: Cannot read property 'length' of undefined
    at processAddedTrack (e.js:6654)
    at RTCPeerConnection.pc.ontrack [as _ontrack] (e.js:6820)

@MariasStory can you change easyrt_int.jd for me to see the change I will take care of  seen if it's from adapter.js or easyrtc right now you change is hard to see for me.

@MariasStory I'm closing for now, we updated webrtc adapter in beta give it a try.
If you still have the issue and want to make a PR I need the change in easyrtc_int.js

Hi @hthetiot, I'll check the beta branch ;-)


Module tests not passing

This is due to the default no longer matching the default output of JSON::Fast.to-json. This now defaults to :pretty, which inserts line spaces.
I will attempt to fix.

It also appears that the data is different. p6dx will produce results based on the local directory, but the comparative data is always prefixed with:
/home/travis/build/MadcapJake/p6dx/t/fixtures/

This may be fine for travis-ci builds, but will always fail when installed elsewhere.


ENH: check alarm status on EpicsMotor for success/failure

@tacaswell

Current coverage is 84.01% (diff: 69.84%)

Merging #348 into master will decrease coverage by 0.20%

@@             master       #348   diff @@
==========================================
  Files            30         30
  Lines          4491       4553    +62
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           3782       3825    +43
- Misses          709        728    +19
  Partials          0          0

Powered by Codecov. Last update 8b08dd3...58f441e

Current coverage is 84.47% (diff: 93.75%)

Merging #348 into master will increase coverage by 0.26%

@@             master       #348   diff @@
==========================================
  Files            30         30
  Lines          4491       4509    +18
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
+ Hits           3782       3809    +27
+ Misses          709        700     -9
  Partials          0          0

Powered by Codecov. Last update 8b08dd3...3a32db3


Add from_credentials to WebchatInput

Is your feature request related to a problem? Please describe.
When I implemented webchat using WebchatInput, "Access-Control-Allow-Origin cannot contain more than one origin" error was happened.
The cause of this problems is below codes
sio = AsyncServer(
      async_mode="sanic", cors_allowed_origins=self.cors_allowed_origins
)

self.cors_allowed_origins is always *.
But to enable CORS in AsyncServer, need to set [] to cors_allowed_origins.
see
https://github.com/miguelgrinberg/python-socketio/issues/205#issuecomment-493769183
Describe the solution you'd like
I think that need to set [] to cors_allowed_origins if necessary.
I added from_credentials function to WebchatInput class.

Thanks!


[BUG]

"detail": "The username you entered doesn't appear to belong to an account. Please check your username and try again.",
"exc_type": "UnknownError"

@rodsv what are you trying to say?


Rescue from StateMachines::InvalidTransition

During virus scanning, it is possible that the asset has been amended. In this case, the asset's state will have changed from unscanned to something else.
This subsequent change of state by scanned_clean will not be permitted, as the initial state on this transition must be unscanned.
Rescuing from the exception will stop this being reported to Sentry, as the behaviour is expected.
The comment in the rescue block is required to appease rubocop.
Sentry issue.
⚠ This repo is Continuously Deployed: make sure you follow the guidance ⚠

I'm closing this as we're going to do more investigation work in another Trello card.


Port "Steady-State: Optomechanical System in the Single-Photon Strong-Coupling Regime" tutorial to QuTiP 5.

The Steady-State: Optomechanical System tutorial is currently only available for QuTiP 4. It needs to be ported to QuTiP 5.
Steps:

Copy the Markdown notebook into the appropriate folder under tutorials-v5.
Update the notebook to work with QuTiP 5.
Make any small improvements needed to the notebook.
Add some assertions to the end of the notebook to ensure it ran correctly (e.g. check some results).
Check that the notebook is included in the website build scripts.

I would like to take this!

Congratulations @obliviateandsurrender and thank you for contributing to QuTiP.
I've assigned this issue to you. The UnitaryHACK team should do the rest.


use ApplyDeployment instead of ApplyDeploymentWithForce

Same as https://github.com/openshift/cluster-kube-descheduler-operator/pull/272

/hold

/retest

=== RUN   TestScheduling
    operator_test.go:159: Unable to create a pod: pods "test-secondary-scheduler-sheduling-pod" is forbidden: violates PodSecurity "restricted:latest": allowPrivilegeEscalation != false (container "pause" must set securityContext.allowPrivilegeEscalation=false), unrestricted capabilities (container "pause" must set securityContext.capabilities.drop=["ALL"]), runAsNonRoot != true (pod or container "pause" must set securityContext.runAsNonRoot=true), seccompProfile (pod or container "pause" must set securityContext.seccompProfile.type to "RuntimeDefault" or "Localhost")

is a valid failure. https://github.com/openshift/secondary-scheduler-operator/blob/master/test/e2e/operator_test.go#L148-L156 needs to be updated to include https://github.com/openshift/secondary-scheduler-operator/blob/master/bindata/assets/secondary-scheduler/deployment.yaml#L18-L21 and https://github.com/openshift/secondary-scheduler-operator/blob/master/bindata/assets/secondary-scheduler/deployment.yaml#L29-L32.

/retest

/retest

/retest

/hold cancel
/lgtm


[Bug] Test case gets failed by throwing an error

From chip-certification-tool created by KishokG: CHIP-Specifications/chip-certification-tool#957
Describe the bug
While executing more number of test cases combinedly, the test case gets fail after completion of some test case by throwing below error

-Test Step Error: Error occurred during execution of test case TC-OZCONC-1.1. sent 1011 (unexpected error) keepalive ping timeout; no close frame received

Steps to reproduce the behavior

From the Test-Harness user interface loaded the PICS xml file to select the test cases.
Selected all the Concentration measurement test case to executed.
Executed the below mentioned command to put DUT into a commissionable state, ./chip-all-clusters-app
Click the Start button on Test-Harness user interface.

Expected behavior
TC should execute successfully without error
Log files
Execution Logs: CONCENTRATION_MEASUREMENT.log
Back-end Log: Backend log.txt
PICS file
Concentration measurement PICS.zip
Screenshots

Environment
Version: TH Fall2023
Sha: 58a51bef
Additional Information
No response

@KishokG is the issue only happening if this test case TC-OZCONC-1.1 is part of the list ?

@raju-apple If we run the UI test runner by selecting any one to two test case there is no issue but when it comes to selecting test more more that 5 or two test case with more number test steps the test runner end with the mentioned error " sent 1011 (unexpected error) keepalive ping timeout; no close frame received"

SDK Issue open: https://github.com/project-chip/connectedhomeip/issues/29194

SDK issue now fixed.


How to hide it by default

I don't want to disable or uninstall the plugin but I want to hide it by default.
Currently it loads enabled by default.

I'm not sure what you mean, ctrl+shift+g will hide/show it. Do you mean you want to turn it on per window?

If I disabled it globally, when I restart IntelliJ, it shows by default.
What I expect is that if I disable it, then re-open my project, it is disabled.

Ahh I see. Yeah that was done deliberately to reduce the number of people disabling it, then creating issues with "Why isn't it working"
https://github.com/Vektah/CodeGlance/commit/a4369f183ac8fd6fddca98553d76a5cabacb386d#diff-a1c58f75c8958ac65408c3de6ceb09edR53
Maybe I can remove that again now and see...

Thank you that would be great.
On 11 March 2017 at 10:43, Adam Scarr<EMAIL_ADDRESS>wrote:

Ahh I see. Yeah that was done deliberately to reduce the number of people
disabling it, then creating issues with "Why isn't it working"
a4369f1#diff-a1c58f75c8958ac65408c3de6ceb09edR53
https://github.com/Vektah/CodeGlance/commit/a4369f183ac8fd6fddca98553d76a5cabacb386d#diff-a1c58f75c8958ac65408c3de6ceb09edR53
Maybe I can remove that again now and see...
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/Vektah/CodeGlance/issues/163#issuecomment-285855908,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AARLRc6Udmrmaol8Pf9Tml0uNQMWUnAfks5rkmyogaJpZM4MZbyW
.


Make authentication configurable with cli option

Currently, you get cookies no matter what.
We can all debate what should be the default, but I think it would be very convenient to have options here.
--auth=cookie
--auth=jwt
--auth=session
--auth=basic
--no-auth

Hi @johncmunson what you do you mean by you get cookies no matter what? There is no authentication system in this generator currently, so not sure what you mean by that.
As for adding one, you'll likely need to make a pull request if you're inclined to have the feature, as otherwise there is likely no one who will do so, and what exactly you would like those options to do are not spelled out enough here for someone else to even take up the task.

The generator gives you cookie-parser out of the box, which can be used for authentication purposes, but these days JWT's seem to be more commonly used. Some of these auth schemes would require pulling in third party libraries like Passport, but the setup is usually minimal.
I understand nobody but myself is going to tackle an issue like this.. I mainly just wanted to post the issue so I'm reminded of it when I get some free time.
I'm hesitant to get started on a PR though, considering that things like --es6 or --typescript have been discussed for ages, but still haven't landed.

Just because cookie parser is included doesn't restrict your available auth options. Cookies are used for many more things than just auth.
As to why they have not been merged, most do not even pass the CI, have comments that need addressed, like lack of tests, etc.

Closing as stale.

please don't use passport, it makes life harder with all the callbacks,
if you ever add auth, make a custom implementation in "expressjs" style


Added Salary To Hourly Calculator

Fixes Issue🛠

Closes #622
Description👨💻

This is a web application that enables users to convert their salary across various timeframes simultaneously (annual, monthly, weekly, daily, or hourly wage).
Type of change📄

[x] New feature (non-breaking change which adds functionality)

How this has been tested✅
Tested locally.

Checklist✅

[x] My code follows the style guidelines of this project
[x] I have performed a self-review of my own code
[x] I have commented my code, particularly in hard-to-understand areas
[x] I have added demonstration in the form of GIF/video file
[x] I am an Open Source Contributor

Screenshots/GIF📷

Congrats on getting your PR merged to the repo under GSSOC 2k24 🥳 @betelhemdemsis


Visual design for @mention support in rich text components

📌 Request Background

Both the nimble-rich-text-editor and nimble-rich-text-viewer are used in the SLE application for the comments feature and here is the link to the issue: https://github.com/ni/nimble/issues/1288
As part of the comments in SLE, @mention is a key feature to tag or mention other users in the organization and notify them if mentioned in a comment.
Interaction design: https://www.figma.com/file/Q5SU1OwrnD08keon3zObRX/SystemLink-orig?type=design&node-id=7248-114254&mode=design&t=2HcoatDFr9QHDRJd-0
Existing visual design for nimble-rich-text-editor: https://www.figma.com/file/PO9mFOu5BCl8aJvFchEeuN/Nimble_Components?type=design&node-id=2482%3A82389&mode=dev
🎯 Core Requirements

The @mention text in the editor and viewer should be a different color like in the interaction design
Visual design for dropdown when @ is added in the editor for all supported themes
@mention text in different states like disabled, error state, and in different themes

🍆 Non-requirements

🥅 Acceptance Criteria

[ ] Visual Design Spec submitted (link)
[ ] Visual Design Spec reviewed by design team
[ ] Visual Design Spec reviewed by dev team

Brandon said he took care of this already. Did the team get what they needed?

@RickA-NI @NIbokeefe When I look at the Text Area page of the Nimble_Components Figma, I don't see designs for the questions under the "Core requirements" section above. I may be missing something or there may be a miscommunication about what's done.


RAC TagGroup within a ComboBox causes a crash in 1.3.1

Provide a general summary of the issue here
TagGroup within a ComboBox causes a crash in 1.3.1. Attempting to create a multi-select experience but it seems even trying to render the TagGroup breaks with a message Cannot destructure property 'onAction' of .... Guessing the issue is ComboBox and TagGroup both using ListStateContext. Note it happens both inside and outside the Group.
🤔 Expected Behavior?
TagGroup can exist within a ComboBox and not have errors resulting from context state issues.
😯 Current Behavior
TagGroup breaks within a ComboBox.
💁 Possible Solution
No response
🔦 Context
No response
🖥 Steps to Reproduce
<ComboBox>
  Label
  <Group>
    <TagGroup>
      <TagList>
        <Tag>One</Tag>
      </TagList>
    </TagGroup>
    <Input />
    <Button />
  </Group>
  <Popover>
    <ListBox>
      <ListBoxItem>Item one</ListBoxItem>
    </ListBox>
  </Popover>
</ComboBox>

Version
1.3.1
What browsers are you seeing the problem on?
Chrome
If other, please specify.
No response
What operating system are you using?
MacOS
🧢 Your Company/Team
No response
🕷 Tracking Issue
No response

Also encountering this issue

Any updates to this issue? @yihuiliao Or if there's a pointer to which file is causing this issue that we can address

I think I'd recommend moving the TagGroup outside the Combobox for now, we never really intended this combination. You can create a group and style it to look like one cohesive component still.
... track both lists out here
... ref to root div can allow you to set the combobox popover width appropriately

    <TagGroup>
      <TagList>
        <Tag>One</Tag>
      </TagList>
    </TagGroup>
<ComboBox>
  Label
  <Group>
    <Input />
    <Button />
  </Group>
  <Popover>
    <ListBox>
      <ListBoxItem>Item one</ListBoxItem>
    </ListBox>
  </Popover>
</ComboBox>

Otherwise, you could possibly wrap your TagGroup in a Provider and null out certain contexts
<ComboBox>
  Label
  <Group>
<Provider [ListStateContext, null]> // any other relevant ones
    <TagGroup>
      <TagList>
        <Tag>One</Tag>
      </TagList>
    </TagGroup>
</Provider>
    <Input />
    <Button />
  </Group>
  <Popover>
    <ListBox>
      <ListBoxItem>Item one</ListBoxItem>
    </ListBox>
  </Popover>
</ComboBox>

I'm not sure the list of them you'd need to clear, you'd need to check the docs and see which ones overlap
https://react-spectrum.adobe.com/react-aria/ComboBox.html#custom-children
https://react-spectrum.adobe.com/react-aria/TagGroup.html#custom-children


Ensure Android architecture works with deep linking

Ensure Android architecture works with deep linking:
https://docs.google.com/document/d/1AKPWL50wzQFTSaEz2AbGZm5Fkm01uvunZH8AEoLJMRI/edit

@chunhtai your https://github.com/flutter/engine/pull/22363 will address this one too presumably?

yes, I don't know this issue exist.

ok, since you already closed your issue :) I'll just add that your PR fixes this in the description.


Show better error message when replacing links from old versions

Short description

This PR adds an apropriate message when a link from old versions is about to be replaced
Proposed changes

Chekck whether all the queried tranlations are the latest of each translation
Show the new detailed message

Side effects

I know the loop for translation in translations is doubled in the function. This is to prevent  it that replacement is successfull in some of the translations but not in the others, so either the link will be replaced in all of the related translations or not at all.
I left the utility function replace_links unchanged, for this works only on the latest versions.

Resolved issues

Fixes: #2466

Pull Request Review Guidelines

This is to prevent it that replacement is successful in some of the translations but not in the others, so either the link will be replaced in all of the related translations or not at all.

Hmm, I'm not sure, maybe it makes sense to change this behavior? E.g. we could replace all links in the latest versions and just ignore the old versions.

I thought it might be confusing for users when the link remains unchanged in some translations but changed in the others 🤔

I thought it might be confusing for users when the link remains unchanged in some translations but changed in the others 🤔

But it'd not completely random, but pretty useful: The link is changed in all newest versions of the translations (which totally makes sense, since this is the content that is viewed by the users and where it's important that the links are working) and it's not changed in all older versions (which is kind of irrelevant, since the users don't see old versions anyway)...
Maybe we should even go one step further and accept the fact that we always will have inconsistencies in the database and already filter out invalid links when the list view is retrieved? We could even program some kind of self-fixing method every time somebody visits the link list view? :thinking:

@timobrembeck
Thank you for a nice idea 😸
The second commit includes:

Skip link replacement if the link is in an older version, but do if in the latest versions.
Exclude link objects of older versions from region_links, so they won't shown to users at all. Their trace won't appear in the columns "Link text", "Source" and "Usage" too.

@timobrembeck Thank you 🙏

Looks good to me so far! I would need to know how to reproduce the original bug locally in order to confirm that this indeed prevents the Internal Server Error from happening.

You can reproduce it with the following steps:

Go to a page
Insert a link to a website A and save (version n)
Delete the link and insert a new link to another website B, and save (version n+1)
Go to Django Admin, create an URL object with A and a link object with A and version n
You'll see an link to A from version n

Maybe the docstring of get_urls() could be adjusted to better reflect the intention of the function? Still speaks of "counting", which wasn't even the point before these changes, as far as I can see.

Done!


khelp res

khelp res is broken.
When it does work, it is just reading from a file and not pulling in resources. This needs to change.
This prevents kfind from working properly when there is new resource types.
Ill fix it.

With the new pull request, this should no longer be an issue.


[Device Support Request] Revolt NX4914-944 (TUYA TRV)

Is your feature request related to a problem? Please describe.
TUYA TRV is not supported in master branch but is upcoming from some devs.
Describe the solution you'd like
This is very like the https://github.com/zigpy/zha-device-handlers/issues/420
Device signature - this can be acquired by removing the device from ZHA and pairing it again from the add devices screen. Be sure to add the entire content of the log panel after pairing the device to a code block below this line.
Revolt NX4914-944
https://www.revolt-power.de/Weltweit-steuerbares-Heizkoerper-Design-Thermostat-NX-4911-919.shtml
From deCONZ:
Vendor _TYST11_kfvq6avy
Model fvq6avy
Version 20180727
ZHA Signatur:

{
  "node_descriptor": "NodeDescriptor(byte1=2, byte2=64, mac_capability_flags=128, manufacturer_code=0, maximum_buffer_size=82, maximum_incoming_transfer_size=255, server_mask=11264, maximum_outgoing_transfer_size=255, descriptor_capability_field=0)",
  "endpoints": {
    "1": {
      "profile_id": 260,
      "device_type": "0x0000",
      "in_clusters": [
        "0x0000",
        "0x0003"
      ],
      "out_clusters": [
        "0x0003",
        "0x0019"
      ]
    }
  },
  "manufacturer": "_TYST11_kfvq6avy",
  "model": "fvq6avy",
  "class": "zigpy.device.Device"
}

If need complet pairing log then I repairing one and posting the log.
For the moment I mounting the termostatas and the necessary adapters for getting them working local without Zigbee connection and trimming the valves so they is heating OK.
Additional context
TUYA TRV dev thread:  https://github.com/zigpy/zha-device-handlers/pull/538

Added in deCONZ beta.

HA is not having support for all functions but more is coming there 2.


[lapack-reference] build failure - gfortran required?

Host Environment

OS: macOS 11.1 (20C69)
Compiler:
Apple clang version 12.0.0 (clang-1<IP_ADDRESS>)
Target: x86_64-apple-darwin20.2.0
Thread model: posix
InstalledDir: /Applications/Xcode.app/Contents/Developer/Toolchains/XcodeDefault.xctoolchain/usr/bin

To Reproduce
Steps to reproduce the behavior:
./vcpkg install dlib

Starting package 6/10: lapack-reference:x64-osx

Failure logs
Building package lapack-reference[blas-select,core,noblas]:x64-osx...
-- Downloading https://github.com/Reference-LAPACK/lapack/archive/v3.8.0.tar.gz -> Reference-LAPACK-lapack-v3.8.0.tar.gz...
-- Extracting source /private/tmp/vcpkg/downloads/Reference-LAPACK-lapack-v3.8.0.tar.gz
-- Using source at /private/tmp/vcpkg/buildtrees/lapack-reference/src/v3.8.0-954f10683f.clean
-- The Fortran compiler identification is unknown
CMake Error at scripts/cmake/vcpkg_find_fortran.cmake:127 (message):
  Unable to find a Fortran compiler using 'CMakeDetermineFortranCompiler'.
  Please install one (e.g.  gfortran) and make it available on the PATH!
Call Stack (most recent call first):
  ports/lapack-reference/portfile.cmake:50 (vcpkg_find_fortran)
  scripts/ports.cmake:142 (include)

Error: Building package lapack-reference:x64-osx failed with: BUILD_FAILED
Please ensure you're using the latest portfiles with `./vcpkg update`, then
submit an issue at https://github.com/Microsoft/vcpkg/issues including:
  Package: lapack-reference:x64-osx
  Vcpkg version: 2021-01-13-unknownhash

Additional context
Fortran is required for this. So I could just brew install fortran. But I'm pretty sure this can be built without Fortran at all, see www.netlib.org/lapack/lawnspdf/lawn270.pdf http://www.netlib.org/lapack/

You will learn how you can directly run LAPACKE from VS Studio (just C code, no Fortran!!!). LAPACK now offers Windows users the ability to code in C using Microsoft Visual Studio and link to LAPACK Fortran libraries without the need of a vendor-supplied Fortran compiler add-on.

Unless that's just for LAPACKE?
Any I'm not sure if there's a better way of raising missing system dependency errors in vcpkg… might be friendlier to new users (tell them what to apt install brew install etc.)

Unless that's just for LAPACKE?

it is just LAPACKE.
Lapack needs a CMake visible Fortran compiler installed on the system.

Hi @SamuelMarks
Thanks for posting this issue.
I think this comment may answer your question https://github.com/microsoft/vcpkg/pull/12805#issue-464579287.
CMake Error at scripts/cmake/vcpkg_find_fortran.cmake:127 (message):
  Unable to find a Fortran compiler using 'CMakeDetermineFortranCompiler'.
  Please install one (e.g.  gfortran) and make it available on the PATH!

Currently, the error info is clear that you need to install gfortran on your machine.
So please brew install fortran and rebuild this port.

@Neumann-A Ah okay, yeah was worried about that. Anyway, ended up with a different issue on dlib post-compilation so check that issue to follow the story further 📦


gremlin bat should use under its own folder.

Bug Report
Package Name: apache-tinkerpop-gremlin-console  &  apache-tinkerpop-gremlin-server
Current Behaviour
The bat files of these two packages need to be used under its own bin\ folder.
But the bat files can be used globally through "bin" option.
Possible Solution
Remove this line from the package:
# bucket\apache-tinkerpop-gremlin-console.json
    "bin": "bin\\gremlin.bat",

# bucket\apache-tinkerpop-gremlin-server.json
    "bin": "bin\\gremlin-server.bat",

System details
Windows version: 10
OS architecture: 64bit

fixed in #8855


Is it possible to read and write from one socket simultaneously?

I found the both read and write functions of TcpStream and UdpSocket take &mut self and make it impossible.
Is it able to achieve this by providing a method that "split" the read and write part of a socket?

TcpStream implements AsyncRead and AsyncWrite. You can split it with AsyncReadExt::split() into the reader/writer part.
UdpSocket does not implement those traits though, which would seem useful :)

UdpSocket does not implement those traits though, which would seem useful :)

Or a way to split it into some other kind of send/recv parts that have the send_to(), recv_from() functions on them.

Or a way to split it into some other kind of send/recv parts that have the send_to(), recv_from() functions on them.

That sounds like something fun to experiment with! -- I'm not entirely positive it's possible to send data while waiting for data to come on on the same socket (cross platform, ofcourse). But if it's possible, that sounds like it'd be great! I'm feeling quite optimistic about the possibilities!

That sounds like something fun to experiment with!

It's something I'll probably look at at some point once I can use runtime in my applications :)

I'm not entirely positive it's possible to send data while waiting for data to come on on the same socket (cross platform, ofcourse). But if it's possible, that sounds like it'd be great! I'm feeling quite optimistic about the possibilities!

That's the same thing that is already possible for TcpStream really. Just that there is currently no API for that because UdpSocket does not implement AsyncRead / AsyncWrite but has a slightly different API. Should be relatively easy to implement, just following what is already existing for TcpStream and making it fit with the UDP-style functions.

The trick here is btw the BiLock (or more general the futures-aware Mutex in the futures-utils crate). See also https://github.com/rust-lang-nursery/futures-rs/issues/1679

Well, I do NOT think BiLock, used by AsyncReadExt::split(), can be the final solution to it, .
Both TCP and UDP are full-duplex, having read and write buffers separated. So we should be able to do reading and writing in parallel (like in two different threads, without locks). But now it is impossible to do it using current API.

Both TCP and UDP are full-duplex, having read and write buffers separated. So we should be able to do reading and writing in parallel (like in two different threads, without locks). But now it is impossible to do it using current API.

While that's possible if you're careful (that's what we're doing in some applications just fine, in C though), it's not too easy to get right as there might be some shared state between the receiving/sending part. read/write readyness for example, and on different platforms, Windows for example, you might not be able to wait for read/write readyness in two different threads at the same time without race conditions. I can't remember details but on Windows we had to fight some annoying bugs related to that. Depending on how mio handles this on Windows (or also in general?), some special care might be needed there.
Now for the BiLock, I don't think the situation is as bad as you imagine. All operations are non-blocking, so the lock is only taken for a very short time when writing or reading to do the actual operation. I.e. the duration of the syscall, which might immediately return (WOULDBLOCK) or has to copy the buffer around from userspace to kernelspace and then returns immediately.
I'm sure that can be optimized more with special care, at least for some platforms and socket types, but as a starting point and generic solution (for any kind of AsyncRead/Write) that seems like a good compromise.

Okay, you're right.
That's my fault that, I used to simply use Mutex<UdpSocket>, lock().await and recv().await, then it blocks sending attempts, cause it will never release the lock until data arrive.
Now I just realize that only trying to lock during poll, or use try_lock inside poll, will have no blocking problem and also cost little, and it is now how {Read,Write}Half works.
But we still need to manually write poll. It's annoying, yeah?
So just wrapping BiLocked socket with something like SendToHalf/RecvFromHalf seems helpful  enough.
Besides, I'm also curious about how to deal with other multicast related and socket option functions.

Okay, you're right.
That's my fault that, I used to simply use Mutex<UdpSocket>, lock().await and recv().await, then it blocks sending attempts, cause it will never release the lock until data arrive.
Now I just realize that only trying to lock during poll, or use try_lock inside poll, will have no blocking problem and also cost little, and it is now how {Read,Write}Half works.
But we still need to manually write poll. It's annoying, yeah?

You need to use the futures-enabled Mutex: https://docs.rs/futures-preview/0.3.0-alpha.16/futures/lock/struct.Mutex.html
That will never block and instead integrate with the futures executor.

Besides, I'm also curious about how to deal with other multicast related and socket option functions.

Can you create another issue about the operations/functions/etc that you're missing currently?

My understanding was that @uHOOCCOOHu was using the futures-enabled Mutex, but doing something like:
let socket  = UdpSocket::bind(&addr);
let socket = Arc::new(Mutex::new(socket));

spawn({
    let socket = socket.clone();
    async move {
         let guard = socket.lock().await;
         let mut buf = vec![0; 1024];
         socket.recv_from(&mut buf).await?;
    }
});

spawn({
    let socket = socket.clone();
    async move {
         let guard = socket.lock().await;
         let buf = "hello world";
         socket.send_to(&mut buf, &target).await?;
    }
});

This locks the socket mutex for the entire send/receive operation, even if it is not ready to proceed. Switching to something that uses internal locking in the poll_send_to and poll_recv_from methods would avoid this.
I don't think BiLock is entirely appropriate here though, unlike TCP it seems possible to have >1 reader and >1 writer attempting to use the same socket. Because each read/write operation is a single atomic message you don't get issues with interleaved reads/writes.
I'm not certain of the likely situations, but maybe it would be appropriate to support both a BiLock and a more general Arc<Mutex<_>> based solution; if the user only needs a single reader+writer then the BiLock would be more performant, and if they need something more flexible Arc<Mutex<_>> allows having a fully shared bidirectional socket.


Add support binder page

This adds a "support Binder" page to our documentation that describes the ways that people can support Binder.  Maybe support could be highlighted a bit more on the front page?


WIP ENH: migrate to cudf, arrow 0.11.1

Resolves #108
cc: rapidsai/cudf#389

First pass, probably needs some cleanup (pinning versions, double checking pip install)

Had to downgrade back to Arrow 0.10.0 since that's what libcudf is pinned to.
Remaining Travis failures are due to Python 2, #131

LGTM, works on my Ubuntu 18.04LTS instance. Going to test a bit more, and then merge later today if I don't see any issues


Cannot Recognize Speech Invalid WAV header in file, data block was not found

I have a wav file and I am trying to use it to text azure speech to text using this url - https://azure.microsoft.com/en-us/services/cognitive-services/speech-to-text/#features. I am getting Cannot Recognize Speech Invalid WAV header in file, data block was not found error. I am not sure what is wrong and why I am getting this error. The wav file looks totally fine to me. This is the file I am using to test - http://talonsoftwares.com/upload/2422332.wav

Hi, thanks for reporting the issue - the problem occurs because of a WAV header size limit in the JavaScript SDK. There is now a pull request to raise this limit: https://github.com/microsoft/cognitive-services-speech-sdk-js/pull/328
For comparison, https://github.com/Azure-Samples/cognitive-services-speech-sdk/blob/master/sampledata/audiofiles/aboutSpeechSdk.wav where the header has no metadata:

and your 2422332.wav which contains an INFO chunk in the header which happens to go over the limit:

Hello,
I faced the same issue and I solved it simply by converting my audio sample rate from 48kHz to 16kHz.
It worked well after that.


Increase the eventually timeout to 10 seconds.

We don't really care how long the command takes.  10 seconds should be
permissive enought to avoid any false negatives.
#174341082

I pushed the commit to develop to trigger the buildpacks pipeline.
See https://buildpacks.ci.cf-app.com/teams/main/pipelines/bal.


[Merge request]  bug fix on table structure metric

Summary
This fix is to provide better logic oon matched_idx of calculating table structure metric to provide more accurate calculation on the acc
Additional Context

this fix has passed CI run in Draft PR #3025 initially
therefore, this time we would like to merge into main branch
this commit has merged the latest change from main after the Draft PR

@scanny @tbs17 - Are you still working this PR?

@scanny @tbs17 - Are you still working this PR?

i think this should be good to go!

merge table metric bug fix


New version of scipy causes fisher test to break

Our CI Server reports this failing test:
File "/scratch/jenkins/workspace/nltk/TOXENV/py35-jenkins/jdk/jdk8latestOnlineInstall/nltk/test/metrics.doctest", line 242, in metrics.doctest
Failed example:
    bam.fisher(20, (42, 20), N) > bam.fisher(20, (41, 27), N)
Expected:
    False
Got:
    True

@pierpaolo points out that this test failure coincided with a new release of scipy. The failure goes away when we modify tox.ini to specify the previous version:
pip install -I 'scipy < 0.19'
; pip install -I scipy

@jnothman: do you have any idea why this might be?

@pierpaolo: it looks like requiring the old version of scipy did not fix the problem (https://nltk.ci.cloudbees.com/job/nltk/lastCompletedBuild/TOXENV=py35-jenkins,jdk=jdk8latestOnlineInstall/testReport/(root)/metrics_doctest/metrics_doctest/).
I'll revert, and drop this failing test, so as not to hold up several other pull requests.

@stevenbird I tested again removing the # doctest: +SKIP flag from fisher tests, and I am still getting the same results.
Running tests with tox -- nltk/test/metrics.doctest using the current tox.ini causes a failure (as expected).
Running tox -- nltk/test/metrics.doctest using the tox.ini file that you had previously committed is still solving the problem on my machine, instead.
It would be worth giving it another try (maybe with a new PR, so that we do not need to revert the commit) as soon as problems with StanfordPOSTagger are fixed.


Fix divide_no_nan jax op to be differentiable

The current implementation of keras.ops.divide_no_nan is non differentiable in Jax and returns nan gradients. This can be verified with the following code:
>>> x1 = jnp.array(1, dtype=jnp.float32)
>>> x2 = jnp.array(0, dtype=jnp.float32)
>>> jax.grad(keras.ops.divide_no_nan)(x1, x2)
Array(nan, dtype=float32)

The fix is to prevent jnp.divide from returning inf by using an additional jnp.where call. More details on how to prevent nan gradients when using jnp.where can be found  here in the Jax documentation.

Codecov Report
Attention: Patch coverage is 0% with 2 lines in your changes missing coverage. Please review.

Project coverage is 57.56%. Comparing base (492e079) to head (aae45c1).

Files
Patch %
Lines

keras/src/backend/jax/numpy.py
0.00%
2 Missing :warning:

:exclamation:  There is a different number of reports uploaded between BASE (492e079) and HEAD (aae45c1). Click for more details.
HEAD has 6 uploads less than BASE

Flag
BASE (492e079)
HEAD (aae45c1)

keras
4
1

keras-torch
1
0

keras-tensorflow
1
0

keras-jax
1
0

Additional details and impacted files
@@             Coverage Diff             @@
##           master   #20110       +/-   ##
===========================================
- Coverage   79.32%   57.56%   -21.76%
===========================================
  Files         501      501
  Lines       46982    46983        +1
  Branches     8658     8658
===========================================
- Hits        37267    27045    -10222
- Misses       7968    18265    +10297
+ Partials     1747     1673       -74

Flag
Coverage Δ

keras
57.56% <0.00%> (-21.62%)
:arrow_down:

keras-jax
?

keras-numpy
57.56% <0.00%> (-0.01%)
:arrow_down:

keras-tensorflow
?

keras-torch
?

Flags with carried forward coverage won't be shown. Click here to find out more.

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Ignore Prettier printWidth

It seems to me that the plugin does not respect the maximum characters per line (set by printWidth).
For example, when printWidth is set to 80 characters, this code :

  A stupidly long text just to illustrate my problem with the number of characters per line. I hope you are having a good day and that all is well in your lives!

Will be format to :

  A stupidly long text just to illustrate my problem with the number of
  characters per line. I hope you are having a good day and that all is
  well in your lives!

I'm using "prettier": "^2.5.1", "prettier-plugin-tailwindcss": "^0.1.4", "tailwindcss": "^3.0.18" and VS Code.
Thanks for your help, and all your work on this plugin !

Hey! Prettier does this even without this plugin (try uninstalling this plugin and formatting to see it), it doesn't add line breaks in strings like that. No plans to handle that as part of the scope of this plugin.
What I do personally is just enabled word wrap in my editor:


Proghead00 c cpp

Have you read the Contributing Guidelines on Pull Requests?
(Write your answer here.)
Yes, I have.
Description
(Write your answer here.)
Added several CP, DS, Maths related programs with C and C++
Checklist

[x] I've read the contribution guidelines.
[x] I've checked the issue list before deciding what to submit.
[x] I've edited the README.md and link to my code.

Related Issues or Pull Requests
(Write your answer here.)
This is the PR for problems based on C and C++.

It would be better if you can break this PR into multiple small PRs. Reviewing so many files in one PR will be a hectic task for our reviewers.

It would be better if you can break this PR into multiple small PRs. Reviewing so many files in one PR will be a hectic task for our reviewers.

Okay, so I am creating ONE PR for EACH PROGRAM, alright?

Okay, so I am creating ONE PR for EACH PROGRAM, alright?


Provide a malloc_addblock() implementation for the libmemory hosted variant

Split from #71
There is no malloc_addblock() in libmemory.a and thus one gets the missing reference error when following the current documentation, which talks a lot about that function but only of linking with libmemory.a. Of course in the case of libmemory.a in a hosted environment one does not strictly need that function and calling it makes not really sense - however, having an implementation anyway would make it possible to share the same code in the user application (and documentation examples, tests etc.) no matter which variant is linked eventually. One easy way to accomplish that would be to add something like:
diff --git a/src/posix_memalign.c b/src/posix_memalign.c
index 996a85e..fa30924 100644
--- a/src/posix_memalign.c
+++ b/src/posix_memalign.c
@@ -1,3 +1,4 @@
+#include <malloc.h>
 #include <aligned_malloc.h>
 #include <assert.h>
 #include <errno.h>
@@ -5,6 +6,10 @@

 #define IS_POWER_2(x) (!((x) & ((x)-1)))

+__attribute__((weak)) void malloc_addblock(__attribute__((unused)) void* addr, __attribute__((unused)) size_t size)
+{
+}
+
 int posix_memalign(void** __memptr, size_t __alignment, size_t __size)
 {
  int r = ENOMEM;

As I wrote initially, I would add a run-time warning there too to make sure the user understands what is going on (else this is easily missed I guess).

My current thought is to make this assert so that it fails if someone calls it.


config: Adding config-validation interface, extension and CDS validator

Commit Message: Adding custom config-validation interface, extension, and a CDS validator.
Additional Description:
Adding a config-validation interface, an extension, that runs per-xDS validations which verify that the config is valid from a business-logic perspective.
This PR also includes a CDS config validator which ensures that the number of clusters doesn't decrease below a threshold.
Risk Level: Med - config plane changes that should not disrupt current config processing
Testing: Added extension unit tests and integration tests.
Docs Changes: Added.
Release Notes: Added.
Platform Specific Features: N/A.
Part of the work on #19855
Signed-off-by: Adi Suissa-Peleg<EMAIL_ADDRESS>

@htuch this is the latest version, where the main change is moving the external config validator to the GrpcMux/WatchMap level.
This PR is pretty large at the moment (more than half the code is tests, and plumbing), but if you think the design and core is ok, then I can start chopping it to smaller PRs:

Refactor config_source.proto and move ExtensionConfigSource to a separate file.
Introduce the extension interface (no plumbing).
Add plumbing.
Add the CDS extension.

Let me know what you think.

@adisuissa are some pushes missing? You mentoin that you have moved ExtensionConfigSource but this seems the same as before..

@adisuissa are some pushes missing? You mentoin that you have moved ExtensionConfigSource but this seems the same as before..

@htuch Sorry, you are correct. Added the relevant commits, and should be good to go, thanks!

LMK when this is ready for full review @adisuissa.

@htuch Added some more tests, and it is ready for review.
This PR is becoming pretty large (mainly due to tests), so feel free to tell me to split it.

@htuch should be good to go, PTAL!

API and internal interfaces LGTM. Can we get a non-Googler to also sanity check this @envoyproxy/api-shepherds? Thanks.

cc @mattklein123 @lizan for API non-Googler review

/retest

@htuch anything else that you think we should do here?

@htuch is on vacation until Tue-Wed.

/retest

/retest
//test/extensions/filters/http/csrf:csrf_filter_integration_test seems unrelated, and seems to be failing other submitted PRs.

/retest


Allowing to export 100x100 comps for sticker set icons

It fixes the issue to allow exporting 100x100 compositions on Adobe After Effects to be used for animated sticker set icon on Telegram.

We already had this fixed, but thank you for reminding us to release it.


Randomized Quick Sort

Added Randomized Quick Sort Alogorithm

Congratulations mate!!
Thanks for your contribution in my repository.


Issues about the localization-stability calculation

Hi Jasper,
I have read your thesis and it is really an impressive work. Recently I want to re-run your code and I got some problems here:
1.I want to use the localization-stability for the uncertainty quantification. I know it's from a referenced paper but they didn't release their own implementation for public. I saw your implementation in this repo, but I cannot understand the code when you rearrange the reference boxes and the "noisy boxes" corresponding to each level of noise.
In detail, in Line 694 of active_learning_helpers.py, after you get the output of the SSD model:
# use the nonzero boxes for each class
reference_boxes = torch.cat([reference_output[0][:,cl,:int(reference_output[1][cl].item()),:].squeeze(dim=0) for cl in range(1,args.num_classes)])

I cannot understand what this line is doing and it will cause exception and get crash. The similar processing also appears for the "noisy boxes" in Line 702 of active_learning_helpers.py:
noisy_boxes = torch.cat([im_preds[noisy_preds_idx][0][:, cl, :int(im_preds[noisy_preds_idx][1][cl].item()), :].squeeze(dim=0) for cl in range(1, args.num_classes)])

So could you please explain this for me and solve my confusion? I really appreciate it. Thank you so much

Hi there @MoleImg,
My apologies for the extremely late reply. I've been focussed on other things for quite some time.
I assume you are not in need of an answer anymore, but in any case will give a short reply.
It's been a long time since I wrote the code, but I do remember that even though I had contact with the original authors of the localization-stability paper, I wasn't able to reproduce their results. My implementation of their code typically resulted in worse than random sampling. My thesis prof therefore advised to not include them in the comparison, as the paper also wasn't published in a big reputable venue.
I don't have a working sample of the code currently so in terms of debugging I cannot help you.


Compare schema as logically equivalent to workaround disappearing metadata

Which issue does this PR close?
This works around some problems noted in #12560. It is not a full fix, but just unblocks some other work for me.
Rationale for this change
This check that is being done (which I am changing) only exists to make sure the schema are logically equivalent - if they are different in the metadata of the fields that they contain, that doesn't affect how they are used later on. So it's more 'correct' to just compare them logically as opposed to fully. Comparing them fully does have the benefit of catching issues with lossy transformations between schema (which is probably what is happening in my case to lose the metadata that I mentioned in #12560), but I think that's a benefit that we can get again once we've figured out where metadata is disappearing.
Are these changes tested?
Yes
Are there any user-facing changes?
No

I have some suggestion

It would be nice if there is a reproducible example so we could find out why and where metadata loss. It could also avoid breaking your case again if we added the metadata check back again without fixing the real issue.
If the reproducible example is hard to find, we could avoid the metadata check but other than logically_equivalent_names_and_types we need to check nullable as well. Try modify the logically_equivalent_names_and_types or create another new function that checks nullable. Also, add a TODO aside it.

I think this is a reasonable change, but it does, as you say, potentially cause silent errors rather than explicit ones.
This is a good idea for Influx, but maybe not as good an idea for other users of DataFusion
Something we have done in the past for situations like this was to have a config flag that could control the behavior
For example, this flag
datafusion.optimizer.skip_failed_rules

Controls if a failure in an optimizer rule would reject the entire plan or just skip that particular failed rule
Perhaps we could make a similar flag for schema checks like
datafusion.optimizer.only_compare_logical_types

Or something 🤔

Does only_compare_logical_types includes nullable? If yes, it looks good to me. If not should we need another only_compare_logical_types_with_nullable flag as well?

Does only_compare_logical_types includes nullable? If yes, it looks good to me. If not should we need another only_compare_logical_types_with_nullable flag as well?

I agree it should also compare the nullability (but not the metadata)

I filed https://github.com/apache/datafusion/issues/12687 to track the underlying issue here. Let's leave this PR as a draft for now until we have a reproducer for the actual problem


No tests for Kerberos

Moved this into and issue (@bolkedebruin).
The issue is that there are no tests for Kerberos. I'm not sure if the minicluster can do this (@ravwojdyla) and how to setup a Kerberos realm in Travis.

There are a two main conditions that need to be met to allow for kerberos integration testing:

A functional KDC
Hadoop running secured (in case of snakebite just HDFS is required)

To get a functional KDC running there seem to be several options:

Full KDC in Docker (something like this: https://github.com/tillt/docker-kdc).
MiniKdc from Apache Hadoop (discussion here: https://issues.apache.org/jira/browse/HADOOP-9848)
MiniKdc from the Spring Framework (http://docs.spring.io/spring-security-kerberos/docs/current/api/org/springframework/security/kerberos/test/MiniKdc.html derived from the Hadoop version)

In any case you would need to setup principals and key tabs. For option 1 docker-in-docker for travis is required). For the other options further research needs to be done.


@tsed/logger-file installation error

Informations

Type
Version

Bug
6.0.0

Description
As I understand it, to use File Appender with looger, I have to do npm install @tsed/logger and then npm install --save @tsed/logger-file. However, when I install @tsed/logger-file I get the following error:
» npm install --save @tsed/logger-file
npm ERR! code ERESOLVE
npm ERR! ERESOLVE unable to resolve dependency tree
npm ERR!
npm ERR! While resolving<EMAIL_ADDRESS>npm ERR! Found<EMAIL_ADDRESS>npm ERR! node_modules/@tsed/logger
npm ERR<EMAIL_ADDRESS>from the root project
npm ERR!
npm ERR! Could not resolve dependency:
npm ERR! peer<EMAIL_ADDRESS>from<EMAIL_ADDRESS>npm ERR! node_modules/@tsed/logger-file
npm ERR!   @tsed/logger-file@"*" from the root project
npm ERR!
npm ERR! Fix the upstream dependency conflict, or retry
npm ERR! this command with --force, or --legacy-peer-deps
npm ERR! to accept an incorrect (and potentially broken) dependency resolution.
npm ERR!
npm ERR! See C:\Users\Alex\AppData\Local\npm-cache\eresolve-report.txt for a full report.

npm ERR!      C:\Users\Alex\AppData\Local\npm-cache\_logs\2022-01-09T20_36_42_852Z-debug.log

What is the problem?

Maybe just a problem with NPM...
the package exists: https://www.npmjs.com/package/@tsed/logger-file

Hum ok the peerDeps is incorret. you can try with npm i --force @tsed/logger-file. I'll fix the peer dep tomorrow.
See you
Romain

Ok, thanks. --force flag doesn't work, installation is successful, but then I get the error anyway: Appender file doesn't exists. Check your configuration: {"type":"file","filename":"[...]/app.log","layout":{"type":"json","separator":","}}

Have you imported the appender ?
import "@tsed/logger-file";

Oops, sorry) For some reason I assumed in my mind that the import would be done automatically inside @tsed/logger. It's working now.


[feat] Authorize class and method decorator

Having an @Authorize decorator that can be added to a class (which will apply it to all methods) or to specific methods within a class. The developer should be able to apply its own auth logic when using the decorator. This logic will most likely be based on req, e.g. verifying a JWT in a cookie or validating a bearer token in the authorization header.

I think, implementing a middleware layer via decorators would be more beneficial and can leverage authentication as well. It will also be compatible with most express.js middlewares I believe.

@ggurkal do you mean like a @Before decorator?

Yes. So, the following can be valid usage:
function AuthorizationMiddleware(req, res, next) {
  if (jwtValidationCheck(req)) {
    return next();
  }

  return next(new UnauthorizedException());
  // or
  throw new UnauthorizedException();
}

function LoggerMiddleware(...) { ... }

@Before(LoggerMiddleware, AuthorizationMiddleware)
class PrivateListHandler {
  @Get()
  public list() { ... }
}

Naming wise, if we're not going to have Before and After, I'd go for UseMiddleware. What are your thoughts on this?

This would be a cool and useful feature!

@ggurkal I think it would be nice to also be able to use After for things like file clean after uploads or triggering a specific function after it succeeded (e.g. sending a Slack message). Since the response has already been handled before the After, someone should normally not throw in the After. So the logic between the Before and After should probably be a bit different (e.g. no next param in the After function).

@ggurkal and it being compatible with most express middleware functions it pretty powerful 😮


Fix parsing of exports that do not contain values.

This commit fixes the case of missing values in export statements such as:
export SOME_KEY=

Node should be reading this as '', as seen when running the below.
(bash)$ SOME_KEY= node
(node)> process.env.SOME_KEY // ''
(node)> process.env.OTHER_KEY // undefined

@gdborton Thanks! Can you rebase reword the commit to follow AngularJS's commit message convention?

@gdborton Merged - I'll release a new patch version soon.

@gdborton Published to npm as 1.0.5.