Key revocation and management feasibility?

I’ve been researching hyperdb/core/drive for a project and the last thing I’m stuck at is the key management. Currently hyperdb doesn’t support any sort of management but is this because nobody (aka @mafintosh or @noffle ;) ) hasn’t had time or need to put it in place or is it because there’s some inherent problem with append-only logs and keys that I just don’t see right now?
The two things I’m looking for are limiting the ability to authorize and ability to revoke right to read/write. Without these two it’s quite hard to build anything on top of hyperdb that’s not either fully public or fully trusted.
I understand hyperdb’s architecture at a high-level only right now so I’m hoping that somebody with more knowledge finds few mins shed some light on this :)

limiting the ability to authorize

Maybe it would be useful if hyperdb offered a async predicate function
for testing whether a given key's feed is to be considered allowed? If
the predicate returns false, the local hyperdb ignores their content or
doesn't issue an authorize.

and ability to revoke right to read/write

This isn't completely possible: if I give you some encrypted data and
the private key to read it, I can never forcibly remove that data and
key from your harddrive. You could use a new key for future data that
the revoked party doesn't know about, though. This sounds like a useful
mechanism for hyperdb.
My personal preference is to keep the auth mechanism in hyperdb very
simple, but offer some hooks (like the authorization predicate function
above) that would let modules be written on top of hyperdb that
implement their own security models. That keeps hyperdb focused on doing
one thing well (p2p key/value data storage) instead of trying to
accomodate various security models.

@noffle I'm fairly certain hyperdb needs to be opinionated about the management of writers though, because it's a core part of its protocol

I think the predicate function is the only sane way to go. Then hyperdb doesn't make any decisions on whether you want to use a web of trust model or a authority model for trusting writers. Readers can only controlled in which peers you allow to connect to you, but like @noffle said, what has been seen cannot be unseen.
Key revocation and management of keys is something that will depend on how peers should establish trust in each other. As protocols a compromised key is a doomsday scenario.
One simple thought experiment that makes key rotation really tricky is; I add a new writer and tell everyone that this is my new identity. How can others be sure that this is true, and not simply a hacker that is trying to steal my db / trying to ruin my reputation?

Feeds will need to reference other feeds specifically in their vector-clock timestamps. You'll be fairly heavily constrained by that requirement. Any kind of runtime indirection is a bad idea because it suggests a feed could be remapped without recording the change in the log or preserving the history, and that would break the CRDT. Therefore the key management system can only add and remove writers within the history of the DB, and within that I question whether there's much opportunity for experimentation, because you'll need to maintain the convergence of the CRDT. I wouldn't say it's impossible, but I'd like to see a description of some of those systems before we make key management pluggable. Plugins create a situation where hyperdbs can only be consumed if the plugin used can be identified and loaded by the reader, and I see that as a non-zero cost.

Maybe it would be useful if hyperdb offered a async predicate function for testing whether a given key's feed is to be considered allowed? If the predicate returns false, the local hyperdb ignores their content or doesn't issue an authorize.

This was actually pretty much what I had in mind, but I wanted to hear if I'm being dumb and not realizing something really obvious that would prevent this in the data structure itself (as @pfrazee highlights) ;)

This isn't completely possible: if I give you some encrypted data and the private key to read it, I can never forcibly remove that data and key from your harddrive.

Yes, I phrased that badly because what you are saying is obviously true and I meant preventing future messages being read.

One simple thought experiment that makes key rotation really tricky is; I add a new writer and tell everyone that this is my new identity. How can others be sure that this is true, and not simply a hacker that is trying to steal my db / trying to ruin my reputation?

Wouldn't this be solved simply by requiring valid signature for all these sort of update messages?

Therefore the key management system can only add and remove writers within the history of the DB, and within that I question whether there's much opportunity for experimentation, because you'll need to maintain the convergence of the CRDT. I wouldn't say it's impossible, but I'd like to see a description of some of those systems before we make key management pluggable. Plugins create a situation where hyperdbs can only be consumed if the plugin used can be identified and loaded by the reader, and I see that as a non-zero cost.

To me, this feels like functionality that should be baked into hyperdb's core. Maybe as a sort of "mode" which you are running hyperdb keep compatibility detection relatively binary?
There are two levels to this. First is expanding key management to include revocation by simply adding a sort of ignoring function. One concern I have for hyperdb without key revocation is somebody getting an invite and spamming the db. With ignoring you could make decrease the reward for doing that because your spam would go to /dev/null. The predicate function seems the easiest solution here but what I'm not sure is that does CRDT go haywire if some participants ignore some participants, so they essentially have different references available?
The second level is the issue that anyone authorized can authorize other people. What I'm worried about is spying. Imagine you would use hyperdb as a p2p slack inside your company. What happens if somebody's machine gets hacked and their key is used to authorize a spy. Unless you are filtering everything through a firewall, it's likely that you won't even know that somebody is listening. I'm not sure if this can be resolved.

I think this is important because append-only logs last forever, and given infinite time all keys can be compromised.
Here's what my frazzled brain has come up with so far.  Any comments?  Do you think this would work?

Let the user provide a single predicate which decides whether or not messages fit within its policy.  This is called for all messages, and allows for arbitrary security models.
Allow a writer to deauthorize other writers, stating to ignore information in the given feed beyond the provided sequence number.  This provides for key revocation.
Allow a writer to mutiny and take ownership of the database, becoming the new source for it.  This provides a mechanism to handle source key compromise (and forking !).
When contentFeed is lengthened, make the writer doing so broadcast the new state, and only consider content valid at lengths included within the latest broadcast.  This ensures a deauthorized key cannot continue to update their content feed.

There's the edge case where a few people perform work on top of updates from a feed that end up having been made after somebody else has deauthorized the feed, due to communication delay.
I considered a few approaches to that edge case, and I think the best way to handle it would be to treat deauthorization updates as simply large changes that need to be merged; they undo any changes they deauthorize.
A sticking point is how to handle accumulation of many deauthorized keys (to allow for frequent key rotation) as time goes on, without growing the feeds array without bound.  If these feeds could somehow be intertwined with the key lookup trie such that they are only attached to the keys they have data for, rather than being listed all together as one, I think that would resolve it, but that seems like it would be a later improvement.


Release Dev to Test

Links to Jira Tickets
https://apps.nrs.gov.bc.ca/int/jira/browse/SIMSBIOHUB-541
Description of Changes
Release latest Dev changes to Test
Testing Notes
n/a

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 52.82%. Comparing base (f69d21f) to head (712e079).
Report is 1 commits behind head on test.

Additional details and impacted files
@@           Coverage Diff           @@
##             test    #1260   +/-   ##
=======================================
  Coverage   52.82%   52.82%
=======================================
  Files         561      561
  Lines       16981    16981
  Branches     2631     2631
=======================================
  Hits         8970     8970
  Misses       7405     7405
  Partials      606      606

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


Support for Python 3.10

Add support for python 3.10 as replit doesn't have python 3.11 (yet)

Also, the more specific error location in the Python traceback, but that's just for convenience and the Self type, which I don't use.


Upgrade and Genesis test under load, nodes OOMing

Upgrade Test
Name: rti-dev-small
Network: 5 + 2
Branch: dev
Chain: public
Commit: 53accef93582124f7a26a521e365af548b4dcffd
Config Override: '{"config":{}, "chainspec":{"era_duration": "25min" }}'
Upgrade Testing 1.4.8 (b94c4f79ac4ca00e996c418dcc3a98607779a193) -> 1.5.0 (53accef93582124f7a26a521e365af548b4dcffd)
Tests:
mixed load
delegation deploys x 25 - every 10mins
native transfers x 12k - once
wasm transfers x 1.8k - once
bloat wasm x 5 - every 30mins
upgrade sucessful 1.4.8 -> 1.5.0
Observations:
All Nodes OOMing under load at Upgrade
nodes OOMing probable cause of:
{"timestamp":"2023-01-31T02:34:49.876318Z","level":"INFO","fields":{"message":"BlockAcquisition: registering execution results stored notification for: block hash 50ad..98bd"},"target":"casper_node::components::block_synchronizer::block_acquisition"}
{"timestamp":"2023-01-31T02:34:49.876370Z","level":"INFO","fields":{"message":"BlockAcquisition: requesting missing deploy by hash"},"target":"casper_node::components::block_synchronizer::block_acquisition_action"}
Update: delegation deploys were dispatched near to upgrade point
re-attempted by disabling delegation deploys and upgrade seemed to progress.
Dumps: most instances not responding - no access to instance and logs.
http://genesis.casperlabs.io/rti-dev-small/casper-node-dumps/rti-dev-small/31012023_0258/dump_download_list.html
Genesis
Name: rti-dev-small
Network: 5 + 2
Branch: dev
Chain: public
Commit: 53accef93582124f7a26a521e365af548b4dcffd
Config Override: '{"config":{}, "chainspec":{"era_duration": "25min" }}'
Standalone Test Build (from genesis)
Tests:
mixed load
delegation deploys x 25 - every 10mins
native transfers x 12k - once
wasm transfers x 1.8k - once
bloat wasm x 5 - every 30mins
Observations:
non-validating nodes OOMing as load deployed to it.
multiple re-attempts showing that all non-validating nodes quickly OOM when load is dispatched to network
Dumps: non-validating instances not responding - no logs
Grafana: https://grafana.casperlabs.io/goto/kwtssnA4z?orgId=1

https://casper-labs-team.slack.com/archives/C01ULKL8G8J/p1675133437173319
https://casper-labs-team.slack.com/archives/C01ULKL8G8J/p1675138121734689


Add attachment field tag helper which doesn't require form builder

It should be possible to generate attachment file tags outside the context of a form builder. That would be especially useful for pure-client flows. Something like:
attachment_field_tag "file", direct: true

It should reasonably mimic the API of file_field_tag.

:heavy_plus_sign: :one:

@brust PRs welcome ;)

Looks like this PR hasn't been merged yet, is there any plan to release this at some point?


Fix leaking ValueError from Hyperframe.

Resolves #78.

This failure is spurious, but Travis-CI's infrastructure is having a really rough time right now and I can't restart it. We'll just have to wait!


Locale should be optional in URL

Locale is nl in this example:
https://knooppuntnet.nl/nl/analysis/route/12714489/map?position=51.46723229,4.47710314,15
It could be optional, so the web browser choose the user preferences.
Examples:

https://knooppuntnet.nl/analysis/route/12714489/map?position=51.46723229,4.47710314,15
https://knooppuntnet.nl/analysis/route/12714489/map?position=51.46723229,4.47710314,15&locale=nl

Part of #202.

The language in the url is optional.  When no language is specified in the url, the user is redirected to the preferred language defined in the browser using the Accept-Language HTTP header.  When I change the preferred language settings in my browser, I get knooppuntnet in that preferred language.
See also: Angular internationalization deployment documentation.
Using the referenced Angular internationalization mechanism, a separate application is generated for each language. This is why the language is the first element in the url after the domain name, rather than using a url parameter such as "locale=nl".  This is also the approach recommended by Google:
Using locale-specific URLs.


Convos wont login when using it with a reverse proxy (nginx) with a path

Describe the bug
When setting convos with a reverse proxy (nginx) and trying to visit the specified url it works the first time but uppon refreshing the page it start querying a wrong URL. And on each refresh that address get appended /irc/ (the path i am using on Nginx).
So I think a loop is messing with the fetch function or something.

Socket.js:271 [socket] reconnect in false

Environment

OS: Ubuntu 20.04
Browser: chrome, firefox
Version: latest

Got a similar problem:
I'm running the convos/convos:stable docker image with CONVOS_REQUEST_BASE="https://my_host/irc"
and a rewrite with irc/(.*) -> /$1
every time I curl https://my_host/irc/api the base_path get appended further and further
etc
{"basePath":"/irc/irc/irc/irc/irc/irc/irc/irc/api",
{"basePath":"/irc/irc/irc/irc/irc/irc/irc/irc/irc/api",
{"basePath":"/irc/irc/irc/irc/irc/irc/irc/irc/irc/irc/api",
{"basePath":"/irc/irc/irc/irc/irc/irc/irc/irc/irc/irc/irc/api",
It seems to be cached so the first client connects correctly and then errors on every other client.

@mehmooda: Please share some of your config. I've set up my own nginx dev-server using this sample config: https://convos.chat/doc/reverse-proxy#example-nginx-config.

I think this has gone stale.


ripgrep: 12.1.0 -> 12.1.1

https://github.com/BurntSushi/ripgrep/blob/master/CHANGELOG.md#1211-2020-05-29

Motivation for this change
Things done

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

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

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

Tests are failing on aarch64
failures:

---- misc::compressed_brotli stdout ----
thread 'misc::compressed_brotli' panicked at '

==========
command failed but expected success!

command: "/build/source/target/debug/deps/../rg" "--path-separator" "/" "-z" "Sherlock" "sherlock.br"

cwd: /build/ripgrep-tests/compressed_brotli/103

dir list: ["/build/ripgrep-tests/compressed_brotli/103", "/build/ripgrep-tests/compressed_brotli/103/sherlock.br"]

status: exit code: 2

stdout:

stderr: sherlock.br: <stderr is empty>

==========
', tests/util.rs:406:13
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

---- misc::compressed_lz4 stdout ----
thread 'misc::compressed_lz4' panicked at '

==========
command failed but expected success!

command: "/build/source/target/debug/deps/../rg" "--path-separator" "/" "-z" "Sherlock" "sherlock.lz4"

cwd: /build/ripgrep-tests/compressed_lz4/107

dir list: ["/build/ripgrep-tests/compressed_lz4/107", "/build/ripgrep-tests/compressed_lz4/107/sherlock.lz4"]

status: exit code: 2

stdout:

stderr: sherlock.lz4: <stderr is empty>

==========
', tests/util.rs:406:13

---- misc::compressed_zstd stdout ----
thread 'misc::compressed_zstd' panicked at '

==========
command failed but expected success!

command: "/build/source/target/debug/deps/../rg" "--path-separator" "/" "-z" "Sherlock" "sherlock.zst"

cwd: /build/ripgrep-tests/compressed_zstd/111

dir list: ["/build/ripgrep-tests/compressed_zstd/111", "/build/ripgrep-tests/compressed_zstd/111/sherlock.zst"]

status: exit code: 2

stdout:

stderr: sherlock.zst: <stderr is empty>

==========
', tests/util.rs:406:13

failures:
    misc::compressed_brotli
    misc::compressed_lz4
    misc::compressed_zstd

test result: FAILED. 252 passed; 3 failed; 0 ignored; 0 measured; 0 filtered out

Tests are failing on aarch64

More context might be helpful?

It only happens when crosscompiling to aarch64 from x86_64 using binfmt/qemu-aarch64. Does not happen on native builds on aarch64. I don't have more information for now.


Sources are not included in published package, even though the source maps point to them

Hi! First of all, thanks for this awesome package!
The problem
The published package only includes the dist folder, however the generated source map at dist/index.js.map points to sources at ../src/index.ts.
This means that the source maps are effectively unusable, as they point to a file that is not available.
It also results in a warning when using this package with Parcel. Every time the application is built, Parcels shows the following warning:
⚠ Could not load source file "../src/index.ts" in source map of "../node_modules/use-methods/dist/index.js".

Possible solutions

Inline sources directly within the source map using the --inlineSources flag when compiling with tsc
Publish sources as well, by changing the files property in package.json to:

"files": [
    "dist",
    "src"
  ]

Disable source map generation completely, by setting the sourceMap property to false in tsconfig.json.

I don't think there's any practical difference between option 1 and 2, I assume it's just a matter of preference. Option 3 favours a leaner package at the expense of not having source available when developing.
I would strongly hope that you choose option 1 or 2 over 3. 🙂

Thanks for the detailed writeup; I went with option 2, released in v0.5.1 🚀


[BUG] Download broken on Windows

Syncify Version
2.0.0+
Describe the bug
I use Syncify on both Linux and Windows. On my Linux systems, it works fine. On Windows, the download option has been broken since release 2.0.0.
Additional context
The following error is displayed on newer versions:
TypeError: downloadedExtensions.filter is not a function
at Function.getMissing (file:////home/travis/build/arnohovhannisyan/vscode-syncify/src/services/extensions.ts:54:37)
at RepoSyncer.eval (file:////home/travis/build/arnohovhannisyan/vscode-syncify/src/syncers/repo.ts:176:82)
at Generator.next (<anonymous>)	at fulfilled (file:////home/travis/build/arnohovhannisyan/vscode-syncify/src/syncers/repo.ts:5:58) (at Function.error (file:////home/travis/build/arnohovhannisyan/vscode-syncify/src/services/logger.ts:8:21))

@evertiro Please install the this, try downloading, and reply with everything in the console.
Tutorial: https://code.visualstudio.com/docs/editor/extension-gallery#_install-from-a-vsix

TMScopeRegistry.ts:45 Overwriting grammar scope name to file mapping for scope text.log.
Old grammar file: file:///c%3A/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/extensions/log/syntaxes/log.tmLanguage.json.
New grammar file: file:///c%3A/Users/Evertiro/.vscode-insiders/extensions/emilast.logfilehighlighter-2.6.0/syntaxes/log.tmLanguage
register @ TMScopeRegistry.ts:45
TMScopeRegistry.ts:45 Overwriting grammar scope name to file mapping for scope source.yaml.
Old grammar file: file:///c%3A/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/extensions/yaml/syntaxes/yaml.tmLanguage.json.
New grammar file: file:///c%3A/Users/Evertiro/.vscode-insiders/extensions/redhat.vscode-yaml-0.5.3/syntaxes/yaml.tmLanguage.json
register @ TMScopeRegistry.ts:45
console.ts:137 [Extension Host] MonokaiPro-VSCode 1.1.14, ©2019 Monokai  (at new e (c:\Users\Evertiro\.vscode-insiders\extensions\monokai.theme-monokai-pro-vscode-1.1.14\js\app.js:10:16036))
console.ts:137 [Extension Host] Looking for parseable documents... (at c:\Users\Evertiro\.vscode-insiders\extensions\gencer.html-slim-scss-css-class-completion-1.5.20\src\extension.ts:57:17)
console.ts:137 [Extension Host] vscode pigments is activated (at activate (c:\Users\Evertiro\.vscode-insiders\extensions\jaspernorth.vscode-pigments-2.0.0\out\extension.js:61:13))
console.ts:137 [Extension Host] [VSCodeCounter] now active! (at activate (c:\Users\Evertiro\.vscode-insiders\extensions\uctakeoff.vscode-counter-1.2.1\out\extension.js:30:13))
console.ts:137 [Extension Host] Found no documents (at c:\Users\Evertiro\.vscode-insiders\extensions\gencer.html-slim-scss-css-class-completion-1.5.20\src\extension.ts:67:21)
console.ts:137 [Extension Host]% Object__proto__: Object (at RepoSyncer.eval (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/syncers/repo.ts:176:29))
console.ts:137 [Extension Host] TypeError: downloadedExtensions.filter is not a function    at Function.getMissing (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/services/extensions.ts:54:37)    at RepoSyncer.eval (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/syncers/repo.ts:177:82)    at Generator.next (<anonymous>)    at fulfilled (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/syncers/repo.ts:5:58) (at Function.error (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/services/logger.ts:8:21))
t.log @ console.ts:137
notificationsAlerts.ts:40 Syncify: Please check the Developer Console for specific error (Help -> Toggle Developer Tools)
onDidNotificationChange @ notificationsAlerts.ts:40
extensionHost.ts:201 Extension Host
extensionHost.ts:202 Debugger attached.

@evertiro Can you try this version? Let me know if the issue is still happening.

TMScopeRegistry.ts:45 Overwriting grammar scope name to file mapping for scope text.log.
Old grammar file: file:///c%3A/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/extensions/log/syntaxes/log.tmLanguage.json.
New grammar file: file:///c%3A/Users/Evertiro/.vscode-insiders/extensions/emilast.logfilehighlighter-2.6.0/syntaxes/log.tmLanguage
register @ TMScopeRegistry.ts:45
TMScopeRegistry.ts:45 Overwriting grammar scope name to file mapping for scope source.yaml.
Old grammar file: file:///c%3A/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/extensions/yaml/syntaxes/yaml.tmLanguage.json.
New grammar file: file:///c%3A/Users/Evertiro/.vscode-insiders/extensions/redhat.vscode-yaml-0.5.3/syntaxes/yaml.tmLanguage.json
register @ TMScopeRegistry.ts:45
console.ts:137 [Extension Host] MonokaiPro-VSCode 1.1.14, ©2019 Monokai  (at new e (c:\Users\Evertiro\.vscode-insiders\extensions\monokai.theme-monokai-pro-vscode-1.1.14\js\app.js:10:16036))
console.ts:137 [Extension Host] Looking for parseable documents... (at c:\Users\Evertiro\.vscode-insiders\extensions\gencer.html-slim-scss-css-class-completion-1.5.20\src\extension.ts:57:17)
console.ts:137 [Extension Host] vscode pigments is activated (at activate (c:\Users\Evertiro\.vscode-insiders\extensions\jaspernorth.vscode-pigments-2.0.0\out\extension.js:61:13))
console.ts:137 [Extension Host] [VSCodeCounter] now active! (at activate (c:\Users\Evertiro\.vscode-insiders\extensions\uctakeoff.vscode-counter-1.2.1\out\extension.js:30:13))
console.ts:137 [Extension Host] Found no documents (at c:\Users\Evertiro\.vscode-insiders\extensions\gencer.html-slim-scss-css-class-completion-1.5.20\src\extension.ts:67:21)
console.ts:137 [Extension Host] Failed to execute fetch TypeError: Cannot read property '0' of undefined
    at getWorkspaceRootPath (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\git_service.js:5:69)
    at fetch (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\git_service.js:11:10)
    at fetchRemoteUrl (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\git_service.js:114:28) (at Object.fetchCurrentPipelineProject (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\gitlab_service.js:120:13))
console.ts:137 [Extension Host] Failed to execute fetch TypeError: Cannot read property '0' of undefined
    at getWorkspaceRootPath (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\git_service.js:5:69)
    at fetch (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\git_service.js:11:10)
    at fetchRemoteUrl (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\git_service.js:114:28) (at Object.fetchCurrentProject (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\gitlab_service.js:108:13))
console.ts:137 [Extension Host] Failed to execute fetch TypeError: Cannot read property '0' of undefined
    at getWorkspaceRootPath (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\git_service.js:5:69)
    at fetch (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\git_service.js:11:10)
    at fetchRemoteUrl (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\git_service.js:114:28) (at fetchCurrentPipelineProject (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\gitlab_service.js:120:13))
console.ts:137 [Extension Host] Failed to execute fetch TypeError: Cannot read property '0' of undefined
    at getWorkspaceRootPath (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\git_service.js:5:69)
    at fetch (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\git_service.js:11:10)
    at fetchRemoteUrl (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\git_service.js:114:28) (at fetchCurrentProject (c:\Users\Evertiro\.vscode-insiders\extensions\fatihacet.gitlab-workflow-2.1.1\src\gitlab_service.js:108:13))
console.ts:137 [Extension Host] SyntaxError: Unexpected end of JSON input    at JSON.parse (<anonymous>)    at Function.processIncoming (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/services/pragma.ts:61:18)    at RepoSyncer.eval (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/syncers/repo.ts:278:59)    at Generator.next (<anonymous>)    at fulfilled (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/syncers/repo.ts:5:58) (at Function.error (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/services/logger.ts:8:21))
t.log @ console.ts:137
notificationsAlerts.ts:40 Syncify: Please check the Developer Console for specific error (Help -> Toggle Developer Tools)
onDidNotificationChange @ notificationsAlerts.ts:40
console.ts:137 [Extension Host] rejected promise not handled within 1 second: Error: command 'syncify.cancelUpload' already exists (at c:\Program Files\Microsoft VS Code Insiders\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:789:521)
t.log @ console.ts:137
console.ts:137 [Extension Host] stack trace: Error: command 'syncify.cancelUpload' already exists    at v.registerCommand (c:\Program Files\Microsoft VS Code Insiders\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:519:448)    at Object.registerCommand (c:\Program Files\Microsoft VS Code Insiders\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:693:699)    at Function.eval (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/services/watcher.ts:49:50)    at Generator.next (<anonymous>)    at fulfilled (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/services/watcher.ts:5:58) (at c:\Program Files\Microsoft VS Code Insiders\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:789:597)
t.log @ console.ts:137
log.ts:196   ERR command 'syncify.cancelUpload' already exists: Error: command 'syncify.cancelUpload' already exists
    at v.registerCommand (c:\Program Files\Microsoft VS Code Insiders\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:519:448)
    at Object.registerCommand (c:\Program Files\Microsoft VS Code Insiders\resources\app\out\vs\workbench\services\extensions\node\extensionHostProcess.js:693:699)
    at Function.eval (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/services/watcher.ts:49:50)
    at Generator.next (<anonymous>)
    at fulfilled (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/services/watcher.ts:5:58)
console.ts:137 [Extension Host] SyntaxError: Unexpected end of JSON input    at JSON.parse (<anonymous>)    at Function.processIncoming (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/services/pragma.ts:61:18)    at RepoSyncer.eval (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/syncers/repo.ts:278:59)    at Generator.next (<anonymous>)    at fulfilled (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/syncers/repo.ts:5:58) (at Function.error (file:////run/media/arno/Files/Projects/Programming/vscode-syncify/src/services/logger.ts:8:21))
t.log @ console.ts:137
notificationsAlerts.ts:40 Syncify: Please check the Developer Console for specific error (Help -> Toggle Developer Tools)
onDidNotificationChange @ notificationsAlerts.ts:40

@evertiro New vsix. Please reply with everything in the console that is between the START -- and -- END.

Looks like that's just the JSON for the settings file...
{
  "alignment.operatorPadding": "left",
  "code-runner.clearPreviousOutput": true,
  "code-runner.runInTerminal": true,
  "code-runner.saveFileBeforeRun": true,
  "codestream.email": "xxx",
  "csharp.referencesCodeLens.enabled": false,
  "css.validate": false,
  "editor.rulers": [80],
  "git.autofetch": true,
  "git.confirmSync": false,
  "git.ignoreLegacyWarning": true,
  "gitlabPipelineMonitor": {
    "gitlab.com": { "token": "xxx", "notifyOnFailed": true }
  },
  "gitlens.showWhatsNewAfterUpgrades": false,
  "jshint.lintHTML": true,
  "less.validate": false,
  "minify.minifyExistingOnSave": true,
  "papyrus.fo4.directory": "C:\\Program Files (x86)\\Steam\\steamapps\\common\\Skyrim Special Edition\\",
  "remote.SSH.showLoginTerminal": true,
  "restructuredtext.linter.executablePath": "/usr/local/bin/doc8",
  "restructuredtext.linter.extraArgs": ["--ignore D001"],
  "restructuredtext.sphinxBuildPath": "/usr/bin/sphinx-build",
  "scss.validate": false,
  "showGitMetrics": false,
  "showMusicMetrics": false,
  "showWeeklyRanking": false,
  "svn.enableProposedApi": "none",
  "sync.askGistName": true,
  "sync.autoDownload": true,
  "sync.autoUpload": true,
  "sync.gist": "xxx",
  "terminal.external.linuxExec": "zsh",
  "terminal.integrated.shell.linux": "/bin/zsh",
  "terminal.integrated.shell.windows": "C:\\Windows\\System32\\WindowsPowerShell\\v1.0\\powershell.exe",
  "window.titleBarStyle": "custom",
  "window.zoomLevel": 0,
  "workbench.colorTheme": "One Monokai",
  "workbench.iconTheme": "Monokai Pro Icons",
  "workbench.startupEditor": "newUntitledFile",
  "editor.fontFamily": "'Fira Mono', 'Droid Sans Mono', 'monospace', monospace, 'Droid Sans Fallback'",
  "editor.autoClosingOvertype": "always",
  "zenMode.hideLineNumbers": false,
  "zenMode.hideStatusBar": false,
  "window.title": "${dirty}${activeEditorMedium}${separator}${rootName}",
  "explorer.incrementalNaming": "smart",
  "gitlab.enableExperimentalFeatures": true,
  "gitlab.ignoreCertificateErrors": true,
  "gitlab.showPipelineUpdateNotifications": true,
  "prettier.singleQuote": true
}

Did any errors occur?

Yes. Effectively the same as my previous post

@evertiro If it's all right, can you please follow these steps?

Run Syncify: Reset in the command palette and confirm
Reload VSCode
Set up the extension
Download

I have tested this on my Windows machine and don't get this error, so it might be specific to your machine.

@evertiro Are there any updates on this issue?

It was working for a while (after doing the reset), just reinstalled Windows for an unrelated reason, reinstalled and now it's throwing a JSON error whenever I try to connect. Interestingly, the new GitLab integration fails on callback.

@evertiro

Interestingly, the new GitLab integration fails on callback.

Can you make a new issue and post the error on there?

it's throwing a JSON error whenever I try to connect

Please take a screenshot of the error in the console and reply with it.

Oddly, after updating to 1.40.0 the GitLab integration is working now. Testing whether or not that fixed sync as well.

Here's the entirety of the console error log:
Old grammar file: file:///c%3A/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/extensions/typescript-basics/syntaxes/jsdoc.ts.injection.tmLanguage.json.
New grammar file: file:///c%3A/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/extensions/typescript-basics/syntaxes/jsdoc.js.injection.tmLanguage.json
register @ workbench.desktop.main.js:sourcemap:4267
workbench.desktop.main.js:sourcemap:4267 Overwriting grammar scope name to file mapping for scope text.log.
Old grammar file: file:///c%3A/Program%20Files/Microsoft%20VS%20Code%20Insiders/resources/app/extensions/log/syntaxes/log.tmLanguage.json.
New grammar file: file:///c%3A/Users/Evertiro/.vscode-insiders/extensions/emilast.logfilehighlighter-2.6.0/syntaxes/log.tmLanguage
register @ workbench.desktop.main.js:sourcemap:4267
workbench.desktop.main.js:sourcemap:250 [Extension Host] MonokaiPro-VSCode 1.1.14, ©2019 Monokai  (at new e (c:\Users\Evertiro\.vscode-insiders\extensions\monokai.theme-monokai-pro-vscode-1.1.14\js\app.js:10:16036))
workbench.desktop.main.js:sourcemap:250 [Extension Host] SyntaxError: Unexpected end of JSON input	at JSON.parse (<anonymous>)	at Function.processIncoming (file:////home/travis/build/arnohovhannisyan/vscode-syncify/src/services/pragma.ts:61:18)	at RepoSyncer.eval (file:////home/travis/build/arnohovhannisyan/vscode-syncify/src/syncers/repo.ts:293:63)	at Generator.next (<anonymous>)	at fulfilled (file:////home/travis/build/arnohovhannisyan/vscode-syncify/src/syncers/repo.ts:5:58) (at Function.error (file:////home/travis/build/arnohovhannisyan/vscode-syncify/src/services/logger.ts:6:17))
t.log @ workbench.desktop.main.js:sourcemap:250

Here's what I'm seeing in app...

@evertiro Can you check your repository to make sure that keybindings.json is not empty? If it is, please edit it and just add [].

Aha, it is empty. That's an annoying quirk, especially since Syncify is what uploaded it

Yeah, I plan on releasing a new version soon that checks for valid JSON before parsing it.


[MXNET-89] Bug fix for bucketing module

Description
Fix #9405
The problem is that when no naming is provided for symbol it appends a count to the name. For bucketing module, since the params need to be shared between modules for different buckets,
the param names used need to be the same. Forcing to use same naming for params in BucketingModule.
 I finished coding on this PR)
[x] All changes have test coverage:
Unit tests are added for small changes to verify correctness (e.g. adding a new operator)
Nightly tests are added for complicated/long-running ones (e.g. changing distributed kvstore)
Build tests will be added for build configuration changes (e.g. adding a new build option with NCCL)
[x] Code is well-documented:
For user-facing API changes, API doc string has been updated.
For new C++ functions in header files, their functionalities and arguments are documented.
For new examples, README.md is added to explain the what the example does, the source of the dataset, expected performance on test set and reference to the original paper if applicable
[x] To the my best knowledge, examples are either not affected by this change, or have been fixed to be compatible with this change

Changes

[x] Feature1, tests, (and when applicable, API doc)

Comments

If this change is a backward incompatible change, why must this change be made.
Interesting edge cases to note here

@eric-haibin-lin @piiswrong

Failed once for : #9972 and #10114

@pluskid Can you please help review this PR.

Sorry I missed the notification when you tagged me. Looks good.


Cov

Updates codecov command to comply with the command preferred by codecov.io. Adds codecov.yml and an ignore section to exclude files from the coverage report.

This is really cool, it checked the build before fully opening the pull request.


Isn't Bulk Insert part of Cosmos Client-Side Api version 3+ (at least for .NET)?

Isn't Bulk Insert part of Cosmos Client-Side Api version 3+ (at least for .NET)? Asking because the examples all use version 2 which is not .net core compatible (not cross-platform).
Could some notes and links be given about this fact?
This was supposed to be for https://docs.microsoft.com/en-us/azure/cosmos-db/bulk-executor-dot-net
Feel free to close as won't-do if this is in the wrong location or is out-of-scope

Document Details
⚠ Do not edit this section. It is required for docs.microsoft.com ➟ GitHub issue linking.

ID: 14e425a8-0912-7516-b0e4-485f903c4003
Version Independent ID: 6d44d779-e35f-8101-3427-ebf59015a956
Content: Use bulk executor .NET library in Azure Cosmos DB for bulk import and update operations
Content Source: articles/cosmos-db/bulk-executor-dot-net.md
Service: cosmos-db
Sub-service: cosmosdb-sql
GitHub Login: @tknandu
Microsoft Alias: ramkris

@tamusjroyce Thanks for the feedback. We have assigned this issue to an engineer to help you check the same.

@tknandu Can you please check if this information can be added.
@tamusjroyce We are assigning this to our author for checking if this info can be added.

@tamusjroyce Yes Bulk support is available directly with the .Net V3 SDK. The doc you are referring to has a note at the beginning that states the instructions are applicable for V2 SDK only. See this page for V3 SDK: https://docs.microsoft.com/en-us/azure/cosmos-db/tutorial-sql-api-dotnet-bulk-import, it's also linked from the note.
"This bulk executor library described in this article is maintained for applications using the .NET SDK 2.x version. For new applications, you can use the bulk support that is directly available with the .NET SDK version 3.x and it does not require any external library."

We will now close this issue.
#please-close


Allow Promises of schemas

This is a retread of #31, but with some actually concrete proposals and rationale.
Currently, it is only possible to provide either literal schemas, or schemas from synchronous functions. If a schema requires (e.g.) a database read, the only way to do it is to perform the operation in a prior middleware, then pass it along by mutating the request object (or to wrap this middleware in something custom). This is sub-optimal for a few reasons:

It separates operations that should be performed together. Having to put together two separate middlewares to perform your validation cycle makes it highly likely that you'll eventually forget one and break something.
Modifying the request object is problematic in TypeScript. There's no good place to attach a random value of arbitary type, and you lose the type information in the following middlewares.
Multiple middlewares modifying the request object may stomp each other's keys, producing an unknown state by the time it reaches the schema generator.

My proposed solution to this is fairly straightforward: allow passing Promises of a schema, or functions that return Promises of a schema. In TypeScript terms, changing this (borrowed from #72 for easier readability):
	type AllowedSchema =
		| JSONSchema4
		| JSONSchema6
		| JSONSchema7;

	export type ValidateFunction =
		| ((req: Request) => AllowedSchema)
		| AllowedSchema;

to this:
	type AllowedSchema =
		| JSONSchema4
		| JSONSchema6
		| JSONSchema7;

	export type ValidateFunction =
		| ((req: Request) => AllowedSchema | Promise<AllowedSchema>)
		| Promise<AllowedSchema>
		| AllowedSchema;

Then, the request handler can await the Promise, and perform the normal operation.

@NGTOne Thanks for raising this issue - the rationale you've provided for this feature is sound.
I agree that it's not a good practice to mutate the request object. The coupling of middleware is not ideal either. I would love to deprecate the currently documented approach to loading dynamic schemas.
My one concern with this proposal is the need to be especially careful with Express and Promises, given that Express does not have out-of-the-box support for handling rejected promises.

Then, the request handler can await the Promise, and perform the normal operation.

What are you referring to as "the request handler" in this context?

My one concern with this proposal is the need to be especially careful with Express and Promises, given that Express does not have out-of-the-box support for handling rejected promises.

Ultimately, I'd argue that that one falls into the "not our problem" bucket. As long as all errors are caught by the middleware and tossed into next(), either with a try/catch or #Promise.catch, then the consumer can decide what to do with it later on down the line. The same holds true for synchronous functions, to my mind - if you throw something there, interrupting the request cycle is rather decidedly not the right approach.

What are you referring to as "the request handler" in this context?

The actual returned (req, res, next) function. It can either await the Promise and try/catch any thrown errors, or just slap a .catch on it.

My one concern with this proposal is the need to be especially careful with Express and Promises, given that Express does not have out-of-the-box support for handling rejected promises.

Ultimately, I'd argue that that one falls into the "not our problem" bucket. As long as all errors are caught by the middleware and tossed into next(), either with a try/catch or #Promise.catch, then the consumer can decide what to do with them later on down the line. The same holds true for synchronous functions, to my mind - if you throw something there, interrupting the request cycle is rather decidedly not the right approach.

I agree - I wasn't sure if you were proposing that the express-json-validator-middleware have error handling for Promises which are passed to it.

What are you referring to as "the request handler" in this context?

The actual returned (req, res, next) function. It can either await the Promise and try/catch any thrown errors, or just slap a .catch on it. Either way, it can then feed the resulting error into next() and let the consumer deal with it.

This sounds good to me :+1:
If this is a feature that you're happy to work on, I would love to see it land in a release in the near future.
At the moment I'm close to getting v2.2.0 released (#39 is the only blocking issue that I need to spend more time investigating). After that release I want to do a v3.0.0 release which will upgrade Ajv to v7. I'm thinking that this feature could go into a subsequent release.
Here are the release milestones: https://github.com/simonplend/express-json-validator-middleware/milestones

Closing due to lack of activity.


Default Build should omit examples and cli

The default build options attempt to compile examples and cli.  It is proposed that these sub-dirs only get compiled when explicitly configured to do so.

Agree.

Fixed in #132.


npm: command not found

nvm install 9.0.0
nvm install 10.0.0
nvm install 11.12.0
all successfully installed, then i
nvm use 10.0.0
nvm list
and show
 11.12.0
* 10.0.0 (Currently using 64-bit executable)
9.0.0
However, when i input
npm --version
on git bash, i got an error like that
bash: npm: command not found
It is in win64 systems, nvm version  1.1.7,  what's wrong, i would be appreciated for your help.

+1

使用nvm安装node版本时发现bash输出
$ nvm install 9.6.0 Downloading node.js version 9.6.0 (64-bit)... Complete Downloading npm version 5.6.0... Error while downloading https://github.com/npm/     cli/archive/v5.6.0.zip - read tcp <IP_ADDRESS>:57187-><IP_ADDRESS>:443: wsarecv:  A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond. Complete Installing npm v5.6.0...2019/03/22 23:46:53 Failed to extract npm. Could not find F:\nvm\temp\nvm-npm\npm-5.6.0\bin
之前没留意，今天重新排查问题发现上述报错，提示node已成功安装但是npm受限于国内网络原因无法正常下载安装，因此解决方式很简单，设置国内镜像即可，bash输入
nvm node_mirror https://npm.taobao.org/mirrors/node/   nvm npm_mirror https://npm.taobao.org/mirrors/npm/
然后重新安装
`
$ nvm install 10.0.0
Downloading node.js version 10.0.0 (64-bit)...
Complete
Downloading npm version 5.6.0... Complete
Installing npm v5.6.0...
Installation complete. If you want to use this version, type
nvm use 10.0.0
    上述提示相应版本的node和npm均已成功安装。
$ npm --version
5.5.1
`
实际上，也可以直接在nvm安装目录F:\nvm\settings.txt修改配置文件的镜像映射地址node_mirror和npm_mirror，道理一样，不再尝试。


Latch button defined in Companion doesn't latch.

Configure any latch button in Companion.
when StreamDeck software is open, the button doesn't latch if pressed from the Stream Deck device.
it does latch if pressing "Test" in Companion
it also will latch if using the device WITHOUT streamdeck software open.
its latched state will also be correct IF latched without streamdeck open, then you open streamdeck. but as soon as you interact with the button it will no longer latch.
so:
Companion Software only open - Press "Test" on bitfocus setup - WILL LATCH : YES
Companion Software only open - Press button on device - WILL LATCH : YES
Companion Software And Streamdeck software open - press "Test" on bitfocus setup: WILL LATCH: YES
Companion Software And Streamdeck software open - press button on device: WILL LATCH: NO
Device Firmware: 1.00.008
Companion v2.1.3
StreamDeck <IP_ADDRESS>28

think i posted this to wrong project? posted updated bug to main companion project.


capstone: 5.0.1 -> 5.0.3

Changes:

https://github.com/capstone-engine/capstone/releases/tag/5.0.2
https://github.com/capstone-engine/capstone/releases/tag/5.0.3

Description of changes

Things done

Built on platform(s)

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

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

[ ] sandbox = relaxed
[ ] sandbox = true

[ ] Tested, as applicable:

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

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

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

[x] Fits CONTRIBUTING.md.

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

@ofborg build python312Packages.capstone

Looks like the python packages don't build.

Switching to draft until it's sorted.


HHH-16726 adjust readability condition for strict read-write cache items according isolation level

items are always readable from 2ndLevelCache if we accept phantom reads
items are readable when cached timestamp is equal to current session timestamp (trust items which were cached by ourself)

Hi and thanks for creating a pull request for this issue. Please note that we don't merge improvements on maintenance branches, only bug fixes, so if you want to contribute this, please create a PR against the main branch.


fix(derive): remove unnecessary online feature decorator

#160  👈
main

This stack of pull requests is managed by Graphite. Learn more about stacking.

Join @refcell and the rest of your teammates on  Graphite


Adding a logo template inset after creating a template seems not to affect created mask size

I don't know if this is the intended mechanism but here it goes :)
If I don't want to use a predefined mask in my logo template and rely on the transparency of the image, I presume I should directly add the image to the template:
doc.logoTemplate = QRCode.LogoTemplate(image: image)

This lets QRCode library to generate a mask for the template. But the resulting logo image is way too big:

Then I inset the image:
doc.logoTemplate?.inset = 500.0

Enhancement suggestion: Here I believe inset should be a relative size inside the QR Code, similar to the shape insetFraction variable for pixel shapes. That way, we could write something like:
doc.logoTemplate?.insetFraction = 0.25

And the logo would get reduced to the necessary percentage size regardless of the CGImage size. PS: This should be done ignoring additionalQuietZonePixels value so that the logo size does not change with any additional quiet zone width.
BUG: Now here is the bug (or unexpected behavior). When I inset the image with the command above, The image itself gets reduced in size, but the mask stays the same. Please see the resulting image:

You can see that the pixels are masked with the original image size, while the image itself is smaller. Is this expected or am I again missing some configuration?
Thanks!

I'll answer this is two parts.
Part 1
doc.logoTemplate = QRCode.LogoTemplate(image: image)
This method of masking treats the image as the same size as the resulting QR code. Looking at the documentation.  The transparent part of the image lets the qrcode components through, and the non-transparent parts show the image.
If your cat/heart image fill the entire image, then the first image you present is correct according to the interfaces.
I'm guessing what you're looking for is something like this :-

Note that the image positions the image in the lower right with transparent pixels.

I'll need some time for part 2...

I understand that the first image is correct. But after insetting the image, shouldn't it also inset the mask? I believe there may be a bug there.

@keremerkan v14.4.0 has just been pushed up with an additional parameter to the LogoTemplate initializer (masksQRCodePixels) which turns on/off the qr pixel masking

@dagronf thanks! Just tested it and it works perfectly.


1821 cant rename stylesvariables after changing the parent name of a token group

https://github.com/tokens-studio/figma-plugin/assets/103296157/262ddee1-7d21-4cf5-b324-04f9facd069e

Tested and confirming that this works when renaming the parent level of a token-group, then checking sync variables & sync styles in the modal which results in successful renaming. Even maintains the connection after renaming on elements that have variables or styles applied.


Login with custom username

Kairos version:

1.0.0 alpine flavor
https://github.com/kairos-io/provider-kairos/releases/download/v1.0.0/kairos-alpine-arm-rpi-v1.0.0-k3sv1.24.3+k3s1.img
CPU architecture, OS, and Version:

Rpi3 aarch64
Describe the bug

I can't login with my created user
To Reproduce

I follow https://kairos.io/installation/raspberry to install Kairos on Rpi3
I created a cloud config file to create user :
cloud-config.yaml
stages:
   initramfs:
     - name: "Set user and password"
       users:
        ludea:
          passwd: "mypassword"

k3s:
  enabled: true

Copy paste into COS_PERSISTENT partition.
Boot the Rpi
Try to login with ludea username and mypassword
Expected behavior

Successfull login into Kairos with my created user
Logs

Additional context

I also try
name: "Default user"
stages:
   initramfs:
     - name: "Setup groups"
       ensure_entities:
       - entity: |
            kind: "group"
            group_name: "admin"
            password: "x"
            gid: 900
     - name: "Setup users"
       users:
        ludea:
          passwd: "!"
          shell: /bin/bash
          homedir: "/home/ludea"
          groups:
          - "admin"
     - name: "Set user password if running in live"
       if: "[ -e /run/cos/live_mode ]"
       users:
        ludea:
          passwd: "mypassword"
     - name: "Setup sudo"
       files:
       - path: "/etc/sudoers"
         owner: 0
         group: 0
         permsisions: 0600
         content: |
            Defaults always_set_home
            Defaults secure_path="/usr/sbin:/usr/bin:/sbin:/bin:/usr/local/bin:/usr/local/sbin"
            Defaults env_reset
            Defaults env_keep = "LANG LC_ADDRESS LC_CTYPE LC_COLLATE LC_IDENTIFICATION LC_MEASUREMENT LC_MESSAGES LC_MONETARY LC_NAME LC_NUMERIC LC_PAPER LC_TELEPHONE LC_ATIME LC_ALL LANGUAGE LINGUAS XDG_SESSION_COOKIE"
            Defaults !insults
            root ALL=(ALL) ALL
            %admin ALL=(ALL) NOPASSWD: ALL
            #includedir /etc/sudoers.d
       commands:
       - passwd -l root

Hi Ludea, and thanks for bringing this up, it definitely is lacking as a use-case in the docs
I think you need to specify the shell and the home directory as well but I'm not sure and I should try it out, something among the lines of:
stages:
   initramfs:
     - name: "Set user and password"
       users:
        ludea:
          groups:
          - "admin"
          passwd: "mypassword"
          shell: /bin/bash
          homedir: "/home/ludea"
k3s:
  enabled: true

can you try it out?

I've tried adding a user to a deployment of mine and I was successful with the following configs:
stages:
   initramfs:
     - name: "Set user and password"
       users:
        ludea:
          groups:
          - "admin"
          passwd: "mypassword"
          shell: /bin/bash
          homedir: "/home/ludea"

Written as /oem/user.yaml in the system. I'll update the docs accordingly

works as expected with 1.1.4


Update on readme.md

Overall, I believe the readme.md file should have been edited ages ago to attract more people and make it more clear on what qbot can do. The wiki explains how to set up the bot and such, but doesn't really explain the features or how qbot can be unique for others, therefore, I pulled this request to edit it.
When I also first came across qbot, I just skipped it as I was unsure if it was the correct thing I was looking for, I think this will be a huge benefit.
You may need to edit some stuff, like the Discord or anything else I did wrong, sorry about that.
(Reposted from request.)

Hi,
I am actually going to close/deny this pull request because I feel I have to rewrite some of the README.md file.
Thank you.


ISPN-4990 Run all security tests by default and in one maven profile

https://issues.jboss.org/browse/ISPN-4990

all security tests are now executed by default
all security tests are no consolidated under one maven profile and can be executed separately via mvn clean verify -pl server/integration/testsuite/ -Psuite.security

Pushed thanks

FAILURE - TeamCity Infinispan :: Pull requests monitor Build 8285/vjuranek:ISPN-4990 for bc2c5e5a8f8dec51e59a375fa27710a6fa511cc1
Tests: 11306, 1 failed (0 new), 23 ignored. Build time: 01:58:30
Failed tests detected

(since 09-Jan-2015) org.infinispan.server.test.query.ManualIndexingIT.testManualIndexing

Error message is logged
Build duration (secs) is too large: 7095


juicer//scripts/common/collisions_dedup_rearrange_cols.awk:19: fatal: 3 is invalid as number of arguments for asort

my scripts errors with the information of "juicer//scripts/common/collisions_dedup_rearrange_cols.awk:19: fatal: 3 is invalid as number of arguments for asort", and what's the reason of the error

and my collision.txt is empty, and I don't know why

users  538 Jul  7 18:07 header
users  78G Jul  8 03:25 merged_sort.txt
users 169M Jul  8 04:40 opt_dups.txt
users  44G Jul  8 04:40 dups.txt
users  34G Jul  8 04:40 merged_nodups.txt
users 1.4K Jul  8 04:46 inter_30.txt
users 1.9K Jul  8 05:03 inter.txt
users  15K Jul  8 05:03 inter_hists.m
users 8.6G Jul  8 05:05 abnormal.sam
users 7.7G Jul  8 05:07 unmapped.sam
users    1 Jul  8 05:12 collisions_nodups.txt
users    1 Jul  8 14:10 collisions.txt
users 326M Jul  8 14:17 inter.hic

This error is due to your awk / gawk being an older version.  It should be at least 4.0.2.
As for no collisions, this can happen if you don't have mapq >= 10 reads in your "abnormal.sam" file.


Keyvault Flexvol Windows Container Support

Will there be future support for windows containers to take advantage of this? Some customers doing application modernization with Windows are also looking for ways to manage secrets across all their containers.

Currently there is no windows support for this solution. Please +1 if this is a requirement for you.
cc @PatrickLang

This should be feasible, but needs a few high-level changes:

The flexvolume plugin binary needs to be deployed to the Windows hosts directly, not as a daemonset. Windows doesn't support mount projection back to the node or privileged containers with support to write directly to the node's filesystem
AKS-Engine custom script extension needs to be updated to handle step 1
Update place the binaries are written to be a properly ACL'd path on the Windows host. tmpfs is not available on Windows so they will need to be written to disk. Admins may want to enable bitlocker to mitigate the threat of a disk being removed from the system and secrets being recovered from it.

Any plans to support Windows containers?

I also need this feature.

This feature is being tracked in these issues. Please subscribe to get the latest:
https://github.com/kubernetes-sigs/secrets-store-csi-driver/issues/115
https://github.com/Azure/secrets-store-csi-driver-provider-azure/issues/29


track multiple logins on same user

It would be great to track multiple simultaneous logins (while online) to same user, rather than only the last login

They are tracked, see the UserStatus.connections collection.

cool, thanks


Possibility to precompilation is added

The files are changed in such a way, that all the packages are prebuild and then can be reused.
There are two parts static, that can be rebuild, and dynamic that cannot be.
In particular makeindex and algorithm2e cannot be prebuild and thus are moved to dynamic part.
This configuration should be suitable for both cases if you want or not to use the prebuild.

@AlekseyBuzmakov , thank you for the code.
I think that it is a very good idea to use precompilation in SPbPU-BCI-template. A book merged from authors' chapters can be very big and its compilation process can take a lot of time. Currently, I'm testing your pull request.

@AlekseyBuzmakov, I've tested the template in TeXStudio+MikTeX+Windows. The profit is about 4,5 sec (9 instead of 13,5) in my computer.


Fix UB in buffers_cat_view

std::array<char, N> is not a valid type for in-place polymorphic storage, due to the fact that it might not have the required alignment.
Removed unnecessary casts to void* in iter().

std::aligned_union is not available in some versions of the stdlib even though they claim to be C++11, try std::aligned_storage. Otherwise, I like where you are going with this!

Merged some of it


Add possibility to use a specified http scheme for the static referen…

…ce rewriter

Pull Request Test Coverage Report for Build 6200

5 of 6 (83.33%)  changed or added relevant lines in 1 file are covered.
No unchanged relevant lines lost coverage.
Overall coverage increased (+0.001%) to 55.473%

Changes Missing Coverage
Covered Lines
Changed/Added Lines
%

bundle/src/main/java/com/adobe/acs/commons/rewriter/impl/StaticReferenceRewriteTransformerFactory.java
5
6
83.33%

Totals

Change from base Build 6196:
0.001%

Covered Lines:
15912

Relevant Lines:
28684

💛  - Coveralls


Add Prometheus monitoring service

Signed-off-by: salaheldinsoliman<EMAIL_ADDRESS>Closes #27
Changes:

Types of changes
What types of changes does your code introduce?
Put an x in the boxes that apply

[ ] Bugfix (non-breaking change which fixes an issue)
[x] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation Update
[ ] Code style update (formatting, renaming)
[ ] Refactoring (no functional changes, no api changes)
[ ] Build related changes
[ ] Other (please describe):

Testing
Requires testing

[x] Yes
[ ] No

In case you checked yes, did you write tests?

[ ] Yes
[x] No

Comments about testing , should you have some (optional)
Further comments (optional)
If this is a relatively large or complex change, kick off the discussion by explaining why you chose the solution you did and what alternatives you considered, etc...

Codecov Report

Merging #95 (1da387e) into develop (1d55f2b) will increase coverage by 0.24%.
The diff coverage is 100.00%.

@@             Coverage Diff             @@
##           develop      #95      +/-   ##
===========================================
+ Coverage    84.62%   84.87%   +0.24%
===========================================
  Files           32       32
  Lines         1854     1884      +30
===========================================
+ Hits          1569     1599      +30
  Misses         230      230
  Partials        55       55

Flag
Coverage Δ

unittests
84.87% <100.00%> (+0.24%)
:arrow_up:

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

Impacted Files
Coverage Δ

cli/cli.go
68.90% <100.00%> (+0.39%)
:arrow_up:

internal/pkg/generate/generate_scripts.go
96.88% <100.00%> (+0.42%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.


Remove two-level directories for benchmarks and add the dwarf that a benchmark belongs to a meta-file inside the benchmark

+1
We already have a README files for each benchmark. We can mention the dwarf there.

Hey Sujay! I suggest we put it in a JSON file so that as the suite grows, we can run tools to automatically filter on characteristics (dwarf, language supported, etc.) of benchmarks.

Okay so the meta-file will be at the top level directory, not inside benchmark.

Why? I believe every benchmark should have one.

A top level JSON containing all the benchmarks makes more sense than individual JSON in each benchmark directory. You can read the JSON file initially and create tasks to compile and run benchmarks in one go.

So what's the plan exactly?  Just have directories like bfs, crc, etc. and either through an information at the top level or within that directory say that it's a graph-traversal or combinatorics dwarf?

@gnuvince, yes my initial proposal is to have

stable: directory for stable fully integrated benchmarks that are up to the quality standard of the suite (self-checking test, multiple coherent language implementations, fast running times, etc.), starting with the current 12 dwarfs
unstable: staging directory for benchmarks that are not fully integrated yet but have shown useful in the past or maybe useful in the future (other various benchmarks lab members have collected in the past, COMP 621 benchmarks, etc.) but would benefit from all being in a single place

Each benchmark will have its own directory and may draw from common stuff provided by the suite. To minimize redundancy between each benchmark implementation and minimize the number of implicit assumptions behind the structure of benchmark implementations, I will factorizing common parts away.
I may or may not decide to introduce a dependency system on common modules to simplify extending the suite with new benchmarks. I will do a first pass on the current Ostrich benchmarks and if I end up doing tedious work, I'll do it.
@sujaykathrotia I would like people to have each benchmark stand on its own so that people can cherrypick the benchmarks they like simply by copying the common Makefile/drivers/utilities, and keep only the directories of the benchmarks they care about, without having to edit the top-level JSON file. It means other tools will have to scan through the directories to assemble the information for the entire collection. I want to prioritize convenience for users of the suite, rather than the tool writers.

Thinking through it, I am considering migrating benchmarks such that they each have their own github repository and adhere to a set of conventions set by the suite. That should make the toolchain and the basic infrastructure of the suite reusable beyond Ostrich as well as allowing users to configure the collection of benchmarks to their needs simply by changing the list of references to github repos.
Think of it like each benchmark is a node module.

I think a repo for each benchmark would be very complicated. Users will have to download all the repos before starting the benchmarking. In case of node modules, you can require them just by using npm install command. You will have to create a tool which does the same for the benchmarks but is it worth the trouble?

Git has a notion of sub repos. I'll look into it this afternoon and evening.
On Monday, November 9, 2015, Sujay Kathrotia<EMAIL_ADDRESS>wrote:

I think a repo for each benchmark would be very complicated. Users will
have to download all the repos before starting the benchmarking. In case of
node modules, you can require them just by using npm install command. You
will have to create a tool which does the same for the benchmarks but is it
worth the trouble?
—
Reply to this email directly or view it on GitHub
https://github.com/Sable/Ostrich/issues/10#issuecomment-155165865.

I don't like the idea of splitting Ostrich into a bunch of loosely coupled repositories.  To me, Ostrich is not a meta-framework for aggregating and running benchmarks, it is a very specific selection of benchmarks which happens to include a little infrastructure for running them.  I feel strongly that splitting the benchmarks into their own repositories would increase the difficulty of running the benchmarks for users, which goes against the goal of Erick of prioritizing the convenience of the user (i.e. they'll need to know to git clone 12 extra repos or put URLs of those repos in some config file, which is objectively harder than just doing git clone ostrich && cd ostrich && make), but it would also make modifications harder than necessary for us.
If I had to describe my own vision for the organization of Ostrich, it would be a simple directory structure with a global Makefile, a directory containing the necessary dependencies (e.g. a runner script for JavaScript) and the benchmarks reduced to an information file (containing information such as dwarf, but also default run-time parameters) and very simple code structure.  Of course, I haven't implemented it, so issues would surely be found, but the core idea is that once somebody checks out the repository, running make is the only step necessary for running the benchmarks.
    Makefile
    dependencies/
     |-- runner.py
    bfs/
     | info.json
     |-- c
         |-- main.c
         |-- core.c
     |-- matlab
         |-- main.m
         |-- core.m
    crc/
     | info.json
     |-- c
         |-- main.c
         |-- core.c
     |-- matlab
         |-- main.m
         |-- core.m
    nqueens/
     | info.json
     |-- c
         |-- main.c
         |-- core.c
     |-- matlab
         |-- main.m
         |-- core.m

I am not going to argue different visions of organizing things here as they are to some extend somewhat arbitrary, the most important thing is that it is applied consistently. I will do a first pass on a couple of benchmarks, extract the key ideas behind the organization, do a presentation in front of the group to gather feedback, and improve it.
Otherwise, I am keeping the final call on decisions since nobody else has decided to bite the bullet until now (in 25 years Laurie tells me...) and I will be the one maintaining the thing for the next 2 years. Once I have a working proposal, I will check with other people and potential users whether its simple enough and will refine it from there.
I do not want to get stuck on bike shed design discussions... You guys are encouraged to provide comments on the ideas I am presenting here but I would like you to focus these comments on things I might have overlooked in terms of use cases, especially regarding making your own life simple as a compiler writer.
However, please refrain from arguing a particular organization over another one unless you intend to fully validate your idea by doing the work of refactoring the benchmark suite and support everybody else's use cases. Instead, please extract from your idea the underlying need you need to be met and I'll try my best to accomodate it while meeting all other requirements for the suite and other people use cases.

See the current version of the 'matlab-version' branch to see how it works. The benchmarks are part of the suite but each can also have their own repository in the future as long as the directory structure and the configuration file 'benchmark.json' structure is followed. The dwarf category is now a property in the configuration file. See the lud benchmark as an example.


update aeron version 1.10.4

@ronenhamias Please sign the Contributor License Agreement!
Click here to manually synchronize the status of this Pull Request.
See the FAQ for frequently asked questions.

@ronenhamias Thank you for signing the Contributor License Agreement!


chore: remove unused video files

Thank you for your contribution to the IC Developer Portal. This repo contains the content for https://internetcomputer.org and the ICP Developer Documentation, https://internetcomputer.org/docs/.
If you are submitting a Pull Request for adding or changing content on the ICP Developer Documentation, please make sure that your contribution meets the following requirements:

[ ] Follows the developer docs style guide.
[ ] Follows the best practices and guidelines.
[ ] New documentation pages include document tags.
[ ] New documentation pages include SEO keywords.
[ ] New documents are in the .mdx file format to support the previous two components.
[ ] New documents are registered in /sidebars.js, otherwise, it will not appear in the
side navigation bar.
[ ] Make sure that the .github/CODEOWNERS file is
filled with new documents that you added. This way we can ensure that future Pull Requests are reviewed by the right people.

Repo Policies Ruleset error is still showing though it's not created by a bot. Asked IDX: https://dfinity.slack.com/archives/CL7Q2RXUM/p1734643192013919?thread_ts=1734359404.730649&cid=CL7Q2RXUM


AdMob Mediation Implementation with AppLovin for Unity3D

Hi,
It's currently not clear how to implement AdMob mediation with AppLovin.
Admob instruction, says to download GoogleMobileAdsAppLovinMediation.unitypackage
Ref: https://developers.google.com/admob/unity/mediation/applovin#step_3_import_the_applovin_sdk_and_adapter
While AppLovin docs instruct to download applovin-admob-adapter.jar, and create a custom event through AdMob dashboard.
Ref: https://github.com/AppLovin/SDK-Network-Adaptors/tree/master/AdMob/Android/Unity
Which one is the correct one?

So there are two ways to integrate AppLovin via AdMob:

Via AdMob, and you follow all their instructions. OR
As custom events contained in this GitHub repo.

@thomasmso, the guides on AdMob are wrong, there is no longer PlacementId over AppLovin as far as I've noticed. Didn't work for me without setting a PalcementId.

That is correct, as AppLovin as deprecated placements in lieu of zones. However, if you plan to integrate AppLovin via AdMob, our adapters with zone support is still pending AdMob approval (ETA ~1-2 weeks). The custom events in this GitHub repo has support fro zones already.
More info on integrating AppLovin zones with AdMob -Android / iOS.

@thomasmso That's great to hear.
Actually I just integrated Zones with AdMob.
Interstitial works great, however I get No-Fill for Banner, although my test mode is enabled.
Using Android SDK 7.8.2 and AdMob Adapter
Any word on that?

There is also a toggle for banners in AppLovin's dashboard, make sure that is "ON". Please see attached image for reference.

Yeah saw that, it was enabled during all my tests

It might also help to reset your device's IDFA in "Settings" -> "Privacy" -> "Advertising" -> "Reset Advertising Identifier"

Still not luck, same result.
Can you confirm that banner mediation with AdMob is actually working?

Lets take this conversation off GitHub. My email is<EMAIL_ADDRESS>


How can I get the group id from a (working) invitation link of group?

I know that if joining the group I can get the ID, but is there a way to find this ID without join the group, just with the invite URL?
If not, how easiest way to know the ID of a recently joined group? get_all_chat_ids( ) does not look best option.

When you join the group you can save in a variable the group id with the return of this function:
id_group = message.chat_id['_ serialized']
the group ID is composed of the group creator number, the unique group id and the ending "@ g.us"
like this<EMAIL_ADDRESS>


Add update config script to update projects

What this PR does / why we need it

Things to check/remember before submitting

If you made content changes

Run make lint dev to render and proofread content changes locally.
Bump last_review_date in the front matter header if you reviewed the entire page.

I have to fix some broken links (since I remove old CRDs) I may keep them though

We need to make sure this file conains all the CRD references


Cannot use Y column type

Hello,
I'm trying to use money type in my DBF file, but I tried all TableTypes and still getting this error: Table not supports Y column type
`        $header = HeaderFactory::create(TableType::VISUAL_FOXPRO);
    // příprava tabulky pro faktury vydané
    $invoceTable = new TableCreator(self::FILEPATHINVOICE, $header);
    $invoceTable
        ->addColumn(new Column([
            'name' => 'CASTKA',
            'type' => FieldType::CURRENCY,
            'length' => 19,
            'decimalCount' => 4,
        ]))`

Is it a bug or I'm wrong somewhere?
Thanks Michal

Hi! Were you able to fix this? Or at least could you share the exact error you got?


Support smaller indices in Sparse Matrix

Issue type
Feature Request
Have you reproduced the bug with TensorFlow Nightly?
Yes
Source
source
TensorFlow version
2.13
Custom code
Yes
OS platform and distribution

Mobile device

Python version

Bazel version

GCC/compiler version
No response
CUDA/cuDNN version
No response
GPU model and memory
No response
Current behavior?
Sparse tensors have only int64 index https://www.tensorflow.org/api_docs/python/tf/sparse/SparseTensor
We have some sparse matrices which do not have that big indices, but we have rather lots of numbers, but still it's sparse enough s using dense matrix would be wasteful.
Having support for int32 and int16 for index would lead to lots of memory savings, effectively having 2-4x smaller memory footprint of the sparse matrix.
Standalone code to reproduce the issue
>>> import tensorflow as tf
>>> tf.sparse.SparseTensor(indices=[[0, 0], [1, 2]], values=[1, 2], dense_shape=[3, 4])
<tensorflow.python.framework.sparse_tensor.SparseTensor object at 0x000002064DEBFFA0>
>>> tf.sparse.SparseTensor(indices=tf.constant([[0, 0], [1, 2]], dtype=tf.int64), values=[1, 2], dense_shape=[3, 4]).indices
<tf.Tensor: shape=(2, 2), dtype=int64, numpy=
array([[0, 0],
       [1, 2]], dtype=int64)>
>>> tf.sparse.SparseTensor(indices=tf.constant([[0, 0], [1, 2]], dtype=tf.int32), values=[1, 2], dense_shape=[3, 4]).indices
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\tools\miniconda3\envs\wanna-hmic-cc\lib\site-packages\tensorflow\python\framework\sparse_tensor.py", line 125, in __init__
    indices = ops.convert_to_tensor(
  File "C:\tools\miniconda3\envs\wanna-hmic-cc\lib\site-packages\tensorflow\python\profiler\trace.py", line 183, in wrapped
    return func(*args, **kwargs)
  File "C:\tools\miniconda3\envs\wanna-hmic-cc\lib\site-packages\tensorflow\python\framework\ops.py", line 1662, in convert_to_tensor
    raise ValueError(
ValueError: Tensor conversion requested dtype int64 for Tensor with dtype int32: <tf.Tensor: shape=(2, 2), dtype=int32, numpy=
array([[0, 0],
       [1, 2]])>
>>> tf.sparse.SparseTensor(indices=tf.constant([[0, 0], [1, 2]], dtype=tf.int16), values=[1, 2], dense_shape=[3, 4]).indices
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
  File "C:\tools\miniconda3\envs\wanna-hmic-cc\lib\site-packages\tensorflow\python\framework\sparse_tensor.py", line 125, in __init__
    indices = ops.convert_to_tensor(
  File "C:\tools\miniconda3\envs\wanna-hmic-cc\lib\site-packages\tensorflow\python\profiler\trace.py", line 183, in wrapped
    return func(*args, **kwargs)
  File "C:\tools\miniconda3\envs\wanna-hmic-cc\lib\site-packages\tensorflow\python\framework\ops.py", line 1662, in convert_to_tensor
    raise ValueError(
ValueError: Tensor conversion requested dtype int64 for Tensor with dtype int16: <tf.Tensor: shape=(2, 2), dtype=int16, numpy=
array([[0, 0],
       [1, 2]], dtype=int16)>

Relevant log output
No response

@racinmat,
Could you please elaborate about your Feature. Also, please specify the Use Cases for this feature. Thank you!

Hi, how exactly should I elaborate?
The usecase is simple:
every usecase where the dimensions are <=int32 will have 2x smaller memory footprint if using int32 instead of int64 for indices.
We have a use-case where we represent n-gram by sparse matrix, and these sparse matrices take up to 100GB memory, beucase we have lots of them.
Implementing this would lower the memory consumption to 60GB, because we would go from 20 bytes per single value to 12 bytes.


Add maldives holidays

Proposed change

Initial support for Maldives holidays.
Type of change

[x] New country/market holidays support (thank you!)
[ ] Supported country/market holidays update (calendar discrepancy fix, localization)
[ ] Existing code/documentation/test/process quality improvement (best practice, cleanup, refactoring, optimization)
[ ] Dependency update (version deprecation/upgrade)
[ ] Bugfix (non-breaking change which fixes an issue)
[ ] Breaking change (a code change causing existing functionality to break)
[ ] New feature (new python-holidays functionality in general)

Checklist

[x] I've followed the contributing guidelines
[x] I've added references to all holidays information sources used in this PR
[x] The code style looks good: make pre-commit command generates no changes
[x] All tests pass locally: make test, make tox (we strongly encourage adding tests to your code)

Pull Request Test Coverage Report for Build<PHONE_NUMBER>

48 of 48 (100.0%)  changed or added relevant lines in 4 files are covered.
No unchanged relevant lines lost coverage.
Overall coverage remained the same at 99.977%

Totals

Change from base Build<PHONE_NUMBER>:
0.0%

Covered Lines:
9708

Relevant Lines:
9708

💛  - Coveralls


Upload baseline for bpf2c tests

Signed-off-by: Alan Jowett<EMAIL_ADDRESS>Description
For correctly determining the code coverage delta there needs to be a baseline value from the main branch. Both the build and bpf2c-test yml files upload code coverage data and should run on push to main.
Testing
CI/CD
Documentation
N/A

Codecov Report

Merging #874 (f798ca8) into main (3470d6d) will decrease coverage by 47.63%.
The diff coverage is n/a.

@@             Coverage Diff             @@
##             main     #874       +/-   ##
===========================================
- Coverage   77.78%   30.14%   -47.64%
===========================================
  Files          80        3       -77
  Lines       13853      773    -13080
  Branches        0      482      +482
===========================================
- Hits        10775      233    -10542
+ Misses       3078      249     -2829
- Partials        0      291      +291

Impacted Files
Coverage Δ

libs/platform/user/ebpf_platform_user.cpp

libs/ebpfnetsh/elf.cpp

libs/platform/user/framework.h

libs/platform/ebpf_ring_buffer.c

libs/platform/ebpf_trampoline.c

libs/platform/user/ebpf_handle_user.c

libs/platform/ebpf_epoch.c

libs/api_common/api_common.cpp

libs/platform/ebpf_platform.h

libs/thunk/mock/mock.cpp

... and 73 more

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 3470d6d...f798ca8. Read the comment docs.


[Feature Request] make CookieManager constructor wait until cookies have been read.

I am Using extra-streamlit-components==0.1.56. I have noticed that when instantiated, CookieManager takes some time after the constructor returned to read the cookies and if the cookies are attempted to be read, the calls will successfully return like if no cookies were there.
A way I have done to mitigate the problem is the next code:
cookie_manager = stx.CookieManager()
inited = False
while not inited:
    try:
        inited = cookie_manager.get_all()
    except st.errors.DuplicateWidgetID:
        pass
    if not inited:
        sleep(0.02)

However polling is not ideal. Also this only works because the _xsrf token is always generated by streamlit regardless of the necessity so I know I will never be stuck in the loop.

How can you avoid the infinite reload issue with cookies? It seems like sometimes - even on 2GB + servers. - the page reloads almost indefinitely for cookies.

This looks related to the issue I just made: https://github.com/Mohamed-512/Extra-Streamlit-Components/issues/58

Should be fixed in 0.1.70


Dispose of status bar and commands when deactivating

Requirements

Filling out the template is required. Any pull request that does not include enough information to be reviewed in a timely manner may be closed at the maintainers' discretion.
All new code requires tests to ensure against regressions.

Description of the Change
On package deactivation, remove any added commands and the status bar tile, if present.  There was an existing dispose method, but that never gets called.  The proper name is deactivate.
Test plan:

Disable teletype
Try searching for teletype commands (expected: none to exist)
Status bar tile should not be visible
Re-enable teletype
Try searching for teletype commands (expected: commands exist)
Status bar tile should be visible

Alternate Designs
None.
Benefits
Proper package deactivation.
Possible Drawbacks
None.
Applicable Issues
Fixes #199

@50Wliu: According to CI, there's one failing test as a result of these changes. Wanna look into that failure and post a follow-up comment here once it's resolved? If you need a hand, let me know and I'll take a look.

@jasonrudolph Thanks for the ping.  I had assumed that buildPackage was also activating the package, but it wasn't because activate() is sync in teletype-package.js and the comment at the end of that function leads me to believe that it should stay that way instead of awaiting this.signInUsingSavedToken().  Therefore I've added a simple existence check before disposing of subscriptions.

I went ahead and made a small tweak in 5f40fa8, but otherwise this looks good.
Amazing work, sir! 💯

Thanks for this, @50Wliu. And extra thanks for sharing a test plan.


Basic support for running multiple tests

This change introduces a new helper class, ApplicationSet,
representing an arbitrary number of apps. This change let me
add support for building and summarizing a larger number of apps.
I had to decouple the compiler runners from the input / output
path pair as these vary for the individual apps within the
set (right now the logic is that basically one folder = one app).
I have added a new switch compile-subtree and two new options
--nojit and --noetw with hopefully self-explanatory purpose.
I haven't yet integrated the bucketing logic as I need to switch
over to actually measuring the statistics and working on the
presentation.
Thanks
Tomas

One thing that comes to mind if we're going to replace CoreCLR / CoreFX test suite invocation with SuperIlc is cleaning up large artifacts so we don't exhaust disk space (mainly during lab / CI runs which have small VHDs generally). We'll probably want to preserve logs for sure, but in compile-subtree mode, we probably want the option to delete all binaries as we go. This can wait until you integrate with the test run scripts / wire it up into the CI, just wanted to call it out.

Thanks for pointing this out. As I responded on some of the detailed comment threads, I have already added basic functionality to PathHelpers for locating / cleaning up the output folders; after all I hit the folder cleanup issue myself in my local testing. For now I cannot further expand the set of options like /nocleanup or /noexe before I hear from Joe Sequeira as to how to implement that in the new CommandLine API.

Thanks for tons of offline help from Jon Sequeira I have finally fixed the 7-parameter problem and added the --noexe argument. @nattress, could you please take another look?

Looks great to me


describe the HTTP method config

Concerns:
https://github.com/iterative/dvc/pull/4553

You may disregard these recommendations if you used the Edit on GitHub button from dvc.org to improve a doc in place.

❗ Please read the guidelines in the Contributing to the Documentation list if you make any substantial changes to the documentation or JS engine.
🐛 Please make sure to mention Fix #issue (if applicable) in the description of the PR. This causes GitHub to close it automatically when the PR is merged.
Please choose to allow us to edit your branch when creating the PR.
Thank you for the contribution - we'll try to review it as soon as possible. 🙏

This change is

@jorgeorpinel Done.

(I meant to approve there ☝ 😋) Merged restyled PR.


[#160506139] CF 4.5.0 upgrade

What
Upgrade to CF 4.5.0.  This required a number of other changes. See individual commit messages for details.
How to review
Test both an upgrade from current master, and a new deployment.
Who can review
@jpluscplusm and myself will review/merge this.

This was manually merged during the gitpocalypse of late October 2018 (https://blog.github.com/2018-10-21-october21-incident-report/). Any discrepancies should be noted and show'n'tell'd.

This was manually merged during the gitpocalypse of late October 2018 (https://blog.github.com/2018-10-21-october21-incident-report/). Any discrepancies should be noted and show'n'tell'd.

This was manually merged during the gitpocalypse of late October 2018 (https://blog.github.com/2018-10-21-october21-incident-report/). Any discrepancies should be noted and show'n'tell'd.


Wilderness

Hello!
Thought i'd open this pull so you can see what i've done with the keyboard control and other bits.
The synth grid key control works really nicely now. You can do most things possible with the mouse by simple keys or key combos instead. It's basically UP DOWN LEFT RIGHT for movement, and optionally SHIFT to change value on selected module. PAGE UP / DOWN, and HOME / END jump four modules up/down or to first and last module respectively. RETURN opens container modules or New module dialogue if the cell is empty. TAB (+ SHIFT for reverse) now changes track from inside synth grid as well as track editor. SHIFT + ESC cycles editor focus backwards.
I've tried hard not to muck anything up and follow the principles that you laid out in your code, just by extending modes where necessary and adding some control structures. I removed focus from AutomationTrackInfo as it seemed to not be necessary and was annoying to have to press ESC an extra time to get back to the Pattern Editor.
I also modified the method for processing mouse wheel values as i was getting a lot of glitches if scrolling slowly due to some condition statements taking '0' values and turning them into +/-1 variously. It was actually possible to get the pattern editor to scroll in reverse at times.
I was trying to find a way to make a display message when changing track from the synth grid, because pushing messages to the messagedisplay mechanism is too slow and they stack up if you change track several times in quick succession meaning the track number display can be going for many seconds after the action and showing incorrect info. Anyway, had to give up because altering the queueing functions ended up giving me all sorts of crashes and memory access errors (mainly due to the fact i'm stupid). I was attempting to generate a 'buffer' stack that would pull just the 'track' messages and then somehow only push the last one into the main queue. Apparently not so simple as it seems! (<- i ditched all this stuff btw, only the original methods are there now, and it just shows the slow track change messages.)
This is not merge-ready by any means and definitely requires some tweaks and cleaning up. But is basically functionally ready.
Ok, have a nice weekend!

Hello, some useful looking stuff here, thanks a lot. I put some hopefully useful comments in the code.
I am very interested in incorporating at least some of this in the main fork but I would prefer if one feature was in its own PR (and having them in a separate branch might make life easier for you as well, when the merge comes :) ). Hopefully, you can cherrypick the related commits in a new branch and then make a PR out of that.
Could you (or we - I will of course help) start with the keyboard shortcuts for the SynthGrid? Or, if that feels too big a thing then maybe just the edit skip count display?
In the meantime, I could work on the MessageDisplayer because you are describing the exact annoyment I have with it. I think something like making it possible to replace the topmost message (if it's not more important or something) would suffice. That's something where I think I could improve at least the documentation if it has the thread safety problems as you describe.

Check this out: https://github.com/kometbomb/prototracker/pull/8
I just updated showMessage() so that you don't need to mangle the queue manually. Check SequenceRowEditor for a simple example how to use the new feature.

hiya,
I am getting my head around git and have learned how to spin off separate features into their own commits and branches. From now on i'll commit more often on each change to save myself having to pick through a huge dump of code... duh! Learning curves...
I've opened a new pull #24 to check that i'm following the right procedure (making sure my edits are based on top of your origin/master so it's trivial to merge etc.)
I'll close this request and get working on making a nice clean branch with the SynthGrid key methods. I have also added preprocessor macros to the 'mac keys' in my wilderness branch so can also make a branch with them in.
Few things to do, so i'll get busy with that and also looking at the changes you made the other day.
Byeee.
^^^^^^
{ + | + }
<
nnnn


Can't use FOR from cmd.exe

Prerequisites

[X] Write a descriptive title.
[X] Make sure you are able to repro it on the latest released version
[X] Search the existing issues.
[X] Refer to the FAQ.
[X] Refer to Differences between Windows PowerShell 5.1 and PowerShell.

Steps to reproduce
I'm trying to run this FOR script which works in cmd.exe:
FOR /F "Tokens=*" %A IN ('DIR /al /b /s G:\') DO @( for /F "Tokens=2,4 delims=<[]>" %B IN ('DIR /al "%~A"? ^| FIND /I " %~nA " ^| FIND /I "<" ^| FIND /I ">" ') DO @( ECHO.%~B: "%~A" → "%~C" ) )

Expected behavior
Print all links

Actual behavior
Error:
`
ParserError:
Line |
   1 |  FOR /F "Tokens=*" %A IN ('DIR /al /b /s G:\') DO @( for /F "Tokens=2, …
     |     ~
     | Missing opening '(' after keyword 'for'.

### Error details

_No response_

### Environment data

```powershell
`
$PSVersionTable

Name                           Value
----                           -----
PSVersion                      7.1.3
PSEdition                      Core
GitCommitId                    7.1.3
OS                             Microsoft Windows 10.0.19043
Platform                       Win32NT
PSCompatibleVersions           {1.0, 2.0, 3.0, 4.0…}
PSRemotingProtocolVersion      2.3
SerializationVersion           <IP_ADDRESS>
WSManStackVersion              3.0

### Visuals

_No response_

for is not a native application, it's an internal command used by Command Prompt, so yes, you cannot use it without using Command Prompt.
PowerShell does not follow the language nor internal functions of Command Prompt, it has its own syntax and grammar that needs to be followed, just like any other programming language.
Try Get-Help about_for for instructions on using PowerShell's for statement.

So could you reformulate that command for powershell?

If you're looking for reparse points, try:
Get-ChildItem G:\ | Where-Object Attributes -match ReparsePoint

If you're looking for reparse points, try:
Get-ChildItem G:\ | Where-Object Attributes -match ReparsePoint

If you need to search recursively, add the -Recurse parameter to Get-ChildItem.

It works, but it adds too much metadata when searching recursively. How to get this result:
G:\folder -> D:\share\doc\html\use
G:\xx -> C:\doc\yy

Get-ChildItem G:\ | Where-Object Attributes -match ReparsePoint | Format-Table FullName,Target

Get-ChildItem G:\ | Where-Object Attributes -match ReparsePoint | Format-Table FullName,Target

That's more like it, however it does not display the full path, just abbreviations:
PS C:\> Get-ChildItem -Recurse C:\ | Where-Object Attributes -match ReparsePoint | Format-Table FullName,Target

FullName                                 Target
--------                                 ------
C:\Program Files\Common Files\Oracle\Ja… C:\Pr…

Get-ChildItem -Recurse C:\ | Where-Object Attributes -match ReparsePoint | Format-Table FullName,Target -AutoSize
or
Get-ChildItem -Recurse C:\ | Where-Object Attributes -match ReparsePoint | Format-List FullName,Target

@iSazonov perfect just what needed.


Add claircli tool to interact with clair

A simple python cmd tool to interact with clair,  support html/json report format

thanks


Update to the latest Love version?

Hey, want to update this to work with 0.10?

Hi there. I just assumed that it did work on the latest version of LÖVE, but I have not tried it, to be honest (It turns out that I can only afford to do really small games, so I actually don't need something like love-loader most of the time).
Does love-loader break on the latest LÖVE? What error did you get?

Hi, I have marked this project as deprecated and will close all open issues.


Embed CRD's in synthesized output

cdk8s import allows us to generate language bindings for CRD's and define custom resources.
For those custom resources to actually work though, the CRD itself also needs to be applied to the cluster. It would be nice if cdk8s would output the CRD's themselves into some directory during import so that that we can call kubectl apply on that directory after synth.

Keep


Ads errors

JS console shows
Refused to execute inline script because it violates the following Content Security Policy directive: "script-src 'self' https://*.carbonads.com https://*.buysellads.net https://*.buysellads.com https://*.servedby-buysellads.com https://*.carbonads.net". Either the 'unsafe-inline' keyword, a hash ('sha256-9wgUeE7o26PX9BlGznRgR+gJarj/ugHxm3UOzKP13EE='), or a nonce ('nonce-...') is required to enable inline execution.
I'm worried about this extension calling domains I did not expect, so I'm removing it locally.

Those lines are safe and used to whitelist the CarbonAds resources in order to display the ads correctly.
We use CarbonAds as a revenue model to cover the costs of services eg (Server, Domain name, apis...)


Remove double brackets in documentation

@gregorgorjanc
Even with the description, the double brackets in documentation (e.g. pedigree [PEDIGREE [PEDIGREE ...]]) are still confusing. I suggest we just remove the original double brackets and use multiple brackets instead.
Since if we want to input multiple entries the format we actually use is by putting an empty space between the entries, maybe pedigree [PEDIGREE] [PEDIGREE] ... is a better way to represent the multiple entries.
Or we can simply use the default help message output for the multiple entries, that we kept only one bracket with some ellipses, (e.g. pedigree [PEDIGREE ...]).

@XingerTang I like this proposal: pedigree [PEDIGREE ...]