Inconsistent regex and test file naming in plus/RequireJS documentation

It's a minor issue but it catches me every time I start a new project. The documentation example for RequireJS names test files with a  Spec.js suffix, but the regex to filter the loaded files is...
test\.js$

Clearly it never loads test files. PR incoming.

@Dignifiedquire I saw your message in the PR. What's a good fix for this? I'm not sure I'm on the right branch in #1475 since the docs on the website actually don't show.
/(spec | test)\.js$/

as the regex filter. It only shows
/test\.js$/

It looks like it's technically fixed if you're sure the regex is case insensitive, it's just the live version on the website isn't updated to the (spec | test) regex.

I had forgotten to sync the docs, they should be now the same as here in the repo. Could you check if it's now good please?

@Dignifiedquire looks good! Thanks a bunch!


Boots up a little slowly for a terminal

I love this app, but in general when I need a terminal it's to do some quick action.
This terminal takes quite a while to boot up, making it impractical for me to use.
Is there anything I could do to speed it up?

Not much can be done here, that's the cost of using Electron

Okay, that's what I thought.

Would it be possible to have Terminus as a tray icon as an option, so that it's loaded permanently (possibly when the user logs in)? This could result in noticeably faster startup times, at the cost of some RAM always being used whenever the user is logged in.

Yes - you can show and hide the terminal using the "Toggle terminal window" hotkey (Ctrl-Space by default) and it will minimize to tray when hidden.

That's a good idea, thanks!


The partition field in the system.cnch_parts table contains single quotes

The partition field in the system.cnch_parts table contains single quotes

The partition field of system.parts contains single quotation marks. The partition_id of system.parts is inconsistent with the partition_id of system.cnch_parts

The official demo can be reproduced.
system.cnch_parts  table  ，partition  field，error

''2023''

The partition field in the system.cnch_parts table contains single quotes

I checked the code, the partition filed did add a single quotes in the implementation in ByConity, so it is expected.

I want to know how to fix this problem. Can you give me some hints?


Variable names in Spanish

Makes it hard to read and customize code. What is even the point when the programming language is based on English?

This is something that is being worked on. The Reason is its was easier for 1 person to code it. Since Barbolani is Spanish. It was in Spanish.

What doesn "being worked on" mean? I'm now heavily editing my own version, leaving the spanish intact. It's not that hard to use translate to get the 20-odd variables memorized for me personally. Will be harder to merge changes though when it's updated. Fine by me either way, but it'll cost me a lot of time.


Lists should deal gracefully with line continuations

That is, lines that end with "\" meaning the line logically continues on the next line without considering the embedded newline. Especially with "-single" mode, the line-ending character of "\" should be stripped off before continuing, but maybe / probably in all cases.

It is an open question as to whether this option should be active for all (or most) modes or only in "-single" mode.

Haven't seen any arguments for doing anything else besides what was done in 76e05b8 so I'm going to close. Feel free to reopen or add another issue for anything more that comes up.


Pug includes autocomplete

Hey there, thx for your extenstion. I like it.
But i cant get it to work with pug/jade template language.
In pug writing file to include goes without "
like this: include helpers/mixins/filename.pug
i found this pretty option to get this working
path-autocomplete.triggerOutsideStrings
is there a way to enable option above only in ".pug" files so i don't sacrifice other files ?
Thank you

At the moment the path-autocomplete.triggerOutsideStrings is a global setting.
Does it cause a lot of issues in the other files ?

I have not tested yet about other issues, but it sounds reasonable for me to restrict that behaviour in certain file extensions.

@AntonGrekov in VSCode settings, you can use language-specific blocks... e.g.
"[pug]": {
    //settings defined here apply only to the pug filetype
}

and yeah, I know this is ancient, but putting it out there in case it helps someone


BulkDelete not working if the keys not exist

Hi there,
we try to migrate to 3 but we faced an issue with the bulkDelete function.
We want to call it with keys without checking if the items exist in the database or not. This behaviour was working in 2.x
Now we receive an error as soon as in the list of keys is a key not existing in the db.
I checked the call stack and i guess this could be the issue ( i guess the generated code):
var existingValue = existingValues[i];
var ctx = { onerror: null, onsuccess: null };
if (req.type === 'delete') {
deleting.fire.call(ctx, key, existingValue, dxTrans);
}
In our cace "existingValue" is undefined.
Reviewing the code i faced another issue. The bulkdelete method uses the type "delete" but there is a type "deleteRange" is this correct?
Thanks in advance.

Thanks! I will look into it. Regarding deleteRange can be used if you want to delete all keys in a certain range. Dexie will use it if you write a ranged delete query based on the primary key:
db.friends.where('id').between(100,150).delete();

But if you are listening to the "deleting" hook Dexie has to first query the existing values in order to call the hooks properly before doing the deletion. In that case there's no particular win to use the deleteRange method.
However, bulkDelete() should only fail if you pass invalid keys to it, such as undefined, null, false or objects. If you pass valid keys that just don't exist in the database, it must not fail - so I regard this issue as a bug that has to be fixed soon.

Thanks for you quick response. Fully understood when deleteRange is used.
I tried with hardcoded
bulkDelete([1,2,3]) => error
bulkDelete([]) => no error
At the end I see an error message that someone tries to call "id" on undefined. But this could be an issue beside dexie code?

Yes, I suppose this is a bug in Dexie that needs to be fixed. Probably only occurs when "deleting" hook is subscribed to.

I tried to reproduce this error in the latest version of Dexie but it seems to work as expected. What version of Dexie were you using?

Ok, I thought that Dexie errored in this case but did you mean that the deleting hook was called also when it was about to delete a key that was not existing?

I see! I reproduced it in a jsitor script. Seems that the behavior differs between version 2.x and 3.x, as you say.

The problem is not that easily solved. We do bulkDelete a bit more optimized in version 3 where we request the existing items using IDBStore.get() instead of IDBStoreOpenCursor. This means we cannot distinguish between a stored value of undefined and a non-existing value in the database. In most situations, undefined should mean that the value did not exist but it would be incorrect for Dexie to assume that. I'm thinking of if we should list this changed behavior as a difference between Dexie 2.x and 3.x instead and leave it as it is. It would of course be possible to fix, but to the cost of a little more complex code.
How does this affect your application or library? Could you add a check for undefined in your hook or do you ever store undefined as value?

Thanks for your response.  I guess this is something we can go with, we do not store undefined values directly. but the complexity to update our hooks should be low enough the handle this by our own.
We are using dexie for a complex offline sync service with many hooks to notify other services / component.
Does the "problem" only exists for the bulkDelete and the "deleting" hook? or do we need to check code for bulkGet and read hooks as well?

bulkGet is new in 3.x. Reading hook has the same behavior as it had in 2.x but that involves passing unrefined through it if a get or bulkGet results in undefined.

Great, we fixed it as suggested by updating our hooks.
I think it is a great idea to update documentation ... i see you already added the flag.
Thanks!!


Abapgit logo discussion

This is for discussions on abapgit logo changes. Maybe it is time to refresh it ... or maybe not...
Initiated here #3498.
Below are some sketches from my side.
Personally I think that current logo is OK. It is a bit large and asymmetric which puts some restrictions on usage in design. On the other hand it is well distinguished and clear in terms of its message.
Sources, including vector, are here https://github.com/sbcgua/abapgit-design as well PNG renders with transparent background and the original logo vector

these look good in the current size but in the height of the header area you won't be able to read the "abap".

i tried to align it with top and bottom of font but it looks strange

i haven't had enough of it yet, so i vote for keeping the design.  :-)

vector

close this issue? 🤷♂

Probably yes


Trivy Config ignored in latest version

We are currently running Trivy with the latest version:
name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@d710430a6722f083d3b36b8339ff66b32f22ee55 #0.19.0
with:
  image-ref: '$ref'
  scan-type: 'image'
  scan-ref: '.'
  severity: "HIGH,CRITICAL"
  scanners: "vuln,config"
  vuln-type: 'library'
  format: 'sarif'
  exit-code: '0'
  output: 'trivy-results.sarif'

Subsequent uploading works perfectly fine with:
name: Upload Trivy scan results to GitHub Security tab
uses: github/codeql-action/upload-sarif@v2
with:
  sarif_file: 'trivy-results.sarif'

And want to start using Trivy in more actions, thus looking at using Trivy with a config file. When we take this exact set, and place it in a .trivy.yml at the root of our repository:
severity: HIGH,CRITICAL
scanners: vuln,config
vuln-type: library
format: sarif
exit-code: 0
output: trivy-results.sarif
ignore-unfixed: false
list-all-pkgs: false

And modifying the action to use trivy-config:
name: Run Trivy vulnerability scanner
uses: aquasecurity/trivy-action@d710430a6722f083d3b36b8339ff66b32f22ee55 #0.19.0
with:
  image-ref: '$ref'
  scan-type: 'image'
  scan-ref: '.'
  trivy-config: '.trivy.yml'

fails as the action reports that:
INFO	Secret scanning is enabled

and that should not be the case, as with our previous version. The upload also fails the output does not exist: Path does not exist: trivy-results.sarif
Anything we can do here to resolve this issue? Happy to test and provide more data.

Dupe of https://github.com/aquasecurity/trivy-action/issues/308
Please see the comment here https://github.com/aquasecurity/trivy-action/issues/308#issuecomment-1999710938

Hey @simar7 - Thanks for looking into this, I don't think this is a dupe. Did some additional testing to show you why. In #308 you mentioned:

The action runs in a docker container and your repository is used as a working directory, so you must specify the path to a configuration file relative to your project, i.e. .trivy.yaml.
And we have tried both as Kieran tried in his version:

      - name: Cat trivy config with workspace
        run: cat ${{ github.workspace }}/.trivy.yaml
      - name: Cat trivy config w/o workspace
        run: cat .trivy.yaml

Both resulting in the same output:
Run cat .trivy.yaml
severity: HIGH,CRITICAL
...

Given that we know where .trivy.yaml is, we tried both injecting a relative path and absolute path:
      - name: Cat trivy config w/o workspace
        run: cat .trivy.yaml #succeeds
      - name: Run Trivy vulnerability scanner
        uses: aquasecurity/trivy-action@d710430a6722f083d3b36b8339ff66b32f22ee55 #0.19.0
        with:
          image-ref: '$ref'
          scan-type: 'image'
          scan-ref: '.'
          trivy-config: '${{ github.workspace }}/.trivy.yml'

and
      - name: Cat trivy config w/o workspace
        run: cat .trivy.yaml #succeeds
      - name: Run Trivy vulnerability scanner
        uses: aquasecurity/trivy-action@d710430a6722f083d3b36b8339ff66b32f22ee55 #0.19.0
        with:
          image-ref: '$ref'
          scan-type: 'image'
          scan-ref: '.'
          trivy-config: '.trivy.yml'

And wtih both cases, in our action, observe that the trivy.yml file is fully ignored:
Run aquasecurity/trivy-action@d710430a6722f083d3b36b8339ff66b32f22ee55
  with:
    image-ref: ***
    scan-type: image
    scan-ref: .
    trivy-config:/home/runner/work/our-org/our-repo/.trivy.yml
    severity: UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL # these should only contain high, critical

Repo structure is currently as follows:
.
├── .github
│   ├── CODEOWNERS
│   └── workflows
│       └── trivy-action.yml
└── .trivy.yaml

@Frituurpanda thanks for the explanation. @afdesk could you take a look? thank you!

@simar7 yes, sure. I'll take a look at this issue today

Hi @Frituurpanda
feel free to correct me if i miss something.
Now there is a problem with using Trivy config file:

If trivy-config is set, can't other options be set?
https://github.com/aquasecurity/trivy-action/issues/337#issuecomment-2060463944

it's a known issue and will be fixed soon.
But I can see another moment here:

Run aquasecurity/trivy-action@d710430a6722f083d3b36b8339ff66b32f22ee55
with:
image-ref: ***
scan-type: image
trivy-config:/home/runner/work/our-org/our-repo/.trivy.yaml
severity: UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL # these should only contain high, critical

CLI arguments in Trivy have higher priority then trivy-config params,
so in this case you can see all vulnerabilities with UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL severities.
You can test it locally:
$ cat .trivy.yaml
severity: HIGH,CRITICAL

$ trivy image -c .trivy.yaml alpine:3.14.1
2024-04-26T19:17:56.562+0600	INFO	Loaded .trivy.yaml
2024-04-26T19:17:56.580+0600	INFO	Vulnerability scanning is enabled
2024-04-26T19:17:56.580+0600	INFO	Secret scanning is enabled
...
alpine:3.14.1 (alpine 3.14.1)

Total: 37 (HIGH: 34, CRITICAL: 3)
...

$ trivy image -c .trivy.yaml --severity UNKNOWN,LOW,MEDIUM,HIGH,CRITICAL alpine:3.14.1
2024-04-26T19:18:37.006+0600	INFO	Loaded .trivy.yaml
2024-04-26T19:18:37.023+0600	INFO	Vulnerability scanning is enabled
2024-04-26T19:18:37.023+0600	INFO	Secret scanning is enabled

alpine:3.14.1 (alpine 3.14.1)

Total: 47 (UNKNOWN: 0, LOW: 0, MEDIUM: 10, HIGH: 34, CRITICAL: 3)
...

So I think you have a mix of these two moments, @Frituurpanda wdyt?

Hey @afdesk,
Thanks for investigating!
On our case we are actually using the github action: https://github.com/aquasecurity/trivy-action
Thus are not mixing and matching config parameters and non config parameters. The simplest form that fails is:
      - name: Run Trivy vulnerability scanner
        uses: aquasecurity/trivy-action@d710430a6722f083d3b36b8339ff66b32f22ee55 #0.19.0
        with:
          image-ref: '$ref'
          scan-type: 'image'
          trivy-config: '.trivy.yaml'

with the following in our .trivy.yaml:
severity:
  - HIGH
  - CRITICAL

I'll try to step down through the versions, try to isolate if that's the problem, otherwise it's probably our org that's inherently broken. I've seen the sample provided by @simar7 and can reproduce that this works, I simply can't reproduce that in my org.


Add license

Hi @ksugar ,
nice repository! Great that you are sharing it open source! I was just wondering under which conditions one could reuse the code and materials provided here. Would you mind adding a license file? If you're new to licensing and/or wonder which license to use, you can read more in this blob post: https://focalplane.biologists.com/2023/05/06/if-you-license-it-itll-be-harder-to-steal-it-why-we-should-license-our-work/
Thanks!
Best,
Robert

Hi @haesleinhuepf,
Thank you for your kind words and for highlighting this important aspect! I totally agree that having a clear license is crucial for open-source projects. I have now added a license file to the repository. https://github.com/ksugar/czi_sampling/commit/22f39f30d1efdcc9dedff5590d023260881aca37
By the way, the blog post you shared is great—really insightful and a good reminder of why licensing our work properly is so important.
Your feedback is greatly appreciated!
Best,
Ko


Fix errorhandler

Q
A

Is bugfix?
✔

New feature?
✔

Breaks BC?
no

Tests pass?
✔

Merged. Thanks!


LD-224 - Fixes mockData and timing out tests

https://artsyproduct.atlassian.net/browse/LD-224
Fixes error handling in MockRelayRenderer and properly passes error message
Mirrors MockRelayRenderer used in Reaction
Updates createMockNetworkLayer/index.ts to match the newer version in Reaction
Enables some tests for testing purposes

#trivial
#skip_new_tests

Fails

:no_entry_sign:

🃏 FAIL in FairBooth-tests.tsx

renders properly

Snapshot has changed

Full message

Error: expect(value).toMatchSnapshot()
Received value does not match stored snapshot "renders properly 1".

Snapshot

Received

"Two PalmsArt Basel in Miami Beach 2018Hello World26 works by 7 artistsFollowing galleryView all 26 worksArtistsCecily BrownBritish, b. 1969FollowJeff KoonsAmerican, b. 1955FollowElizabeth PeytonAmerican, b. 1965FollowStanley WhitneyAmerican, b. 1946FollowMel BochnerAmerican, b. 1940FollowView all 9 artists"

"Two PalmsArt Basel in Miami Beach 2018Hello World26 works by 7 artistsFollow galleryView all 26 worksArtistsCecily BrownBritish, b. 1969FollowJeff KoonsAmerican, b. 1955FollowElizabeth PeytonAmerican, b. 1965FollowStanley WhitneyAmerican, b. 1946FollowMel BochnerAmerican, b. 1940FollowView all 9 artists"
at toMatchSnapshot (/home/travis/build/artsy/emission/src/lib/Scenes/Fair/Screens/tests/FairBooth-tests.tsx:28:23)
at tryCatch (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:62:40)
at Generator.invoke [as _invoke] (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:288:22)
at Generator.prototype.(anonymous function) [as next] (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:114:21)
at tryCatch (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:62:40)
at invoke (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:152:20)
at /home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:162:13
at run (/home/travis/build/artsy/emission/node_modules/core-js/modules/es6.promise.js:75:22)
at /home/travis/build/artsy/emission/node_modules/core-js/modules/es6.promise.js:92:30
at flush (/home/travis/build/artsy/emission/node_modules/core-js/modules/_microtask.js:18:9)
at process._tickCallback (internal/process/next_tick.js:61:11)

:no_entry_sign:

🃏 FAIL in index-tests.tsx

renders properly

Full message

TypeError: Cannot read property 'replace' of undefined
    at ReactWrapper. (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:885:56)
    at ReactWrapper.single (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:1653:25)
    at ReactWrapper.html (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:881:21)
    at html (/home/travis/build/artsy/emission/src/lib/Scenes/Fair/Components/FairBoothPreview/__tests__/index-tests.tsx:30:17)
    at tryCatch (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:62:40)
    at Generator.invoke [as _invoke] (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:288:22)
    at Generator.prototype.(anonymous function) [as next] (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:114:21)
    at tryCatch (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:62:40)
    at invoke (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:152:20)
    at /home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:162:13
    at run (/home/travis/build/artsy/emission/node_modules/core-js/modules/es6.promise.js:75:22)
    at /home/travis/build/artsy/emission/node_modules/core-js/modules/es6.promise.js:92:30
    at flush (/home/travis/build/artsy/emission/node_modules/core-js/modules/_microtask.js:18:9)
    at process._tickCallback (internal/process/next_tick.js:61:11)

:no_entry_sign:

🃏 FAIL in index-tests.tsx

renders properly

Full message

TypeError: Cannot read property 'replace' of undefined
    at ReactWrapper. (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:885:56)
    at ReactWrapper.single (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:1653:25)
    at ReactWrapper.html (/home/travis/build/artsy/emission/node_modules/enzyme/build/ReactWrapper.js:881:21)
    at html (/home/travis/build/artsy/emission/src/lib/Scenes/Fair/Components/FairHeader/__tests__/index-tests.tsx:30:17)
    at tryCatch (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:62:40)
    at Generator.invoke [as _invoke] (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:288:22)
    at Generator.prototype.(anonymous function) [as next] (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:114:21)
    at tryCatch (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:62:40)
    at invoke (/home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:152:20)
    at /home/travis/build/artsy/emission/node_modules/@babel/runtime/node_modules/regenerator-runtime/runtime.js:162:13
    at run (/home/travis/build/artsy/emission/node_modules/core-js/modules/es6.promise.js:75:22)
    at /home/travis/build/artsy/emission/node_modules/core-js/modules/es6.promise.js:92:30
    at flush (/home/travis/build/artsy/emission/node_modules/core-js/modules/_microtask.js:18:9)
    at process._tickCallback (internal/process/next_tick.js:61:11)

  Generated by :no_entry_sign: dangerJS

Took a look and we're getting errors like this in our tests:

Query.mockData defined in resolvers, but not in schema

Happy to continue working on this together – we can also ask @ds300 or @alloy for assistance.

Just paired with @ds300 on this and we fixed the mockData issue.

@alloy Updated with your comments.

Merge on green


Pyflame always runs as if I had passed --threads

Using pyflame 1.3.1 with Python 2.7.12 on Ubuntu 16.04 pyflame always returns output as if I had passed the --threads option.  This makes it hard to get a useful profile of the running thread.  Here is some sample code that should illustrate the problem:
import threading, time

def main():
    busyThread = threading.Thread(target=busy)
    busyThread.start()
    while True:
        time.sleep(1000)

def busy():
    number = 0
    while True:
        number += 1

if __name__ == '__main__':
    main()

Here is some sample output
sudo pyflame -s 0 PID results in:
profilable.py::15;profilable.py:main:7 1
/usr/lib/python2.7/threading.py:__bootstrap:774;/usr/lib/python2.7/threading.py:__bootstrap_inner:801;/usr/lib/python2.7/threading.py:run:754;profilable.py:busy:11 1
Why would -s 0 without the --threads option return with two samples?
sudo pyflame -s 0 --threads PID results in:
profilable.py::15;profilable.py:main:7 1
/usr/lib/python2.7/threading.py:__bootstrap:774;/usr/lib/python2.7/threading.py:__bootstrap_inner:801;/usr/lib/python2.7/threading.py:run:754;profilable.py:busy:12 1
This is as expected but it is identical to running pyflame without --threads
sudo pyflame -s 30 PID results in:
profilable.py::15;profilable.py:main:7 24549
/usr/lib/python2.7/threading.py:__bootstrap:774;/usr/lib/python2.7/threading.py:__bootstrap_inner:801;/usr/lib/python2.7/threading.py:run:754;profilable.py:busy:12 24548
/usr/lib/python2.7/threading.py:__bootstrap:774;/usr/lib/python2.7/threading.py:__bootstrap_inner:801;/usr/lib/python2.7/threading.py:run:754;profilable.py:busy:11 1
The total number of samples * the default sampling period exceeds the time spent profiling.  Also it seems unlikely sampling the active thread would end up in the sleeping thread so often
sudo pyflame -s 30 --threads PID results in:
profilable.py::15;profilable.py:main:7 25126
/usr/lib/python2.7/threading.py:__bootstrap:774;/usr/lib/python2.7/threading.py:__bootstrap_inner:801;/usr/lib/python2.7/threading.py:run:754;profilable.py:busy:11 12537
/usr/lib/python2.7/threading.py:__bootstrap:774;/usr/lib/python2.7/threading.py:__bootstrap_inner:801;/usr/lib/python2.7/threading.py:run:754;profilable.py:busy:12 12589
This is nearly identical to running pyflame without the --threads option

I see what's happened here. The thread walking logic in frob.cc doesn't respect the enable_threads_ setting - so as long as something holds the GIL, it'll still walk all threads. I'll take a look at this when I get chance.

Rerunning my tests with your changes seems to provide much more sensible results.  Thanks!


Lua files have a line in front for no reason with treesitter enabled

it doesn't happen with any other languages

alright i figured it out, you need to have lua installed in treesitter, but what if there was a way to not use treesitter if its not installed for the current buffer?

The plugin does fall back to the normal indent mode when treesitter can't do indent for the current filetype


support "dist" feature for indic fonts in KernFeatureWriter

Some Noto fonts for Indic scripts don't have explicit MTI sources for the opentype features, but have instead self-contained *.glyphs sources with FEA code, and these rely on a Glyphs.app's feature that splits the kerning data at export time between a regular "kern" feature, and a "dist" feature only for kern pairs between Indic glyphs.
https://github.com/googlei18n/glyphsLib/issues/223

Kerning on most Indic scripts is put into the dist feature on export... When exporting OTF/TTF from Glyphs the kerning is split so that LGC kerning is put in the kern feature and Indic kerning is put in the dist feature.
All kerning between glyphs that belong to Indic scripts is put into dist

Indic scripts expect "dist" because the latter is usually on by default, whereas kern isn't so.
I think ufo2ft's KernFeatureWriter should do this by default as well: i.e. emit not just "kern", but also "dist" for Indic glyphs, if any.
The argument that this would be a Glyphs.app-only feature may be true, but:

this could be useful for any project, not just those that use Glyphs.app;
the kern feature generation from kerning.plist is already happening inside ufo2ft, so it would be strange that dist feature was generated in glyphsLib while kern in ufo2ft.

Whether we extend the existing kern feature writer or add an additional dist feature writer subclass is not so important, as long as we agree this is needed here.
Georg said he has heuristic to determine what's Indic or not, probably by splitting ligatures at "_" and dropping "." suffixes. We could do a similar thing (I think we already do to determine whether kern pair is left-to-right or right-to-left).
Also, in *.glyphs source one can assign custom script property to a glyph (the default is given by the GlyphData.xml database used).
In UFO, there's isn't such thing. So I was thinking of defining a private UFO glyph lib entry that specifies a custom script (as well one for category, which could be useful for other things) for glyphs that either don't have a unicode assigned, or they do have one but the user may want (for whatever reason) to override the default script value for them.
Comments?

it would be nice to have this PR cleaned-up/merged before extending the feature writers  https://github.com/googlei18n/ufo2ft/pull/156
I could have a go myself, if @moyogo can't this week.
This one has become kind of priority as it affects several Indic Noto fonts, so I would like get this working ASAP, provided we agree this is the way to go.

Are there actually any applications that support Indic scripts but turn off kern feature by default?

@punchcutter

Are there actually any applications that support Indic scripts but turn off kern feature by default?

I haven't tried, but I guess it's the usual suspects.. MS Word and the like.

I haven't tried, but I guess it's the usual suspects.. MS Word and the like.

Yes. kern feature is not part of OT Indic specs.

Do we want to extend the functionality of the existing KernFeatureWriter so that whenever it finds any "indic" glyphs in the font it splits the kerning.plist data into two sets, one to build the "dist" feature and the rest to build the normal "kern" feature?
Or do we want to devise some way for clients (fontmake) to override the default choice of KernFeatureWriter and have ufo2ft use a DistFeatureWriter implementation that does both kern and dist?

For the question above, I prefer option 1) a single default KernFeatureWriter that does both "kern" and "dist" by default.
Another big problem is how do we define the "Indic-ness" of a glyph in a kerning pair?
There are actually two related problems here:

One is, what are the script that we should consider "Indic" for the purpose of creating a "dist" feature instead of "kern"?

I looked at the "Script-specific development" section on the Microsoft website, and collected all the script tags where "dist" is mentioned among the recommended features:
https://www.microsoft.com/en-us/Typography/SpecificationsOverview.aspx
Please tell me if this is correct or if you would like to add or remove from it:
OT_INDIC_SCRIPT_TAGS = {
    "bng2": "Bengali",
    "beng": "Bengali",
    "bugi": "Buginese",
    "dev2": "Devanagari",
    "deva": "Devanagari",
    "gjr2": "Gujarati",
    "gujr": "Gujarati",
    "gur2": "Gurmukhi",
    "guru": "Gurmukhi",
    "java": "Javanese",
    "knd2": "Kannada",
    "knda": "Kannada",
    "khmr": "Khmer",
    "mlm2": "Malayalam",
    "mlym": "Malayalam",
    "ory2": "Oriya",
    "orya": "Oriya",
    "sinh": "Sinhala",
    "tml2": "Tamil",
    "taml": "Tamil",
    "tel2": "Telugu",
    "telu": "Telugu",
    "mym2": "Myanmar",
    "mymr": "Myanmar",
}

the second problem is how do we assign a glyph which does not have a unicode codepoint defined (an alternate form or a ligature, etc.) to one of these scripts? In Glyphs.app, there's a default GlyphData.xml database that assigns script and category properties directly to glyph names independently of their unicode codepoint; and each glyph objects in Glyphs.app can override the global data with optional glyph-level properties, so users can embed their own custom database in the .glyphs file.
I am thinking of a defining a private GLIF lib key (e.g. "com.github.googlei18n.ufo2ft.script") that can be used to assign a script property to un-encoded glyphs. Then glyphsLib could write that automatically when exporting *.glyphs to UFOs.
The alternative is to rely on a consistent AGL-compliant glyph naming scheme, which is what we currently do for detecting right-to-left-ness of a glyph in order to define LTR and RTL kern lookups. That is, we try splitting the glyph name at "." and "_" until we find a part of the glyph name that corresponds to a glyph with a unicode codepoint. I believe this may work for say Arabic, but not so well for Indic fonts where the glyph naming conventions are different (given the big number of in ligature glyphs).

Any comments or suggestions would be appreciated
/cc @punchcutter @behdad @moyogo

Eventually there will also be the Indic-3 tags so I supposed you could add those, but not a big deal at the moment.
I don't know about Buginese, Javanese or Myanmar. At least for Noto we aren't using dist. Khmer also doesn't necessarily need it. I've used it just for adjustments, but the main kerning is still in kern. @ohbendy What do you think? Do you expect dist for Myanmar or Khmer or anything else?
@schriftgestalt Which scripts does Glyphs apply dist to?
/cc @kalapi

I'm no expert in the engineering side, but dist is very helpful in the Southeast Asian scripts. I consider kerning as more to do with evening out the gaps, for improving the appearance of a glyph sequence, while dist is more about composing clusters so that components are positioned correctly which would otherwise not be correct or readable.
We've used dist extensively in our latest Burmese fonts. I can also imagine it also being used in Thai or Lao to shift clusters starting with โใไ/ໂໃໄ that follow clusters with abovemarks. I gather in scripts like Telugu, where marks need to be anchored to a base, but also need to have an advance width for their post-base part, the dist feature is used.
I think it's useful to consider and implement these kinds of adjustments in a different way than normal base-to-base kerning.

Thanks Zachary and Ben.

Eventually there will also be the Indic-3 tags

we can add these later once they are fully spec'ed.

I don't know about Buginese, Javanese or Myanmar. At least for Noto we aren't using dist. Khmer also doesn't necessarily need it. I've used it just for adjustments, but the main kerning is still in kern

For the scripts you mentioned, I believe that the corresponding Noto fonts all use MTI feature files instead Adobe's FEA, so they shouldn't be affected by this.

kerning as more to do with evening out the gaps, for improving the appearance of a glyph sequence, while dist is more about composing clusters

I see. So does that mean one would like to be able to decide which part of the kerning pairs should be written out as "kern" feature, and which other part should compose the "dist" feature, instead of everything in either one or the other depending on the script tags?

I can also imagine it also being used in Thai or Lao to shift clusters starting with...

I could also add Thai and Lao to the list. Myanmar and Telugu are already present.

About the problem of how to split the data contained in groups.plist and kerning.plist into kern- vs dist-related.
Maybe instead of (or in addition to) looking up the script associated with the glyphs' codepoints -- and as an alternative to defining a private lib key containing the script property of each glyph --, we could devise a way to split the kern-kerning from the dist-kerning based on the presence of some special keyword in the kerning classes' names defined in groups.plist. E.g. if the kerning group contains the word "DIST" or "dist", then we treat all the glyphs contained in there accordingly, and thus build a "dist" feature instead of a "kern" feature with the kerning pairs that involve that group.
Or, yet another way could be to check for the presence of the script name (or 4-letter iso 15924 code or opentype script tag) in the kerning groups' names, and use that as a way to split up the kern vs dist "kerning".
Of course any approach that rely on kerning classes' naming conventions can't fully account for the glyph-to-glyph kerning pairs (unless these are "exceptions" to class-based kerning). For these we would have to guess from the glyphs' codepoints or glyph names (or again, the lib key with script property).

(Can’t but wonder if it is time to have a more rich kerning model in UFO that does not lump everything in one big table and is not limited by what some ancient versions of FontLab were capable of doing).

@khaledhosny Any specific proposal you have in mind?

From a usage point of view, I tend to think of kern as improving the spacing between base glyphs, while dist is primarily used to avoid collisions between or with above- or below-base marks, which in Brahmic scripts are often wider than the bases they sit above or below of. Other people may use them differently. The rules in dist features are very often contextual and only look at selected marks (e.g., only above-base or only below-base) – I don’t know whether those can be generated automatically.

OT_INDIC_SCRIPT_TAGS = {

The list of script tags is missing all the ones listed in the Universal Shaping Engine specification:
https://www.microsoft.com/typography/OpenTypeDev/USE/intro.htm
Indic-3 tags are already implemented in Apple’s CoreText – bng3, dev3, gjr3, gur3, knd3, mlm3, ory3, tml3, tel3 are routed to the Universal Shaping Engine.
The list is correct in omitting Lao and Thai (and pre-Windows 10 Tibetan) because their specification doesn’t have dist.

I'm even more confused now.
What Norbert said about kern being about improving spacing between base glyphs vs dist about avoiding collision between or with marks, and often contextual, does not fit with the way (as I understood it) Glyphs.app auto-generates the dist feature for Indic scripts.
Glyphs.app automatically creates (or appends) a "dist" feature whenever there are kerning pairs between glyphs that are classified as "Indic" (according to a list of scripts which I still haven't completely figured out). Whereas any other kerned glyphs are included in the normal "kern" feature. As simple as that.
Note tat these are regular PairPos lookups. The contextual lookups that Norbert is talking about, have to written manually by the user, and thus are outside of the scope of what I'm proposing here.
(The main reason I'd like to extend the kern feature writer in ufo2ft is to be able to match Glyphs.app behaviour, as some Indic Noto fonts have been engineered using FEA (instead of MTI features) inside Glyphs.app, and they rely on these Glyphs.app-specific automatic features)
I don't have much expertise in making fonts for Indic scripts, that's why I'm asking for help. If Glyphs.app users and Indic fonts experts are happy with the way it auto-generates the dist feature for them, then this would be an argument for matching this behavior in our fontmake pipeline.
But if this is not the correct way, or if there are alternative ways that are more or equally valid, then maybe this should not be included as the default behavior.

The list of script tags is missing all the ones listed in the Universal Shaping Engine spec

Does that mean I should consider all the scripts listed at the end of that page for this auto-generation of a dist feature (as defined above, as alternative to the regular kern feature)? (I see stuff like N'ko in there.. Is that considered an "Indic" script?)

Also, I don't understand what @behdad means by

kern feature is not part of OT Indic specs.

If I look at, for example, https://www.microsoft.com/typography/OpenTypeDev/kannada/intro.htm, I see that "kern" is listed among the positioning features alongside "dist", "abvm" and "blwm".
Both "kern" and "dist" are characterized in those documents as intended to "adjust distances", the only difference is that "dist"

does not rely on the application to enable kerning. Therefore, if you want to make sure certain spacing adjustments will always be displayed, you should use the 'dist' feature

What Norbert said about kern being about improving spacing between base glyphs vs dist about avoiding collision between or with marks, and often contextual, does not fit with the way (as I understood it) Glyphs.app auto-generates the dist feature for Indic scripts.

As you say, base-to-base spacing adjustments can be handled easily by just kerning, which can be done graphically in Glyphs now. As Norbert says, marks often need to trigger spacing adjustments, and these are likely to be contextual because different bases and marks are usually different shapes/widths. Currently Glyphs does not offer a way to preview other spacing adjustments, or write a dist feature for those, but things are often being updated so I wouldn't necessarily think it's a meaningful criterion (I mean, yes, we write them manually now, but that seems like something likely to be improved).
I'm not sure of the reason why Glyphs would put all kerning (including base-to-base pairs) in dist for all Indic scripts, it's not the way I would do things, especially considering your observation that Kannada does include kern. I would not be happy for all kerning in a Burmese font to be moved into the dist feature behind the scenes.

The list is correct in omitting Lao and Thai (and pre-Windows 10 Tibetan) because their specification doesn’t have dist.

The specifications are not always very comprehensive...does it mean that dist will not be activated in those scripts even if a font has the feature? If so I think I'd like to suggest to the specification-writer (who is it?) that it should be possible (though not essential) to use dist in Thai and Lao.

I think there are two issues here:

Generating the same GPOS code that Glyphs GUI does
Having more control over how things like kern and dist (also abvm and blwm) are handled in UFO independent of Glyphs

The reason I started this whole issue was to get the same output that we get for some Indic scripts (like Kannada, Gurmukhi, Gujarati) when exporting from Glyphs. The use of kern vs dist in many situations can be personal preference. For a simple PairPos lookup it hardly matters which feature it's under. When looking at the 1st point the theory of what kern or dist are intended for or how somebody might use them is irrelevant. We want to match Glyphs (whether Glyphs is doing it correctly or not is another topic, but there's a lot of feedback directly to Georg and on the forums so I think it's looking pretty good in general). The reason for this issue and the reason Glyphs creates a dist feature is because for Indic scripts dist is expected to be on by default in apps like MS Word. kern, on the other hand, needs to be activated. For the general user who doesn't know these things they expect to open up an application and see text rendered correctly. It's pretty well known that dist is on by default and therefore desirable to use for adjustments required for correct shaping. I can give plenty of examples where dist is used in various scripts.
Related to the 2nd point above, one thing I do have a huge problem with is the automatic generation that Glyphs does. Intent cannot be automated. There should be more control over how the user decides to use these features. This is the main reason I have never used Glyphs generated OpenType tables. I write my own because I don't like how Glyphs autogenerates everything. If I want kern for this and dist for that then I decide. The same goes for more complex tables like chained contextual lookups for dist. For some users the default is fine, though.

What Norbert said about kern being about improving spacing between base glyphs vs dist about avoiding collision between or with marks, and often contextual, does not fit with the way (as I understood it) Glyphs.app auto-generates the dist feature for Indic scripts.

Norbert is absolutely right about the general use of dist. Using it instead of kern for Indic scripts is kind of an exception to that rule because dist is on by default and is necessary for correct shaping.

Does that mean I should consider all the scripts listed at the end of that page for this auto-generation of a dist feature (as defined above, as alternative to the regular kern feature)? (I see stuff like N'ko in there.. Is that considered an "Indic" script?)

I don't think USE shaped scripts are necessarily relevant here except for the Indic 3 script tags, but if Glyphs is also generating dist for the others then I think we should do the same here. Again, my main goal here is matching Glyphs. If a designer works in Glyphs and generates with Glyphs and tests and then delivers and the pipeline outputs a totally different font then I'd say that's an issue with the pipeline. However, I 100% agree with the idea of not tying this so tightly to Glyphs because using Glyphs is not at all a requirement for using fontmake or ufo2ft.

@khaledhosny Any specific proposal you have in mind?

@adrientetar, off the top of my head: ability to control feature tags, how kerning is split into lookups, their order, language systems, and so on. Right now you either you have nearly no control over how the kern feature will be written, or abandon UFO kerning completely and write feature code manually (and keep it up to date as glyphs are added, removed, or renamed).

If I look at, for example, https://www.microsoft.com/typography/OpenTypeDev/kannada/intro.htm, I see that "kern" is listed among the positioning features alongside "dist", "abvm" and "blwm".

You are right.  Maybe they were added later.  I remember they not being there . What was the original bug report? Did anyone observe something not working, or just our output being different from Glyphs?

@anthrotype

If I look at, for example, https://www.microsoft.com/typography/OpenTypeDev/kannada/intro.htm, I see that "kern" is listed among the positioning features alongside "dist", "abvm" and "blow".

Let's just say that the Microsoft specifications aren't really very accurate ;)

I think this issue is now fixed by #255.
In the end, I went for the simple approach. Instead of splitting kern and dist into separate lookups, I simply make a single kern lookup containing all the pairs (or two, if there're both LTR and RTL characters), and if there are any Indic scripts defined in the features.fea languagesystem statements, I then make a dist feature containing the same kern lookup and register it only for those Indic scripts.
Having the same lookup being shared by both dist and kern features (they can both be present if there are other non-dist-related scripts) is better than not having any dist feature at all.
The logic in the kern feature writer is already becoming quite complex (given that it needs to handle LTR vs RTL) and I wouldn't like to complicated it further.
If we need to, we can improve on this later.


PR: Update funding message, harmonize with main Spyder readme and minor fixes

@ccordoba12 Per the discussion in spyder-ide/spyder#7262 , this PR updates the readme with an up to date funding status message, and also harmonizes it with the layout and format of the main readme and fixes a few obvious bugs/typos in the text. You can preview the full changes live over on my repo.
Once the changes are agreed upon and approved, I'll go ahead and push the same modifications to the other Spyder plugins (other than spyder-unittest).

No idea what's up with the build failure, but its obviously not related to this PR.

Just FYI, if/when development resumes, the test suite is extremely flaky. On each of the three automatic re-runs of the test suite during same build, three different tests randomly failed: test_terminal_resize, test_close_terminal_manually, and test_terminal_font.


system-tests grpc-js fail

This library does not use gax so should not have system tests grpc-js at all, but if we add that task here to make the setup similar, its configuration must be fixed. Right now the task is failing immediately with
[16:37:46] [ID: 5735578] Build finished after 1 secs, exit value: 0
[16:37:46]
[16:37:46]
[16:37:46] Command done in 10 seconds
[16:37:49][ERROR] Failed to get build config
com.google.devtools.kokoro.config.ConfigException: Couldn't find build configuration under /tmp/workspace/workspace/cloud-devrel/client-libraries/nodejs/continuous/googleapis/cloud-profiler-nodejs/node8/system-test-grpcjs/src/github/cloud-profiler-nodejs/.kokoro/continuous/node8.

@kinwa91 can you please take a look and fix? Thanks!

@kinwa91 bumping the pri on this one - too many failing tests floating about :0


Diskspace filled by erasure coding shards

Describe the bug
We were using SeaweedFS 3.56 with kubernetes cluster, just for few small PVC, just testing. So small installation on Linux server, no replication, etc. SeaweedFS start to fill filesystem, used about 200GB, but data on PVC have few GB together also buckets are small. But there is lot of (hundreds) erasure coding files (named ecXXX).
This somehow resulted to full volumes, there was repeating error in log:
I1005 10:22:56.831056 filer_notify.go:104 metadata log write failed /topics/.system/log/2023-10-04/18-52.58a3ec1c: AssignVolume: rpc error: code = Unknown desc = no free volumes left for {"replication":{},"ttl":{"Count":0,"Unit":0}}
I disabled EC in master.toml, updated SeaweedFS to latest (3.57), increased volume size to 1024MB (initially was 256MB). That fixed that error and volume are accessible again. I believe some volume limit was reached (although I had volume.max=0 all the time in options.cfg)
Still there is lot of that ecXXX files. Can I just remove them? Or is there some safe way how to clean them? If I understand it right they are reported as volume and that is then problem?
System Setup

List the command line to start "weed master", "weed volume", "weed filer", "weed s3", "weed mount".
/usr/local/sbin/weed server -options /etc/seaweedfs/options.cfg
OS version: Ubuntu 22.04.1 LTS
output of weed version

version 30GB 3.57 0f8168c0c928bba3d2f48b0680d3bdce9c617559 linux amd64

if using filer, show the content of filer.toml

root@ittoeblvs301:/etc/seaweedfs# cat options.cfg
dir=/disk2/seaweedfsshare
ip=<IP_ADDRESS>
ip.bind=<IP_ADDRESS>
master.volumePreallocate=false
master.volumeSizeLimitMB=1024
s3
s3.allowEmptyFolder=false
s3.domainName=ittoeblvs301.domain.xyz
s3.config=/etc/seaweedfs/s3_config.json
s3.port=8333
volume.max=0
volume.port=8081

root@ittoeblvs301:/etc/seaweedfs# cat master.toml
# Put this file to one of the location, with descending priority
#    ./master.toml
#    $HOME/.seaweedfs/master.toml
#    /etc/seaweedfs/master.toml
# this file is read by master

[master.maintenance]
# periodically run these scripts are the same as running them from 'weed shell'
scripts = """
  lock
  volume.deleteEmpty -quietFor=24h -force
  volume.balance -force
  volume.fix.replication
  unlock
"""
sleep_minutes = 17          # sleep minutes between each script execution

[master.sequencer]
type = "raft"     # Choose [raft|snowflake] type for storing the file id sequence
# when sequencer.type = snowflake, the snowflake id must be different from other masters
sequencer_snowflake_id = 0     # any number between 1~1023

# configurations for tiered cloud storage
# old volumes are transparently moved to cloud for cost efficiency
[storage.backend]
[storage.backend.s3.default]
enabled = false
aws_access_key_id = ""         # if empty, loads from the shared credentials file (~/.aws/credentials).
aws_secret_access_key = ""     # if empty, loads from the shared credentials file (~/.aws/credentials).
region = "us-east-2"
bucket = "your_bucket_name"    # an existing bucket
endpoint = ""
storage_class = "STANDARD_IA"

# create this number of logical volumes if no more writable volumes
# count_x means how many copies of data.
# e.g.:
#   000 has only one copy, copy_1
#   010 and 001 has two copies, copy_2
#   011 has only 3 copies, copy_3
[master.volume_growth]
copy_1 = 1                # create 1 x 7 = 7 actual volumes
copy_2 = 1                # create 2 x 6 = 12 actual volumes
copy_3 = 1                # create 3 x 3 = 9 actual volumes
copy_other = 1            # create n x 1 = n actual volumes

# configuration flags for replication
[master.replication]
# any replication counts should be considered minimums. If you specify 010 and
# have 3 different racks, that's still considered writable. Writes will still
# try to replicate to all available volumes. You should only use this option
# if you are doing your own replication or periodic sync of volumes.
treat_replication_as_minimums = false
root@ittoeblvs301:/etc/seaweedfs#

no filer config
Expected behavior
Filesystem should not be filled by ecXXX files.
Screenshots

Additional context
Add any other context about the problem here.

Each EC shard is 1/10 of the volume size. With the volume size limit change, the math has some issue calculating the required number of volumes.
You can run ec.decode in weed shell to convert EC shards into normal volumes.

Hello @chrislusf ,
many thanks this helped; I decoded volumes and then I was able to remove all now unused volumes, so utilization is in real numbers again. Bit wondering why this happened? I have now disabled EC related commands in master.toml, but still, when running ec.decode message saying that EC is not recommended on 1 node. Can this be maybe included in SeaweedFS , that on storage with less than 4 nodes, this feature will be disabled? Just to prevent somebody will run into same issues like me.
Thanks again
I1005 19:52:07.319250 command_ec_decode.go:69 skip erasure coding with 1 nodes, less than recommended 4 nodes

Thanks! Added https://github.com/seaweedfs/seaweedfs/commit/0fd7222d65d58f81d08712702b4d5604a85ca92a to address your concern.


Site options do not load in Grafana

Hi Everyone!
I installed Unpoller, InfluxDB and Grafana on a test computer yesterday and all seemed to work just fine!
However today I am installing it again on my VMs: one VM for UnPoller and InfluxDB and another for Grafana. But now it does not seem to work properly. In the dashboards I only see partial data, most items show N/A/

What we can notice is that the "Site" selector is completely empty. I think this is related to the issue because
(1) in the first test I did it does clearly show "All" and "Default (default)" as options (see image below)
(2) if I manually change the query of one of the graphs (eg. system uptime) to use "Default (default)" as site_name then it works.

Could there be a bug somewhere or could I have done something wrong?
Specifications:
Installed on Linux (no Docker)
Grafana and Unpoller+InfluxDB are on separate VMs
Unpoller Config uses sites = ["all"] in both cases
Database, username and password differ in both cases but are correctly reflected in their config files
Other dashboards
Sites: shows everything
USW: shows "USW Details", but nothing beginning from "Switch Tmperature"
UAP: shows only the first graphs, but nothing beginning from "UAP Details"

Update:
Apparently on the VM I had Grafana version 10.2.2 installed. On my test computer this was 10.0.0.
So there seems to be an issue with the latest version in combination with the dashboards.

Note: I got the 10.2.2 version using the instructions on the Unpoller website. The Grafana documentation website seems to first show the 10.0.0 version.


Count ref delta sizes

Counts unpacked restored size for ref deltas

@lahmatiy base fixture doesn't have any ref deltas, and none of the smaller repos I have contain them as well. Should I bring in a bigger repo as a fixture?


[5.1][ConstraintSystem] Detect and diagnose missing generic arguments

Introduce a fix to detect and diagnose situations when omitted
generic arguments couldn't be deduced by the solver based on
the enclosing context.
Example:
struct S<T> {
}

_ = S() // There is not enough context to deduce `T`

Cherry-pick of https://github.com/apple/swift/pull/25149 which has been reviewed by @slavapestov
Resolves: rdar://problem/51203824
Resolves: rdar://problem/50512161

@swift-ci please test


Deployment on Amazon EC2/S3

Hello all,
Unsure where to ask. Want to deploy this with Opensips on an Amazon EC2 server, however, can't seem to find any instructions. Was thinking of saving the audio files on an S3 bucket and drachtio to pull from S3 - does that work? Also - is there a Web UI that we can use to retrieve the files?
Thanks.

It sounds like you want opensips to save recordings to S3, and drachtio to pull them from there?  This application will not help you, and in fact I am not familiar enough with opensips to know whether it can do that.
What you can do with opensips is this:

opensips is the siprec client
this application (running with drachtio) is the siprec server
this application could be modified to make recordings and upload them to S3
all of the above can be run on EC2 instances

Hi again.
Thanks for taking the time to respond. To clarify, as things stand, the following is what I can do as things stand:

Have one instance of EC2 running Opensips, and another instance to run Drachtio+this app (siprec server).
Save the recordings on EC2 instance (presumably the one running this app).

How do I access the recordings? Is there a UI pls?
Apologies if I have misunderstood something.
Thanks

Yes, that is correct.  I imagine you could run both servers on one EC2 instance as well, though for a scalable solution you might not want to.
There are two options in this project

you can use rtpengine, in which case the recordings are made to pcap files in a directory of your choosing.
you can use freeswitch, in which case the recordings are made to wav files in a directory of your choosing.

Of course, it is a node.js app so you could also modify the app to upload recordings to S3 if you wanted

Hi again Dave,
Thanks a lot for taking the time to explain. Forgot to mention, we are using rtpproxy, I believe we can save in a directory of our choice. Does the app have some kind of web-based UI that we can use to access the recordings?

ok, sorry this application is designed to work with rtpengine or freeswitch.  You are welcome to try to modify to work with rtpproxy, but at that point you are on your own.

Thanks a lot once again.


Make leftwm-core backend-agnostic

Some changes that could be made for make leftwm-core backend-agnostic, which means removing it's dependency on x11 and x11rb crates. This is intended to be integrated to https://github.com/leftwm/leftwm/pull/1221.
I'm keeping these changes in a separate branch because i'm not 100% sure of what i'm doing with this...

This might bring slightly faster compile times, but further investigation is needed to validate this affirmation.


table: Update TableWrapper to use a custom scrollbar implementation

To make wide tables easy to use for all users, this PR adds a custom scrollbar implementation for TableWrapper. One of the key aspects is that the scrollbar sticks to the bottom of the screen when the bottom of the table is off-screen; this allows Windows mouse users especially to scroll the table while they are looking at specific rows.
View preview
Checklist
Preflight

[x] Prefix the PR title with the slug of the package or component - e.g. accordion: Updated padding or docs: Updated header links
[x] Describe the changes clearly in the PR description
[x] Read and check your code before tagging someone for review
[x] Create a changeset file by running yarn changeset. Learn more about change management.

Testing

[x] Manually test component in various modern browsers at various sizes (use Browserstack)
[x] Manually test component in various devices (phone, tablet, desktop)
[x] Manually test component using a keyboard
[x] Manually test component using a screen reader
[x] Manually tested in dark mode
[x] Component meets Web Content Accessibility Guidelines (WCAG) 2.1 standards
[ ] Add any necessary unit tests (HTML validation, snapshots etc)
[x] Run yarn test to ensure tests are passing. If required, run yarn test -u to update any generated snapshots.

Documentation

[x] Create or update documentation on the website
[ ] Create or update stories for Storybook
[ ] Create or update stories for Playroom snippets

@ChrisLaneAU There are no tests… yet

Great component, really nicely put together! I had some thoughts on testing if you wanted to make a ticket for this?

Thank you. A ticket for tests would be great. Or I wonder if you could cover some with the fixed columns ticket?
Not sure I want to merge this yet. Perhaps after the release? Really want fixed columns in as well so that and this is our holistic solution to wide tables


Bump alpine to v3.5 for x86* and v3.4 for armhf

Fix #48
I rebuilt multiarch/scaleway images, but the build of armhf-v3.5 always results in a Segfault when running apk-static (tested withing qEMU and on an C1 server)
So for now we have v3.5 available for x86 and x86_64; and v3.4 for armhf
cc @QuentinPerez

Should be good now


[transforms] Add geometric transformations (train detection models with rotated samples)

We need to train our detection models with rotated samples, because for now we support rotation but our models are not fitted to predict rotated boxes, which yields to very poor results.

Hello,
I don't know if you're open to outsider contribution, but I think there might be a bug in your function (I don't know enough about the flow of the program to tell), line 46 doctr/transforms/functional/pytorch.py.
It's related to this problem: https://www.pyimagesearch.com/2017/01/02/rotate-images-correctly-with-opencv-and-python/
I had the same problem when training my OCR on rotated images, some part of the text went out of bound.
If it is in fact a problem, you could replace rotate from torchvision to imutils.rotate_bound, it's not ideal (extra import, tensor to array) so I think the best way to do it is to calculate the needed padding, pad the image then rotate with torchvision.

Hi @Ismail-Maj :wave:
Thanks for reporting this! I'll take a look at it indeed, fortunately for now we haven't used rotation in our training (only as a preprocessing step in some cases) so there aren't any major consequences on existing checkpoints.
But this could get messy later on so thanks for this :pray:
We certainly do accept outsider contributors, this is an open-source project, feel free to open issues/PRs :)

Closed by #765 :rocket:


stream.go: ignore EmptyAtom tokens

For some drives we see that the response contains some EmptyTokens
The parsing done today expect status in specific location from
the end of reply and these tokens parse reply as malformed.
This fix will skip EmptyAtoms if exist when decoding the buffer
according to <IP_ADDRESS>.1.5 Empty Atom:
The Empty atom does not encode values.
The Empty atom allows other values in the data subpacket
contained in that part of the stream to be aligned with multi-byte
boundaries for efficiency. It also allows areas of a fixed buffer to
be filled with a value that is able to be safely ignored.
Identified on Kioxia:
"Protocol": "NVMe",
"Model": "KCM6FRUL960G",
"Firmware": "0106"

@ChriMarMe please review


Settings API requests

#353 #1158 #1722 and #1754
### Settings API requests
- [ ] https://github.com/ansys/pyfluent/issues/353
- [ ] https://github.com/ansys/pyfluent/issues/1158
- [ ] https://github.com/ansys/pyfluent/issues/1722
- [ ] https://github.com/ansys/pyfluent/issues/1754

Replaced by #3455


Add outline-page extension

Description
Check for CSS bugs by outlining all the elements in your web page.
Screencast
https://github.com/raycast/extensions/assets/13696888/bd05f5b2-967c-4922-9692-0bb6eea8fdb9
Checklist

[x] I read the extension guidelines
[x] I read the documentation about publishing
[x] I ran npm run build and tested this distribution build in Raycast
[x] I checked that files in the assets folder are used by the extension itself
[x] I checked that assets used by the README are placed outside of the metadata folder

@pernielsentikaer Update the images!

Checking again now @praveenjuge


Use types_or in pre-commit hook definition

Advantadges

Specifying files in a directory does not silently drop file types and is easy to filter by directory. For example, if I define files: ^src/ the files against to run will be only the subset inside types_or, I don't need to specify all extensions in files regexp.
Files without canonical extensions will be also linted. For example, .yamllint files will be checked as pre-commit's identify will discover that is a YAML file.

Note that I added 2.9.0 as minimum_pre_commit_version because types_or was added in that version.

Hi @mondeja ! thanks for your contribution. next monday I'll check this out.


Added Greenlandic name

Sorry, we don't do manual updates, see https://github.com/umpirsky/country-list#build.


Tweak expectations for rebar.config

We:

prevent mixed use of atoms, strings and binaries (prefer Erlang strings everywhere - syntax is the same as Elixir strings),
have main be readable as a filename, so a reference is easy to understand,
keep backward compatibility by only modifying the stuff we "see" in the new format.

Closes #20.
Some questions still remain, though.
README.md (from rebar3_ex_doc) refers source_url, for example, but I don't see that (in mix docs) inside docs, so it's confusing (is there some kind of modification already done by mix docs here)? (I do see source_url_pattern, there). Edit: refer to the latest commit for changes regarding this.
~We're being explicit in the keys we want to handle, so whatever isn't in the docs documentation we're leaving as-is, but (as you can see per the changes in README.md this makes for still inconsistent ex_docs options' region, in rebar.config).~ (new commit removes this "question")
I'm going to push a further commit to try and be more specific still. (looking at all of mix docs accepted options).
Edit:
When trying to go down the "try and be more specific" path, I find myself with exceptions like "lists of lists" (which means I have to pattern match on the option name), "functions as input" (I'm not sure this translates to rebar.config), and whatnot.

README.md (from rebar3_ex_doc) refers source_url, for example, but I don't see that (in mix docs) inside docs, so it's confusing (is there some kind of modification already done by mix docs here)? (I do see source_url_pattern, there). Edit: refer to the latest commit for changes regarding this.

It's actually right here : https://hexdocs.pm/ex_doc/Mix.Tasks.Docs.html
ExDoc will automatically pull in information from your project, like the application and version. However, you may want to set :name, :source_url and :homepage_url to have a nicer output from ExDoc, for example:

It's actually right here : https://hexdocs.pm/ex_doc/Mix.Tasks.Docs.html

It seems it's alongside docs but not inside docs, which is what I meant by "I don't see that (in mix docs) inside docs".

I read "The :docs options should be a keyword list or a function returning a keyword list that will be lazily executed." to understand the options. Maybe it's not that section that's interesting for my PR (?)

Ok, yeah, so I think I see where I've gone wrong. I'll try to update my PR with only "documented" options and then maybe output a warning for unknown ones.

So, yeah, I'm going back to basic as per our brief Slack chat. I'm warning on unknown options, but still passing them down to ex_doc (to not be too restrictive). If a consumer sees that a given option is supported as-is, or should be supported (and is not) they can open an issue for this to be handled (preferably pull requesting after it 😄).


Add key for storing counterparty next sequence send during WriteUpgradeOpen.

Description
to be merged after https://github.com/cosmos/ibc-go/pull/5438
This value is then used as the upper bound for pruning packet acks/receipts. Also did a rename of the previous path/key to PruningSequence instead of AcknowledgementPruningSequence
Commit Message / Changelog Entry
type: commit message

see the guidelines for commit messages. (view raw markdown for examples)

Before we can merge this PR, please make sure that all the following items have been
checked off. If any of the checklist items are not applicable, please leave them but
write a little note why.

[ ] Targeted PR against the correct branch (see CONTRIBUTING.md).
[ ] Linked to Github issue with discussion and accepted design OR link to spec that describes this work.
[ ] Code follows the module structure standards and Go style guide.
[ ] Wrote unit and integration tests.
[ ] Updated relevant documentation (docs/) or specification (x/<module>/spec/).
[ ] Added relevant godoc comments.
[ ] Provide a commit message to be used for the changelog entry in the PR description for review.
[ ] Re-reviewed Files changed in the Github PR explorer.
[ ] Review Codecov Report in the comment section below once CI passes.

Following from the last comment on naming. We could also consider:

PruningSequence -> PruningSequenceStart / PruningStartSequence
CounterpartyNextSequenceSend -> PruningSequenceEnd / PruningEndSequence

I'm pro the naming change @damiannolan suggests as well, these sequences are only stored after the upgrade completes for the sole purpose of pruning. So i don't think you have to keep the name the same as it is in the upgrade field.
Store it under a pruning key that describes its particular purpose in the pruning logic

I am pro the naming changes as well as suggested by @damiannolan ~thanks!


minifix: add "make webpack" to travis-ci build script

Currently, the Travis CI build is failing due to the fact that
the folder 'generated/etcher' is empty.
The folder is missing because the "make webpack" step is missing
from the travis CI build.
This commit amends that by adding the "make webpack" build step
after linting.
Change-Type: patch

Lgtm, just use "Change-type" instead of "Change-Type" and sign your commit too @salvozappa

Thank you @thundron,
I've amended the commit according to your requests.
I've GPG signed it and also signed it off in the commit message.

@resin-ci retest

@resin-ci retest


Harden DevSetup install PWSH module

Acceptance Criteria:

Refactor install.psm1 module for cross-project usage: The install.psm1 module should be modified to ensure its reusability across multiple projects.

Propose a method to fetch the latest file from the DevSetup folder for project-specific development environment setup: The fetched file should be instrumental in setting up the development environment tailored to your project.

Other projects can Execute the provided script to retrieve the latest version of the module: The following PowerShell script downloads the most recent version of the install.psm1 module from the ntools URL and stores it in a local file:

$url = "https://raw.githubusercontent.com/naz-hage/ntools/main/install.psm1"
$output = "./install.psm1"
Invoke-WebRequest -Uri $url -OutFile $output

This script leverages the Invoke-WebRequest cmdlet to dispatch an HTTP request to the given URL and download the file. The downloaded file is subsequently saved to the local path defined in $output.

Update the documentation on how to take advantage of ntools for your projects. How to use ntools on your project to create consistent repeatable process of building, testing and deploying
.

Resolved in #48


Is it possible to save optimizer state in python?

Hi,
I tried to resuming training, however it seems the optimizer (I'm using AdaDelta) state is not saved. Is this supported?
Thanks.

This is a missing feature. I'm planning to do it when I have time.
Let me know if want to give it a try now.
basically you need to refactor mx.optimizer.get_updater


Introduce a metrics system

Bundler should have a metric system output to prometheus or grafana

It would help debug data race problem in #181

Bundler should have a metric system output to prometheus or grafana

Yeah, I agree that would be very helpful. A good first step would be to specify here everything that should be monitored/measured.


Cluster projects

So in this repo, there are many python projects which belong to different domains .like ML, Web dev, etc
so we could create sub folder like
AI
|
|__ Ai project 1
|__ Ai project 2
etc

@HeyAnirudh  Thanks for pointing!
go for it!

@Arindam200 hey i had a doubt, why isn't my contribution showing in hacktoberfest dashboard?


Update api-linter styleguide generator to include "https://" in rule URIs.

This was probably an error from the start -- we should expect URIs in style guides to be valid URIs. I noticed this when I started displaying these in the viewer.

@theganyo No, but if it would have, that's great!

@theganyo No (I didn't run it), but if it would have, that's great!

No, sorry, it wouldn't. We don't currently have rules for scoring artifacts.


Update analysis

The blog post was written ~6 years ago. Can the analyses be rerun, so we see how the selected few projects evolved since then? E.g. angular was very young back then, but not any more.

wow, it's already been six years! crazy.
yeah maybe time to do


Allow disableable for the ALIAS_DOMAINS setting

Allow the ALIAS_DOMAINS setting to receive false.
Useful when we want to assign an alias domain just for a single branch:
ALIAS_DOMAINS: ${{ github.ref == 'refs/heads/develop' && 'staging.domain.com' || 'false' }}

:tada: This PR is included in version 1.10.0 :tada:
The release is available on GitHub release
Your semantic-release bot :package::rocket:


(Bug) payment link  showing as red card without option to cancel

for some users their payment link tx shows up as red without option to cancel even though it wasnt withdrawn

[ ] verify the enqueue tx process
[ ] verify otplstatus is updated correctly from Transfer event
[ ] verify tx status is read correctly

@sirpy who reported this?
what are the steps to reproduce?

@sirpy who reported this?
what are the steps to reproduce?

The issue is not reproduced. The payment cards are displayed according to their current status.

The issue is not reproduced on Prod 1.28.7. The payment cards are displayed according to their type and status
https://www.screencast.com/t/VkmPZF7yv9


dashboard: fix and improve build

Some fixes and improvement to the build script.

Fix deps not being built before the dashboard build.
Uses a simple and a bit crude way to allow some variables to be configured after the bundle is built, inspired by import-meta-env. It uses the same method but a bit more crude and specialized, advantage is that we don't need node at runtime.
Improvement on how we load some configs so that they can be analyzed and removed by terser (used by vite internally). Particularly keycloak/stub authenticator, all the admin and custom tabs components can be removed from the bundle if they are disabled.
Fix some issues when building in humble.

New changes put all the build time config in buildConfig, fix some issues when building in humble and add a couple more build options.


Get the conversation to auto-title

Fixes #104
This is working but I want to add some tests for it.

@robacarp I added tests and cleaned this up a bit. It's now ready to merge in, but I branched off your branch so we'll wait until yours lands first. No rush


New dlc

Issue #, if available:
Description of changes:
Update DLC image to 0.6.2
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

@tonyhoo Rebase with mainline and it should fix EDA test

Please do NOT merge this PR yet. Updated image causing timeseries tests to fail in CI


Except block for urllib2.URLError

It would be better if the library also handles the urllib2.URLError while making urllib2.urlopen requests. This is specially a problem if the client provides a callback because in that case things are happening on a different thread, and it's difficult for the client to catch the exception.
The problem is that I'm not sure what the response should look like because the URLError does not have a response code or headers.
Currently I've added something like this :
_unirestResponse = UnirestResponse(0, {}, str(e.reason))
If there's a suggestion I can modify it accordingly.

Closing this pull request. Updated the Readme on my fork to highlight the changes.


[QTL] Move kafka-extraction-namespace to the Lookup framework.

The major changes to the PR are as follows:
The kafka extraction namespace stuff now works off the lookup extractor factory framework. It still uses the caching mechanisms in the main lookup extension, but uses some random UUID in the cache instead of trying to keep some sort of relationship to the lookup name (which is enforced by the Lookup framework in core).
This means the kafka-extraction-namespace must go through the main lookup framework.

Tests run: 1, Failures: 0, Errors: 1, Skipped: 0, Time elapsed: 4.575 sec <<< FAILURE! - in io.druid.query.lookup.TestKafkaExtractionCluster
testSimpleRename(io.druid.query.lookup.TestKafkaExtractionCluster)  Time elapsed: 4.57 sec  <<< ERROR!
com.fasterxml.jackson.databind.JsonMappingException: Could not resolve type id 'kafka' into a subtype of [simple type, class io.druid.query.lookup.LookupExtractorFactory]
 at [Source: {"type":"kafka","kafkaTopic":"testTopic","kafkaProperties":{"request.required.acks":"1","zookeeper.connect":"<IP_ADDRESS>:54849/kafka","zookeeper.sync.time.ms":"200","zookeeper.session.timeout.ms":"10000"}}; line: 1, column: 2]
	at com.fasterxml.jackson.databind.JsonMappingException.from(JsonMappingException.java:148)
	at com.fasterxml.jackson.databind.DeserializationContext.unknownTypeException(DeserializationContext.java:862)
	at com.fasterxml.jackson.databind.jsontype.impl.TypeDeserializerBase._findDeserializer(TypeDeserializerBase.java:167)
	at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer._deserializeTypedForId(AsPropertyTypeDeserializer.java:99)
	at com.fasterxml.jackson.databind.jsontype.impl.AsPropertyTypeDeserializer.deserializeTypedFromObject(AsPropertyTypeDeserializer.java:84)
	at com.fasterxml.jackson.databind.deser.AbstractDeserializer.deserializeWithType(AbstractDeserializer.java:132)
	at com.fasterxml.jackson.databind.deser.impl.TypeWrappedDeserializer.deserialize(TypeWrappedDeserializer.java:41)
	at com.fasterxml.jackson.databind.ObjectMapper._readMapAndClose(ObjectMapper.java:3066)
	at com.fasterxml.jackson.databind.ObjectMapper.readValue(ObjectMapper.java:2161)
	at io.druid.query.lookup.TestKafkaExtractionCluster.setUp(TestKafkaExtractionCluster.java:266)

actual problem, fixing

could you summarize all the changes in this PR in the description ?

Merge problems from introspection PR, fixing

@b-slim I'm trying to hammer out some tests to prevent racy-ness, but otherwise this should be done.

@drcrallen can you explain how the caching mechanism works ?
I guess First the user need to know how caching works and where the cache is leaving.
Plus i am not sure how eviction is suppose to work here ? this impl is going to fill the cache with all the entry thought.

@b-slim this impl fills the cache with all entries without eviction.

@b-slim this does not change caching mechanism from prior impl I don't understand why caching would be a blocker for this PR

@drcrallen i know that, my comments it to help the user understand how thing works by adding it to the docs. IMHO it is a serious limitation to mention.

@drcrallen i am not blocking it, just update the DOCs to reflect the limitation.

:+1: after Docs.

Will add docs very shortly

@b-slim added
# Limitations

Currently the Kafka lookup extractor feeds the entire kafka stream into a local cache. If you are using OnHeap caching, this can easily clobber your java heap if the kafka stream spews a lot of unique keys.
OffHeap caching should alleviate these concerns, but there is still a limit to the quantity of data that can be stored.
There is currently no eviction policy.

https://travis-ci.org/druid-io/druid/jobs/126506259 died in

-------------------------------------------------------
 T E S T S
-------------------------------------------------------
Running io.druid.indexing.kafka.KafkaDataSourceMetadataTest
Tests run: 3, Failures: 0, Errors: 0, Skipped: 0, Time elapsed: 0.022 sec - in io.druid.indexing.kafka.KafkaDataSourceMetadataTest
Running io.druid.indexing.kafka.KafkaIndexTaskTest

👍 , LGTM


Mocking ngrx/Store - No provider for Store!

beforeEachProviders(() => {
        return [
            provideStore(books),
            // provide(Store, {useValue: {}}) // createSpyObject()..
            BookService
        ];
    });

it('should find all books',
        inject([BookService, Store], (bookService: BookService) => {
            ...
       });
);

@Injectable()
export class BookService implements IBookService {
    constructor(private store: Store) {
    }
    ...
}
```
This lead to Failed: No provider for Store! (BookService -> Store)

I assume that Store isn't annotated with @Injectable() is the reason for this test to fail. Has anyone an idea how to deal with it?

I think in:
it('should find all books',
        inject([BookService, Store], (bookService: BookService) => {
            ...
       });
);
```

the Store should not be injected, just the BookService.

Thanks for the reply. Unfortunately it still complains that there is no provider for store.
Has anyone a working example for mocking / testing services which have a store injected?

Sure, that is working for me:
describe('shopService', () => {

  beforeEachProviders(() => [
      provideStore({ shopReducer }),
      ShopService
    ]);

  it('#selecteShop should set the given shop as selected one',
    inject([ShopService], (shopService: ShopService) => {

    // given
    const selectedShop = {
      id: 'id',
      name: 'name',
      target: 'target'
    };

    // when
    shopService.selectShop(selectedShop);

    // then
    shopService.selectedShop.subscribe((shop => {

      expect(shop).toEqual(selectedShop);
    }));
  }));

Thanks for your example. Although the bug was hiding in the import statements:
// service.spec
import {Store} from '@ngrx/store'; // correct

// service
import {Store} from '@ngrx/ Store'; // false

Notice the lower-case and upper-case S. Gonna have to switch my ide :D


HCV not mentioned in the Credential Providers summary page

In docs/reference/providers.html, the menu on the left shows HCV but the content on the right does not list it. It should be added.

This has been resolved (not sure in which PR)


Burn tab not displayed

On kintsugi, there are some small amounts of KSM and LKSM in the liquidation vaults, but no burn tab is shown.
Chain state is this:
[
    [
      {
        collateral: {
          Token: KSM
        }
        wrapped: {
          Token: KBTC
        }
      }
    ]
    {
      toBeIssuedTokens: 50,000
      issuedTokens: 702,680
      toBeRedeemedTokens: 694,810
      collateral: 705,798,563,656
      currencyPair: {
        collateral: {
          Token: KSM
        }
        wrapped: {
          Token: KBTC
        }
      }
    }
  ]
  [
    [
      {
        collateral: {
          ForeignAsset: 2
        }
        wrapped: {
          Token: KBTC
        }
      }
    ]
    {
      toBeIssuedTokens: 0
      issuedTokens: 5,559
      toBeRedeemedTokens: 0
      collateral: 517,711,643,570
      currencyPair: {
        collateral: {
          ForeignAsset: 2
        }
        wrapped: {
          Token: KBTC
        }
      }
    }
  ]

Prioritising this as high, as we did with previous burn tab regression.

This will be fixed in the lib. getMaxBurnableTokens is returning an error which the UI is catching, so the error will be handled on the lib side.
https://github.com/interlay/interbtc-api/issues/636

Resolved with https://github.com/interlay/interbtc-api/pull/637


Improved features and interoperability for  SQLMetrics

Is your feature request related to a problem or challenge? Please describe what you are trying to do.
Usecase:

Connecting DataFusion metrics to existing state of the art metrics collection systems (prometheus, influxdb, opentelemetry)
Gaining access to real time values of metrics (not just snapshots)

When running plans with multiple operators of the same type (e.g. multiple HashJoinExec) there us currently be no way to programaatically gain access to the individual HashJoin's statistics. For example, in https://github.com/apache/arrow-datafusion/pull/662 the interface will return metrics with a single string like inputRows. For the usecase of printing metrics per operator, that is just fine, however for usecases across the whole plan it is less fine.
It is currently very awkward to create metrics with finer granularity (such as per partition of the hash join or  parquet metrics per file). The current string = metric  interface means you have to make a compound string key (such as "metrics for file foo") and then have to parse that key (as I did in https://github.com/apache/arrow-datafusion/pull/657)
Other metric systems such as prometheus, opentelemetry, and influxdb, allow for name=value pairs on each metric to address these problems. So when trying to integrate DataFusion metrics, it will be a challenge to integrate with these other systems
The other systems allow you to get access to things like:
operator=ParquetExec,filename="my_filename",partition_number=0 rows_scanned=100
operator=ParquetExec,filename="my_other_filename",partition_number=0 rows_scanned=200

or for hash join
operator=HashJoin,partition_number=0 rows_scanned=100
operator=HashJoin,partition_number=1 rows_scanned=200

Another challenge with the current metrics interface is that despite using Arc and atomic counters internally, the only external interface is to get a snapshot of the metrics. If it were to return the Arcs themselves, we could implement interactive visualizations showing how the metrics evolved over time.
Describe the solution you'd like
This, I propose the following changes to metrics to create them (with name/vale pairs)
let metrics = SQLMetric::counter("numRows")
  .with("partition", 1)
  .with("filename", "my_file");

let sub_metric = SQLMetric:counter("otherMetric")
  // inherit all name/value pairs on `metric`
  .with_family(metrics)
  .with("new_detail", "awesome");

And then the collection interface should return a list of these metrics rather than HashSet with the id. For example, rather than
pub trait ExecutionPlan {
...

    /// Return a snapshot of the metrics collected during execution
    fn metrics(&self) -> HashMap<String, SQLMetric> {
        HashMap::new()
    }

Something like
pub trait ExecutionPlan {
...

    /// Return the metrics for this execution
    fn metrics(&self) -> Vec<Arc<SQLMetric>> {
        HashMap::new()
    }

Describe alternatives you've considered
A clear and concise description of any alternative solutions or features you've considered.
Additional context
Add any other context or screenshots about the feature request here.

FYI @andygrove @Dandandan

This looks great. One thing I would like to add to this is that we need a way to get aggregate metrics for a query plan when the query execution is distributed. My thought was to add an id to each operator (that is unique within one plan) so that the Ballista executors can return a hashmap of metrics to the scheduler after a query plan fragment has been executed.

is that we need a way to get aggregate metrics for a query plan when the query execution is distributed

Assigning a unique id (metrics id?) to each node in the plan (perhaps as a physical opimtizer pass) sounds like a good idea to me 👍

This sounds great.
Another use case of programmatically accessing the statistics is for re-optimization of the query (join reordering, removing empty results from the plan, using statistics for count(*), etc.)
From this, at least the requirement should be that having an aggregate / aggregating the metrics / statistics should be straightforward.

FWIW I am making good progress on this feature and hope to have a PR up later today with a proposed implementation


Other than face ?

This is awesome, can this demo be replaced by something other than face? Let's say a cocacola can or something else

Hi,
Well yes and no ^^
In short terms, no, because I initially focused on the idea of "Drawing in 3D". So this demo uses a machine learning model that has been trained to recognise the 3D mesh of faces only: FaceMesh paper.
Now, it would be possible to branch out this logic and draw in 2D only, in which cases it would be possible to use something like the Coco-SSD object detection model to detect a broader variety of elements such as bottles, plants, chairs..etc.
But there would probably be little code left from this repo. So it would probably best to start from scratch and simply draw in canvas rather than with three.js.
There is also the Handpose model that now works with Tensorflow.JS and would be great for some puppet-like experiments.


Add customBreakpoints prop to ThemeProvider - fixes #156

In order to allow custom breakpoint value overrides per app, this adds a customBreakpints prop to the ThemeProvider.

Codecov Report

Merging #157 into master will not change coverage.
The diff coverage is 100%.

@@          Coverage Diff          @@
##           master   #157   +/-   ##
=====================================
  Coverage     100%   100%
=====================================
  Files          31     31
  Lines         276    280    +4
=====================================
+ Hits          276    280    +4

Impacted Files
Coverage Δ

src/ThemeProvider.js
100% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

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


libpcap performance regression from 7d9ba85c47bb41298fed10f5769f793741de187f

Hello,
We have recently seen a performance regression when using gopacket's pcap capabilities. We noticed the regression when we saw the number of packets being processed dropped significantly. When we investigated further we identified that the pcap handle Stats() was reporting Dropped to be around 98% of the total packets processed.
When we started to investigate the issue we rolled back the commits on gopacket and found that the regression was introduced in commit 7d9ba85c47bb41298fed10f5769f793741de187f
Here is the statistics output.
 When we then reverted back to the previous binary the drops returned to zero. We then started to investigate and found that the problem was only introduced in the commit listed above.
System Info
hostname:~# go version
go version go1.8.3 linux/amd64

hostname:~# lsb_release -a
No LSB modules are available.
Distributor ID:	Ubuntu
Description:	Ubuntu 16.04.3 LTS
Release:	16.04
Codename:	xenial

hostname:~# dpkg --list | grep pcap
ii  libpcap-dev                       1.7.4-2                                    all          development library for libpcap (transitional package)
ii  libpcap0.8:amd64                  1.7.4-2                                    amd64        system interface for user-level packet capture
ii  libpcap0.8-dev                    1.7.4-2                                    amd64        development library and header files for libpcap0.8

Could you sync to master and retry?  A fix that went in today may have a fix for you.

Same problem for me. CPU usage went up by factor 6. Commit 92028c3b3f02c1ff69b17058a2302ba1bb44b16f did not change anything.

Issue seems to be inside pcap_unix.go openLive() function

Ok when I change the timeout from
pcap.OpenLive(sniffer.config.Device, int32(sniffer.config.Snaplen), true, 500*time.Millisecond)
to
pcap.OpenLive(sniffer.config.Device, int32(sniffer.config.Snaplen), true, pcap.BlockForever)
all is looking fine again.

Hmm, this is a pretty big smoking gun.  Could you let me know what method you're using to get packets?  Are you calling the gopacket.PacketSource.Packets() function?  Or calling pcap.Handle.ReadPacketDatadirectly?

I use
type SnifferSetup struct {
...
DataSource gopacket.PacketDataSource
...
}
...
data, ci, err := sniffer.DataSource.ReadPacketData()

pcap.OpenLive(config.device, config.snapLen, true, pcap.BlockForever)

Is our specific code block for the capture. I have been unable to test the specific patch yet, i will get onto that in the next few days.

https://github.com/google/gopacket/pull/357 looks like it might also be a fix for this, if you want to pull in the current master and see if it fixes things.

Doesn't look like this was fixed by #357. From pprof:
    0     0%     0%     29.53s 93.21%  pcap.(*Handle).ReadPacketData github.com/google/gopacket/pcap/pcap.go
0.19s   0.6%   0.6%     29.53s 93.21%  pcap.(*Handle).getNextBufPtrLocked github.com/google/gopacket/pcap/pcap.go
0.83s  2.62%  3.22%     29.34s 92.61%  pcap.(*Handle).getNextBufPtrLocked.func1 github.com/google/gopacket/pcap/pcap.go
0.18s  0.57%  3.79%     19.45s 61.40%  pcap._Cfunc_pcap_next_ex github.com/google/gopacket/pcap/_obj/_cgo_gotypes.go

Seems related to 92028c3b:
For PCAP, we should:

1) if we have a timeout, return an error when that timeout has been hit
and no packet received.
2) if we have a negative timeout, loop forever waiting for a packet,
checking every -timeout.

If the timeout is pcap.BlockForever then it checks for packets every 10ms (not using the "block indefinitely select in pcap_wait anymore).
If the timeout is greater than zero, then we immediately try to read another packet (missing return?).
I can try to work on a patch to see if I can fix this.

Agreed, that was the behavior we were aiming for.  Any help in getting back to this state greatly appreciated :)

Oh, one note:  If we have a negative timeout but we hit a non-timeout-exceeded error, we should break out and return that.

Can you test again with master?
@jimmystewpot @negbie @JustinAzoff

Hi,
I checked out master and changed "pcap.BlockForever" to "5*time.Minute".
I can confirm that your commit fixed this issue for me. Thank you!

Things look great for me using pcap.BlockForever.

Agree, this can be closed.


Support for anchor 0.30.1

Hello there,
Could you please update Anchorpy to adapt the new Anchor version? Anchor 0.29.0's program IDL is quite different from Anchor 0.30.1's program IDL, such as naming conventions.
Thanks :)

Are there any plans to add support for the new Idl with anchor v30?
https://github.com/coral-xyz/anchor/pull/2824
Does anyone know a workaround or has a anchorpy fork that works with the Idl object?


strange behaviour on firefoxos

Hello all, I need some help.
I want to login using a github account but I have an strange behaviour in my app, after I've logged in on github, the app redirects to my index but it seems that the app embeds the index instead of redirecting to it. See the image below.

You can see here my app.js code and also the manifest.webapp code.
my login function:
$cordovaOauth.github('27879518b3200cb586da', '3451fe872df74723655133d8e2c20c68417a4079', ['email'])
.then(function(data){
  console.log(data);
  $rootScope.user = data;
  $rootScope.$apply($rootScope.user);
  $rootScope.userStatus = true;
  $state.go('home');
}, function(err){
  alert(err);
});

And the app manifest:
{
  "launch_path": "/index.html",
  "installs_allowed_from": [
    "*"
  ],
  "version": "0.0.1",
  "name": "github-issues",
  "description": "An app for manage your issues at github",
  "developer": {
    "name": "Mozilla El Salvador",
    "url": "http://carloscarcamo.me"
  },
"icons": {
    "60": "/icon/icon-60.png",
    "128": "/icon/icon-128.png"
  },
"redirects":[{
    "from":"http://localhost/callback",
    "to":"/index.html"
  }]
}

Note: the redirects at the end of the app manifest is necessary because firefox simulator gives 404 error with http://localhost/callback, so I redirect from http://localhost/callback to my index.
Any thoughts about what i'm doing wrong?

See the official documentation for the required InAppBrowser plugin:
https://github.com/apache/cordova-plugin-inappbrowser/blob/master/doc/index.md#addeventlistener
The event listener, an essential component, is not compatible with Firefox OS.
Because of this, my implementation of Oauth will never work for Firefox OS.  The browser flow will always process in error.
Regards,

Ok. thanks for the info, I will try another way for Oauth!


Fix Firebase issue

https://stackoverflow.com/questions/60698622/java-io-ioexception-fis-auth-error-in-android-firebase

Issue created by BlueBubbles Bot in the BlueBubbles commnity on behalf of @zach in #feedback.

https://firebase.google.com/support/release-notes/android#2020-03-03

I upgraded the package. I think everything is working well now. Closing.


Fixed a URL in a doc and removed init.py from top directory

:white_check_mark: Build SMT 0.1.183 completed (commit https://github.com/SMTorg/SMT/commit/4d97279e5a by @)


Fix ternary logic that defines the baseUri

Nice project! Can I help you with it?

@eurafa sure! :) thanks a lot! :)


Fix/polygone(): params custom paths

function main(params) {
    let roof = [[10,11], [0,11], [5,20]];
    let wall = [[0,0], [10,0], [10,10], [0,10]];
    let door = [[4,0], [6,0], [6,5], [4,5]];
    let win = [[4,6], [6,6], [6,8], [4,8]];

    let poly1 = polygon(roof);
    let poly2 = polygon([roof, wall]);
    let poly3 = polygon({ points: roof });
    let poly4 = polygon({ points: [roof, wall] });
    let poly5 = polygon({ points: roof, paths: [0, 1, 2] });
    let poly6 = polygon({ points: [roof, wall], paths: [[0, 1, 2], [3, 4, 5, 6]] });
    let poly7 = polygon({ points: roof.concat(wall), paths: [[0, 1, 2], [3, 4, 5], [3, 6, 5]] });

    let poly8 = polygon([roof, wall, door, win]);

    return [
        poly1.translate([20, 0, 0]),
        poly2.translate([40, 0, 0]),
        poly3.translate([60, 0, 0]),
        poly4.translate([80, 0, 0]),
        poly5.translate([100, 0, 0]),
        poly6.translate([120, 0, 0]),
        poly7.translate([140, 0, 0]),
        poly8.translate([160, 0, 0])
    ];
}

Looking very good ! At a glance & tests it seems to be behaving as expected : do you want to add more changes @lautr3k before I merge?

Just wondering... are the test cases covering all possible combinations of parameters?

@kaosat-dev no more besides the freshly added tests, @z3dev  ;)

Wow! That’s nice. Many thanks.


feat: update project cards

Resolves #644

Contributors field hardcoded for now

https://user-images.githubusercontent.com/16358728/217885571-82dff668-9d64-42ed-b1fc-0c5c7c4b8713.mov

Converting back to draft; missing some styling


Any chance a new release will be pushed to rubygems?

Hello, it's been almost a year since 0.9.2 was released, and there have been lots of changes since then. Any idea when the next release will be published? Thanks!

Released right now ;)
See https://rubygems.org/gems/devise_security_extension/versions/0.10.0