How to disable __uncache parameter?

offline-plugin always adds a __uncache parameter to the URLs it loads from the server.
My assets already all contain the hash value of the contents in the file name itself, so __uncache seems useless to me (or, even worse, probably causes unnecessary invalidation):
http GET /webapp/7cb0d2482ecadc1b80eb0abe457371b6.png?__uncache=21a99d000ee055d2579e
http GET /webapp/324b4fcaf164735c627269504b7bc28e.png?__uncache=21a99d000ee055d2579e
http GET /webapp/2-chunk-480c0256dd051a966906-en.js?__uncache=21a99d000ee055d2579e
http GET /webapp/3-chunk-573b4ab141a3dab33cd7-en.js?__uncache=21a99d000ee055d2579e
http GET /webapp/4-chunk-ae79661295afed3d3543-en.js?__uncache=21a99d000ee055d2579e
http GET /webapp/5-chunk-01dbb996411a6dbe1eac-en.js?__uncache=21a99d000ee055d2579e
http GET /webapp/6-chunk-ff86e13721e2469ca83b-en.js?__uncache=21a99d000ee055d2579e
http GET /webapp/7-chunk-b3666d1292d69a0b0831-en.js?__uncache=21a99d000ee055d2579e

The only way I found to stop offline-plugin to do this is by supplying a version: () => null option, but that seems slightly hackish to me.
Is there a sane way to disable __uncache or am I trying to do something bad here?

Hey @jampy! Indeed, offline-plugin always adds __uncache param to bust browser and proxy caches when it's installing/updating and downloading new assets. This is reasonable (safe) default behavior and unfortunately there is no way to prevent it at a moment, but I understand that it might be needed.
If we are speaking about disadvantages of it, then yes, such a way is causing unnecessary invalidation for assets which already have its unique name and are "forever cached" via HTTP.

The only way I found to stop offline-plugin to do this is by supplying a version: () => null option, but that seems slightly hackish to me.

It's indeed hackish and more, it's dangerous. Please don't do this. By not providing a version you are actually marking your SW unupdatable util you start specifying it again.
Though, while there are currently no way to remove __uncache from the requests, we can actually remove requests themselves. By using updateStrategy: 'changed' option you can to the offline-plugin that it shouldn't re-download assets if they weren't changed. This is done by files hash comparison which are stored separately by the offline-plugin.  With this way, you will have  actually requests to the assets only if they were changed so there won't be unnecessary invalidation, because they will be requested exactly once by your ServiceWorker.
Anyway, I see your concerns here and it indeed would be good to have an option to disabled __uncache behavior. Thanks for reporting this! 👍

Hey @jampy, have my answers helped you?

Hi @NekR

The only way I found to stop offline-plugin to do this is by supplying a version: () => null option, but that seems slightly hackish to me.

It's indeed hackish and more, it's dangerous. Please don't do this. By not providing a version you are actually marking your SW unupdatable util you start specifying it again.

I don't understand - why? Since the filenames are already unique themselves, what's the use for __uncache? I mean, why is it "dangerous"?
Having unique file names (not just unique URLs) is an essential part of my deployment strategy. The app will be served from multiple servers (load balancing). Since deployment can take a few minutes, I must guarantee that each version (file bundles) of the app remains available from all servers.
When a client requests sw.js in the middle of a deployment process, then it will request Webpack chunks of the newer or older version, depending of which sw.js version the client catched.
Therefore, I plan to upload all chunks to Amazon S3 or something like that - and leave old versions there for a relatively long time. It's just the sw.js version deciding the "current" version of the app.
For this to work, I must absolutely avoid that a already-deployed chunk (for example, 5-chunk-5e41a8ff6b1b1778bb3a-en.js) gets replaced with new content without changing the name. That would be dangerous.
With these prerequisites, having an additional __uncache parameter seems redundant at best.

By using updateStrategy: 'changed' option you can to the offline-plugin that it shouldn't re-download assets if they weren't changed.

I was and I still am using that option. Last time I checked it seemed that the service worker always requests all URLs. I saw a lot of HTTP 304 responses.
However, I tried to reproduce it right now and I was not able to. In fact now it seems that the service worker really only requests files that changed. Maybe this is due to updated NPM packages, I don't know (my package.json is still the same, but I do reinstall all packages often).

Also, take a look at this issue: webpack/webpack#1315
At stated from it, you cannot simply rely on chunk's hash because content of a chunk may change, but its hash not.

I think that issue tells the exact opposite: The hash may change even if the contents remain the same - one more source of invalidation.
As a side note, I wonder why the service worker itself ( sw.js) does not have that __uncache dummy parameter. Isn't that the one URL that would need an anti-cache mechanism the most, since it contains all the filnames and hashes, AFAIK?

I don't understand - why? Since the filenames are already unique themselves, what's the use for __uncache? I mean, why is it "dangerous"?

Dangerous here is that you deploy SW without its version and that you use undocumented (probably a bug) feature. You may do that, but I don't provide support for such cases.

With these prerequisites, having an additional __uncache parameter seems redundant at best.

It's indeed redundant in your case, but I don't see how it harms you. I already said that it probably makes sense to have a way to disable __uncache, but it makes 0 sense to me to just stop doing what I do now and start implementing this feature. After all, any PR is welcome.

However, I tried to reproduce it right now and I was not able to. In fact now it seems that the service worker really only requests files that changed. Maybe this is due to updated NPM packages, I don't know (my package.json is still the same, but I do reinstall all packages often).

There are enough reasons why hash of a file may change. See this: https://github.com/jhnns/webpack-hash-test

I think that issue tells the exact opposite: The hash may change even if the contents remain the same - one more source of invalidation.

This too. You can experience both problems. Do you use webpack generated hashes in your file names? If so, then you have that revalidation anyway. It's not related to offline-plugin or SW at all. But offline-plugin will solve this for you, see this issue: https://github.com/NekR/offline-plugin/issues/129

As a side note, I wonder why the service worker itself ( sw.js) does not have that __uncache dummy parameter. Isn't that the one URL that would need an anti-cache mechanism the most, since it contains all the filnames and hashes, AFAIK?

You cannot change URL of your ServiceWorker and URL's search (?) part is used in comparison. Only hash (#) is dropped from comparison.
You should control SW's file caching on the server and better set it to not cache. If you don't, you probably already have problems with it.
New spec dictates to load SW's file with bypassing the cache by default.

You may also want to look at this issue https://github.com/NekR/offline-plugin/issues/128 to get some info about when and why there could be problems related to webpack generated hashes in relying on them. The only thing that solves all those problems completely is using recordsPath + generating all hashes in offline-plugin without relying on webpack's hashes.

It's indeed redundant in your case, but I don't see how it harms you. I already said that it probably makes sense to have a way to disable __uncache, but it makes 0 sense to me to just stop doing what I do now and start implementing this feature. After all, any PR is welcome.

I never said you should stop what you're doing. You sound upset - if so, my apologies, I'm just trying to understand if offline-plugin is usable in my scenario or if I need to search for alternatives.
My problem with __uncache is a fundamental one. If that trick is really necessary, then my deployment strategy explained earlier is not applicable because it assumes that a filename (URL path, if you prefer) is really unique and that at least different contents will lead to different names.
Maybe I'm wrong, but this means there are only two possibilities in that scenario:

If it is unique, then this means that the __uncache parameter is absolutely unnecessary.
If it is not unique, then my deployment strategy is badly broken and will suffer from race conditions (meaning that I will need to find a solution to that problem, which is not related to offline-plugin). It also means that the __uncache parameter won't give any benefit because the URL path already differs.

You see, in either case, __uncache won't help anything. Again, I'm talking about a specific scenario.
I could simply live with that parameter, at least if the parameter does not force my users to re-download unchanged assets (since they are big), which is a problem.
It seems that offline-cache avoids to re-download unchanged assets even if a new app "version" has been deployed. Is that correct/guaranteed?

There are enough reasons why hash of a file may change. See this: https://github.com/jhnns/webpack-hash-test

Thanks for the link. None of these situations apply to my situation, though.

Do you use webpack generated hashes in your file names? If so, then you have that revalidation anyway. It's not related to offline-plugin or SW at all.

Yes, I'm using [chunkhash]. It seems to produce pretty stable hashes for me. I did a few tests and hashes don't change unless the chunk changed (I'm aware of edge cases where module IDs change, but there are fixes for that).

But offline-plugin will solve this for you, see this issue: #129

You mean sometime in the future, or it will do that now?

You cannot change URL of your ServiceWorker and URL's search (?) part is used in comparison. Only hash (#) is dropped from comparison.

What is the comparison are you talking about?

You should control SW's file caching on the server and better set it to not cache. If you don't, you probably already have problems with it.

Ah! That is new to me. I couldn't find that detail anywhere in the docs. :-o
Currently, I'm simply using express.static() to serve the assets. I think it sends a Cache-Control: public, max-age=0 by default. This will change when I use S3 to serve the assets.
Thanks for the link to #128 - very interesting!

I never said you should stop what you're doing. You sound upset - if so, my apologies, I'm just trying to understand if offline-plugin is usable in my scenario or if I need to search for alternatives.

Just a bit, maybe because you sounded upset too at that moment.

My problem with __uncache is a fundamental one. If that trick is really necessary, then my deployment strategy explained earlier is not applicable because it assumes that a filename (URL path, if you prefer) is really unique and that at least different contents will lead to different names.

It's necessary for cases when file names doesn't change. Since it changes in your case, then it isn't necessary, but there is no way to disable it right now.

If it is unique, then this means that the __uncache parameter is absolutely unnecessary.
If it is not unique, then my deployment strategy is badly broken and will suffer from race conditions (meaning that I will need to find a solution to that problem, which is not related to offline-plugin). It also means that the __uncache parameter won't give any benefit because the URL path already differs.

webpack's hash problem is totally unrelated to __uncache, I just brought to do discussion to point you to possible problems in your build process. __uncache is necessary to bust HTTP and CDN caches when name file names are used between builds. That's not your case and it's great :-)

It seems that offline-cache avoids to re-download unchanged assets even if a new app "version" has been deployed. Is that correct/guaranteed?

Yes, it's correct and guaranteed as far as you use updateStrategy: 'changed'. It downloads only changed assets and only once during install of updated ServiceWorker. Then only case when it may need to re-download files is when install fails.
For example: 2 files changed. First one downloaded successfully, but second one failed during network problem, hence SW install is failed too. In this situation, when user will visit your site again SW will try to download those 2 files again, i.e. repeat the install process.

You mean sometime in the future, or it will do that now?

There is no error, I will. Right that issue is open and feature is in development.

What is the comparison are you talking about?

When you register SW browser check registration URL for the scope, if there is already a SW and it has different URL then registration fails. In other words, to change SW file you need to unregister current one first. Changing SW name is a bad-bad practice.

Ah! That is new to me. I couldn't find that detail anywhere in the docs. :-o

Unfortunately SW docs are weak. That's general suggestion from SW authors.

Currently, I'm simply using express.static() to serve the assets. I think it sends a Cache-Control: public, max-age=0 by default. This will change when I use S3 to serve the assets.

This should be Cache-Control: no-store or at least no-cache. This is only for ServiceWorker file itself, not any other your assets. Serve other assets as you want. For development it's probably fine to serve SW file with cache. But in production it's recommended to not.

In other words, to change SW file you need to unregister current one first.

Ah, I see. So, using a cache-busting parameter for sw.js would tell the browser, that it is a "different" SW - causing problems. Makes sense.

Ah! That is new to me. I couldn't find that detail anywhere in the docs. :-o

Unfortunately SW docs are weak. That's general suggestion from SW authors.

Actually I meant the offline-plugin docs. ;-) I think a sentence in the README would be well worth it (for those that are no SW experts).
Anyway, I'll change my code accordingly and will make sure that I take that detail into account once I start using S3 / the cluster.

Please allow me one more question about version: Where does it come from? The README says Default: Current date.. I thought it is the current date at the time of the request, which makes sense in terms of cache busting. But it seems rather to be the timestamp of the build, right?
Since the SW already knows the correct hashes for all assets, wouldn't it be ideal to use the hash value as __uncache value?
Thanks :-)

I think a sentence in the README would be well worth it (for those that are no SW experts).

That's good idea. Can you open an issue about it or maybe even send a PR?

Please allow me one more question about version: Where does it come from?
...
But it seems rather to be the timestamp of the build, right?

It's a build version. It's generated on build time indeed and used to tell to SW/AppCache to perform an update (in case you don't change any file names).

Since the SW already knows the correct hashes for all assets, wouldn't it be ideal to use the hash value as __uncache value?

Probably. __uncache thing was added before SW became knowing about assets hashes, so __uncache used build version instead.

When you register SW browser check registration URL for the scope, if there is already a SW and it has different URL then registration fails. In other words, to change SW file you need to unregister current one first. Changing SW name is a bad-bad practice.

Could you please elaborate why it is bad-bad practice? I couln't find any hints why that could cause problems.

@jampy https://developers.google.com/web/fundamentals/instant-and-offline/service-worker/lifecycle#avoid_changing_the_url_of_your_service_worker_script
I also don't see why someone may need to it at all.

Another reason: unregistering SW (which is required to change its name) makes you to loose all your Push Subscriptions. Which in theory could be restored after new SW is installed, or may not if user changed permissions or if that permissions expired. Anyway, that's just wrong way to do handle SW updates.

Thanks for the link and the explanation - that helped a lot! :-)
I completely overlooked that the "index" page is cached, too.
I feared a race condition that clearly doesn't exist.
So the single source of truth (for a cached application) is sw.js - which is awesome :-)
The only little race condition perhaps is the index file itself (the HTML URL). All my assets have a unique name (contain a hash), except for the index file. It is theoretically possible that the index file gets updated after a new sw.js is fetched from the server but before the SW is able to load the index file.
However, being only the initial HTML I think I can circumvent this issue.

It is theoretically possible that the index file gets updated after a new sw.js is fetched from the server but before the SW is able to load the index file.

If I understand you correctly, then that's isn't an issue. When new SW arrives and installs it downloads assets into completely separate cache not related to the previous (current) SW. So until new SW is activated all assets are still served from the old cache, even though new ones are already downloaded. Once new SW is activated it removes all old caches and uses new one which it downloaded during install phase.
No race there :-)

I see, but for the sake of complecity:
I had something like this in my index HTML:
  <script type="text/javascript">var ASSET_BUNDLES={"main":"main-bundle-c706cd4dca14133426b3208a452387-en.js","db-engine-worker":"db-engine-worker-bundle-c706cd4dca14133426b3208a452387-en.js","pdfjs-worker":"pdfjs-worker-bundle-c706cd4dca14133426b3208a452387-en.js"};</script>
  <script type="text/javascript" src="main-bundle-c706cd4dca14133426b3208a452387-en.js"></script>

The ASSET_BUNDLES is important because the name of the asset bundles is hashed and I need a way to know the correct URLs at runtime. These are web Worker source codes, so have nothing to do with Webpack require().
Let me illustrate a potential race condition:

T+0: user X returns to the PWA at /webapp
T+1: service worker of user X starts to grab /webapp/sw.js and gets version 100, it starts to download changed assets from a slow connection, including /webapp/sw.js and some JPG files. It will also download /webapp but it is currently busy with other URLs.
T+2: I deploy a new version of the application which also has different ASSET_BUNDLES hashes (takes a fraction of a second)
T+3: service worker of user X (still within the update process) finally grabs current index file (URL /webapp) from the server, which however now is already at version 101

You see, in such a situation the user gets all assets matching version 100 (since they have unique URLs) but with the index file of version 101 (the only asset that has not a hashed URL). In the end ASSET_BUNDLES mismatches the rest of the application and so the app won't work.
I solved this today by putting ASSET_BUNDLES into a dedicated, hashed asset. Now the HTML code looks like this:
  <script type="text/javascript" src="asset-bundles-45900c92ee5e488af14ea4dd02f693f3.js"></script>
  <script type="text/javascript" src="main-bundle-c706cd4dca14133426b3208a452387-en.js"></script></body>

This will make sure that both <script> tags will always be "active" together.
The race condition still remains for the rest of the HTML file, but that does not contain anything critical.
Of course this causes an additional request. It's not ideal but I can live with that.

Of course, there would be no problem at all if ASSET_BUNDLES could be conained in main-bundle-xxx.js itself. But it's an asset automatically generated by a Webpack plugin and merging it into the main-bundle so that I can require() it would probably cause a cyclic dependency, but I'm not a Webpack plugin expert.

You see, in such a situation the user gets all assets matching version 100 (since they have unique URLs) but with the index file of version 101 (the only asset that has not a hashed URL). In the end ASSET_BUNDLES mismatches the rest of the application and so the app won't work.

Yes, I see the race here. It won't however break the app completely, but rather just make it not operational in offline. Also on next web page navigation new SW will be downloaded which will recover the situation. But yeah, I see what you mean here.

But it's an asset automatically generated by a Webpack plugin and merging it into the main-bundle so that I can require() it would probably cause a cyclic dependency

Yes, hard to do that right.

The only true way to solve this and https://github.com/NekR/offline-plugin/issues/142 is by verifying assets hashes at runtime, i.e. generating hash of received content which is kinda slow. Might not be a problem on install phase though.

generating hash of received content which is kinda slow

FYI, I use client-side hashing a lot with megabyte-sized data and it's quite fast even on mobile. Also, most browsers have native (asynchronous) support for cryptographic calculations like SHA-1.
But yeah, every millisecond counts, that's right.

If your're interested, for a fast pure-JavaScript SHA1 implementation see rusha
I'm focused on SHA-1 because I need strong hashes. MD5 or similar would probably be probably good enough for asset versioning and it's faster.
I'm not asking you to integrate hashes, though (but it would be awesome ;-)

Also, most browsers have native (asynchronous) support for cryptographic calculations like SHA-1.

Yeah, I know, this is why I made it generated SHA-1 hashes and not MD5 in https://github.com/NekR/offline-plugin/issues/129

I'm focused on SHA-1 because I need strong hashes. MD5 or similar would probably be probably good enough for asset versioning and it's faster.

As you said, there is native support of SHA-1 in browsers so not need to calculate MD5 manually.

I'm not asking you to integrate hashes, though (but it would be awesome ;-)

I'll think about it :-)

Has there been progress on this issue?
I actually ran into a problem when trying to load from the google-sheets api.
What I want to do is, fetching data from a google spreadsheet and have it updated every 24h.
To do so, I use the offline plugin with autoUpdate: 1000 * 60 * 60 * 24, externals: [https://sheets.googleapis.com/v4/spreadsheets/...?key=...&fields=sheets.data.rowData.values.effectiveValue,sheets.properties(sheetId,title,index)]
This translates into a sw-request https://sheets.googleapis.com/v4/spreadsheets/...?key=...&fields=sheets.da...dex)&__uncache=2017-9-4%2007%3A35%3A40.
The response is 400, status: "INVALID_ARGUMENT", Unknown name "__uncache"!
So the __uncache param actually breaks the api-call! It would be awesome to be able to turn it off.

Hi, no progress so far.

Hi, this is something I'm interested in too- I'd love a straightforward way to simply disable the extra URL parameter. In my app, this is causing an avoidable duplicate fetch of a fairly large file every time the app upgrades. (The page itself requests it slightly before the SW gets around to it, and the SW can't rely on the browser's cache because of this parameter.) These resources are always versioned with a filename hash and I use Cache-Control:immutable on them anyway.


Feature request: allow custom "non printable" in literals

Would a PR to have an option to allow eg tabs (\t) in block scalars (STYLE_LITERAL) be accepted? As far as I can find the standard recommends \t to be escaped, but it's not required (would not break the format). I want to easily present data with tabs (tab indented source code) in YAML. I believe an "allowNonPrintableLiteral" (array of chars) option could be a good idea which then could be set to [9].
code: |
  if (true)
  <tab>echo "hello";

I'd like to avoid new options if possible.
Any new feature should have some explanation, why it's useful for all.

I found a YAML package which supported tabs in literal block scalars https://www.npmjs.com/package/yaml


No files are mounted

When I initiate a download of the example file I see this:
Initializing swarm and verifying data...
Mounted 2 files, 541.3MB in star-wreck-in-the-pirkinning
Connected to 12/13 peers
Downloaded 14.9 MB (82.1 kB/s) with 0 hotswaps
Uploaded 0 Bytes (0 b/s)

However the mounted directoy is empty both during and after complete download:
$ ll star-wreck-in-the-pirkinning/
total 8
drwxr-xr-x  2 munter munter 4096 Apr 28 22:36 ./
drwxr-xr-x 73 munter munter 4096 Apr 28 22:36 ../

I'm using Linux Mint:
Linux pollex 3.10.0-031000rc5-generic #201306082135 SMP Sun Jun 9 01:36:22 UTC 2013 x86_64 GNU/Linux

I'm having the same problem - runs in terminal as described above, creates the directory but it's empty. I installed the latest version via npm. I'm on Archlinux.
fuse: 2.9.3
node: v0.12.2
I first installed the torrent-mount v1.0.8 from AUR (Arch User Repository) - which actually worked. But it's outdated (felt a bit buggy) and doesn't have the --lazy option.

@vilnius-leopold you should switch to the latest version. i'm pretty sure 1.0.8 doesn't work with node 0.12

@mafintosh ...yeah I don't know what happend but I installed it again via npm and now it works... no clue. Thanks anyways for the quick response!


[WIP] c2ffi: unstable-2021-06-15 -> 0-unstable-2023-11-18

testing to see if darwin build segfaults.
Description of changes

Things done

Built on platform(s)

[ ] 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.05 Release Notes (or backporting 23.05 and 23.11 Release notes)

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

[ ] Fits CONTRIBUTING.md.

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

@ofborg build c2ffi

build segfaults on darwin.


Support cstruct +3.4.0

Build using cstruct-lwt instead of cstruct.lwt, as per instructions on https://discuss.ocaml.org/t/psa-cstruct-3-4-0-removes-old-ocamlfind-subpackage-aliases/3275
Fixes https://github.com/mirleft/ocaml-nocrypto/issues/155

Not sure what's causing the bubblewrap installation failure in the failing travis job, could be a transient failure but I can't re-trigger it:
+sudo apt-get install -y bubblewrap
Reading package lists... Done
Building dependency tree
Reading state information... Done
E: Unable to locate package bubblewrap
The command "bash -ex .travis-opam.sh" exited with 100.

@avsm has already submitted patches for this package to opam-repository that fix support with cstruct 3.4 and 4.0: https://github.com/ocaml/opam-repository/pull/13655 https://github.com/ocaml/opam-repository/pull/13755

Ah yes thanks -- I haven't been looking at the master branch with my patches so forward-porting them would be appreciated

I've added an explicit dependency on sexplib on the opam file too, otherwise it wouldn't work.

@pqwy is there anything stopping this PR from being merged?

@avsm @hannesm shouldn't this be merged then? Also, does it support cstruct-5.0.0?

Ping?

Closing as I've replaced nocrypto with mirage-crypto on the projects I'm involved with.


PasswordHash - salted hash request

Thanks so much for putting this library together.
My own implementation of the PasswordHash allows generation of an Scrypt hash with the following signature:
byte[] PasswordHash.Hash(byte[] password, byte[] salt)
Would you be able to add an overload to accept a similar signature?

Sodium.KDF.Scrypt is probably what you're looking for: https://github.com/charlesportwoodii/libsodium-uwp/blob/master/docs/KDF.md#scrypt-key-derivation.
public static byte[] Sodium.KDF.Scrypt(string password, byte[] salt, PasswordHashOptions options)

libsodium classifies is as a kdf within PasswordHash, hence the namespace difference.

Ah yes it is, perfect thanks :)

No problem. Let me know if you have any issues. The unit tests offer some good examples too: https://github.com/charlesportwoodii/libsodium-uwp/blob/master/Test/KDFTest.cs#L359

Will do, thanks again

I'm getting System.AccessViolationException exceptions thrown calling the PasswordHash and Kdf functions for Scrypt and Argon2i. Havent investigated yet. Am I missing something obvious?
Thanks,
Stuart

@globeport
Did you install from Nuget or source? If you installed from Nuget, have you added the ActivatableClass stuff to your Package.appxmanifest as outlined in the README?
Can you provide the full error message and the code you're using?

Installed from Nuget
Yes, Ive included the config in Package.appxmanifest
Ive also referenced the VC++ 2015 runtime
For example:
function Hash(string source, byte[] salt)
{
    var options = new Sodium.PasswordHashOptions
            {
                time_cost = 3,
                memory_cost = 1 << 14
            };
            return Sodium.KDF.Argon2i(password, salt, options);
}

Exception:
An exception of type 'System.AccessViolationException' occurred ...
Message: Attempted to read or write protected memory. This is often an indication that other memory is corrupt.
Source: Sodium

C# String, not string.
See the following example:
        public MainPage()
        {
            this.InitializeComponent();
            var password = "correct horse battery staple";
            var salt = Sodium.Core.GetRandomBytes(32);
            var hash = this.hash(password, salt);
            # This works
            System.Diagnostics.Debug.WriteLine(hash);
        }

        /// <summary>
        /// Hashes a password with Argon2i
        /// </summary>
        /// <param name="password">The password to hash</param>
        /// <param name="salt">32 byte salt</param>
        /// <returns>Argon2i hash of password</returns>
        public byte[] hash(String password, byte[] salt)
        {
            var options = new Sodium.PasswordHashOptions
            {
                time_cost = 3,
                memory_cost = 1 << 14
            };

            return Sodium.KDF.Argon2i(password, salt, options);
        }

Created a fresh project with the above.
Same problem :(

Can you try including from source rather than from Nuget? What build of W10 are you targeting?

Target version: Windows 10 Anniversary Edition (10.0; Build 14393)
Min Version: Windows 10 (10.0; Build 10586)

Honestly, it sounds like the Package.appxmanifest file doesn't have the extension information. Can you try referencing libsodium-uwp from source? If you clone libsodium-uwp from source, do the unit tests run/pass?
Any chance you could upload your fresh project to Github? Bit easier to debug if I can see the entire picture.

I downloaded the solution and tried a build from source but the build fails on the pre build event command.

There's a submodule.
git clone --recursive https://github.com/charlesportwoodii/libsodium-uwp.

Ah ok, sorry I just downloaded as zip.

Build from source.
All tests pass except 1 - Argon2iTest - ArgumentException - Salt must be 16bytes in length.

Replaced libsodium-uwp project reference with Nuget package reference.
Added the extension info to Package.appxmanifest.
Rerun tests.
5 tests failing and process ends with 'The active Test Run was aborted because the execution process exited unexpectedly'

Pretty sure the Argon2i test has a typo, it should use a 16 instead of 32 for the salt generation. I've updated that in the Git repo. If you git pull then rebuild it should pass.
It sounds like the Nuget package might be bugged. If you pull the tests should all pass, then you can include the project in your main project as a source reference rather than a Nuget reference.

No worries I'll do that. Thanks for your help.

@globeport Including from source work for you?

So far so good...


Lucas embed video

Part 1: Video Integration
Supports Youtube Video on Markdown on inital welcome pop-up and side-panel.

Don't block yourself on this but think about the extensibility of your code. Currently seems like it'll be great for youtube but if tomorrow we decide to use vimeo instead, how feasible is that?


Use environment variables NUMBER_OF_DOCUMENTS_TO_REPARSE and MAX_DOCUMENTS_TO_REPARSE

[ ] Requires env variable(s) to be updated

NUMBER_OF_DOCUMENTS_TO_REPARSE defaults to 8
MAX_DOCUMENTS_TO_REPARSE defaults to 200

Added
MAX_DOCUMENTS_TO_REPARSE=200``` to the environment variables on staging and prod but not deployed.


Failed to load deferred package helm-mode

On startup, I get this error and cannot use helm to search for files. M-x obviously still works as does C-x but if I use any commands related to helm, I get this error;
Failed to load deferred package helm-mode: (error Key sequence M-SPC h M starts with non-prefix key M-SPC)
System information

Click to expand
- Emacs: 26.1 (Jul 05, 2018)
- Doom: 2.0.9 (develop 9f2dff02fa8ed3c2162a38195e69aff1085933ea)
- Graphic display: t (daemon: nil)
- System features: XPM JPEG TIFF GIF PNG RSVG IMAGEMAGICK SOUND GPM DBUS GSETTINGS NOTIFY ACL GNUTLS LIBXML2 FREETYPE M17N_FLT LIBOTF XFT ZLIB TOOLKIT_SCROLL_BARS GTK3 X11 MODULES THREADS LIBSYSTEMD LCMS2
- Details:
  ```elisp
  elc count: 0
  uname -a:  Linux nordvind 4.19.12-2-MANJARO #1 SMP PREEMPT Sun Dec 23 19:08:00 UTC 2018 x86_64 GNU/Linux
  modules:   (:feature eval (evil +everywhere) file-templates (lookup +docsets) snippets spellcheck syntax-checker workspaces :completion company helm :ui doom doom-dashboard doom-modeline doom-quit evil-goggles hl-todo nav-flash treemacs (popup +all +defaults) vc-gutter vi-tilde-fringe window-select :editor multiple-cursors rotate-text :emacs dired ediff electric hideshow imenu vc :lang data emacs-lisp markdown (org +attach +babel +capture +export +present) (sh +fish) :config default)
  packages:  n/a
  exec-path: (/usr/local/bin /usr/local/sbin /usr/bin /opt/android-sdk/tools /opt/android-sdk/tools/bin /opt/flutter/bin /usr/lib/jvm/default/bin /usr/bin/site_perl /usr/bin/vendor_perl /usr/bin/core_perl /usr/lib/emacs/26.1/x86_64-pc-linux-gnu)

</details>

Hi. Got biten by the same issue. A quick investigation and googling shows it happens due to the introduction of general.el.
I'm not a Elisp pro nor did I take time to read in-depth about general.el. A quick and dirty workaround is to edit your ~/.doom.d/init.el and remove the +bindings part from the default module, as in:
(default +bindings +smartparens)

Another workaround is to go to ~/.emacs.d/core/core-keybinds.el and alter doom-leader-alt-key and doom-localleader-alt-key to something that do not use M-SPC, e.g. M-s-SPC.
Anyway,
Let's patiently wait for a fix from @hlissner

I can replicate this with a fresh install from develop.
If ivy is an option for you, replacing helm with it seems to avoid the problem altogether for now.
Simply, change the relevant part in your ~/.doom.d/init.el accordingly:
;;; init.el

(doom!
       ...

       :completion
       ;;helm
       ivy

       ...)

I found that this problem occurs starting from commit 5ad0b749. Hope this information can help.

I have the same problem and have not solved it. It is really annoying.

Sorry about this! As of d337e25, this issue should be resolved. Please update and let me know!
And Merry Christmas!

I'm still having the issue with 94b4cd3ddbbc, but everything works fine with c0c84eb99b3b5360
thanks for your hard work and Merry Christmas!

Happy to help! I was just about to say: I discovered the real issue behind those M-SPC errors and fixed them in c0c84eb. Glad to know it worked!

@hlissner Merry Christmas!

The problem was solved after the update, thanks for your hard work.
and Merry Christmas! @hlissner


WIP: Cost-546: packaging unit tests

WIP

Codecov Report

Merging #29 (562d12a) into master (225c8d9) will increase coverage by 15.81%.
The diff coverage is 70.00%.

@@             Coverage Diff             @@
##           master      #29       +/-   ##
===========================================
+ Coverage   37.80%   53.62%   +15.81%
===========================================
  Files           1        2        +1
  Lines         328      511      +183
===========================================
+ Hits          124      274      +150
- Misses        169      186       +17
- Partials       35       51       +16

Flag
Coverage Δ

unittests
53.62% <70.00%> (+15.81%)
:arrow_up:

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

Impacted Files
Coverage Δ

controllers/costmanagement_controller.go
37.68% <0.00%> (-0.12%)
:arrow_down:

packaging/packaging.go
82.41% <100.00%> (ø)

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 225c8d9...562d12a. Read the comment docs.


Docker jenkins Not Fount ant

this is a base image, only tools included in official jenkins distribution are included


Wrong link to karate gRPC

Hi,
The README has a link to page https://thinkerou.com/karate-grpc/ that does not exist.

released 0.9.4


rename the dorado driver

What this PR does / why we need it:
Rename the dorado driver.
Which issue this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close that issue when PR gets merged): fixes #
Special notes for your reviewer:
Release note:

done

@xing-yang PTAL

Please note that this is a user facing change so it needs a release note.  I have added it.


Smelting trip need over 8hours

🐛 Bug Report
Write a description of the bug here, give all the information you can about what it is, how it happened.
Hey,
Before i went to bed last day I've started a +smelt adamantite bar
After I wake Up I wanted to do another one and my +smelt adamantite bar wasnt finished. It took 8:15 hours and I lost 18k Coal ore and around 3.5k adamantite ore.

User claimed they lost 2445 adamantite ore, 14670 coal which I have refunded back to the user


Support on Linux via Cline

I use this MCP server on my Linux desktop environment through the Cline VS Code extension, and to make it launch browser, I had to add an environmental variable:
    "playwright": {
      "command": "npx",
      "args": ["-y", "@executeautomation/playwright-mcp-server"],
      "env": {
        "DISPLAY": ":0"
      }
    }

But, I'm having the following issue:
Error executing MCP tool:
The tool execution failed with the following error:
<error>
Error executing MCP tool: {"issues":[{"code":"invalid_type","expected":"array","received":"undefined","path":["content"],"message":"Required"}],"name":"ZodError","message":"[\n  {\n    \"code\": \"invalid_type\",\n    \"expected\": \"array\",\n    \"received\": \"undefined\",\n    \"path\": [\n      \"content\"\n    ],\n    \"message\": \"Required\"\n  }\n]","stack":"ZodError: [\n  {\n    \"code\": \"invalid_type\",\n    \"expected\": \"array\",\n    \"received\": \"undefined\",\n    \"path\": [\n      \"content\"\n    ],\n    \"message\": \"Required\"\n  }\n]\n    at Object.get error [as error] (/home/vlazic/.vscode/extensions/saoudrizwan.claude-dev-2.2.2/dist/extension.js:838:21106)\n    at t.parse (/home/vlazic/.vscode/extensions/saoudrizwan.claude-dev-2.2.2/dist/extension.js:838:23337)\n    at /home/vlazic/.vscode/extensions/saoudrizwan.claude-dev-2.2.2/dist/extension.js:838:81332\n    at qae._onresponse (/home/vlazic/.vscode/extensions/saoudrizwan.claude-dev-2.2.2/dist/extension.js:838:80513)\n    at Wae._transport.onmessage (/home/vlazic/.vscode/extensions/saoudrizwan.claude-dev-2.2.2/dist/extension.js:838:78359)\n    at Wae.processReadBuffer (/home/vlazic/.vscode/extensions/saoudrizwan.claude-dev-2.2.2/dist/extension.js:840:1940)\n    at Socket.<anonymous> (/home/vlazic/.vscode/extensions/saoudrizwan.claude-dev-2.2.2/dist/extension.js:840:1550)\n    at Socket.emit (node:events:518:28)\n    at addChunk (node:internal/streams/readable:561:12)\n    at readableAddChunkPushByteMode (node:internal/streams/readable:512:3)\n    at Socket.Readable.push (node:internal/streams/readable:392:5)\n    at Pipe.onStreamRead (node:internal/stream_base_commons:191:23)"}
</error>

Tool [use_mcp_tool] was not executed because a tool has already been used in this message. Only one tool may be used per message. You must assess the first tool's result before proceeding to use the next tool.

Maybe this is more of a problem with Cline 🤔

I had the same issue, I had to modify the server with
async function ensureBrowser() {
  if (!browser) {
    browser = await chromium.launch({
      headless: false,
      env: {
        DISPLAY: ":0",
        WAYLAND_DISPLAY: "wayland-0",
        XDG_RUNTIME_DIR: "/mnt/wslg/runtime-dir",
        PULSE_SERVER: "/mnt/wslg/PulseServer"
      }
    });
    const context = await browser.newContext();
    page = await context.newPage();
  }
  return page;
}

It would be great to see it implemented as an official option flag

I would suggest to create a PR on the same, I will try to run in my machine
and see if that option works.
We then need to bring an option flag to have this in our method.
I will check if there is a good practice to have option flags.
Thanks,
On Mon, Dec 16, 2024 at 4:07 PM nicholmikey @.***>
wrote:

I had the same issue, I had to modify the server with
async function ensureBrowser() {
if (!browser) {
browser = await chromium.launch({
headless: false,
env: {
DISPLAY: ":0",
WAYLAND_DISPLAY: "wayland-0",
XDG_RUNTIME_DIR: "/mnt/wslg/runtime-dir",
PULSE_SERVER: "/mnt/wslg/PulseServer"
}
});
const context = await browser.newContext();
page = await context.newPage();
}
return page;
}
It would be great to see it implemented as an official option flag
—
Reply to this email directly, view it on GitHub
https://github.com/executeautomation/mcp-playwright/issues/16#issuecomment-2544446791,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/ACO3WBUYOKD6IG3WQI6B2NT2FY7WLAVCNFSM6AAAAABTUV4ZO2VHI2DSMVQWIX3LMV43OSLTON2WKQ3PNVWWK3TUHMZDKNBUGQ2DMNZZGE
.
You are receiving this because you are subscribed to this thread.Message
ID: @.***>

--
Thanks and Regards,
Karthik KK
http://www.executeautomation.com
http://www.blog.executeautomation.com
http://www.forum.executeautomation.com


Minor issues in README of translation

IWSLT14 English-German => IWSLT14 German-English

Thanks! Already fixed.


Tag

Is it possible to tag repo when merge is applied @orzarchi ?
For example, my pull request was not tagged when merged. 😅

You got it.
As you can see, this module isn't very maintained, it's still in the old terraform syntax 👴

Yes, I saw it. 😅
But it seems like this is the only one that manage this topic in terraform registry 😄


mainly edits docstrings

init
contract_cids => cid
contract_return => xcat
market_cid + market_return => benchmark_return
estimate_beta
neg_mean_abs_market_corr => neg_mean_abs_corr: negative mean absolute correlation (with the benchmark return)
=> where is the period set?
oos_period
=>
est_freq: period of sequential model selections and parameter estimations. Can be any of "d", "w", "m", or "q". Model and parameters are estimated at the end of the period and applied for hedged returns throughout the next period. Default is "m".
+
:param  iis: initial in-sample estimates. If set to TRUE the returns for the initial minimum sample are hedged based on the in-sample beta estimate. This is not suitable for checks of the quality of the hedging. Default is FALSE.


[SPARK-23759][UI] Unable to bind Spark2 history server to specific host name / IP

What changes were proposed in this pull request?
This pull is to fix SPARK-23759 issue
Problem was created due connector.setHost(hostName) call was after connector.start()
How was this patch tested?
Patch was tested after build and deployment. This patch requires SPARK_LOCAL_IP environment variable to be set on spark-env.sh
Please review http://spark.apache.org/contributing.html before opening a pull request.

Can one of the admins verify this patch?

Can one of the admins verify this patch?

Please update the title.

cc @vanzin
I think this comes from SPARK-17874. I see that some properties (the connector name in particular) are set after this method.  Shall we move them here before the start too?

Yes, that's a bug (and also is being fixed as part of #20327, but ok if you want to fix it here).

@mgaido91 I pushed the start() after setAcceptQueueSize in new commit

ok to test

Actually, this PR is against 2.2, not master. Please close this and open a new one against the right branch.

Test build #88527 has started for PR 20867 at commit 5d7ed7a.

I don't know, it didn't use to be possible to change the base branch. If it is now, just change it to master.


Figure out minimum requirements

Figure out and document the minimum requirements for the plugin to work (browser/version, jQuery version, etc).

Done. Added to demo page.


Video Request

Hi there, would love to have a video on setup created. I'm getting a black screen issue, as in when i tell it to start the serve i only see a black screen, no text showing it starting up.

If the screen is black it means it's probably running. No text output is shown on the server window. Can you see it in the server list?

I would recommend opening the standard ports and then try again. They can then try to connect to you on Steam or direct connecting to your IP and then the ports. Unfortunately I can't remember which one so try them all.
9876-9877
27015

I opened and forwarded the exact ports you mentioned, but i'll test some
more tonight. A video if possible would be outstanding for this still, love
the server manager idea though.
On Tue, Jun 21, 2022 at 10:48 AM Lacyway @.***> wrote:

I would recommend opening the standard ports and then try again. They can
then try to connect to you on Steam or direct connecting to your IP and
then the ports. Unfortunately I can't remember which one so try them all.
9876-9877
27015
—
Reply to this email directly, view it on GitHub
https://github.com/Lacyway/V-Rising-Server-Manager/issues/17#issuecomment-1161848525,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHVPYATT2CXS7MFEPYWK2HDVQHI2ZANCNFSM5ZMTK57A
.
You are receiving this because you authored the thread.Message ID:
@.***>


Add destination prefix option to publish task

Adds a destination prefix option to the publish task to enable users to specify where artifacts are uploaded to on s3 more precisely. Resolves issue #10.

I had some issues running the tests.
java.lang.NoSuchMethodError: org.hamcrest.Matcher.describeMismatch

I had to change mockito-all to mockito-core in build.sbt to run them. Though I did not commit it as affected me before the changes and I wasn't sure if it was an environmental issue.

@johncmckim apologies for not getting back sooner. Will review and merge in a couple of days.

@johncmckim I got it to post to the route of S3, thanks! but it throws an error when I set / as destinationPrefix:
20:00:36.601 Pushing /mnt/go-disk/go-agent/pipelines/styleguide/dist/style/style.css.map to s3://styleguide.peermatch.com/style/style.css.map
20:00:37.299 Pushed /mnt/go-disk/go-agent/pipelines/styleguide/dist/style/style.css.map to s3://styleguide.peermatch.com/style/style.css.map
20:00:37.992 Error: The request body terminated unexpectedly (Service: Amazon S3; Status Code: 400; Error Code: IncompleteBody; Request ID: CE57C2B56A8FD06B)
20:00:38.009 [go] Current job status: failed.

Do you have any idea? Interesting is that it succeeds in uploading, but fails to do something else. It might be setting the meta data. Can you reproduce this?

@timanrebel I haven't seen that issue before. It does look like an issue with the setMetadata process. I haven't run into this issue when using my fork.
According to the docs that error occurs when the body "does not provide the number of bytes specified by the Content-Length HTTP header". According to the java sdk docs Content Length must be set before data is uploaded. The setMetadata method does this by setting a Content Length of 0 and sending an empty request .
In short I find that a really unusual error. Maybe @manojlds  or @ashwanthkumar  has seen this issue before?

@johncmckim is this the correct way to push to the root of an S3 bucket?

I think I understand what is going wrong here. The plugin tries to update the metadata of the bucket if destinationPrefix is /. Otherwise it updates the directory. The problem might be that AWS S3 does not allow metadata on a bucket (not unlogical)

@timanrebel sorry for the slow response, I've been looking into it a bit. Your theory does make sense. However, I can't find any information to confirm this.
I've got a task pushing to the root of an s3 bucket now too. I'm not getting the same error, I am getting a 403 when the plugin attempts to set the metadata. I can see why setting metadata is important when doing Artefact storage. However, I would think it less important on deployment.
I think you could have one plugin do both. I would rather have one plugin installed than two. However, at this stage since it has been 4 months since the original issue was created and there's an obvious need for this, perhaps a separate plugin could be a good idea. Before doing that, I'd really like to hear from one of the maintainers on this project, @manojlds @ashwanthkumar .

I'm extremely sorry for the delay in getting back on this PR. @johncmckim You're right, you don't need to set metadata if you're going to use it only for deploying. We can choose not to set the metadata when deploying.
cc: @manojlds @sriram-r

This LGTM for merge. Any other suggestions @manojlds @sriram-r ?

Everyone - Apologies not keeping a tab on this. This is good to be merged.

I'm merging this now. Thanks @johncmckim for the contribution.


changed position data to make correct values pass

changed the y data point in the third nested array to a 9 so that the test cannot be passed by finding the highest y value
reference to issue #17996

[x] I have read freeCodeCamp's contribution guidelines.
[x] My pull request has a descriptive title (not a vague title like Update index.md)
[x] My pull request targets the master branch of freeCodeCamp.
[x] None of my changes are plagiarized from another source without proper attribution.
[x] My article does not contain shortened URLs or affiliate links.

If your pull request closes a GitHub issue, replace the XXXXX below with the issue number.
Closes #17996

Closed and Reopened this PR to attempt to resolve a specific Travis build failure.


DeployVisualStudioTestAgent task fails on Windows 10 VM

The DeployVisualStudioTestAgent task is failing when I try to deploy the Visual Studio 2017 test agent to a Windows 10 VM. I just created the VM fresh today, so I know that no other versions of the test agent have ever been installed on it. In the build log, I am seeing the following error message:
Deployment aborted unexpectedly. This might be due to an unplanned restart of target machine. Consult the logs if any on the target machine to fix the issues and retry the operation.
The full log from the first run of the build is here:
logs_45459.zip
After the first failure, I enabled the system.debug variable and ran the build again. The logs for that run are here:
logs_45464.zip
On the Windows 10 VM, the only logging I can find is the following error in the Application event log:

Please let me know if you need any more information.

@cmielke Can you share the logs from C:\TestAgent\DTAExecutionHost.exe,log?

Yes, I am using on-prem TFS. I apologize for not mentioning that in my original message. I was originally having the same issue as #3922, so I manually upgraded the task on a non-production TFS instance using the steps outlined in #3922. If this task is not compatible with Update 1, that is all I need to know. I will wait patiently for Update 2.

@cmielke sorry for the trouble. It's worth waiting for Update 2 and use Deploy Task v2 version. There are no major changes between 2015 Test agent and 2017 Test agent. so you can continue to use Deploy Task v1 with test agent 2015 to run the tests

@nigurr I was trying to upgrade one of my solutions to build with Visual Studio 2017. This solution has Coded UI Tests, which do not seem like they can be run on the 2015 Test Agent. If you can suggest a workaround, that would be great. Otherwise, I will just wait for update 2 before upgrading this build definition to build with 2017. Thanks.

@cmielke Please follow similar to this https://blogs.msdn.microsoft.com/sathar/2016/08/01/running-coded-ui-tests-built-using-visual-studio-2013-with-team-foundation-server-2015/
You need to update the version numbers appropriately.


added cobertura output

resolves #123

ok to test

Coverage is showing up in master now after running a build against the master job
http://www.thegreenhouse.io:8080/job/MASTER-github-dashboard/17/

thanks for pointing me in the right direction @jpoo

Awesome, glad you figured it out 🎉


Segmentation fault

I had Polybar working on Ubuntu 18.04, but it’s stopped working after I ran some system updates. I now get the following error when trying to run polybar example:
warn: No monitor specified, using "eDP-1"
[1]    4971 segmentation fault (core dumped)  polybar example

The output of gdb -ex run -args polybar example is as follows:
GNU gdb (Ubuntu 8.1-0ubuntu3) <IP_ADDRESS>80409-git
Copyright (C) 2018 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.  Type "show copying"
and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
<http://www.gnu.org/software/gdb/documentation/>.
For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from polybar...done.
Starting program: /usr/local/bin/polybar example
[Thread debugging using libthread_db enabled]
Using host libthread_db library "/lib/x86_64-linux-gnu/libthread_db.so.1".
[New Thread 0x7fffeae96700 (LWP 4991)]
warn: No monitor specified, using "eDP-1"
[New Thread 0x7fffea695700 (LWP 4992)]
[New Thread 0x7fffe9e94700 (LWP 4993)]

Thread 4 "polybar" received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7fffe9e94700 (LWP 4993)]
0x00007ffff7895140 in ?? () from /usr/lib/x86_64-linux-gnu/libfontconfig.so.1

I can provide my config if needed.

Can you run thread apply all bt full in gdb after the segfault.

Here’s the result:
Thread 4 (Thread 0x7fffe9e94700 (LWP 3306)):
#0  0x00007ffff7895140 in ?? ()
   from /usr/lib/x86_64-linux-gnu/libfontconfig.so.1
No symbol table info available.
#1  0x00007ffff78954cc in ?? ()
   from /usr/lib/x86_64-linux-gnu/libfontconfig.so.1
No symbol table info available.
#2  0x00007ffff78875aa in FcDefaultSubstitute ()
   from /usr/lib/x86_64-linux-gnu/libfontconfig.so.1
No symbol table info available.
#3  0x000055555568cbe3 in polybar::v3_1_0_161_g028b141::cairo::make_font (
    cairo=0x7fffdc005130, fontname=..., offset=offset@entry=3,
    dpi_x=dpi_x@entry=192, dpi_y=dpi_y@entry=192)
    at /home/siva/Git/polybar/include/cairo/font.hpp:260
        fc_init = true
        fc_cleanup = std::unique_ptr<polybar::v3_1_0_161_g028b141::scope_util::on_exit<>> = {get() = 0x7fffdc015900}
        pattern = 0x0
        result = 32767
        match = <optimised out>
#4  0x000055555568e8dd in polybar::v3_1_0_161_g028b141::renderer::renderer (
    this=0x7fffdc000bc0, conn=..., sig=..., conf=..., logger=..., bar=...)
---Type <return> to continue, or q <return> to quit---
    at /home/siva/Git/polybar/src/components/renderer.cpp:159
        offset = 3
        pattern = "Ubuntu:weight=medium:pixelsize=11"
        pos = 33
        font = std::shared_ptr<polybar::v3_1_0_161_g028b141::cairo::font_fc> (empty) = {get() = 0x780c80}
        f = <optimised out>
        __for_range = <optimised out>
        __for_begin = <optimised out>
        __for_end = <optimised out>
        dpi_x = 192
        dpi_y = 192
        fonts = std::vector of length 7, capacity 8 = {
          "Ubuntu:weight=medium:pixelsize=11;3", "FontAwesome:pixelsize=11;4",
          "Font Awesome 5 Free:style=Regular:pixelsize=11;4",
          "Font Awesome 5 Free:style=Solid:pixelsize=11;4",
          "Font Awesome 5 Brands:pixelsize=11;4",
          "unifont:fontformat=truetype:size=11:antialias=false;3",
          "FontAwesome:pixelsize=11;2"}
        mask = <optimised out>
        value_list = <optimised out>
        params = <optimised out>
        dpi_x = <optimised out>
---Type <return> to continue, or q <return> to quit---
        dpi_y = <optimised out>
        fonts = <optimised out>
        screen = <optimised out>
        f = <optimised out>
        __for_range = <optimised out>
        __for_begin = <optimised out>
        __for_end = <optimised out>
        offset = <optimised out>
        pattern = <optimised out>
        pos = <optimised out>
        font = <optimised out>
#5  0x000055555568fca0 in std::make_unique<polybar::v3_1_0_161_g028b141::renderer, polybar::v3_1_0_161_g028b141::connection&, polybar::v3_1_0_161_g028b141::signal_emitter&, polybar::v3_1_0_161_g028b141::config const&, polybar::v3_1_0_161_g028b141::logger const&, polybar::v3_1_0_161_g028b141::bar_settings const&> ()
    at /usr/include/c++/7/bits/unique_ptr.h:825
No locals.
#6  polybar::v3_1_0_161_g028b141::factory_util::unique<polybar::v3_1_0_161_g028b141::renderer, polybar::v3_1_0_161_g028b141::connection&, polybar::v3_1_0_161_g028b141::signal_emitter&, polybar::v3_1_0_161_g028b141::config const&, polybar::v3_1_0_161_g028b141::logger const&, polybar::v3_1_0_161_g028b141::bar_settings const&> () at /home/siva/Git/polybar/include/utils/factory.hpp:30
No locals.
---Type <return> to continue, or q <return> to quit---
#7  polybar::v3_1_0_161_g028b141::renderer::make (bar=...)
    at /home/siva/Git/polybar/src/components/renderer.cpp:28
No locals.
#8  0x000055555563f232 in polybar::v3_1_0_161_g028b141::bar::on (
    this=0x555555a5d330) at /home/siva/Git/polybar/src/components/bar.cpp:781
No locals.
#9  0x000055555567b82f in polybar::v3_1_0_161_g028b141::signal_receiver_interface::on<polybar::v3_1_0_161_g028b141::signals::eventqueue::start> (s=...,
    this=<optimised out>)
    at /home/siva/Git/polybar/include/events/signal_receiver.hpp:33
        event_sink = <optimised out>
        event_sink = <optimised out>
#10 polybar::v3_1_0_161_g028b141::signal_emitter::emit<polybar::v3_1_0_161_g028b141::signals::eventqueue::start> (this=<optimised out>, sig=...)
    at /home/siva/Git/polybar/include/events/signal_emitter.hpp:29
        item = <optimised out>
        __for_range = std::multimap with 1 element = {[3] = 0x555555a5d370}
        __for_begin = <optimised out>
        __for_end = <optimised out>
#11 polybar::v3_1_0_161_g028b141::controller::process_eventqueue (
    this=0x555555a60ad0)
    at /home/siva/Git/polybar/src/components/controller.cpp:351
No locals.
---Type <return> to continue, or q <return> to quit---
#12 0x00007ffff5889733 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#13 0x00007ffff4ffd6db in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
No symbol table info available.
#14 0x00007ffff4d2688f in clone () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.

Thread 3 (Thread 0x7fffea695700 (LWP 3305)):
#0  0x00007ffff5003f85 in pthread_cond_timedwait@@GLIBC_2.3.2 ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
No symbol table info available.
#1  0x00005555556d69ae in __gthread_cond_timedwait (
    __abs_timeout=0x7fffea694a70, __mutex=<optimised out>,
    __cond=0x555555a5d8e8)
    at /usr/include/x86_64-linux-gnu/c++/7/bits/gthr-default.h:871
No locals.
#2  std::condition_variable::__wait_until_impl<std::chrono::duration<double, std::ratio<1l,<PHONE_NUMBER>l> > > (__atime=..., __lock=..., this=0x555555a5d8e8)
    at /usr/include/c++/7/condition_variable:166
        __s = <optimised out>
        __ns = <optimised out>
        __ts = {tv_sec =<PHONE_NUMBER>, tv_nsec = 135634176}
---Type <return> to continue, or q <return> to quit---
        __s = <optimised out>
        __ns = <optimised out>
        __ts = <optimised out>
#3  std::condition_variable::wait_until<std::chrono::duration<double, std::ratio<1l,<PHONE_NUMBER>l> > > (__atime=..., __lock=..., this=0x555555a5d8e8)
    at /usr/include/c++/7/condition_variable:106
No locals.
#4  std::condition_variable::wait_for<double, std::ratio<1l, 1l> > (
    __rtime=<synthetic pointer>..., __lock=..., this=0x555555a5d8e8)
    at /usr/include/c++/7/condition_variable:138
No locals.
#5  polybar::v3_1_0_161_g028b141::modules::module<polybar::v3_1_0_161_g028b141::modules::date_module>::sleep (this=this@entry=0x555555a5d660,
    sleep_duration=...)
    at /home/siva/Git/polybar/include/modules/meta/base.inl:108
        lck = {_M_device = 0x555555a5d8c0, _M_owns = true}
#6  0x00005555556d844d in polybar::v3_1_0_161_g028b141::modules::timer_module<polybar::v3_1_0_161_g028b141::modules::date_module>::runner (this=0x555555a5d660)
    at /home/siva/Git/polybar/include/modules/meta/timer_module.hpp:37
        check = <optimised out>
#7  0x00007ffff5889733 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#8  0x00007ffff4ffd6db in start_thread ()
---Type <return> to continue, or q <return> to quit---
   from /lib/x86_64-linux-gnu/libpthread.so.0
No symbol table info available.
#9  0x00007ffff4d2688f in clone () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.

Thread 2 (Thread 0x7fffeae96700 (LWP 3304)):
#0  0x00007ffff50039f3 in pthread_cond_wait@@GLIBC_2.3.2 ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
No symbol table info available.
#1  0x00007ffff5883620 in std::condition_variable::wait(std::unique_lock<std::mutex>&) () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
#2  0x00005555556990c4 in polybar::v3_1_0_161_g028b141::taskqueue::<lambda()>::operator() (__closure=0x555555a23cc8)
    at /home/siva/Git/polybar/src/components/taskqueue.cpp:18
        guard = {_M_device = 0x555555a5ca48, _M_owns = true}
        this = 0x555555a5ca40
        this = <optimised out>
        guard = <optimised out>
        now = <optimised out>
        wait = <optimised out>
        task = <optimised out>
        __for_range = <optimised out>
---Type <return> to continue, or q <return> to quit---
        __for_begin = <optimised out>
        __for_end = <optimised out>
        when = <optimised out>
#3  std::__invoke_impl<void, polybar::v3_1_0_161_g028b141::taskqueue::taskqueue()::<lambda()> > (__f=...) at /usr/include/c++/7/bits/invoke.h:60
No locals.
#4  std::__invoke<polybar::v3_1_0_161_g028b141::taskqueue::taskqueue()::<lambda()> > (__fn=...) at /usr/include/c++/7/bits/invoke.h:95
No locals.
#5  std::thread::_Invoker<std::tuple<polybar::v3_1_0_161_g028b141::taskqueue::taskqueue()::<lambda()> > >::_M_invoke<0> (this=0x555555a23cc8)
    at /usr/include/c++/7/thread:234
No locals.
#6  std::thread::_Invoker<std::tuple<polybar::v3_1_0_161_g028b141::taskqueue::taskqueue()::<lambda()> > >::operator() (this=0x555555a23cc8)
    at /usr/include/c++/7/thread:243
No locals.
#7  std::thread::_State_impl<std::thread::_Invoker<std::tuple<polybar::v3_1_0_161_g028b141::taskqueue::taskqueue()::<lambda()> > > >::_M_run(void) (
    this=0x555555a23cc0) at /usr/include/c++/7/thread:186
No locals.
#8  0x00007ffff5889733 in ?? () from /usr/lib/x86_64-linux-gnu/libstdc++.so.6
No symbol table info available.
---Type <return> to continue, or q <return> to quit---
#9  0x00007ffff4ffd6db in start_thread ()
   from /lib/x86_64-linux-gnu/libpthread.so.0
No symbol table info available.
#10 0x00007ffff4d2688f in clone () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.

Thread 1 (Thread 0x7ffff7fa39c0 (LWP 3300)):
#0  0x00007ffff4d1c03f in select () from /lib/x86_64-linux-gnu/libc.so.6
No symbol table info available.
#1  0x000055555567779b in polybar::v3_1_0_161_g028b141::controller::read_events
    (this=this@entry=0x555555a60ad0)
    at /home/siva/Git/polybar/src/components/controller.cpp:273
        readfds = {fds_bits = {24, 0 <repeats 15 times>}}
        maxfd = 4
        events = <optimised out>
        confevent = <optimised out>
        fd_connection = 3
        fd_confwatch = -1
        fd_ipc = -1
        fds = std::vector of length 2, capacity 2 = {4, 3}
#2  0x000055555567d75e in polybar::v3_1_0_161_g028b141::controller::run (
    this=0x555555a60ad0, writeback=<optimised out>, snapshot_dst=...)
    at /home/siva/Git/polybar/src/components/controller.cpp:194
---Type <return> to continue, or q <return> to quit---
        started_modules = 1
#3  0x000055555562929c in main (argc=2, argv=0x7fffffffded8)
    at /home/siva/Git/polybar/src/main.cpp:143
        xcb_screen = 0
        xcb_connection = <optimised out>
        conn = <optimised out>
        confpath = ""
        cli = std::unique_ptr<polybar::v3_1_0_161_g028b141::command_line::parser> = {get() = 0x555555a53300}
        conf = <optimised out>
        config_watch = std::unique_ptr<polybar::v3_1_0_161_g028b141::inotify_watch> = {get() = 0x0}
        ctrl = std::unique_ptr<polybar::v3_1_0_161_g028b141::controller> = {
          get() = 0x555555a60ad0}
        scriptname = "/usr/local/bin/polybar"
        args = std::vector of length 1, capacity 1 = {"example"}
        xcb_error = <optimised out>
        ipc = std::unique_ptr<polybar::v3_1_0_161_g028b141::ipc> = {
          get() = 0x0}
        opts = std::vector of length 11, capacity 11 = {{flag = "-h",
            flag_long = "--help", desc = "Display this help and exit",
            token = "", values = std::vector of length 0, capacity 0}, {
            flag = "-v", flag_long = "--version",
---Type <return> to continue, or q <return> to quit---
            desc = "Display build details and exit", token = "",
            values = std::vector of length 0, capacity 0}, {flag = "-l",
            flag_long = "--log",
            desc = "Set the logging verbosity (default: WARNING)",
            token = "LEVEL", values = std::vector of length 4, capacity 4 = {
              "error", "warning", "info", "trace"}}, {flag = "-q",
            flag_long = "--quiet", desc = "Be quiet (will override -l)",
            token = "", values = std::vector of length 0, capacity 0}, {
            flag = "-c", flag_long = "--config",
            desc = "Path to the configuration file", token = "FILE",
            values = std::vector of length 0, capacity 0}, {flag = "-r",
            flag_long = "--reload",
            desc = "Reload when the configuration has been modified",
            token = "", values = std::vector of length 0, capacity 0}, {
            flag = "-d", flag_long = "--dump",
            desc = "Print value of PARAM in bar section and exit",
            token = "PARAM", values = std::vector of length 0, capacity 0}, {
            flag = "-m", flag_long = "--list-monitors",
            desc = "Print list of available monitors and exit", token = "",
            values = std::vector of length 0, capacity 0}, {flag = "-w",
            flag_long = "--print-wmname",
            desc = "Print the generated WM_NAME and exit", token = "",
            values = std::vector of length 0, capacity 0}, {flag = "-s",
---Type <return> to continue, or q <return> to quit---
            flag_long = "--stdout",
            desc = "Output data to stdout instead of drawing it to the X window", token = "", values = std::vector of length 0, capacity 0}, {flag = "-p",
            flag_long = "--png",
            desc = "Save png snapshot to FILE after running for 3 seconds",
            token = "FILE", values = std::vector of length 0, capacity 0}}
        exit_code = 0 '\000'
        reload = false
        logger = @0x555555a554b0: {
          m_level = polybar::v3_1_0_161_g028b141::loglevel::WARNING, m_fd = 2,
          m_prefixes = std::map with 4 elements = {
            [polybar::v3_1_0_161_g028b141::loglevel::ERROR] = "\r\033[1;31merror: \033[0m",
            [polybar::v3_1_0_161_g028b141::loglevel::WARNING] = "\r\033[1;33mwarn: \033[0m",
            [polybar::v3_1_0_161_g028b141::loglevel::INFO] = "\r\033[1;32m* \033[0m", [polybar::v3_1_0_161_g028b141::loglevel::TRACE] = "\r\033[0;90m- "},
          m_suffixes = std::map with 4 elements = {
            [polybar::v3_1_0_161_g028b141::loglevel::ERROR] = "\033[0m",
            [polybar::v3_1_0_161_g028b141::loglevel::WARNING] = "\033[0m",
            [polybar::v3_1_0_161_g028b141::loglevel::INFO] = "\033[0m",
            [polybar::v3_1_0_161_g028b141::loglevel::TRACE] = "\033[0m"}}

Solved it; I just needed to change weight=medium to weight=100.
I hope this helps others who have been experiencing this issue.

By the way, I wanted to point out that this is the perfect issue number :grin:.


Compilation error (VS Code)

Hi, the error occured when I trying complile code:

WindiCSS IntelliSense v0.21.6
Reinstall not helped.
VS Code:
Version: 1.64.0 (user setup)
Commit: 5554b12acf27056905806867f251c859323ff7e9
Date: 2022-02-03T04:22:20.678Z
Electron: 13.5.2
Chromium: 91.0.4472.164
Node.js: 14.16.0
V8: 9.1.269.39-electron.0
OS: Windows_NT x64 10.0.19042

@benyrfg That means the extension did not start correctly. Can you check your VSCode OutputChannels to see if you find any error message.


feat(spanner): add sample for commit stats

This PR adds a sample to show how to get commit stats for a Cloud Spanner transaction.

@larkee there are a couple of failing tests.

A backup restore test but I think it's because there are tests running in parallel on the same instance.
Commit stats test:

Google\Cloud\Samples\Spanner\spannerTest::testGetCommitStats
Google\Cloud\Core\Exception\NotFoundException: {
    "message": "Index updates failed because no existing data was found for Albums[3,3]",
    "code": 5,
    "status": "NOT_FOUND",
    "details": [
        {
            "@type": "grpc-server-stats-bin",
            "data": "<Unknown Binary Data>"
        }
    ]
}

@skuruppu Whoops! I was using the wrong key values in the sample. Fixed 👍


Make the refresh method datetime aware

The current incremented-variable method doesn't work consistency with the tab in the background. Sometimes doesn't refresh upon returning to the tab.

Nah.


Geolite2

Hi
when checking the geolite website they mentioned that they now moved to the geolite2 format.
Do you have any plans to upgrade the plugin to use the new format?

+1

Available here: https://github.com/Miserlou/django-easy-timezones/pull/22
I haven't looked at the PR yet though, tell me if it works and I'll merge it into master.

I have taken a look a #22, found some issues, fixed them, and submitted a new PR #40

You can also consider to change the geolocation database to IP2Location LITE. It has good Python library.

any update on this one?


brownie run scripts/simple_collectible/create_collectible.py --network rinkeby

I get error Unable to expand environment variable in host setting. i have .env file
*export PRIVATE_KEY=my private key
*export WEB3_INFURA_PROJECT_ID=my infura project id
i don't know what should i do. v  Please help me i stuck 2 days :-)
thank you very much
My computer OS windows 10
I have use these versions
Python 3.10.0
Ganache CLI v6.12.2 (ganache-core: 2.13.2)
Brownie v1.16.4 - Python development framework for Ethereum
PS C:\Users\nyamgavaa.g\Desktop\NFT> brownie run scripts/simple_collectible/deploy_simple.py --network rinkeby
INFO: Could not find files for the given pattern(s).
Brownie v1.16.4 - Python development framework for Ethereum
File "C:\Users\nyamgavaa.g\AppData\Local\Programs\Python\Python310\lib\site-packages\brownie_cli_main_.py", line 64, in main
importlib.import_module(f"brownie._cli.{cmd}").main()
File "C:\Users\nyamgavaa.g\AppData\Local\Programs\Python\Python310\lib\site-packages\brownie_cli\run.py",
line 43, in main
network.connect(CONFIG.argv["network"])
File "C:\Users\nyamgavaa.g\AppData\Local\Programs\Python\Python310\lib\site-packages\brownie\network\main.py", line 40, in connect
web3.connect(host, active.get("timeout", 30))
File "C:\Users\nyamgavaa.g\AppData\Local\Programs\Python\Python310\lib\site-packages\brownie\network\web3.py", line 52, in connect
uri = _expand_environment_vars(uri)
File "C:\Users\nyamgavaa.g\AppData\Local\Programs\Python\Python310\lib\site-packages\brownie\network\web3.py", line 183, in _expand_environment_vars
raise ValueError(f"Unable to expand environment variable in host setting: '{uri}'")
ValueError: Unable to expand environment variable in host setting: 'https://rinkeby.infura.io/v3/$WEB3_INFURA_PROJECT_ID'
PS C:\Users\nyamgavaa.g\Desktop\NFT>

I fixed the issue by restart computer. Mostly suggested if you install python at first time and add  both path of python.exe and /scripts in windows environment variable (if you use windows) , Restart your computer.


Request custom object serialization

Hi,
I am using Alamofire by using URLRequestConvertible (API Parameter Abstraction) method. It simplifies a communication in lot easier way. Thanks a lot to Alamofire and Team.
I have one query which I already searched in Issues & Pull Request but didn't found solution anywhere. If I want to pass a custom object to my POST request body, then how to Serialize the custom object with Alamofire. Will this be possible with URLRequestConvertible methods?
I saw various example which shows the serialization of Response. But I need to Serialize the Request object with Alamofire.
Is there such a provisioning? If not, can I intercept any request method to serialize the custom object?

Hi @shahdhiren,
You absolutely can, but this type of question is best suited for Stack Overflow with an alamofire tag. We use our GitHub project for bug reports and feature requests.
Best of luck! 🍻

From our Contribution Guidelines
Asking Questions
We don't use GitHub as a support forum. For any usage questions that are not specific to the project itself, please ask on Stack Overflow instead. By doing so, you'll be more likely to quickly solve your problem, and you'll allow anyone else with the same question to find the answer. This also allows maintainers to focus on improving the project for others.


Add issue_template.md which asks for version info.

This adds a header to new issues which asks for version information and cloud provider.

I agree. Thanks!


Exception: Class log does not exist when using trans() in config.

On a fresh L5 install, when attempting to use localization in a config file (in this instance a published package config), the following exception is thrown:
PHP Fatal error:  Uncaught exception 'ReflectionException' with message 'Class log does not exist' in .../laravel/framework/src/Illuminate/Container/Container.php:776
I initially thought this was due to the package itself and it's loading/handling of the translation files, but the error is also thrown when attempting to use translations in the project (resources/lang).

Don't use trans() at such an early point in the framework. You're using it before the logger is even initialized.

I disagree here and it should be the other way around, with the Logger already available.
It's pretty common to have translations in config files.

It's pretty common to have translations in config files.

You should not be doing that. We do not support or recommend doing that. Config files should not be generated based on environmental changes. Doing so would mean that config caching would be unreliable.

I see your point but as I see it the config files should not contain any dynamic value then.

I see your point but as I see it the config files should not contain any dynamic value then.

Correct.

Excluding getting environment variables. :)

Sure, otherwise it would be pointless


batch insert sql can improve efficiency?

Question
batch insert 10000 record by default  just need 2~3 second，but use sharding-jdbc insert need more than 2 minutes。
how to optimize it to improve efficiency？
maven version：

test case result：

database：Mysql 5.7

What Type?
Master/Slave almost without any reduce.
sharding tables seem half speed of raw insert.

without any reduce
my sharding config：

the same configuration.
Raw Insert insert 10,000 rows data use 1.759s
Sharding table insert 10,000 rows data use  10.42s

duplicate with #3351

the same configuration.
Raw Insert insert 10,000 rows data use 1.759s
Sharding table insert 10,000 rows data use 10.42s

I found sharding table insert 10000 rows in one sql slower than 500 rows in 20 sql，because sql longer parsing sql slower？

This question is raised by me. Now, the performance of this batch insert has a great impact, both RC1 and RC2 have a great impact

#3351 This question is raised by me. Now, the performance of this batch insert has a great impact, both RC1 and RC2 have a great impact。
I mainly use the default data source, which is inserted in batches. 200 days, nearly 4 seconds, what other good way to avoid this problem

I read your question，and now i fix this question by config two data sources like this：
default data source config：

sharding data source config：

if i do not need operate sharding table ，i user default data source to operate database

I know the way you said, but this one is in the same transaction with the sharing table - two data sources can't control the transaction
发自我的 iPhone

在 2019年11月4日，23:44，zhuobinchan<EMAIL_ADDRESS>写道：
#3351 This question is raised by me. Now, the performance of this batch insert has a great impact, both RC1 and RC2 have a great impact。
I mainly use the default data source, which is inserted in batches. 200 days, nearly 4 seconds, what other good way to avoid this problem
I read your question，and now i fix this question by config two data sources like this：
default data source config：
sharding data source config：
if i do not need operate sharding table ，i user default data source to operate database
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub, or unsubscribe.


Variable can't contain backslash

This is an example code.
const text = 'abc\\';
await client.execute('insert into users(name) values(?)', [text]);

This is a result of the query string.
insert into users(name) values("abc\")

So, it will throw an error.

@chitly  Thanks chitly, it's a really good issue.
@manyuanrong @zhmushan It should be an escape issue. Since this lib depends on module sql_builder, I prefer to handle such issue in that module. Thoughts?

I think it needs to be handled in sql_builder, and if the value ends with "", it can be very violent to directly add a "" at the end

I've raised a pull request to fix this in sql-builder
https://github.com/manyuanrong/sql-builder/pull/11


protocol.d.ts should define constants for kind and kindModifiers

The current documentation list examples, but without a definition clients can't know about the set of valid kinds and kindModifiers.

I think we should consider filing future issues like this on the TypeScript repo itself, but since we're discussing here, let's continue.
Not really sure where I see the example of how to do this in protocol.d.ts. I think @dbaeumer's point about constants still stands. For instance, I'll be working on getDocumentHighlights server support soon and I'm sort of just left with explicitly stating the values within the documentation in protocol.d.ts.


Renaming operator not working

Right click on operator
Select Rename from context menu
Start typing for the new name
-> either nothing happens or some unexpected scrolling

Keystrokes seems to interfere with commands (eg ASDW for scrolling etc)
version latest dev 0fdd87e

Should be fixed.

The fix wasn't planned for 3.4, it is supposed to be fixed in 3.5

Well spotted! The behavior is different between using the Return-key shortcut and the context menu.
I'm looking into that.


"Sinești", "Boteni", "Cătrunești" are listed in the drop-down menu

Description:
When user writes ”Sinești”, "Boteni" and "Cătrunești" the locations appear in the drop-down menu next to the comune and the county which is a part according to the law.
Precondition:
The website is up an running.

Step 1
Write in the search bar "Sinești"

Expected results
The location appears in the drop-down menu as "Sat Sinești, IALOMIȚA (Sinești)".

Step 2
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 3
Write in the search bar "Boteni"

Expected results
The location appears in the drop-down menu as "Sat Boteni, IALOMIȚA (Sinești)".

Step 4
Press "x" button.

Expected results
The location was deleted from the search bar.

Step 5
Write in the search bar "Cătrunești"

Expected results
The location appears in the drop-down menu as "Sat Cătrunești, IALOMIȚA (Sinești)".


MigratedMemorizeActivityToIntroJs

Re-did the migration as last pr had some mistakes.

Issue #1090 is addressed in this pr.

@llaske This pr is ready to be merge. Please give feedback.

Hey @jain-arihant-2002, It would be helpful if you correct the indentation of these lines similar to this one.
What's your view @llaske?

jquery.min.js is removed but still referenced.

Hey @jain-arihant-2002, It would be helpful if you correct the indentation of these lines similar to this one. What's your view @llaske?

I don't why github viewing indentation wrong

They look like right in my editor.

@llaske Can you take a look please.

I don't why github viewing indentation wrong

It's because of spaces rather than from tabs.

@S-kus done

Nice. Thanks.


Generate documentation with Sphinx

@chrissimpkins said at https://github.com/googlefonts/fontbakery/pull/2027#issuecomment-430851664:

Coming along!

The existing free text docs render great:

Will work on source file docs over the next couple of days.

Alright, here is where we are:
Home

Markdown Renders

Autodoc parses of source files

Everything appears to be working with the docstring parsing (on first glance) except the decorated specification functions under the fontbakery.specifications modules.  All autopopulated documentation files are blank across the entire set of modules under specifications:

If I add a public class in one of the modules, it renders as expected so I think that we are dealing with a problem parsing functions with decorators:

autodoc documentation suggests the following:

f you document decorated functions or methods, keep in mind that autodoc retrieves its docstrings by importing the module and inspecting the doc attribute of the given function or method. That means that if a decorator replaces the decorated function with another, it must copy the original doc to the new function.
From Python 2.5, functools.wraps() can be used to create well-behaved decorating functions.

I can verify that I can import the module and the docstring prints with a call of the [function].__doc__ and that you are using functools to wrap the decorators in the callable module.  Not sure how to address this in a way that will automate the documentation with members and associated docstrings in these modules.  Thoughts?

https://docs.python.org/3/library/functools.html#functools.wraps

ah you are already using functools.wraps sorry for the noise

no worries Cosimo.  have any thoughts?

We can add all of them in manually but it defeats the purpose of the automated parsing for an important part of this project that changes most frequently

not sure.. maybe those functions are wrapped twice? not sure if wraps is idempotent

Let's see if Felipe or Lasse have thoughts.  If not I will write them manually.  Thanks for having a look.

I should mention as well that autodoc does not raise any errors or warnings about this.  Happy to submit the PR as is if this is helpful.

Please, send the pull request and we'll try to help debugging this.

any time spent fixing the code to ensure it is fully automated is good use of time.

I didn't expect that the @check and @condition decorators go down well with this. Maybe we can figure a way to plug in some custom renderer for these? Would be awesome. We can also just write something from scratch.

PR with the documentation changes is open #2106 if you want to have a look at the doc build.
Let me know what I can do.

I didn't expect that the @check and @condition decorators go down well with this. Maybe we can figure a way to plug in some custom renderer for these? Would be awesome.

I think the most important part of documentation of checks is their rationale (and any other metadata they may have). This is currently not displayed to users on runtime, but it should be available and listed on the docs.

I think the most important part of documentation of checks is their rationale (and any other metadata they may have). This is currently not displayed to users on runtime, but it should be available and listed on the docs

I agree.  It would be very helpful to have a reference of all of the tests that are performed and their rationale.  I won't be the best person to draft that document but I'd be happy to help merge it into the new docs if needed.

OK to close I think.  I pulled relevant information from this thread into new issue reports.


VSCode extension fails to send heartbeats when running docker-compose example

I tried the demo instance with api_url = https://hakatime.mtx-dev.xyz/api/v1/users/current/heartbeats.bulk and it works as expected, however when running locally with docker-compose -f ./docker-compose-deploy.yml up the VSCode extension fails to register any heatbeat.
Settings
[settings]
api_key = XXX
api_url = https://local.hakatime.com/api/v1/users/current/heartbeats.bulk

Error log:
{
  "caller": "cmd/run.go:270",
  "file": "/Users/tommi/.wakatime.log",
  "func": "cmd.runCmd",
  "level": "error",
  "lineno": 1,
  "message": "failed to run command: sending heartbeat(s) failed: bad request: bad request at \"https://local.hakatime.com/api/v1/users/current/heartbeats.bulk\"",
  "now": "2022-12-03T13:17:22+01:00",
  "os/arch": "darwin/arm64",
  "plugin": "vscode/1.73.1 vscode-wakatime/22.0.1",
  "time":<PHONE_NUMBER>.451042,
  "version": "v1.60.1"
}

@TommasoAmici Could you post here the docker-compose example you used?
Note that local.hakatime.com is probably not pointing to your local instance. If you're using the docker-compose-deploy.yml file found on the repo then your api_url on the config should be the following:
# e.g api_url=https://hakatime.mtx-dev.xyz/api/v1/users/current/heartbeats.bulk for the demo instance.
api_url=http://localhost:8080/api/v1/users/current/heartbeats.bulk

Ok, I updated the version in the example file from v1.6.1 to v1.7.0-arm (later versions don't seem to start on my M1 macbook) and it now works, thanks for the help!


Adding docs on how dynamic batching works.

This PR starts the minimal possible amount of explanation I could think
of. It tries to explain how dynamic batching occurs, the interactions
with past key values and ignores the padding problem.
Maybe some drawings could help too but I kept it to text for now.

@Narsil I have been referring to what's done here as "continuous batching" to differentiate from other kinds of dynamic batching.
Typical auto-batching that is done could also be considered dynamic (since batches are filled by the server) but the unique thing here is that we are removing/adding requests to the batch while the generation is in progress. So in theory you could have a continuous batch that never ends...
I have some drawings too that I can share.

@njhill,
I really like the term "continuous batching" and I think it fits perfectly with the concept!

I renamed the concept. It is indeed more precise than just dynamic !


work with Microsoft account?

There isn't an explanation of why this doesn't work with a Microsoft account? Can it be made to work with a Microsoft account? if not, why not? Sorry but I'm a newbie with web development and am just starting to look into this. thanks for any help you can offer

While following this step-by-step example, I can't assign permissions to the ToDoListService.  searching for the service by name gives me 'NoResults'

@jimbo74 This sample supports Azure AD accounts only.  In order to support Azure AD + MSA, you have to use the v2.0 converged endpoint.  Checkout aka.ms/aadv2 or https://github.com/azure-samples and search for v2 samples.


Disable Button when application runs

Correcting JSDoc for statusReducer (which is suppose to be file property, not clearValue)
Included processing property to useStatusNotificationObject
Changed reducer to return only action of specific property when called
Included SET_PROCESSING and CLEAR_PROCESSING to components and runNotification function

This will add function that disable button while application is processing request to upload/query/delete files from Solid; Will be enabled again after its processed
Aim of this is to reduce potential multiple of the same request from being sent to Solid

not sure if this is working as intended, I Haven't had a chance to troubleshoot why but it still allows spam submissions when I cloned and ran it.

No, you are correct. At the moment, this feature is still a little buggy. Trying to figure out the positioning on where I set the button disabled state within runNotification and the handler functions in the Forms.

Did a few fixes and refactoring for runNotification and the Form handler functions. Think it should be working now.


Add docs describing how to use Ethers.js and Web3.js with Aurora

It's sometimes not that straightforward to figure out how to connect networks like Aurora with Ethers.js and Web3.js.
I'd like to recommend to add docs describing how to use ethers.js and web3.js with Aurora, which could be similar to

https://docs.moonbeam.network/builders/build/eth-api/libraries/ethersjs/
https://docs.moonbeam.network/builders/build/eth-api/libraries/web3js/

Hi @think-in-universe ,
What do you think about having a web3.js plugin that supports calling all Aurora methods: https://github.com/conx3/web3-plugin-aurora/tree/expose-all-rpc-methods-at-namespaces?tab=readme-ov-file#supported-rpc-methods
This functionality is yet to be fully implemented, and would like to have your thoughts on.

Hi @think-in-universe
And I am happy to tell you that I implemented the early mentioned features. And I published the npm package as an alpha version at: https://www.npmjs.com/package/@con3x/web3-plugin-aurora.
You can check the README.md of the feature branch at: https://github.com/Con3X/web3-plugin-aurora/blob/expose-all-rpc-methods-at-namespaces/README.md
I will be happy to receive feedback at the MR: https://github.com/Con3X/web3-plugin-aurora/pull/1


Update PNPM in CI workflows

This pull request updates PNPM in the CI workflows.

coverage: 99.866% (-0.1%) from 100.0%
when pulling 04fe574fc104ac5f8593f9b0b67cc696b57be0ac on update_pnpm_on_ci
into 53172c30654726cb010de3ce0f7e807cd105b108 on master.


Support allow_write_after_shrink in ILM policies

Fixes https://github.com/elastic/terraform-provider-elasticstack/issues/661

@tobio , shall we change expand as well?

The 8.14 tests are fixed by https://github.com/elastic/terraform-provider-elasticstack/pull/663


Question: methods for safely reusing VMs

I have a use case where javascript would be fed in data and executed on the order of 100 times per API request.  The javascript itself is considered code, but isn't compiled in (it's the rulio project).
The problem comes when scaling up: profiling shows that the creation of these 100 VMs is quite expensive in terms of CPU and memory, while the actual execution of the code is cheap (the javascript code isn't very complicated).  At this point I'm looking for hacks around wrapping code in (function(){%s \n return %s})() to retain the return value but limit the amount of things that can leak from the scope of an execution.  I'm not looking for a solution to protect against malicious javascript, just keep state leakage between usage at a minimum.
unfortunately, even the (function(){%s \n return %s})() trick isn't feasible: since javascript statements are either newline or ; delimited, I need a parser to figure out what the last statement actually is.  Goja has a parser, but I don't see any way to achieve this (e.g. "what's the last javascript statement as a string").
Barring that, is there any easy way to "seal" a runtime such that the result of an execution can be cheaply reverted or thrown away?  The goal here is to keep a pool of runtimes available so that one is available each time a goroutine needs it, but not to create a new VM for each usage.

Hi.
Restoring VM state after an arbitrary code was run would be very tricky as I mentioned in https://github.com/dop251/goja/issues/205
To solve your problem, first of all you'd need to make sure you use strict mode, otherwise any assignment to an undefined variable (e.g. simple x = 1) would create a binding in the global scope, even if you wrap it in a function.
Secondly, you'll need to require the code to be a valid function body. I understand that it would break compatibility, but I don't see any other way unfortunately (besides using strict mode would break it anyway). It's quite a common practice, all DOM handlers (onclick, onchange, onsubmit, etc...) follow this pattern.
Alternatively you could use direct eval, i.e. have function runner(code) { return eval(code) } and call it from Go, but it's clunky, you can't pre-compile the code, and the requirement to use strict mode still holds.
Hope this helps.

This has helped quite a bit, thanks for the detailed response!


Fix anchors in Biome Modifier docs

Seems it has to be lowercase for it to work online even though uppercase worked locally

Preview URL: https://pr-167.neoforged-docs-previews.pages.dev

(trivial change, I took the liberty to bypass sci's review here)


The Delta Import will fail. Looking through the source, I believe the issue is that End-ExportScript-Lync.ps1 line 46 removes the PSSession however the object still exists in a closed state so then Begin-ImportScript-Lync.ps1 on line 137 references that because the scope of the variable is global, and line 134 never replaced the object reference due to error.
Below is a snippet of the reproduced problem

So solution would be to also check for Closed session
if ((!$session) -or ($session.State -eq "Closed")) { Write-Host "Open new Session" }

@NileshGhodekar I have opened a support case with Premier.

I wouldn't use the two-step run profiles where you do export-import in one single profile. Not related to the PowerShell ECMA2 connector, but in general. I've seen many customers trying this and failing. When I was the PM for the sync engine I saw several of these cases and the answer (from me) was always to separate these to two different profiles.

thomashouston, I experience the same issue that you did or do, did you have any luck with your support case?

Hello, is it possible this issue could also be seen when running an Export run profile, followed immediately by a Delta Import run profile? Every couple of days our Skype PSMA hangs and we have to kill the miiserver.exe process. Also, do you think it will be an easy fix?

@thomashouston I experience the same issue that you did or do, did you have any luck with your support case?

Hi @LindbergM, I wasn't able to reproduce the issue offline, so didn't get very far with Premier, unfortunately.

@LindbergM, @thomashouston, I suspect the issue you are referring to is the following one I just logged. (Issue #32 )
This issue (#19)  i've identified and documented and when I have time will put in a pull request to resolve


Use TextInputLayout's setError instead of Toast

Hey! I've done a quick change in order to not use Toast anymore. So now the errors will be show under the field, using the TextInputLayout setError method :)
I've also replaced the empty string check with the TextUtils' one

Cool, thank you!