Stream stuck when used with mongodb and node10

Hello, I really like Highland and I would like to continue to use it but it starts to be a problem with newest version of node.
The following example works just fine with node 8/9 but stays stuck when using node 10+
const MongoClient = require('mongodb').MongoClient;
const hl = require('highland');

const MONGO_URL = 'mongodb://localhost:27017/';

const DB_NAME = 'someDb';
const COLLECTION = 'someCollection';

const run = async () => {
  const mongo = new MongoClient(url);

  await mongo.connect();
  const cursor = mongo.db(DB_NAME)
    .collection(COLLECTION)
    .find()
    .stream();

  return new Promise((resolve, reject) => {
    return hl(cursor)
    .batch(5)
    .flatten()
    .map(x => console.log(x && x._id))
    .stopOnError(reject)
    .done(resolve);
  });
};

run()
  .catch(console.log)
  .then(() => process.exit())

If you replace the mongoDb stream by a simple stream like this one it works just fine:
class Counter extends Readable {
  constructor(opt) {
    super({ ...opt, objectMode: true });
    this._max = 1000000;
    this._index = 1;
  }

  _read() {
    const i = this._index++;
    if (i > this._max)
      this.push(null);
    else {
      this.push({ count: i });
    }
  }
}

Thing is I had a look at the stream implementation inside mongoDB lib and they used the node stream implementation, I have seen nothing weird about it. And something else is a little bit strange, if you remove the flatten inside the hl chain, the stream will not be stucked anymore(even with node10).
Anyway I have no clue what the problem is so if anyone has an idea please share it.

Indeed it makes no sense here, I was doing some other stuff but I have reduced the problem to this :)
Already using the last 3 beta version
No the number / size does not matter. I have reproduced the issue on a test database with 10 documents with only the field _id.

About mongo : tried with last mongo driver and several mongo server. (3.0, 3.2, 4.0). I will try with another mongo driver version.

Ok, I know what's wrong.
There's an awaitDrain variable in the readable state that is incremented whenever the call to write from a pipe returns false. A subsequent drain decrements it, and only when it is 0 will the drain actually take effect. I think it's used to pause the source when at least one pipe destination is not accepting new data. So if awaitDrain ever gets incremented twice in before a drain decrements it, we're in trouble.
Turns out, it's possible for Highland to emit drain from within a write. So a write causes a drain, which causes another write, all synchronously. If the second write returns false and the first returns false, awaitDrain ends up getting incremented twice in a row, since the drain is emitted before either write returns. Hence deadlock.
Here's a simplified test case without mongo.
const {Readable, Writable} = require('stream')
const _ = require('highland');

class Counter extends Readable {
  constructor(opt) {
    super({ ...opt, objectMode: true });
    this._max = 10;
    this._index = 1;
    this._firstTime = false;
  }

  _emitNext() {
    const i = this._index++;
    if (i > this._max)
      this.push(null);
    else {
      this.push({ count: i });
    }
  }

  _read() {
    if (this._firstTime) {
      // Delay the first item so that when it's emitted, Highland isn't in a
      // generator loop. This allows 'drain' to be emitted within write().
      this._firstTime = false;
      setTimeout(() => this._emitNext(), 0);
    } else {
      this._emitNext();
    }
  }
}

async function fn() {
  await _(new Counter())
    .batch(2)
    .consume((err, x, push, next) => {
      // Delay the batch so that the write() -> emit('drain') -> write() stack
      // can unwind, causing multiple increments of awaitDrain.
      setTimeout(() => {
        if (x !== null) {
          next();
        }
        push(err, x);
      }, 0);
    })
    .filter((x) => {
      console.log(x);
      return false;
    })
    .toPromise(Promise);

  console.log('done');
}

fn();

In node 9, this wasn't a problem, since there was a guard that prevented this kind of double increment. Node 10+ contains https://github.com/nodejs/node/pull/18516, which removed the guard in favor of some other logic.
It's not clear to me that the change in Node 10 is absolutely correct, since there can still be a deadlock if write happens to be called within a write. However, it's also clear that Highland's usage of the drain event is definitely incorrect, since it is draining when it hasn't even paused the source. Perhaps the changes to awaitDrain is correct if the drain event is used properly.
The fix is simple enough: just don't drain unless we've previously paused the source. I'll submit it later this week.

Wow, thx for the detailed explanation and for the time spent on this.

I think I have a fix.
As a sanity check, can you apply this diff to your node_modules/highland/lib/index.js and see if it works?
diff --git a/lib/index.js b/lib/index.js
index 927ae19..3faf0de 100755
--- a/lib/index.js
+++ b/lib/index.js
@@ -834,6 +834,10 @@ function Stream(generator) {
     this._defer_run_generator = false;
     this._run_generator_deferred = false;

+    // Signals whether or not a call to write() returned false, and thus we can
+    // drain. This is only relevant for streams constructed with _().
+    this._can_drain = false;
+
     var self = this;

     // These are defined here instead of on the prototype
@@ -1258,8 +1262,9 @@ addMethod('resume', function () {
     if (this._generator) {
         this._runGenerator();
     }
-    else {
+    else if (this._can_drain) {
         // perhaps a node stream is being piped in
+        this._can_drain = false;
         this.emit('drain');
     }
 });
@@ -1641,6 +1646,11 @@ addMethod('pull', function (f) {
 addMethod('write', function (x) {
     // console.log(this.id, 'write', x, this.paused);
     this._writeOutgoing(x);
+
+    if (this.paused && !this._generator) {
+        this._can_drain = true;
+    }
+
     return !this.paused;
 });

@@ -3412,7 +3422,6 @@ addMethod('through', function (target) {
         return target(this);
     }
     else {
-        target.pause();
         output = this.createChild();
         this.on('error', writeErr);
         target.on('error', writeErr);

You should be able to run patch node_modules/highland/lib/index.js <diff-file>.
I want to verify that there's not a deeper issue that I've missed.

Hello,
I can confirm the changes also fix my use case :)

This fix has been released as 3.0.0-beta.8 and 2.13.1.


feat: add solution to 001

Hey Satya!
This is a Python solution to Project Euler's first problem. Thanks for opening your project to PRs!

Hey Satya!
This is a Python solution to Project Euler's first problem. Thanks for opening your project to PRs!

😂 Just saw it has been done, I'll work on another!

yeah, there's plenty more problems to solve though :)


[realsense2] Update to v2.10.4

This pull request contains the following changes.

Update realsense2 port to librealsense v2.10.4.
Disable build tools when debug configuration to speed-up vcplg install.

Thanks!


The file path bar can use input environment variables

example：

%homepath% ： open homepath.
%appdata% ： open user of appdata file.

On <IP_ADDRESS> I can. What version of files and your OS are you on. Also you will need to upload the logs files. You can get them in files settings > about > open log folder. For future issues please use the Issue templates.

On <IP_ADDRESS> I can. What version of files and OS are you on? Also you will need to upload the logs files, You can get them in files settings > about > open log folder. For future issues please use the Issue templates.

thanks you,I upgrade the Files just now.Files can do it.


swapi.dev returning 404

All of the following just give me a plain nginx 404 page:
https://swapi.dev/
https://swapi.dev/api/
https://swapi.dev/api/people/
https://swapi.dev/api/people/1/
I'm not actually sure what's supposed to work, as this is my first time trying to use this, and these are guesses based on the Google cached page which suggests it was up yesterday. I'm guessing nothing works at all.

Seems fine now!


require erb added to support erb templating

require 'erb' added to support erb templating
I was getting an error:
lib/yaml_extend.rb:115:in `ext_load_file_recursive': uninitialized constant Psych::ERB (NameError)
When trying to use the command line version of yaml_extend with an file that had an erb extension

Thank you for your request. I added spec tests to reproduce this bug here https://github.com/magynhard/yaml_extend/commit/a918d926b784d2ba913bd77289fa41851604bfd7
I will make a new release in a few minutes

Please try version 1.3.2


awsebcli: 3.10.5 -> 3.11.0

Motivation for this change
New version of awsebcli!
Things done

[ ] Tested using sandboxing (nix.useSandbox on NixOS, or option build-use-sandbox in nix.conf on non-NixOS)
Built on platform(s)

[ ] NixOS
[x] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nox --run "nox-review wip"
[x] Tested execution of all binary files (usually in ./result/bin/)
[x] Fits CONTRIBUTING.md.

Thanks!


CORS issues despite adding options to allow headers

Hi,
I need your help and suggestions please :
I am working on a wep application based on Angular and express js.
I am sending a GET request from interceptor to verify the web token, but i got a CORS problem. I searched on the net before creating this issue, and all suggestion are about adding options to allow headers, but without result untill now.
here is my code :
FRONT END
service.ts
...
public url = 'http://localhost:3000';
getServers() {
        return this.http.get(this.url + '/marketServerUk');
    }
...

interceptor.ts
import { Injectable } from '@angular/core';
import { HttpInterceptor, HttpRequest, HttpHandler } from '@angular/common/http';
import {UserServiceService} from '../services/user-service.service';

@Injectable()

export class AuthInterceptor implements HttpInterceptor {
    constructor(private userService: UserServiceService) { }

    intercept(req: HttpRequest<any>, next: HttpHandler) {
        const authToken = this.userService.getToken();
        req = req.clone({
            setHeaders: {
                Authorization: 'Bearer ' + authToken
            }
        });
        return next.handle(req);
    }
}

BACK END
router.js
router.get('/marketServerUk', verifyToken,  async (req, res, next) => {
    console.log('test');
    try {
        res.setHeader('Access-Control-Allow-Headers', 'authorization');
        res.setHeader('Access-Control-Allow-Origin', '*');
        let results = await db.allMarketServersForUk();
        await res.json(results);
    } catch (e) {
        console.log(e);
        res.sendStatus(500);
    }
});

function verifyToken(req, res, next) {
    console.log('test');
    try {
        const bearerHeader = req.headers;
        if (typeof bearerHeader !== 'undefined') {
            req.token = bearerHeader;
            next();
        }
    } catch (e) {
        console.log(e);
        res.sendStatus(403);
    }
}

Error message :
Access to XMLHttpRequest at 'http://localhost:3000/technicalServiceForUk' from origin 'http://localhost:4200' has been blocked by CORS policy: Request header field authorization is not allowed by Access-Control-Allow-Headers in preflight response.
Note That  :
When I remove the interceptor from the front end, the http request is working fine.
The moesif extension is already installed.
The web token is stored on local storage and sent on Request Headers, No Response Headers.
I put a console.log('test') on the backend side and nothing is shown on the console.

I think your issue is that you are sending credentials with the request, but you cannot send credentials while also using Allow-Origin: *. See this mdn article for more info. Thats the first issue I see, but I could be wrong. To fix that you need to specifically whitelist the origin the request will come from.
Id suggest using the express-cors middleware on this specific route, and maybe ask your question there or search their issues. This doesnt look like a specifically express issue, but an issue with CORS (which is admittedly a tricky setup, hence my recc of using a dedicated middleware to help with edgecases).

@ER-GAIBI did the advice above help you? Is that enough information to close this issue?

Hi @ghinks
yes, the advice solved the problem.
Thnak you @jonchurch for your help,
I provide the solution in the source code below for other users :
In stall the CORS module :
npm install cors
Add CORS module to your backend app :
var cors = require('cors')
var app = express()

app.use(cors())

for more information, you can reffer to this link :
https://expressjs.com/en/resources/middleware/cors.html


hpa template issues when setting targetMemoryUtilizationPercentage

hpa template for docreader and faceapi are getting the kubernetes version for memory using the wrong function causing the template to fail when trying to set the targetMemoryUtilizationPercentage.
https://github.com/regulaforensics/helm-charts/blob/docreader-0.5.1/charts/docreader/templates/hpa.yaml#L36
https://github.com/regulaforensics/helm-charts/blob/faceapi-0.2.3/charts/faceapi/templates/hpa.yaml#L36

helm upgrade regula regulaforensics/docreader --namespace=regula -f values.yaml
Error: UPGRADE FAILED: template: docreader/templates/hpa.yaml:36:40: executing "docreader/templates/hpa.yaml" at <include "common.capabilities.kubeVersion" .>: error calling include: template: no template "common.capabilities.kubeVersion" associated with template "gotpl"

Hello,
Thanks for pointing to that.
Will be fixed in the nearest Major release.
Will be sticking to the minimum required Kuberenetes version 1.23-0 and respective API versions

Hi,
Please check docreader 1.0.0 release

@AndreiPaulau just a FYI the same is happening for the faceapi .

Hi, yep, will be fixed within major faceapi helm chart release as well.
Closing for now


Website SASS download problem

Line 3 of the main.sass file download from the website contains @import "settings"; but this is already included below it, and causes the SASS compiler to error out.

I'm getting this error as well and removing it caused an error with the variables below. Looks like a chunk of code is just missing.

Just downloaded the Sass from the website and there is no settings partial at all. There's the @import but there isn't a partial included. The variables aren't defined the main scss file upon downloading so I don't know how it is supposed to work as is. Grabbing the settings partial from the repo for now but this issue makes the popup broken from the get-go. Can't believe this is still a problem after all this time.


WIP: an example

Other points to consider:
1 find other one-to-many and modify
2 exception handling: pass invalid uuid and handle 500 Internal server Error
3 test cases & test

has been added into qinglong's commit, this can be dropped.


[Improvement]: Add SSL support in Redis connector

Connector Name
module/redis (Redis)
Suggested improvement
Currently, the Redis connector does  not have any client configurations for SSL /TLS connections.
To add the support we have to  follow the following implementation
https://github.com/lettuce-io/lettuce-core/wiki/SSL-Connections
Related issues
No response

Closing with https://github.com/ballerina-platform/module-ballerinax-redis/pull/218


Add register_table functionality to the DJ python client

Summary
This PR adds register_table to the client. It can be used with dj.register_table(<catalog>, <schema>, <table>).
Also adds a small check to table registration endpoint to abort if a source node with the same name already exists. This saves us a good chunk of time since we don't have to go out to the query service and pull columns if there's already a source registered.
Additionally adds a debug mode to the client, where setting it to False (default) hides the traceback when using the client from a jupyter notebook.
Test Plan
Tested locally

[ ] PR has an associated issue: #
[x] make check passes
[x] make test shows 100% unit test coverage

Deployment Plan

Thanks @shangyian !


Add tooltip to display username on hover over avatar

When user hovers over avatar on home page , the username is displayed with tooltip.

Resolve #96

Thank you for the contribution and collaboration 👍


feat: support rspack

export declare function configure(driver: 'rspack', settings: RspackUserSetting): UserSettings;


Setting up FreeCodeCamp for Windows

The instruction to create .env file based on the sample.env file is missing from the following page:
https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/FreeCodeCamp-Fork-Windows
Though it has been mentioned in CONTRIBUTING.md it may be nice to have on the above page also.

Guys, can I have this one?
I would like to do this.
Is there any further information, what I should follow?

@marlyna93, sure :smile:
Checkout our current FreeCodeCamp Contributors Guide for more information.
If you need any assistance reach out to the Contributors Chat room.

@atjonathan
Oh, thank you!
Well, I followed the instructions in the Contributors Guide, and started to host the application on my local computer. It works, but I don't really find where can I put the .env file based on the link above.
I could edit the CONTRIBUTING.md, but I couldn't see or edit the wiki pages on my fork repo.
I already  asked it in the chatroom, but I haven't got any answers.
Can you please help me, what am I doing wrong?

@marlyna93 it looks like you'll need to fork the wiki, make a commit to your fork, and then make a pull request: https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Wiki-Central#contribution-guides

Yeah, you're right! I missed that point, thank you for your help!
I do appreciate it!

@marlyna93 I see you've make a number of commits in your fork of the wiki at https://github.com/marlyna93/FreeCodeCamp/wiki/FreeCodeCamp-Fork-Windows/_history but I'm not sure how you are supposed to make a pull request upstream.

Oh, I see, there's a separate repo for the wiki at https://github.com/FreeCodeCamp/wiki and @marlyna93 has forked it at https://github.com/marlyna93/wiki and will make a normal pull request. Makes sense now. I hadn't looked at https://github.com/FreeCodeCamp/FreeCodeCamp/wiki/Wiki-Contribute-Fork closely enough.

@marlyna93 now you just need to make a pull request from https://github.com/marlyna93/wiki/tree/patch-1


Report binder diagnostics, program diagnostics as well as file pre processing diagnostics in javascript file

Handles #5785
Note that this also contains change from #5835

i think we need to go through all binder errors and see if we should not report some of them for JS files.

@mhegazy , it seems like all the binder diagnostics are fine to report. I am looking into program diagnostics and file preprocessing diagnostics to see if they make sense in JS file
Also some of the duplicate symbol error (eg because of merging the symbol) are reported in checker. So I wonder if we should look at some of the checker errors and see if we want to report them. eg. #5838

:+1:


TypeScript in keyword

🔎 Search Terms
TypeScript in keyword
🕗 Version & Regression Information
// Typescript compiler not reporting the below syntax error during compile time and it happens in all versions of typescript
class Test {
id:number=0;
}
function t1(test:Test) {
return "id" in Test; // this should be the object test and not class Test but not detected as error by compiler
}
console.log(t1(new Test()));
⏯ Playground Link
https://www.typescriptlang.org/play?#code/PTAEBUE8AcFMGcDGAnAltALqRB7AttKgDazKgB2OWys0OyGq5A5qBgBaygBGsROAd1Clk9UABMArmhbZ8hEm1R5YAWABQiIgEN48CAiwBvDaFTiAXOUl5eyALwAGANwaAvho0AzSeUSMccjYARgAKDEMLcEMASlATdVBQGgxpIIAic3SzIOj4DGdQEDZ2VH14dhxJInEeLg4uHG4AK1h-NkNQbXJayiwtXX08rG5JLD6JWAj-WFrdYWRRZHdPTUD4HBIAOn5mcLDyWCFh0Jiz13VVoA
💻 Code
// Typescript compiler not reporting the below syntax error during compile time and it happens in all versions of typescript
class Test {
id:number=0;
}
function t1(test:Test) {
return "id" in Test; // this should be the object test and not class Test but not detected as error
}
console.log(t1(new Test()));
🙁 Actual behavior
// Typescript compiler not reporting the below syntax error during compile time and it happens in all versions of typescript
class Test {
id:number=0;
}
function t1(test:Test) {
return "id" in Test; // no error detected by tsc compiler in this line
}
console.log(t1(new Test())); // returns false and code compiles fine
🙂 Expected behavior
// Typescript compiler should report the below error
class Test {
id:number=0;
}
function t1(test:Test) {
// the below line should be reported as error "in keyword not applicable on class Test . Did you mean the object test ?"
return "id" in Test;
}
console.log(t1(new Test())); // code should not compile
Additional information about the issue
// Incorrect typescript code
class Test {
id:number=0;
}
function t1(test:Test) {
// the below line should be reported as error "in keyword not applicable on class Test . Did you mean the object test ?"
return "id" in Test;
}
console.log(t1(new Test())); // code should not compile
// ---------------------------------------------------------------------------------------------------------------------------
// Correct version of the above code snippet : =>
class Test {
id:number=0;
}
function t1(test:Test) {
return "id" in test; // this is fine as test is object
}
console.log(t1(new Test()));  // returns true which is fine

This is working as intended. The in operator can be used to check for properties existence that the type system does not directly know about. So limiting the option to check only for known keys is not practical, but I don't see any other option to prevent the issue you're seeing.

The "no unused parameters rule" only says that test parameter is unused in the code below
function t1(test:Test) {  // test unused
// the below line should be reported as error "in keyword not applicable on class Test . Did you mean the object test ?"
return "id" in Test;
}
Can a new flag be introduced in tsconfig.json which will report syntax error if the in keyword is used on invalid things . Like in the above example in keyword is used on the class Test instead of the object test , so tsconfig should report that error during compile time because typescript is supposed to catch errors during compile time and not runtime.
Please look into the below correct and incorrect examples from typescript playground to understand the issue better :
Correct Example :=>
https://www.typescriptlang.org/play?#code/PTAEGEHsCdoUwMYBdRwB4EMC2AHANnAFCEJ4YDO5oAgjvnKAN6GiuhIVICeAXAEaRIBDADtQAXnbQArnADcxNqACW5WvQAqnLgAoAlP0HCRzJUvhJp0MUgAWqgHQdy3BUoC+hTyTKVQAIVEgphY2Z25DIThRCVAAMww8cnlFNlVAkSCtF10DASjRUzNWCysbe3InbTc2T09uHAYAMRllFEl1AlAAHwCgzOI46RFkZUgxVRbpNs64HTjWpB4ptoMF6ZRVGjoCIpK4S2tQACJVWezuY5UxdbbQEFAEGHhkPC5QaWSAE2vQAGs4FwAO4wH7jUCQPgAK0QKFuSC8g2Go3BCFsiD+KyQ80Wy0Wej2KjiOkmi1mOI2egJoWKTxE5CiDjwkAA5joAAazFRUcLvSQAEkY8IcZx2cAuuXc7L0NNA7jgSTghKUdIZBCZrI5GWCW15sUFwvS-QwEv0UplHkRJHRCExix0IjgQO29H0enuYBEkFQsBgoHR8FAfEQGE+DEgcUez1hH3IGBZ4cjyjEAOBoNAGAEADc4EA
Incorrect Example :=>
https://www.typescriptlang.org/play?#code/PTAEEkDsGMHsCd4FNoBdRIB4EMC2AHAGyQCgTpDsBnK0AQXyKVAG8TQPRVrUBPALgBGsWMWyRQAXi7wArkgDcZTqACWVBkwAqPXgAoAlEJFjIbFSuSpZ8CagAW6gHTcqfJSoC+Jb+Uo1QACFxENZ2Tlc+Y1EkcSlQADNsQipFZU51YMgQnTd9I2EY8XMLDisbO0cqF10PTm9fPnxmADE5VXRpTWJQAB8gkOyyBNkYVFVYCXU22Q7upD0E9tR+GY6jJdn0dXpGYhKOEFBcdW4Aa2ZVSuZBJEJYAHdQQivmSFh0ZHwEVCQAE1A1AwiAQoEEvFAcAIqmI8CcoHChzA2HQYjcXHszCh+BhSHgoCo9lgskIAN+hEIGJRagkF14DwQAJ273Q2D2qmg2EEPUmkP8tHmCJUR1QVGgBKJJLJd0pqFggL2EKuoDpDPgAN5cVgggAVihWZAASzQLyKNQqIjQOVbKAAETqea5Pi2mm7JigI7WyC0JIpS7e37YDUJSGwaE9PHwBA+YajNATCTQTHQM5rVCLZarZYGA5qBJ6abLeYZrYGHOWlRwb0xJz3ADmegABoKdpEIdIACQsTYdJwOvZIJ35TyNgyWzx3VK5yuTKg1+tNrKhVu6eJdnuoPtUJfZIeGEdjrwx8jJ1PLPSQJBPYtlj1gOR2VS4ZhJGE2Zj2NnNb2A2gOZhcrAABuWJhjiPTjM+wJRvixp-EgvxoP8YIQqK0BAA

Except it is not a syntax error.  Checking for "id" in Test is a perfectly fine thing to do at runtime (i.e. testing for existence of static properties on the class), it's just not what you wanted to do in this case.

Except it is not a syntax error. Checking for "id" in Test is a perfectly fine thing to do at runtime (i.e. testing for existence of static properties on the class), it's just not what you wanted to do in this case.

Yes its correct , in keyword can also be used on class to check if static properties or methods exist in the class. Actually this was not mentioned in the typescript documentation. I think this issue can be closed.

Actually this was not mentioned in the typescript documentation.

It doesn't need to be. This is purely a JavaScript functionality. The in operator can be used on values, and classes are values.


--color-words support

This option should be configurable for displaying diffs.

Any status on this? It would be really nice to have :smile:

Currently diff.py calls the --no-color option to provide diff output without ANSI escape sequences. Then, the Diff.tmLanguage file is used to provide the coloring of the added/removed lines. In order to use --color-words (or --word-diff), we would need to handle the output differently.
git diff --word-diff[=<mode>] supports three modes, as described here.

color
Highlight changed words using only colors. Implies --color.
plain
Show words as [-removed-] and {+added+}. Makes no attempts to escape the delimiters if they appear in the input, so the output may be ambiguous.
porcelain
Use a special line-based format intended for script consumption. Added/removed/unchanged runs are printed in the usual unified diff format, starting with a +/-/  character at the beginning of the line and extending to the end of the line. Newlines in the input are represented by a tilde ~ on a line of its own.

I see two options for proceeding.

Use --word-diff=plain --no-color and add rules to Diff.tmLanguage to highlight the words. This will most likely retain the ugly braces around the words removed and added (unless there's a way to hide characters with syntax highlighting?)
Use --word-diff=color so that the output produces ANSI color codes, and then use an external package (e.g., SublimeANSI, https://github.com/aziz/SublimeANSI) to handle the syntax highlighting. I played around a bit with SublimeANSI, but it seems like it has some problems (https://github.com/aziz/SublimeANSI/issues/2) which I couldn't work around in ten minutes.

I'd appreciate any thoughts.

I've implemented the method 1 in my own fork and will be submitting a PR. Please feel free to test. https://github.com/whophil/sublime-text-git
I did get some insight from this GitSavvy issue (https://github.com/divmain/GitSavvy/issues/295)

See https://github.com/kemayo/sublime-text-git/pull/468

@aristidesfl we've implemented color diff a while back, toggled with the w key. Does this fit your requirement?
@whophil  does GitSavvy do it same as in your fork now?


Conditionally disabling swipe functionality

Greetings,
Is there a way to disable/enable swiping based on a condition?
Thank you for any feedback.

Sorry for the delay. There's no real solution for this currently.
There may be a workaround though: if you'd like to disable the swiper, simply don't use the SwipeALot component based on the condition and render the correct child View when needed:
        {condition && <SwipeALot autoplay={{
              enabled: true,
              disableOnSwipe: true,
            }}
            onSetActivePage={(index) => { /* console.log('active', index); */ }}
          >
            <View style={styles.wrapper} />
          </SwipeALot>
        {!condition && <View style={styles.wrapper} />}

For this approach to work, you'll probably want to store all your views in an array and render them inside of the SwipeALot component. Then when you want to disable it based on the condition, render the correct View to display from the array using getPage().


Dependency updates

Some manual dependency updates.
We might also enable dependabot to look for some updates in the future. I'll create a PR for this.

Pull Request Test Coverage Report for Build 195303162

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 91.88%

Totals

Change from base Build 191855500:
0.0%

Covered Lines:
4481

Relevant Lines:
4877

💛  - Coveralls

I don't believe the changes to Cargo.toml have any effect on the actual versions used when testing or building the library, but I agree it's good to be more clear!


Attribution of colours by categories for a dimension "Year"

The attribution of colours in the example below is strange. How does it work?

Copy and Edit  " https://int.visualize.admin.ch/en/v/Lnk_MB0Bx75c
Edit "Jahr der Vergütung"
Only 2 colors from the palette are used, while the values range from 2014 to 2021

Expected behavior
As many colours should be used as there are different years, as long as colours are still available in the palette.
Screenshots or video
If applicable, add screenshots or a short video to help put your problem into a context.
Environment (please complete the following information):

Visualize environment and version: INT v3.12.0
Browser and version: Edge

Additional context
Add any other context about the problem here.

I also see that the user can't adjust the colors manually as in the other chart types. The color square is missing in front of the filters @bprusinowski


Error "The parameter location has an invalid value" when deploying bicep file, even if the bicep does not contain any location info.

Bicep version
0.4.1318
Describe the bug
This has a bit of a timeline because I've been struggling with it for about a week now... I'll describe it in bullet points.
Context: I'm trying to setup a pipeline for a Function App within a service plan. The original attempt was with ARM templates, after which I switched to bicep.

All my resources are located in West-Europe.
Templates have been generated from the Azure Portal export function, based on my manually created resources in the development environment.
My storage/insights/cosmos db/... resources all had the location set to "westeurope" in a location parameter, and were deployed perfectly.
My Function App resource deployment always fails with the error message "The parameter location has an invalid value".

The things I've tried:

Changing location from westeurope to West Europe, to resourceGroup().location
Using these different location values both in hardcoded values as well as param values
Using a param with these different values injected from the AZ CLI call

Next things I've tried (and this is where it gets weird)

Based on Issue #4815 I've tried entering a random value. That's when I receive this error message:

ERROR: {'code': 'LocationNotAvailableForResourceType', 'message': "
The provided location 'test' is not available for resource type 'Microsoft.Web/sites'.
List of available regions for the resource type is '
southcentralus,
msftwestus,
msfteastus,
msfteastasia,
msftnortheurope,
eastus2stage,
centralusstage,
southafricanorth,
westus,
australiaeast,
brazilsouth,
southeastasia,
centralus,
japanwest,
centralindia,
uksouth,
canadaeast,
koreacentral,
francecentral,
northeurope,
westus2,
eastus,
westindia,
eastus2,
australiacentral,
germanywestcentral,
norwayeast,
uaenorth,
switzerlandnorth,
northcentralus,
ukwest,
australiasoutheast,
koreasouth,
canadacentral,
westeurope,
southindia,
westcentralus,
eastasiastage,
northcentralusstage,
westus3,
eastasia,
japaneast,
jioindiawest
'."}

The value westeurope is present in that list... But gives an invalid location error when I enter it...

I've then tried an entirely different value, eg. northeurope, but that of course fails because the serverfarm is located in westeurope and the Function App needs to be in the same region.
I've then tried to remove the resource entirely from the bicep, and create the function app through Azure CLI, which works, but I still need the bicep templates to create the identity provider coupled to my B2C tenant. That template has no location info whatsoever present, but STILL this gives me the same error message of "parameter location has an invalid value".

Additional context
The original template for the function app was this:
param function_app_name string
param serverfarmid string
param location string = 'westeurope'

resource function_app_name_resource 'Microsoft.Web/sites@2021-03-01' = {
    name: function_app_name
    location: location
    kind: 'functionapp'
    properties: {
        enabled: true
        hostNameSslStates: [{
                name: '${function_app_name}.azurewebsites.net'
                sslState: 'Disabled'
                hostType: 'Standard'
            }{
                name: '${function_app_name}.scm.azurewebsites.net'
                sslState: 'Disabled'
                hostType: 'Repository'
            }
        ]
        serverFarmId: serverfarmid
        reserved: false
        isXenon: false
        hyperV: false
        siteConfig: {
            numberOfWorkers: 1
            acrUseManagedIdentityCreds: false
            alwaysOn: false
            http20Enabled: false
            functionAppScaleLimit: 200
            minimumElasticInstanceCount: 1
        }
        scmSiteAlsoStopped: false
        clientAffinityEnabled: false
        clientCertEnabled: false
        clientCertMode: 'Required'
        hostNamesDisabled: false
        customDomainVerificationId: 'D66FAC927CFA4699149BB60D0F4CC216EF611163A384850BDEEE5B52D35CCF63'
        containerSize: 1536
        dailyMemoryTimeQuota: 0
        httpsOnly: true
        redundancyMode: 'None'
        storageAccountRequired: false
        keyVaultReferenceIdentity: 'SystemAssigned'
    }
}

And the latest used template is this:
param function_app_site_name string

resource function_app 'Microsoft.Web/sites@2021-03-01' existing = {
  name: function_app_site_name
}

resource sites_functions_name_ftp 'Microsoft.Web/sites/basicPublishingCredentialsPolicies@2021-03-01' = {
  parent: function_app
  name: 'ftp'
  properties: {
    allow: true
  }
}

resource sites_functions_name_scm 'Microsoft.Web/sites/basicPublishingCredentialsPolicies@2021-03-01' = {
  parent: function_app
  name: 'scm'
  properties: {
    allow: true
  }
}

resource sites_functions_name_web 'Microsoft.Web/sites/config@2021-03-01' = {
  parent: function_app
  name: 'web'
  properties: {
    numberOfWorkers: 1
    defaultDocuments: [
      'Default.htm'
      'Default.html'
      'Default.asp'
      'index.htm'
      'index.html'
      'iisstart.htm'
      'default.aspx'
      'index.php'
    ]
    netFrameworkVersion: 'v6.0'
    requestTracingEnabled: false
    remoteDebuggingEnabled: false
    remoteDebuggingVersion: 'VS2019'
    httpLoggingEnabled: false
    acrUseManagedIdentityCreds: false
    logsDirectorySizeLimit: 35
    detailedErrorLoggingEnabled: false
    publishingUsername: '$iim-swoove-API'
    scmType: 'None'
    use32BitWorkerProcess: true
    webSocketsEnabled: false
    alwaysOn: false
    managedPipelineMode: 'Integrated'
    virtualApplications: [
      {
        virtualPath: '/'
        physicalPath: 'site\\wwwroot'
        preloadEnabled: false
      }
    ]
    loadBalancing: 'LeastRequests'
    experiments: {
      rampUpRules: []
    }
    autoHealEnabled: false
    vnetRouteAllEnabled: false
    vnetPrivatePortsCount: 0
    cors: {
      allowedOrigins: [
        'https://portal.azure.com'
      ]
      supportCredentials: false
    }
    localMySqlEnabled: false
    ipSecurityRestrictions: [
      {
        ipAddress: 'Any'
        action: 'Allow'
        priority: 1
        name: 'Allow all'
        description: 'Allow all access'
      }
    ]
    scmIpSecurityRestrictions: [
      {
        ipAddress: 'Any'
        action: 'Allow'
        priority: 1
        name: 'Allow all'
        description: 'Allow all access'
      }
    ]
    scmIpSecurityRestrictionsUseMain: false
    http20Enabled: false
    minTlsVersion: '1.2'
    scmMinTlsVersion: '1.0'
    ftpsState: 'AllAllowed'
    preWarmedInstanceCount: 0
    functionAppScaleLimit: 200
    functionsRuntimeScaleMonitoringEnabled: false
    minimumElasticInstanceCount: 1
    azureStorageAccounts: {}
  }
}

resource sites_functions_name_azurewebsites_net 'Microsoft.Web/sites/hostNameBindings@2021-03-01' = {
  parent: function_app
  name: '${function_app_site_name}.azurewebsites.net'
  properties: {
    siteName: function_app_site_name
    hostNameType: 'Verified'
  }
}

resource api_authentication_settings 'Microsoft.Web/sites/config@2021-03-01' = {
  name: 'authsettingsV2'
  parent: function_app
  properties: {
    identityProviders: {
      azureActiveDirectory: {
        enabled: true
        registration: {
          clientId: ''
          clientSecretSettingName: 'MICROSOFT_PROVIDER_AUTHENTICATION_SECRET'
        }
        validation: {
          allowedAudiences: [
            'https://'
          ]
        }
      }
    }

  }
}

Can you provide a Correlation ID when you see the error? TBH, I am not sure what is happening. You mentioned you exported the template. Are you deploying a new set of resources or attempting to update/redeploy the resources that were provisioned in the portal? If it's the latter, what happens if you take the same bicep code, but deploy new resources instead?

I don't see any Correlation ID at first sight, but the full error message is pasted below.
I've tried both deploying as new resources and deploying to existing resources and both scenarios generate the same message.
{"status":"Failed","error":{"code":"DeploymentFailed","message":"At least one resource deployment operation failed. Please list deployment operations for details. Please see https://aka.ms/DeployOperations for usage details.","details":[{"code":"BadRequest","message":"{\r\n  \"Code\": \"BadRequest\",\r\n  \"Message\": \"The parameter location has an invalid value.\",\r\n  \"Target\": null,\r\n  \"Details\": [\r\n    {\r\n      \"Message\": \"The parameter location has an invalid value.\"\r\n    },\r\n    {\r\n      \"Code\": \"BadRequest\"\r\n    },\r\n    {\r\n      \"ErrorEntity\": {\r\n        \"ExtendedCode\": \"51008\",\r\n        \"MessageTemplate\": \"The parameter {0} has an invalid value.\",\r\n        \"Parameters\": [\r\n          \"location\"\r\n        ],\r\n        \"Code\": \"BadRequest\",\r\n        \"Message\": \"The parameter location has an invalid value.\"\r\n      }\r\n    }\r\n  ],\r\n  \"Innererror\": null\r\n}"},{"code":"BadRequest","message":"{\r\n  \"Code\": \"BadRequest\",\r\n  \"Message\": \"The parameter location has an invalid value.\",\r\n  \"Target\": null,\r\n  \"Details\": [\r\n    {\r\n      \"Message\": \"The parameter location has an invalid value.\"\r\n    },\r\n    {\r\n      \"Code\": \"BadRequest\"\r\n    },\r\n    {\r\n      \"ErrorEntity\": {\r\n        \"ExtendedCode\": \"51008\",\r\n        \"MessageTemplate\": \"The parameter {0} has an invalid value.\",\r\n        \"Parameters\": [\r\n          \"location\"\r\n        ],\r\n        \"Code\": \"BadRequest\",\r\n        \"Message\": \"The parameter location has an invalid value.\"\r\n      }\r\n    }\r\n  ],\r\n  \"Innererror\": null\r\n}"}]}}

This looks like an error coming from the resource provider. It's unfortunate that the error message is referencing a "parameter" because I think that is different than a bicep param. Can you open a suport case for this? It needs to get routed to the Web Resource Provider team.
cc @seligj95 as FYI

put a location property under scm and the web sections.
location: RGLocation


Add LayerAnimation control timeout for layer loadend

If it takes too long (loadend waiting) loading, then skip the layer.

MR https://github.com/openglobus/openglobus/pull/562
FYI @yeluoyunfei

@yeluoyunfei is it ok?

@yeluoyunfei is it ok?

Yes. Looks good.


Cannot build since move to jaegertracing org

The repository was moved to github.com/jaegertracing/jaeger-client-go (from github.com/uber/jaeger-client-go. However, import paths in the repository are still referencing the old name.
This is a problem for two reasons:

Tools like vgo complain that the repository has been moved and has a new authoritative name, and thus refuses to import the repository under the old name.
Actually building the repository under the old name with plain old go build also fails, because the import paths reference internal packages, and the internal packages it tries to import are not a child path of the repository (github.com/uber/jaeger-client-go/internal/baggage is not a child path of github.com/jaegertracing/jaeger-client-go).

I suggest either rewriting the imports or moving it back under the old name. Either change should fix both issues.

The official import part for this lib is github.com/uber/jaeger-client-go, as stated in the README.

sounds like an issue with the tool.
I don't believe that's true, the lib is being widely used, including in Jaeger backend.

$ pwd
/Users/yurishkuro/golang/src/github.com/uber/jaeger-client-go
$ go build .

(there's actually nothing to go build, it's a library, not a binary).

If the authoritative import path is github.com/uber/jaeger-client-go, why was the repository moved to the jaegertracing organization? Github redirects you to jaegertracing when you try to go to the official import path.
I don't have an opinion on whether vgo is in the wrong here.
Given the close coupling between repository URLs and import paths in Go, it would be nice if the repository was hosted on github at the same URL as the official import path. The current solution relies on Github serving a redirect from github.com/uber/jaeger-client-go to github.com/jaegertracing/jaeger-client-go, and I  am not sure it does that indefinitely.


hi，where is tvc-gmm code？

where is tvc-gmm code？

The TVC-GMM code is now available here: https://github.com/sony/ai-research-code/tree/master/tvcgmm
The accompanying project page can be accessed under: https://sony.github.io/ai-research-code/tvcgmm


prowlarr: <IP_ADDRESS>83 -> <IP_ADDRESS>99

https://github.com/Prowlarr/Prowlarr/releases/tag/v<IP_ADDRESS>99
Refactors the url download logic by relying strictly on the system identifier and using a unified throw that is more informative.
Also prowlarr now seems to be doing releases on the master branch, instead of develop.
I update the update script accordingly.
Description of changes

Things done

Built on platform(s)

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

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

It seems like all Pre-release  use .devlop and all releases use .master. So an if case might be needed for Pre-release  and regular releases.

It seems like all Pre-release use .devlop and releases use .master. So an if case might be needed for Pre-release and regular releases.

The update script uses the releases api endpoint instead of the one for tags now. From experience it doesn't expose pre-releases.

The update script uses the releases api endpoint instead of the one for tags now. In my experience it doesn't expose pre-releases.

Bingo. Per the docs, "the latest release is the most recent non-prerelease, non-draft release."

Wrong system? :)

Thanks for catching taht mistake.

Plus, I'm not sure how/if we should even clarify this, but to my knowledge, upstream has supported aarch64-darwin for a while -- this update didn't add it.

Still not sure how I feel about this. The first version with official support was https://github.com/Prowlarr/Prowlarr/releases/tag/v<IP_ADDRESS>3 back in late 2021...
If you think the clarification/confusion doesn't matter, feel free to merge, but I'm unsure. Sorry 🙃


wasi-common/yanix: fix FreeBSD support

there is no O_DSYNC, define that to zero, same with O_RSYNC

can't have another top level cfg for not(…) in the bitflags because https://github.com/bitflags/bitflags/issues/137 but cfg_if is better anyway (platforms only listed once)

d_fileno for inode

Now that I look at how we use O_RSYNC in wasi-common, I think we've got a bug since regardless what is specified in yanix, i.e., whether O_RSYNC is defined or not, we always overwrite it with a substitution O_RSYNC = yanix::file::OFlag::SYNC: see sys/unix/bsd/host_impl.rs#4.
This is not directly relevant to changes introduced in this PR, but I thought it's good to point that out, and fix in a subsequent PR.

The linked comment says that defining O_RSYNC to 0 is ok because they use rangelocks. In WASI, we don't have range locks, so that assumption may not be valid.
If FreeBSD doesn't support O_RSYNC or O_DSYNC, we should consider implementing them manually -- by calling fdatasync etc. ourselves as needed. If that's infeasible or awkward, we should consider removing them from WASI altogether, so that applications don't rely on them if they aren't reliable.

The linked comment says that defining O_RSYNC to 0 is ok because they use rangelocks. In WASI, we don't have range locks, so that assumption may not be valid.
If FreeBSD doesn't support O_RSYNC or O_DSYNC, we should consider implementing them manually -- by calling fdatasync etc. ourselves as needed. If that's infeasible or awkward, we should consider removing them from WASI altogether, so that applications don't rely on them if they aren't reliable.

Hmm, that's a good catch! I missed the fact that the reason O_RSYNC is set to 0 is because FreeBSD uses range locks.
I reckon trying to implement them manually for our use sounds good, and if impossible, dropping it from WASI is within reason as well (as we might have to do with symlinks for instance due to the differences between *nixes and Windows).

Maybe defining them to O_SYNC is a safe-and-easy option..?

Yes, defining O_DSYNC to O_SYNC on hosts that lack O_DSYNC looks like a reasonable solution.

To elaborate, while the comment here says that defining O_DSYNC to O_SYNC is wrong in intent, that relies on an assumption of what the intent is. In wasi-common, we can't make such assumptions, so we have to be conservative.

Updated with O_SYNC, nitpicks, fixes for the new any(target_os = "macos", target_os = "linux") stuff in the runtime, and posix_fadvise support.
test result: ok. 109 passed; 0 failed; 40 ignored; 0 measured; 0 filtered out


add sticky to sidepane

improve slice header UI
add slide effect when user switch between add component or add chart
add sticky for builder's sidepane

Going through the code now but some UI/UX thoughts (cc @elibrumbaugh):

the sidebar should always be the full height of the screen (see designs)
there should be no gap between the dashboard title header and the side bar
as a user scrolls down, the side bar should scroll up until it hits the top of the screen, at which point it becomes sticky/fixed. as we discussed before, this might be done most easily with react-sticky.

Also, will this approach also be compatible with making top-level tabs sticky? It should behave in the same way.

the builder pane Title should be "Insert components" instead of "Add"
the transition on the css also seems off a bit, when you go back and forth with "insert" and "chart", it looks like it transitions twice almost (not quite sure how to describe it)
there's some sort of issue with css here as well, you can see both panes (the two headers should match size, looks like the nested chart panel ["Add chart"] has a larger bottom margin)


Fix delete missing return when HTTP

I've added the missing return statement to the QdrantClient.delete method for when HTTP is used.

Hi @gabrielmbmb! Thanks for the fix!


Podman support

I understand from the docs that you are planning to support Podman as container runtime, and that it shouldn't be particularly complicated to implement in Snakemake.
I could work on a PR, if the dev team is interested in supporting this feature. If yes, where should I start from?

Podman support would be great!

Our cluster finally supports podman. I'd love to transition to it, please make it happen!


add regionCode=US

I thought sometimes it can be a reason of error to have your machine somewhere you cannot see geo-restricted US videos. Checking if Travis passes test with this change

Coverage remained the same at 100.0% when pulling 9779d4ad2710a4b231e08a03ce078d01ad22239d on region_code into 7bffe71096ce995401f4c67bd2e23ddbf9f46111 on master.


pac-container dont work

Hey everyone, today the dropdown-popup doesnt work anymore (the list with the search-suggestions).
Didnt know why, but I see this at the console:
"NetworkError: 404 Not Found - https://encrypted-tbn0.gstatic.com/favicon?q=tbn:ANd9GcT6jdI45NEKdPWqP1PWenN--DPwsKL-ylYNDreDRElqZ7d8PKQiD5NM3AlyKXW_taK6pKZgPRS5m_ZEdGGsRtio_mqYtH0Ao_KP-aPoniKw4g61n3kUtDMzp8VLAP97-Jvv22eUwrIist_QPedQVji1P-EADkoAhhV7tS7zs8R0n3YJ3zGaqIG04giR"
Anyone a hint?
Greetz,

This has nothing to do with this plugin not working.  This is simply a 404 (not found) error for a favicon or image.

You're right. The problem is the places autocomplete, it doesnt work since I switch to https. Is there a workarround?


Add alpha blending

@terror I think this is ready to go. I timed an expensive program, and there wasn't a different in running time with alpha blending and with the alpha blending code removed, so I didn't bother optimizing it.

@terror I think this is ready to go. I timed an expensive program, and there wasn't a different in running time with alpha blending and with the alpha blending code removed, so I didn't bother optimizing it.

Nice, code looks good to me


MIT License?

It would be more helpful for us if you chose a "standard" open source license, such as MIT or Apache. My company forbids us to use open source software without a standard license.  Any chance you could please move to an MIT license?

I will ask the powers that be about transferring to a new license type. The current license is what I was told to use, so I will need to seek approval first.
I am admittedly ignorant of the differences in licenses, so I apologize for not being able to make this change immediately.

I just checked our (LICENSE)[https://github.com/Credera/angular-bing-maps/blob/master/LICENSE] and it is indeed the MIT License. Closing this issue.


Are there plans for adding RxRelay?

With release of RxSwift 5.0 Relays have been moved to separate framework RxRelay, which means that now you can use them without RxCocoa.
Are there plans to support RxRelay and replace StateRelay with BehaviorRelay?
Also can ActionSubject be replace with PublishRelay or not?

Theoretically ActionSubject can be replaced with PublishRelay but it will bring tons of breaking changes :thinking:. StateRelay cannot be replaced with the relay since it breaks a syntax.
https://github.com/ReactorKit/ReactorKit/pull/110#issuecomment-529081563


Gym-Gymnasium compatibility converter

Based on many external discussions, this implements a way to use gym environments inside gymnasium.
They can be created in two ways -- either pass it by name with optional arguments to create an env from the gym registry:
import gymnasium as gym
gym.make("GymV26Environment-v0", env_id="CartPole-v0", make_kwargs={...})

or use an arbitrary instantiated gym env
import gymnasium
import gym
env = gym.make(...)
gymnasium.make("GymV26Environment-v0", env=env)

At the moment it only supports the modern API used in gym 0.26, in the future we might add support for the old API, though at that point it might enter a dependency hell. We'll see.

Do we want a __get_attr__ function to get attributes from the gym environment

I'd rather not do that, I'm already slightly uneasy with the way getattr is handled in wrappers. If users need to access something from the backend environment, they can just do env.gym_env.something and it's clear where it comes from.


Add support for 8.1.218 runtime (from GM4HTML5 1.0.218)

Done in cdebb0808d30c31a4e36a57c3ce0e20d1de54686.


fix(cli): build version information loss

The changing of release.yml needs debug when do a real release.

Codecov Report

Merging #425 (05eb270) into master (bcf2d32) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##           master     #425   +/-   ##
=======================================
  Coverage   60.09%   60.09%
=======================================
  Files          40       40
  Lines        2837     2837
=======================================
  Hits         1705     1705
  Misses       1004     1004
  Partials      128      128

Impacted Files
Coverage Δ

core/client_options.go
93.33% <0.00%> (-0.42%)
:arrow_down:

core/stream_parser.go
73.91% <0.00%> (ø)

core/client.go
63.75% <0.00%> (+0.48%)
:arrow_up:

:mega: We’re building smart automated test selection to slash your CI/CD build times. Learn more


Change Unknown on pointer click to ... (Nearby Activity)

Since on the pointer click in the Nearby Activity shows description as Unknown which is pretty confusing, We should probably change it to something else. Suggestions are welcome :-)

Something like No description available would indeed provide more context about what we're trying to portray here.

Hey @RitikaPahwa4444, Description is hardcoded to null that's why it showing Unknown for every pointer. I am looking for suggestions to change the hardcoded string to something else.
https://github.com/commons-app/apps-android-commons/blob/8ce7485153c4e9b5aea6b07d582c683e2ca34861/app/src/main/java/fr/free/nrw/commons/nearby/fragments/NearbyParentFragment.java#L1803C5-L1814C10

Got it, thanks for clarifying! I thought it's just happening for the cases when we don't have any description.

I circled in red info that might be useful to display instead of "Unknown":

How about the bottom one? (Wikidata description)

Wikidata description seems great 👍 I will share a Pull Request asap


Large memory footprint and computational times

The software seems to take over my whole Debian Jessie dual quad core machine (Intel i7) when performing a pre compute on a 24 hour video obtained from http://oireachtasdebates.oireachtas.ie/ with ncores=1. The files are about 4-6.4Gb in size but should they be fully loaded at the time of processing? Or does the algorithm require full loading of the video to jump around within it? I'm guessing that the full RAM and swap are depleted. free under Linux shows that I have 6.4Gb used and 1.6Gb so it seems to be proportional to the size of the file being processed. The load average on my machine is over 9!!! Can I add an option to reduce this problem? I know I can use avconv to split the videos into 1hr segments but it's not a great workaround.
Also some process in 2 minutes whilst others take 150 minutes.
I'm using density=50.

The system is designed for reference items of a few minutes and queries of
tens of seconds. It will work with files an hour long, but beyond that I
don't know. Can you break your files into 1 hour chunks?
DAn.
On Friday, January 29, 2016, eamonnkenny<EMAIL_ADDRESS>wrote:

The software seems to take over my whole Debian Jessie dual quad core
machine (Intel i7) when performing a pre compute on a 24 hour video
obtained from http://oireachtasdebates.oireachtas.ie/ with ncores=1 files
are about 4-6.4Gb in size but should they be fully loaded at the time of
processing? Or does the algorithm require full loading of the video to jump
around within it?
Also some process in 2 minutes whilst others take 150 minutes.
I'm using density=50.
—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18.

Thanks Dan,
1hr chunks is probably achievable and I can throw away the video for the
analysis and then glean it back at the end using avconv and mediainfo.
Basically, I'm looking for a parliamentary talk in a 24hr session. To
find it I split each 24hr into 1hr sessions, then check the snippets to
find their start time. If then exist in say Dail_20060208-11.wav at time
135.2 seconds then I just use: 3600 * 11 + 135.2 to get the state time
and pymediainfo will give the duration of any snippet file using:
duration = float( pymediainfo.MediaInfo.parse( snippetFile
).tracks[0].duration ) / 1000.0
I'll see how I get on. Thanks for your help.
On 29/01/16 11:53, Dan Ellis wrote:

The system is designed for reference items of a few minutes and queries of
tens of seconds. It will work with files an hour long, but beyond that I
don't know. Can you break your files into 1 hour chunks?
DAn.
On Friday, January 29, 2016, eamonnkenny<EMAIL_ADDRESS>wrote:

The software seems to take over my whole Debian Jessie dual quad core
machine (Intel i7) when performing a pre compute on a 24 hour video
obtained from http://oireachtasdebates.oireachtas.ie/ with ncores=1
files
are about 4-6.4Gb in size but should they be fully loaded at the time of
processing? Or does the algorithm require full loading of the video
to jump
around within it?
Also some process in 2 minutes whilst others take 150 minutes.
I'm using density=50.
—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18.

—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18#issuecomment-176714980.

--
Best Regards,
Eamonn Kenny
*Dr. Eamonn Kenny* | Research Fellow

ADAPT Centre
O'Reilly Building 	Phone: +353 (0) 1 896 1335
Trinity College Dublin 	Mobile: +353 (0) 86 309 3967
Dublin 2 	E-mail<EMAIL_ADDRESS>Ireland 	www.adaptcentre.ie http://www.adaptcentre.ie/
https://twitter.com/adaptcentrehttps://www.facebook.com/ADAPTCentre?fref=tshttps://www.youtube.com/channel/UC9--qVutTtyLyhZCJR7rY5ghttps://www.linkedin.com/company/adapt-centre

To get accurate time indices within 1hr chunks you'll need to increase
--maxtime 262144 or something.  By default (--maxtime 16384) it aliases on
a 6 minute window.
DAn.
On Fri, Jan 29, 2016 at 9:53 AM, eamonnkenny<EMAIL_ADDRESS>wrote:

Thanks Dan,
1hr chunks is probably achievable and I can throw away the video for the
analysis and then glean it back at the end using avconv and mediainfo.
Basically, I'm looking for a parliamentary talk in a 24hr session. To
find it I split each 24hr into 1hr sessions, then check the snippets to
find their start time. If then exist in say Dail_20060208-11.wav at time
135.2 seconds then I just use: 3600 * 11 + 135.2 to get the state time
and pymediainfo will give the duration of any snippet file using:
duration = float( pymediainfo.MediaInfo.parse( snippetFile
).tracks[0].duration ) / 1000.0
I'll see how I get on. Thanks for your help.
On 29/01/16 11:53, Dan Ellis wrote:

The system is designed for reference items of a few minutes and queries
of
tens of seconds. It will work with files an hour long, but beyond that I
don't know. Can you break your files into 1 hour chunks?
DAn.
On Friday, January 29, 2016, eamonnkenny<EMAIL_ADDRESS>wrote:

The software seems to take over my whole Debian Jessie dual quad core
machine (Intel i7) when performing a pre compute on a 24 hour video
obtained from http://oireachtasdebates.oireachtas.ie/ with ncores=1
files
are about 4-6.4Gb in size but should they be fully loaded at the time
of
processing? Or does the algorithm require full loading of the video
to jump
around within it?
Also some process in 2 minutes whilst others take 150 minutes.
I'm using density=50.
—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18.

—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18#issuecomment-176714980.

--
Best Regards,
Eamonn Kenny
Dr. Eamonn Kenny | Research Fellow
ADAPT Centre
O'Reilly Building Phone: +353 (0) 1 896 1335
Trinity College Dublin Mobile: +353 (0) 86 309 3967
Dublin 2 E-mail<EMAIL_ADDRESS>Ireland www.adaptcentre.ie http://www.adaptcentre.ie/
https://twitter.com/adaptcentre<
https://www.facebook.com/ADAPTCentre?fref=ts><
https://www.youtube.com/channel/UC9--qVutTtyLyhZCJR7rY5g><
https://www.linkedin.com/company/adapt-centre>
—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18#issuecomment-176794025.

Good to know, thanks. I tried one previously with the default of 16384
and it worked without any problem. I ran the match query with
--min-count 20 --max-matches 100 and --match-win 2 and found that the
result was very exact.
On 29/01/16 14:58, Dan Ellis wrote:

To get accurate time indices within 1hr chunks you'll need to increase
--maxtime 262144 or something. By default (--maxtime 16384) it aliases on
a 6 minute window.
DAn.
On Fri, Jan 29, 2016 at 9:53 AM, eamonnkenny<EMAIL_ADDRESS>wrote:

Thanks Dan,
1hr chunks is probably achievable and I can throw away the video for the
analysis and then glean it back at the end using avconv and mediainfo.
Basically, I'm looking for a parliamentary talk in a 24hr session. To
find it I split each 24hr into 1hr sessions, then check the snippets to
find their start time. If then exist in say Dail_20060208-11.wav at time
135.2 seconds then I just use: 3600 * 11 + 135.2 to get the state time
and pymediainfo will give the duration of any snippet file using:
duration = float( pymediainfo.MediaInfo.parse( snippetFile
).tracks[0].duration ) / 1000.0
I'll see how I get on. Thanks for your help.
On 29/01/16 11:53, Dan Ellis wrote:

The system is designed for reference items of a few minutes and
queries
of
tens of seconds. It will work with files an hour long, but beyond
that I
don't know. Can you break your files into 1 hour chunks?
DAn.
On Friday, January 29, 2016, eamonnkenny<EMAIL_ADDRESS>wrote:

The software seems to take over my whole Debian Jessie dual quad
core
machine (Intel i7) when performing a pre compute on a 24 hour video
obtained from http://oireachtasdebates.oireachtas.ie/ with ncores=1
files
are about 4-6.4Gb in size but should they be fully loaded at the
time
of
processing? Or does the algorithm require full loading of the video
to jump
around within it?
Also some process in 2 minutes whilst others take 150 minutes.
I'm using density=50.
—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18.

—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18#issuecomment-176714980.

--
Best Regards,
Eamonn Kenny
Dr. Eamonn Kenny | Research Fellow
ADAPT Centre
O'Reilly Building Phone: +353 (0) 1 896 1335
Trinity College Dublin Mobile: +353 (0) 86 309 3967
Dublin 2 E-mail<EMAIL_ADDRESS>Ireland www.adaptcentre.ie http://www.adaptcentre.ie/
https://twitter.com/adaptcentre<
https://www.facebook.com/ADAPTCentre?fref=ts><
https://www.youtube.com/channel/UC9--qVutTtyLyhZCJR7rY5g><
https://www.linkedin.com/company/adapt-centre>
—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18#issuecomment-176794025.

—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18#issuecomment-176797363.

--
Best Regards,
Eamonn Kenny
*Dr. Eamonn Kenny* | Research Fellow

ADAPT Centre
O'Reilly Building 	Phone: +353 (0) 1 896 1335
Trinity College Dublin 	Mobile: +353 (0) 86 309 3967
Dublin 2 	E-mail<EMAIL_ADDRESS>Ireland 	www.adaptcentre.ie http://www.adaptcentre.ie/
https://twitter.com/adaptcentrehttps://www.facebook.com/ADAPTCentre?fref=tshttps://www.youtube.com/channel/UC9--qVutTtyLyhZCJR7rY5ghttps://www.linkedin.com/company/adapt-centre

Hi Dan,
When I go for maxtime = 262144 must this value to be built into the
precomputed large files, the smaller file ingestion or just the matching
at the end, or all 3?
On 29/01/16 14:58, Dan Ellis wrote:

To get accurate time indices within 1hr chunks you'll need to increase
--maxtime 262144 or something. By default (--maxtime 16384) it aliases on
a 6 minute window.
DAn.
On Fri, Jan 29, 2016 at 9:53 AM, eamonnkenny<EMAIL_ADDRESS>wrote:

Thanks Dan,
1hr chunks is probably achievable and I can throw away the video for the
analysis and then glean it back at the end using avconv and mediainfo.
Basically, I'm looking for a parliamentary talk in a 24hr session. To
find it I split each 24hr into 1hr sessions, then check the snippets to
find their start time. If then exist in say Dail_20060208-11.wav at time
135.2 seconds then I just use: 3600 * 11 + 135.2 to get the state time
and pymediainfo will give the duration of any snippet file using:
duration = float( pymediainfo.MediaInfo.parse( snippetFile
).tracks[0].duration ) / 1000.0
I'll see how I get on. Thanks for your help.
On 29/01/16 11:53, Dan Ellis wrote:

The system is designed for reference items of a few minutes and
queries
of
tens of seconds. It will work with files an hour long, but beyond
that I
don't know. Can you break your files into 1 hour chunks?
DAn.
On Friday, January 29, 2016, eamonnkenny<EMAIL_ADDRESS>wrote:

The software seems to take over my whole Debian Jessie dual quad
core
machine (Intel i7) when performing a pre compute on a 24 hour video
obtained from http://oireachtasdebates.oireachtas.ie/ with ncores=1
files
are about 4-6.4Gb in size but should they be fully loaded at the
time
of
processing? Or does the algorithm require full loading of the video
to jump
around within it?
Also some process in 2 minutes whilst others take 150 minutes.
I'm using density=50.
—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18.

—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18#issuecomment-176714980.

--
Best Regards,
Eamonn Kenny
Dr. Eamonn Kenny | Research Fellow
ADAPT Centre
O'Reilly Building Phone: +353 (0) 1 896 1335
Trinity College Dublin Mobile: +353 (0) 86 309 3967
Dublin 2 E-mail<EMAIL_ADDRESS>Ireland www.adaptcentre.ie http://www.adaptcentre.ie/
https://twitter.com/adaptcentre<
https://www.facebook.com/ADAPTCentre?fref=ts><
https://www.youtube.com/channel/UC9--qVutTtyLyhZCJR7rY5g><
https://www.linkedin.com/company/adapt-centre>
—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18#issuecomment-176794025.

—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18#issuecomment-176797363.

--
Best Regards,
Eamonn Kenny
*Dr. Eamonn Kenny* | Research Fellow

ADAPT Centre
O'Reilly Building 	Phone: +353 (0) 1 896 1335
Trinity College Dublin 	Mobile: +353 (0) 86 309 3967
Dublin 2 	E-mail<EMAIL_ADDRESS>Ireland 	www.adaptcentre.ie http://www.adaptcentre.ie/
https://twitter.com/adaptcentrehttps://www.facebook.com/ADAPTCentre?fref=tshttps://www.youtube.com/channel/UC9--qVutTtyLyhZCJR7rY5ghttps://www.linkedin.com/company/adapt-centre

The maxtime parameter has to be specified at the time when the database
file is first created.  After that, it is read from the database file.
DAn.
On Mon, Feb 1, 2016 at 7:26 AM, eamonnkenny<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>> wrote:

Hi Dan,
When I go for maxtime = 262144 must this value to be built into the
precomputed large files, the smaller file ingestion or just the matching
at the end, or all 3?
On 29/01/16 14:58, Dan Ellis wrote:

To get accurate time indices within 1hr chunks you'll need to increase
--maxtime 262144 or something. By default (--maxtime 16384) it aliases on
a 6 minute window.
DAn.
On Fri, Jan 29, 2016 at 9:53 AM, eamonnkenny<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>>
wrote:

Thanks Dan,
1hr chunks is probably achievable and I can throw away the video for
the
analysis and then glean it back at the end using avconv and mediainfo.
Basically, I'm looking for a parliamentary talk in a 24hr session. To
find it I split each 24hr into 1hr sessions, then check the snippets to
find their start time. If then exist in say Dail_20060208-11.wav at
time
135.2 seconds then I just use: 3600 * 11 + 135.2 to get the state time
and pymediainfo will give the duration of any snippet file using:
duration = float( pymediainfo.MediaInfo.parse( snippetFile
).tracks[0].duration ) / 1000.0
I'll see how I get on. Thanks for your help.
On 29/01/16 11:53, Dan Ellis wrote:

The system is designed for reference items of a few minutes and
queries
of
tens of seconds. It will work with files an hour long, but beyond
that I
don't know. Can you break your files into 1 hour chunks?
DAn.
On Friday, January 29, 2016, eamonnkenny<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','notifications@github.com');>>
wrote:

The software seems to take over my whole Debian Jessie dual quad
core
machine (Intel i7) when performing a pre compute on a 24 hour video
obtained from http://oireachtasdebates.oireachtas.ie/ with
ncores=1
files
are about 4-6.4Gb in size but should they be fully loaded at the
time
of
processing? Or does the algorithm require full loading of the video
to jump
around within it?
Also some process in 2 minutes whilst others take 150 minutes.
I'm using density=50.
—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18.

—
Reply to this email directly or view it on GitHub
<https://github.com/dpwe/audfprint/issues/18#issuecomment-176714980
.

--
Best Regards,
Eamonn Kenny
Dr. Eamonn Kenny | Research Fellow
ADAPT Centre
O'Reilly Building Phone: +353 (0) 1 896 1335
Trinity College Dublin Mobile: +353 (0) 86 309 3967
Dublin 2 E-mail<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','eamonn.kenny@adaptcentre.ie');>
Ireland www.adaptcentre.ie http://www.adaptcentre.ie/
https://twitter.com/adaptcentre<
https://www.facebook.com/ADAPTCentre?fref=ts><
https://www.youtube.com/channel/UC9--qVutTtyLyhZCJR7rY5g><
https://www.linkedin.com/company/adapt-centre>
—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18#issuecomment-176794025.

—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18#issuecomment-176797363.

--
Best Regards,
Eamonn Kenny
Dr. Eamonn Kenny | Research Fellow
ADAPT Centre
O'Reilly Building Phone: +353 (0) 1 896 1335
Trinity College Dublin Mobile: +353 (0) 86 309 3967
Dublin 2 E-mail<EMAIL_ADDRESS><javascript:_e(%7B%7D,'cvml','eamonn.kenny@adaptcentre.ie');>
Ireland www.adaptcentre.ie http://www.adaptcentre.ie/
https://twitter.com/adaptcentre<
https://www.facebook.com/ADAPTCentre?fref=ts><
https://www.youtube.com/channel/UC9--qVutTtyLyhZCJR7rY5g><
https://www.linkedin.com/company/adapt-centre>
—
Reply to this email directly or view it on GitHub
https://github.com/dpwe/audfprint/issues/18#issuecomment-177949186.


target key doesn't work in component hashes

The target key in a component hash (templates, actions, modules, etc) doesn't properly work when overridden.
If target is not supposed to be configurable at the component level
No error message is displayed, the component defined in the hash simple doesn't get created due to the lack of a parent concat resource that matches the concat::fragment's target attribute.
If target is supposed to be configurable at the component level
No parent concat resource exists for the concat::fragment that is generated, thus the config is not generated in a configuration file.

fixed in #20


Web - Chat - Bot reply thread lags and messages are shown out of sequence for a while

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

Action Performed:

Send any message in chat with a bot
Create a thread from the bot reply and send another message in the thread
The message lags. Now send more messages. The latest message is displayed above the pervious message

Expected Result:
Messages should be quick to display and latest messages should be at the end
Actual Result:
Initial message takes a lot of time to be displayed and consequent messages are not displayed in sequence
Workaround:
Unknown
Platforms:

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

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

Version Number: n/a
Reproducible in staging?: n/a
Reproducible in production?: n/a
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/93399543/62f3e672-8600-42db-83aa-2859d6dfd42d
Expensify/Expensify Issue URL:
Issue reported by: @MohsinAliTanvir
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1686762180109169
View all open jobs on GitHub

QA team is not testing anything related to Concierge on both NewDot and OldDot, putting Need reproduction label.

I can't reproduce, asking in the Slack thread.

I still can't reproduce this.

Asked for more details in the Slack thread.

Not reproduceable anymore by the reporter.


zectl activate shows the wrong boot environment as active

When I have a single boot environment, I get N and R under the ACTIVE column for that boot environment as expected
$ zectl list
Name     Active  Mountpoint  Creation
default  NR      /                 2020-03-21 11:28

After creating a new boot environment, zectl list shows the new boot environment and the ACTIVE column still shows N and R under the current boot environment, again as expected.
$ sudo zectl create trial

$ zectl list
Name     Active  Mountpoint  Creation
default  NR      /                 2020-03-21 11:28
trial            -                 2020-03-21 18:01

But after I run 'zectl activate trial', the N label goes on the trial boot environment and the R label remains on the default boot environment. Which means that zectl thinks that the 'trial' boot environment is the active boot environment and the 'default' boot environment is the one that will be used after reboot (Based on the info in: https://zedenv.readthedocs.io/en/latest/basic-usage.html). Shouldn't it be the other way round? i.e. 'default' being the current environment and 'trial' being the environment used after reboot
$ sudo zectl activate trial

$ zectl list
Name     Active  Mountpoint  Creation
default  R       /                 2020-03-21 11:28
trial    N       -                 2020-03-21 18:01

Thanks, released 0.1.1 with the fix.


Support ytt's ---data-value-file equivalent functionality

Describe the problem/challenge you have
It may be expected to set the contents of the config file as a variable in a ytt template file that is applied via App resource.
For example
#@ load("@ytt:overlay", "overlay")
#@ load("@ytt:data", "data")

#@overlay/match by=overlay.subset({"kind": "ConfigMap", "metadata": {"name": "demo-config"}})
---
data:
  config.yml: #@ data.values.demo.config_yml

I'd like to keep the configuration file separated because it sometime has a large contents and don't want to include it with other data values.
With local ytt + kapp, it is possible to use ---data-value-file as follows
kapp -a demo -f <(ytt -f manifest.yml -f overlay.yml ---data-value-file demo.config_yml=config.yml)

but not with kapp-controller
Describe the solution you'd like
Support ytt's ---data-value-file equivalent functionality in App spec
Anything else you would like to add:
I met this limitation when I configure Prometheus provided by TKG extension
https://docs.vmware.com/en/VMware-Tanzu-Kubernetes-Grid/1.2/vmware-tanzu-kubernetes-grid-12/GUID-extensions-prometheus.html#customize-your-prometheus-deployment-3
for example monitoring.prometheus_server.config.alerting_rules_yaml

Thanks for opening this @making. I think the use case here makes sense.
Not sure at this point when this will be prioritized, but I think we would be open to any submissions on this.

AppCR has the ability now:
  template:
     - ytt:
        ...
        # provide values via ytt's --data-values-file (optional; v0.19.0-alpha.9)
        valuesFrom:


Use faster form of PCA and simpler stats like variance to track representational health

there are progressive forms of PCA, which may be in SVD-like packages, that should be much faster to compute..

SVD in gonum produces identical results to PCA, and you can dial the level of detail down to just get the eigenvalues with maximal efficiency.  Default PCA impl is now SVG.


Add ability to force mode

I would like to force using alphanumeric mode, looks like its possible but the ability is disabled?
I'm implementing the BBQr spec which is a spec for splitting up large data into multiple QRs and the spec wants the alphanumeric encoding.

Hey, I saw your example on BBQr repo
let data: &[u8] = b"Hello, World!, but much larger";

How does that work with Alpha numeric?
As you see in best_encoding, we only support [0-9] or [A-Z] or [$%*./:+-?.=] or [space]

@erwanvivien during the splitting process the data is encoded to either hex or base32

As long as your encoded string is using AlphaNum the QRCode will be AlphaNum.
https://github.com/erwanvivien/fast_qr/blob/master/src/encode.rs#L41C8-L61
As Number is included in AlphaNum and AlphaNum in Byte
This cannot be asserted because encode::Mode is not public tho...

As long as you trust your input to QRCode::new() this should not be a problem 👍

Thanks but since I know it’s going to be alphanumeric , wouldn’t adding mode allow you to skip the first loop checking its numeric?
Probably not a big saving, but still is there a reason to not allow the end user to explicitly select the encoding type?

The main problem was user validation, there is not really a problem with that 👍

cc @praveenperera I deployed fast_qr = "0.12.4"


a list of escaped character codes is displayed instead of part of the path

TS Template added by @mjbvz
TypeScript Version: 3.9.4
Search Terms

import path
hover / quick info

VSCode Version: 1.46.0
OS Version: Linux Mint 19.3 x64 5.3.0-59-generic

Steps to Reproduce:

In the import block, specify the path to the module.
Hover the cursor over the specified path.
If the path contains non-Latin characters (in my case, Cyrillic), a list of escaped character codes is displayed instead of plain text.

The situation is similar in the error text in the terminal.

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

To repo:

git clone https://github.com/mjbvz/ts-39027
In the project, open index.ts and hover over the import

TS Trace:
[Trace  - 18:38:51.910] <semantic> Sending request: quickinfo (122). Response expected: yes. Current queue length: 0
Arguments: {
    "file": "/Users/matb/projects/san/😀/index.ts",
    "line": 1,
    "offset": 22
}
[Trace  - 18:38:51.913] <semantic> Response received: quickinfo (122). Request took 4 ms. Success: true
Result: {
    "kind": "module",
    "kindModifiers": "",
    "start": {
        "line": 1,
        "offset": 19
    },
    "end": {
        "line": 1,
        "offset": 24
    },
    "displayString": "module \"/Users/matb/projects/san/\\uD83D\\uDE00/a\"",
    "documentation": "",
    "tags": []
}

Not pretty sure this issue belongs to TS.
In session.ts, in function public send(msg: protocol.Message),
formatMessage would use JSON.stringify(msg), finally produce msgText like follows to write
"Content-Length: 324
{"seq":0,"type":"response","command":"quickinfo","request_seq":148,"success":true,"body":{"kind":"module","kindModifiers":"","start":{"line":1,"offset":19},"end":{"line":1,"offset":29},"displayString":"module "c:/Users/XXX/Desktop/VS Code Dubug/Node/TypeScript/src/\u4E2D\u6587/tmp"","documentation":"","tags":[]}}
"
It seems VSCode use italic text part as an object directly, but it should be a JSON string.


List of network modes and stacks-node binary

@wileyj, could you please confirm this list of modes is no longer valid?
Also, isn't the section of stacks-node binary obsolete and completely replaced by the docker option?

copying from a call with @criadoperez :
start the binary with each option (separately):

testnet
mainnet

if both options bring up the correct chain, the noble gas names can be removed from the docs.


[FEATURE] Improve Notes App, {branch: dev}.

Detailed description
🔨Installation Guide

Dashboard > Notes
Design Layout: as of now simple design requirement

Context
This will help community members to store their notes.
Possible implementation
No response
Additional information
No response
Code of Conduct

[X] I agree to follow this project's Code of Conduct

Can you elaborate this issue
like where do you want this notes app improvement

If you want a notes section on the main navbar
I can make a local storage notes storing page
Something like this( don't worry I will change the colour scheme )

Can you elaborate on this issue like where you want this notes app improvement

we just have to create this simple note app (only frontend as of now)

left side title | right side description

@ArkadiK94

First pr was pushed,
Still left to do in next pr's

[ ] add option to pin note
[ ] add option to create/edit/delete note
[ ] add items in the menu icon
[ ] add markdown editor setup
[ ] add mobile layout
[ ] clean previous code which I commented for now , and put it in "old" folder

[ ] when delete note/ edit note and remove img / don't save note --> remove the img from s3

some tasks that we need to fix:

[ ] In the md editor the bold/italic (and more) buttons do not work properly when we toggle them without an order.
[ ] when we click on one of these buttons, it does not save the clicked state and does not displayed properly.

Need to add related to Categories :

[ ] need to add functionality for adding/removing/editing category:

add by icon , when clicking the icon will be opened a modal window to create category
remove category and edit category mode will be chosen from menu, when choose this mode the icon will be changed to the right one and user could pick a category and click the icon to remove or edit

[ ] change category of note , when the user will drag the note to different category and drop there the note's category will be changed accordingly
[ ] redux for categories and backend...

[ ] change the notes category prop when edit the name of the current category so the notes will still be in this folder
[ ] change the notes category prop when remove a category so if the user will create again this category the notes will not be

[ ] add in the note description in edit/add note mode an option to pick/change the category
[ ] related to back-end, If the user added many categories (like 4 categories) at one time there is an 429 error "to many requests" so change it / make the number bigger.
[ ] there is a grey box in upper side and lower side of the scroll bar. remove it.

Issues #559, #560, #561, #562, #563  , I split what left to do in many issues. we can close this issue.


fix: resolve global locale not being respected in GT.fmt_*() functions

This PR addresses a potential bug where the global locale setting is not respected in GT.fmt_*() functions that accept locale as a parameter.
Consider the following example:
from great_tables import GT, exibble

(
    GT(exibble[["currency"]])
    .with_locale("ja")
    .fmt_currency("currency")
)

It appears that the global locale="ja" setting is applied, but the output doesn't reflect this, and here’s what I expected:

The issue seems to stem from most of the formatting functions not fetching the global locale correctly. The line locale = x._locale._locale if locale is None else locale in _resolve_locale() is crucial to resolving this.
Therefore, I propose applying _resolve_locale() at the start of these formatting functions that accept the locale parameter. Additionally, I suggest moving the _validate_locale() call before _normalize_locale() within _resolve_locale() for better logic flow.

If locale only applies to GT.fmt_*() functions, the current fix might be sufficient. However, if we eventually need to apply locale to other functions, this type of validation could become tedious.
If that becomes the case, I would propose using a decorator for validation, for example:
from functools import wraps

class GTData:
    def __init__(self, locale: str | None = None):
        self._locale = locale

gtdata = GTData()

def _resolve_locale(x: GTData, locale: str | None = None) -> str | None:
    locale = x._locale if locale is None else locale
    # add validators or modifiers afterwards. For example:
    locale = locale.replace("_", "^_^")

    return locale

def localer(func):
    @wraps(func)
    def wrapper(*args, **kwargs):
        if locale := kwargs.get("locale"):
            kwargs |= {"locale": _resolve_locale(args[0], locale=locale)}
        return func(*args, **kwargs)

    return wrapper

@localer
def fake_fmt_currency(
    self: GTData, fake1="fake1", *, locale: str | None = None
) -> GTData:
    print(f"{locale=}")

print(fake_fmt_currency(gtdata))  # locale=None
print(fake_fmt_currency(gtdata, locale="new_locale"))  # locale='new^_^locale'

In the example code, I assume the locale parameter is passed as a keyword-only argument. Otherwise, we may need to use the inspect module to create a more generalized validator.

The tests were a bit tricky to write, but hopefully I got them right! :)


gnomeExtensions.topicons-plus: 22 -> 27

Motivation for this change
Unmark as broken because it is compatible with the current version of GNOME.
Things done

[x] Tested using sandboxing (nix.useSandbox on NixOS, or option sandbox in nix.conf on non-NixOS linux)
Built on platform(s)

[x] NixOS
[ ] macOS
[ ] other Linux distributions

[ ] Tested via one or more NixOS test(s) if existing and applicable for the change (look inside nixos/tests)
[ ] Tested compilation of all pkgs that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review wip"
[ ] Tested execution of all binary files (usually in ./result/bin/)
[ ] Determined the impact on package closure size (by running nix path-info -S before and after)
[ ] Ensured that relevant documentation is up to date
[x] Fits CONTRIBUTING.md.

It will be broken again soon: https://github.com/phocean/TopIcons-plus/issues/155.
See https://github.com/NixOS/nixpkgs/issues/116252.

Isn't this extension unsupported and unmaintained?
https://github.com/phocean/TopIcons-plus/issues/91

It will be broken again soon: phocean/TopIcons-plus#155.
See #116252.

Isn't this extension unsupported and unmaintained?
phocean/TopIcons-plus#91

This version works with the current version of GNOME and there is a PR to make it compatible with GNOME 40.

Result of nixpkgs-review pr 118306 at d602c233 run on x86_64-linux 1

1 package built successfully:

gnomeExtensions.topicons-plus

2 suggestions:

warning: unused-argument
Unused argument: gnome3.
Near pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix:1:39:
  |
1 | { lib, stdenv, fetchFromGitHub, glib, gnome3, gettext }:
  |                                       ^

warning: unclear-gpl
gpl2 is a deprecated license, please check if project uses gpl2Plus or gpl2Only and change meta.license accordingly.
Near pkgs/desktops/gnome-3/extensions/topicons-plus/default.nix:24:5:
   |
24 |     license = licenses.gpl2;
   |     ^

2 suggestions:

Fixed

@ofborg eval

@ofborg eval


[docs] .scripts/setup.ps1 is not working

Problem
This script is not working:
https://github.com/tauri-apps/tauri/blob/dev/.scripts/setup.ps1
setup.sh is potentially broken as well, I didn't test it.
The script is trying to get tauri/.scripts/tooling instead of tauri/tooling
Solution
Add a dot before \tooling\
Line 7: cd .\tooling\api
Line 12: cd .\tooling\cli.rs
Line 24: cd .\tooling\cli.js

Console log
PS E:\tauri>./.scripts/setup.ps1
Building API definitions...
cd : Cannot find path 'E:\tauri\.scripts\tooling\api' because it does not exist.
At E:\tauri>./.scripts/setup.ps1:7 char:1
+ cd tooling\api
+ ~~~~~~~~~~~~~~
    + CategoryInfo          : ObjectNotFound: (E:\tauri\.scripts\tooling\api:String) [Set-Location], ItemNotFoundE
   xception
    + FullyQualifiedErrorId : PathNotFound,Microsoft.PowerShell.Commands.SetLocationCommand

afaik you're "supposed" to invoke the script in tauri's root folder with .\.scripts\setup.ps1 (or ./.scripts/setup.sh for that matter).
btw "Line 7: cd .\tooling\api" is wrong too, isn't it? (.\ -> current dir -> .scripts)

@FabianLars these lines are effectively the same thing:
E:\tauri\.scripts> .\setup.ps1
E:\tauri>.\.scripts\setup.ps1

The error is thrown by the script itself. I had to modify the script in order to run the example api app

No, these lines are not the same. The current working directory differs! For example put Get-Location in a test.ps1 in the .scripts folder and run both commands, to see it yourself 🤷 .
(Therefore adding .\ shouldn't make a difference, because .\tooling\api and tooling\api both start in the cwd and not at the script location)

@FabianLars yeah, you are right. it's working properly if you open it like this


Unable to add node to cluster after cluster-reset

Environmental Info:
K3s Version:
k3s version v1.24.5-rc1+k3s1 (fb823c8a)
go version go1.18.6
Node(s) CPU architecture, OS, and Version:
Ubuntu 18.04
Linux firstnode 4.15.0-193-generic #204-Ubuntu SMP Fri Aug 26 19:20:21 UTC 2022 x86_64 x86_64 x86_64 GNU/Linux
Cluster Configuration:
For now, just 2 servers (which I realize isn't ideal with etcd but I think it might be unrelated)
Describe the bug:
Steps To Reproduce:

Bring up a new cluster
Add an additional node (everything seems fine)
Shut down nodes
Run --cluster-reset on second node
Bring cluster back up on second node (everything seems fine)
Use kubectl to delete the failed node (which sits in NotReady state)
Run k3s-uninstall.sh on first node to start clean
Run k3s server --server <second node>
It never seems to be able to bring the first node back into the cluster. I am trialing k3s and simulating a server failure and trying to rebuild the cluster. The node just sits in NotReady

The logs just keep saying over and over:
Sep 28 19:06:09 cert4 k3s[19809]: I0928 19:06:09.946192   19809 node_controller.go:406] Initializing node firstnode with cloud provider
Sep 28 19:06:09 cert4 k3s[19809]: E0928 19:06:09.946299   19809 node_controller.go:220] error syncing 'firstnode': failed to get provider ID for node firstnode at cloudprovider: failed to get instance ID from cloud provider: address annotations not yet set, requeuing
Sep 28 19:06:13 cert4 k3s[19809]: E0928 19:06:13.854772   19809 node_lifecycle_controller.go:149] error checking if node firstnode exists: address annotations not yet set

And eventually this error also starts to appear with the previous ones:
Sep 28 19:06:11 cert4 k3s[19809]: E0928 19:06:11.508514   19809 server.go:274] "Unable to authenticate the request due to an error" err="[invalid bearer token, service account token has been invalidated]"

A couple more that showed up:
Sep 28 19:20:24 cert4 k3s[19809]: time="2022-09-28T19:20:24Z" level=info msg="Couldn't find node internal ip annotation or label on node cert2.ash.lxdx"
Sep 28 19:20:24 cert4 k3s[19809]: time="2022-09-28T19:20:24Z" level=info msg="Couldn't find node hostname annotation or label on node cert2.ash.lxdx"

Expected behavior:
I should be able to add a node
Actual behavior:
Errors printed above

For the sake of completeness.... I create a config file on all the nodes: /etc/rancher/k3s/config.yaml
token: blahblahblah
cluster-cidr: <IP_ADDRESS>/19
service-cidr: <IP_ADDRESS>/19
cluster-dns: <IP_ADDRESS>

To install first node:
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.24.5-rc1+k3s1 sh -s - server --cluster-init --node-name firstnode
To install second node:
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.24.5-rc1+k3s1 sh -s - server --server https://firstnode:6443 --node-name secondnode
All good at this point.. Shutdown both nodes with k3s-kill-all.sh
On second node I do a cluster reset
sudo k3s server --cluster-reset --node-name secondnode
On first server I do a k3s-uninstall.sh
I wait for a minute until the cluster looks happy on the second node... Pods are restarted. Everything looks happy.
I remove the second node with kubectl delete node firstnode
Then I try to bootstrap the second node back into the cluster (making sure the config file is recreated) and then:
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v1.24.5-rc1+k3s1 sh -s - server --server https://secondnode:6443 --node-name firstnode

Output of kubectl get node firstnode
apiVersion: v1
kind: Node
metadata:
  annotations:
    node.alpha.kubernetes.io/ttl: "0"
    volumes.kubernetes.io/controller-managed-attach-detach: "true"
  creationTimestamp: "2022-09-28T19:05:35Z"
  finalizers:
  - wrangler.cattle.io/node
  - wrangler.cattle.io/managed-etcd-controller
  labels:
    beta.kubernetes.io/arch: amd64
    beta.kubernetes.io/os: linux
    kubernetes.io/arch: amd64
    kubernetes.io/hostname: cert2.ash.lxdx
    kubernetes.io/os: linux
  name: cert2.ash.lxdx
  resourceVersion: "3791"
  uid: c3da2936-3547-4e79-8815-42e0319fc66c
spec:
  podCIDR: <IP_ADDRESS>/24
  podCIDRs:
  - <IP_ADDRESS>/24
  taints:
  - effect: NoSchedule
    key: node.cloudprovider.kubernetes.io/uninitialized
    value: "true"
  - effect: NoSchedule
    key: node.kubernetes.io/unreachable
    timeAdded: "2022-09-28T19:06:18Z"
  - effect: NoExecute
    key: node.kubernetes.io/unreachable
    timeAdded: "2022-09-28T19:06:23Z"
status:                                                                                [33/466]
  addresses:
  - address: <IP_ADDRESS>
    type: InternalIP
  - address: cert2.ash.lxdx
    type: Hostname
  allocatable:
    cpu: "48"
    hugepages-1Gi: "0"
    hugepages-2Mi: "0"
    memory: 65845228Ki
    pods: "110"
  capacity:
    cpu: "48"
    hugepages-1Gi: "0"
    hugepages-2Mi: "0"
    memory: 65845228Ki
    pods: "110"
  conditions:
  - lastHeartbeatTime: "2022-09-28T19:05:35Z"
    lastTransitionTime: "2022-09-28T19:06:18Z"
    message: Kubelet stopped posting node status.
    reason: NodeStatusUnknown
    status: Unknown
    type: MemoryPressure
  - lastHeartbeatTime: "2022-09-28T19:05:35Z"
    lastTransitionTime: "2022-09-28T19:06:18Z"
    message: Kubelet stopped posting node status.
    reason: NodeStatusUnknown
    status: Unknown
    type: DiskPressure
  - lastHeartbeatTime: "2022-09-28T19:05:35Z"
    lastTransitionTime: "2022-09-28T19:06:18Z"
    message: Kubelet stopped posting node status.
    reason: NodeStatusUnknown
    status: Unknown
    type: PIDPressure
  - lastHeartbeatTime: "2022-09-28T19:05:35Z"
    lastTransitionTime: "2022-09-28T19:06:18Z"
    message: Kubelet stopped posting node status.
    reason: NodeStatusUnknown
    status: Unknown
    type: Ready
  daemonEndpoints:
    kubeletEndpoint:
      Port: 10250
  nodeInfo:
    architecture: amd64
    bootID: ba18a5a5-4e08-4ac9-958b-d8899f77b8be
    containerRuntimeVersion: containerd://1.6.8-k3s1
    kernelVersion: 4.15.0-193-generic
    kubeProxyVersion: v1.24.5-rc1+k3s1
    kubeletVersion: v1.24.5-rc1+k3s1
    machineID: b365db165d3f4faeb31a7a1d8c798d0c
    operatingSystem: linux
    osImage: Ubuntu 18.04.6 LTS
    systemUUID: 00000000-0000-0000-0000-0CC47A394574

Okay, I worked around the issue.... But wondering if it's still something that should be looked at...
Even though I deleted the node using kubectl, clearly there is still some history of the node in the cluster somewhere...
I was able to add the first node back into the cluster by manually setting a different --node-name.

When you delete the first node from the cluster, does it actually finish deleting - are both the node and the node password secret gone from the cluster? Do you see messages in the other node's logs about the node being removed from the etcd?

I am not totally sure how to tell if it fully finished deleting... But the node and the secret are indeed no longer there.

There must be some sort of delay for clearing things out when you delete the node but only sometimes. Okay, I just tried again and it worked pretty quickly and I was able to re-add the node with the same name. I guess I am waiting for this log message:
Sep 28 20:16:58 cert2 k3s[32647]: I0928 20:16:58.677168   32647 event.go:294] "Event occurred" object="cert4.ash.lxdx" fieldPath="" kind="Node" apiVersion="v1" type="Normal" reason="RemovingNode" message="Node cert4.ash.lxdx event: Removing Node cert4.ash.lxdx from Controller"

I think I'm good here, I will close for now unless you want me to do any more digging on it.

I tried from scratch again and I'm still having the same issue again. I don't know if it's timing thing.
Brought up a 2 node cluster, shut it down, did a --cluster-reset brought it up, removed the failed node. Uninstalled and re-installed k3s (also removed /etc/rancher/node/password which isn't deleted by k3s-uninstall.sh) and then tried to add the node back in again and it's stuck in NotReady.

Okay, this is interesting.. After doing the cluster reset on one of the nodes bringing it back up and then trying to add a node back (that had been completely uninstalled and then re-installed) the first node that had the reset done shows this in get nodes
NAME              STATUS     ROLES                       AGE   VERSION
primary-node-that-had-reset    Ready      control-plane,etcd,master   17m   v1.24.5-rc1+k3s1
node-I-tried-to-re-add with new node-name   NotReady   <none>                      7s    v1.24.5-rc1+k3s1

And then on the node I added back (totally uninstalled and re-installed) when I do get nodes:
root@cert4:/var/lib/rancher# kubectl get nodes
NAME              STATUS     ROLES                       AGE     VERSION
primary-node-that-had-reset    NotReady   control-plane,etcd,master   21m     v1.24.5-rc1+k3s1
old-node-name   NotReady   control-plane,etcd,master   19m     v1.24.5-rc1+k3s1
node-I-tried-to-re-add with new node-name   Ready      control-plane,etcd,master   3m28s   v1.24.5-rc1+k3s1

Is etcd getting confused? Shouldn't etcd have a single master after --cluster-reset It's like the new node I brought in gets started with an old copy of the etcd database and then just adds to it.. and they are out of sync somehow.

Tried with v1.22.15+k3s1 and v1.24.6+k3s1 and they both seem to do the same thing. It's like it performs the initial sync of the new node with an old copy of the etcd database and they never come back into sync.

This sounds very similar to https://github.com/etcd-io/etcd/issues/14009 - unfortunately I haven't been able to reproduce it without involving Kubernetes, so upstream has had a hard time addressing it.

Man, I can reproduce it nearly every time. I've done it no less than 30 times and it happens in 28 of them. I will try restoring a snap shot.
I saw there was a ticket to create a unit test for

Okay, I verified I can cluster-reset, start, snapshot, cluster-reset with snapshot and get my cluster going again.