IPv6 literals are broken

Reproduction
import fetch from 'node-fetch';
fetch('http://[::1]:8080')
  .then(res => console.debug('ok'))
  .catch(err => console.error('err', err));

getaddrinfo ENOTFOUND [::1]

Expected behavior

If there is a server at [::1]:8080, it should not fail

Cause

This was working fine in 2.x, but in 3.x the URL parser switched from Node's url.Url to WHATWG's URL

> u = url.parse('http://[::1]');
Url {
...
  host: '[::1]',
  hostname: '::1',
...
}
> u = new URL('http://[::1]')
URL {
...
  host: '[::1]',
  hostname: '[::1]',
...
}

offending line, 3.x
2.x passes url.Url directly to request()

Hmm, doing new URL('http://[::1]').hostname === '[::1]' feels more correct.
and using URL instead of url.parse is more fetch-spec'ed ish
But i guess historically http.request was first built with the legacy url.parse in mind
maybe we could use the whatwg URL parser trough out the hole system but just right before we call get a node http request option: https://github.com/node-fetch/node-fetch/blob/2603c67f1840fb4a43e0837099a3b2725e8f615e/src/request.js#L208-L210
then maybe we can convert it back to the historical format?
url.parse(new URL('http://[::1]').toString())
Also wondering if we really need all dose spreaded out, thinking maybe we could just do http.request(full_url_string, { headers, ...rest })

I propose fixing this with:
let hostname = parsedURL.hostname;
if (hostname.startsWith("[") && hostname.endsWith("]")) {
  hostname = hostname.substring(1, hostname.length - 1)
}

// ...

const requestOptions = {
  // ...
  hostname: hostname,


Improvement Description goes here

1ip: 1
title: 1inch Liquidity Proposal concepts and terminologies
status: Active
type: Information
author: 1inch Network team
created: 2020-12-25

In this very first 1IP, we formally define the core concepts and terminologies of 1inch Government to set a common ground for 1inch community. The definitions here will be used as the truth (not assumption) in every discussion of the DAO.
Copyright
Copyright and related rights waived via CC0.

This draft is not satisfied with the requirements. Please fill it in according to our guidelines.


Excluding /debian/ directory if existing in original tarball, fixes #30

@mfeit-internet2 This one works for me, I think it can be merged.

This change is not required.


fix: fix issue with grep commands

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


enable disaster dashboard for prod and staging

enable disaster dashboard and event page (because disaster dashboard links to event pages)
add disaster dashboard to explore dropdown
add webdriver test for event page

Is "ENABLE_DISASTER_JSON" still needed in local? If not, maybe remove it.

we still have the ability to use the disaster json for the disaster dashboard, so we should probably keep that flag until we decide to remove that option.. And probably want to do in separate PR


i can't login to copilot

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

VS Code Version:
OS Version:

Steps to Reproduce:

try to login through jetbrains
i get the prompt to paste in the broswer, i do that just fine and when i go back to intelij it just spins, and never authenticates

i am not using VS code, i am using jetbrains
os version mac 14.4.1

/question
You should report it in proper channel for your IDE

We closed this issue because it is a question about using VS Code rather than an issue or feature request. Please search for help on StackOverflow, where the community has already answered thousands of similar questions. You may find their guide on asking a new question helpful if your question has not already been asked. See also our issue reporting guidelines.
Happy Coding!


Fix for matplotlib>=3.4.0

The arguments to _process_unit_info changed in matplotlib 3.4.0 (current latest is 3.5.1). This pull request makes the required change.
Note that this will of course break for installations with matplotlib<3.4.0.
Related issue: #953

Make sure the dependency specifications reflect the deprecation of matplotlib<3.4.0 and then this looks good.

@timovwb Can I take over this fix?
@ekalosak
The current setup.conf seems to specify matplotlib version 3.0.0 for python 3.5.
Does this mean we need to stop support for py3.5 to apply this PR?
https://github.com/SheffieldML/GPy/blob/f63ed48b0d4bf043868a0a1729d28003c13fe263/setup.py#L120-L126
Or do we need other workarounds? ex.
try:
    # for matplotlib <= 3.3.4
    ax._process_unit_info(xdata=X, ydata=y1)
    ax._process_unit_info(ydata=y2)
except TypeError:
    # for matplotlib > 3.4.0
    ax._process_unit_info([("x", X), ("y", y1)], convert=False)
    ax._process_unit_info([("y", y2)], convert=False)

@i-aki-y Definitely, go ahead.


onClick button

how can i put a button into the header and get the onClick

I'm facing same problem like this, can some one please provide solution...

Hello, trying to answer here.
Both of you could use the Header Overlay and add button to the overlay layout. Then, you add the onclickListener on the activity/fragment. But, if you mean that the button keeps going with the action bar when it's scrolled down, you need some configuration with onScrollListener event options
Here is the example of my app using FadingActionBar with overlay options


Removing connect-history-api-fallback breaks npm start

(Restoring the modules fixes the issue.)
After running
npm uninstall --save react-router connect-history-api-fallback
I throw a stack trace on npm start
`
$ npm start

<EMAIL_ADDRESS>prestart /Users/jasonb/projects/lb-take-2
npm-run-all --parallel start-message remove-dist

<EMAIL_ADDRESS>start-message /Users/jasonb/projects/lb-take-2
babel-node tools/startMessage.js

<EMAIL_ADDRESS>remove-dist /Users/jasonb/projects/lb-take-2
rimraf ./dist

Starting app in dev mode...

<EMAIL_ADDRESS>start /Users/jasonb/projects/lb-take-2
npm-run-all --parallel test:watch open:src lint:watch

<EMAIL_ADDRESS>lint:watch /Users/jasonb/projects/lb-take-2
npm run lint -- --watch

<EMAIL_ADDRESS>test:watch /Users/jasonb/projects/lb-take-2
npm run test -- --watch

<EMAIL_ADDRESS>open:src /Users/jasonb/projects/lb-take-2
babel-node tools/srcServer.js

<EMAIL_ADDRESS>lint /Users/jasonb/projects/lb-take-2
esw webpack.config.* src tools --color "--watch"

<EMAIL_ADDRESS>test /Users/jasonb/projects/lb-take-2
mocha tools/testSetup.js "src/**/*.spec.js" --reporter progress "--watch"

0 passing (1ms)
module.js:442
throw err;
^
Error: Cannot find module 'connect-history-api-fallback'
at Function.Module._resolveFilename (module.js:440:15)
at Function.Module._load (module.js:388:25)
at Module.require (module.js:468:17)
at require (internal/module.js:20:19)
at startServer (/Users/jasonb/projects/lb-take-2/node_modules/browser-sync-ui/lib/server.js:70:13)
at Object.module.exports.startServer [as fn] (/Users/jasonb/projects/lb-take-2/node_modules/browser-sync-ui/lib/async.js:91:41)
at /Users/jasonb/projects/lb-take-2/node_modules/browser-sync-ui/lib/UI.js:184:14
at iterate (/Users/jasonb/projects/lb-take-2/node_modules/async-each-series/index.js:8:5)
at /Users/jasonb/projects/lb-take-2/node_modules/async-each-series/index.js:16:16
at /Users/jasonb/projects/lb-take-2/node_modules/browser-sync-ui/lib/UI.js:192:13
at Object.module.exports.setUrlOptions [as fn] (/Users/jasonb/projects/lb-take-2/node_modules/browser-sync-ui/lib/async.js:72:9)
at /Users/jasonb/projects/lb-take-2/node_modules/browser-sync-ui/lib/UI.js:184:14
at iterate (/Users/jasonb/projects/lb-take-2/node_modules/async-each-series/index.js:8:5)
at /Users/jasonb/projects/lb-take-2/node_modules/async-each-series/index.js:16:16
at /Users/jasonb/projects/lb-take-2/node_modules/browser-sync-ui/lib/UI.js:192:13
at Object.module.exports.setBsOptions [as fn] (/Users/jasonb/projects/lb-take-2/node_modules/browser-sync-ui/lib/async.js:47:9)
npm ERR! Darwin 15.3.0
npm ERR! argv "/usr/local/Cellar/node/6.2.2/bin/node" "/usr/local/bin/npm" "run-script" "open:src"
npm ERR! node v6.2.2
npm ERR! npm  v3.9.5
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>open:src: babel-node tools/srcServer.js
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>open:src script 'babel-node tools/srcServer.js'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the react-slingshot package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     babel-node tools/srcServer.js
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs react-slingshot
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls react-slingshot
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /Users/jasonb/projects/lb-take-2/npm-debug.log
ERROR: "open:src" exited with 1.
npm ERR! Darwin 15.3.0
npm ERR! argv "/usr/local/Cellar/node/6.2.2/bin/node" "/usr/local/bin/npm" "start"
npm ERR! node v6.2.2
npm ERR! npm  v3.9.5
npm ERR! code ELIFECYCLE
npm ERR<EMAIL_ADDRESS>start: npm-run-all --parallel test:watch open:src lint:watch
npm ERR! Exit status 1
npm ERR!
npm ERR! Failed at the<EMAIL_ADDRESS>start script 'npm-run-all --parallel test:watch open:src lint:watch'.
npm ERR! Make sure you have the latest version of node.js and npm installed.
npm ERR! If you do, this is most likely a problem with the react-slingshot package,
npm ERR! not with npm itself.
npm ERR! Tell the author that this fails on your system:
npm ERR!     npm-run-all --parallel test:watch open:src lint:watch
npm ERR! You can get information on how to open an issue for this project with:
npm ERR!     npm bugs react-slingshot
npm ERR! Or if that isn't available, you can get their info via:
npm ERR!     npm owner ls react-slingshot
npm ERR! There is likely additional logging output above.
npm ERR! Please include the following file with any support request:
npm ERR!     /Users/jasonb/projects/lb-take-2/npm-debug.log
`

I'm confused. You uninstalled something that's still referenced in code, which of course causes a bug. Are you proposing a change of some sort?

It's been that kind of week. I actually executed the commands below:
git clone https://github.com/coryhouse/react-slingshot.git blah
cd blah/
npm i
npm run
npm run remove-demo

And then added a hello world.
cat src/index.js

import React from 'react';
import { render } from 'react-dom';

render(

Hi
,
document.getElementById('app')
)

And npm run works.
npm uninstall --save react-router connect-history-api-fallback

Now it does not.
The FAQ suggested react-router can be removed by following the above step and then removing any reference to react-router, which removing the sample app takes care of automatically.
connect-history-api-fallback is also referenced in srcServer.js, but removing those references has no effect.
Additional modules in node_modules seem to use connect-history-api-fallback though.
I'm not at all familiar with connect-history-api-fallback, but maybe
https://github.com/coryhouse/react-slingshot/blob/master/docs/FAQ.md
should only suggest removing react-router by itself? That fixes my issue. So this is a documentation change request, then.

You mentioned you removed it from srcServer.js did you also remove from distServer.js

No, but npm start never calls distServer.js.
If I npm i --save connect-history-api-fallback all is well again.
I can update the FAQ and submit a PR.

Yeah, I agree it does seem odd that you can't remove that. I am going to
take a look because nothing should be that attached.
On Sat, Aug 13, 2016, 10:51 AM Jason Boxman<EMAIL_ADDRESS>wrote:

No, but npm start never calls distServer.js.
If I npm i --save connect-history-api-fallback all is well again.
I can update the FAQ and submit a PR.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/coryhouse/react-slingshot/issues/235#issuecomment-239627501,
or mute the thread
https://github.com/notifications/unsubscribe-auth/ABPE3GiO5bIzXgWfCaTyXwjcFcy81f61ks5qfegMgaJpZM4JjWx1
.

@jboxman
I ran your exact steps and was able to repro. However, after clearing the node_modules directory and then doing a new npm install I was able to fix the issue.
I agree an update to the FAQ would be valid is this case, not sure why browsersync is holding on to that package.


Should I be able to use 1.3.1 (2023/6/8 download) to export compilable models?

I use Blender 3.3.6 and exporter 1.3.0 for scenery with great success!  I had documented a behavior related to scenes, which I use to organize my work.  But, I decided to see first what improvements had been added to 1.3.1.  I liked the Limit To addition of Active Scene; that would solve my problem.  I am impressed by the clean-up of the material node tree and other things.  Thank you for your hard work!  I can export with 1.3.1 but I cannot compile unless I set Materials to Placeholder or None.  The only change I see in the .gltf is the addition of a line in extensions with ASOBO_material_detail_map.
A simple yes/no will suffice;  you can even tell me to take two aspirin and lie down until the feeling goes away.
Again, thank you!

Hello,
The 1.3.1 version is still in development, you will be able to use it when it's released 😄 ! So for now i recomand using 1.3.0 version.


Editor does not output rendered image

When attempting to render a level, it doesn't output a image, and gives an error in the console.
The log/error in question:
Initializing Zygote runtime
Starting render of 1 levels
Test_Error
Adapted light rect
\C:\Users<user>\OneDrive\Desktop\RWE+\LevelEditorProjects\Testing\Test_Error.png
Start render
saving: Test_Error ...
Found file: 0
saved22: Test_Error
Test_Error: Render succeeded in 00:00:08.7566783
Finished rendering in 00:00:08.7721513. 0 errored, 1 succeeded
Process Process-1:
Traceback (most recent call last):
File "multiprocessing\process.py", line 314, in _bootstrap
File "multiprocessing\process.py", line 108, in run
File "lingotojson.py", line 411, in renderlevelProccess
TypeError: can only concatenate str (not "WindowsPath") to str
Edit 1: Fixed bad formatting
Edit 2: This happens with a level unchanged from "new level"

im having this issue too, with any level.

2.6.6 also has this bug (assuming you're on 2.6.7 like me)

the python file in specific is lingotojson.py, line 411.
i can try to fix the issue and put a PR out there.

i patched it, trying to find the other thing where its trying to run 'c:\Users\Windows'. wackamole.


Introduce optional configuration for SDK

Currently ConfigBuilder and Sdk are tightly coupled and there is no easy way to pass custom configuration unless PR.
It would be great if user can do so for several reasons:

user want to customize asset list, no. of supported chains, or chain config without additional filtering done on top of Sdk
new user want to test non-existing asset/chain/chainConfig. Currently the only way is to clone the repository.
user want to feed up Sdk with dynamic configuration instead of static one (e.g. from chopsticks every x hours)

To make these 2 builders loose coupled in 2 easy steps:

Introduce optional param in ConfigBuilder covering custom (assetMap, chainMap, chainConfigMap)
Introduce optional param in Sdk for ConfigBuilder

Hey @nohaapav, thanks for your feedback. It's always welcome.
It makes sense. We are busy with other projects, so if you want this change sooner than later, a PR is welcome. Otherwise, you should need to wait.

It was changed in #124.


Add spdk null bdev driver

Useful for benchmarking the I/O stack with minimal overhead

Bors r+

bors r+


add "react_ar" algolia app, resolves #106

I'm still looking for solutions to override Algolia templates, for "no results" message.
Or if it's fine like that let's merge it :)

Amazing job mashallah 🎉 I will merge this for now. If you find a way to override the message open a new PR for it.


Need best practices guides for performance and memory usage

I can't stress this enough. I'm trying to integrate this into my project, and I'd like to safely add usage and resource limits. What areas I'm struggling with:

How the V8RuntimeConstraints worked, and some sample documentation on how to properly set reasonable size limits for user run code.
How do I limit execution time? With jint, I can specify a cancellation token to cancel the currently running script.
How the engine works with asynchronous code:

public class TestApi
{
    private delegate void Executor(dynamic resolve, dynamic reject);
    private static async Task<string> Delay(string msg)
    {
        await Task.Delay(2000);

        return msg;
    }
    public static object delay(string msg)
    {
        var task = Delay(msg);
        var ctor = (ScriptObject)ScriptEngine.Current.Script.Promise;
        return ctor.Invoke(true, new Executor((resolve, reject) => {
            task.ContinueWith(t => {
                if (t.IsCompleted)
                {
                    resolve(t.Result);
                }
                else
                {
                    reject(t.Exception);
                }
            });
        }));
    }
}

engine.AddHostType("Console", typeof(Console));
engine.AddHostType("api", typeof(TestApi));
engine.Execute(@"
    Console.WriteLine('start');

    const main = async () => {
      Console.WriteLine('main');
      var res = await api.delay('end');
      Console.WriteLine(res);
    }
    main();
");

If I wrap this in a using block, it will output:
start
main

and then dispose of the engine
If I execute this, and add a Console.ReadKey(); before the engine gets disposed, after 2 seconds it correctly outputs end. There's no documentation on how to wait until execution of all callbacks is completed.

Hi @danbopes,

How the V8RuntimeConstraints worked, and some sample documentation on how to properly set reasonable size limits for user run code.

We generally recommend that applications stay away from V8RuntimeConstraints.
Originally this API was somewhat suitable for sandboxing, but the V8 team decided years ago that constrained script execution isn't a goal for V8. Today, exceeding any of the specified limits causes V8 to crash instantly, and that's by design.
The API might still be useful for expanding V8's default limits, but we've found that V8 can then hit other limits that are inaccessible and vary unpredictably from version to version.
ClearScript does offer support for "soft limits" (see MaxRuntimeHeapSize, MaxRuntimeStackUsage), but as they require external monitoring via periodic timers, we can't guarantee their effectiveness in all cases.
The bottom line is that, unfortunately, if you must run untrusted script code with 100% safety, you'll need a Chromium-like multi-process architecture. The V8 team equates executing untrusted script code with invoking a function in an untrusted DLL.
V8's API is constantly changing though, and we'll continue to watch for new developments.

How do I limit execution time? With jint, I can specify a cancellation token to cancel the currently running script.
How to kill processes that hog the CPU

For these purposes you can use ScriptEngine.Interrupt.

There's no documentation on how to wait until execution of all callbacks is completed.

There's no special API for that, but you can always wait for a pre-arranged completion signal:
engine.AddHostType("Console", typeof(Console));
engine.AddHostType("api", typeof(TestApi));
engine.Script.done = new ManualResetEventSlim();
engine.Execute(@"
    Console.WriteLine('start');
    const main = async () => {
      Console.WriteLine('main');
      var res = await api.delay('end');
      Console.WriteLine(res);
      done.Set();
    }
    main();
");
engine.Script.done.Wait();

Please send any additional questions or comments our way.
Thanks!

Hey everyone, I'm wondering how to "correctly" set the memory limits and this seemed like the best place to ask based on what I've found. But copying it here as well....
What properties I've found, so far:

V8ScriptEngine.MaxRuntimeHeapSize

V8ScriptEngine.MaxRuntimeStackUsage

V8RuntimeConstraints.MaxArrayBufferAllocation

V8RuntimeConstraints.MaxOldSpaceSize

V8RuntimeConstraints.MaxArrayBufferAllocation

V8ScriptEngine.RuntimeHeapSizeSampleInterval

What properties I use + the values:

V8ScriptEngine.MaxRuntimeHeapSize = 1GB
V8RuntimeConstraints.MaxArrayBufferAllocation = 1GB

Properties with default:

V8RuntimeConstraints.MaxOldSpaceSize = 1.5GB

Question:
Do I need to set explicitly the sample interval?

V8ScriptEngine.RuntimeHeapSizeSampleInterval
Or it works per se (has some value implicitly) when the
V8ScriptEngine.MaxRuntimeHeapSize = 1GB
is set?

The descriptions seem a bit vague to me, and I miss the default values in the documentation for them 😿
My current playground / flow:

container (with dotnet) in AKS has a 2GB RAM limit (is killed when engine(s) exceed this limit) which runs the engine(s)
engine is spawned for each custom JavaScript request and is disposed when the script finishes
it can run up to 2 JavaScripts (engines) at the same time
I currently use HeapConsumptionProbe that compares engine.GetRuntimeHeapInfo().TotalHeapSize > engine.MaxRuntimeHeapSize.ToUInt64() => throw which is run periodically (every 10s)

What problem I'm trying to kinda diminish:

have correct/better settings for memory limits of ClearScript (V8Engine) => lower the number of containers's OOM kills
stop the engine before it consumes all the RAM

Could give me a hand, please, and help me understand a bit more (find more proper values)?
With kind regards,
Šimon
P.s.: From what I've currently read here, we had wrong expectations / assumptions

Hi Šimon,

Do I need to set explicitly the sample interval?

The default value (zero) selects an internally enforced minimum, which is currently 50ms. Our recommendation is not to increase unless you encounter performance issues.

Could give me a hand, please, and help me understand a bit more (find more proper values)?

This probably won't be very helpful, but our understanding is as follows:

The V8 heap consists of two regions – the young generation, which holds recently allocated objects, and the old generation, which contains objects that have survived several rounds of garbage collection.
The young generation is further subdivided equally into two semi-spaces and a large object space.
The heap region and space in which an object resides determines various aspects of its handling by the garbage collector, which can move objects from one region to another.
The young generation is typically much smaller than the old generation. On 64-bit systems, V8's per-runtime default limits are around 8MB for the former and 1.4GB for the latter, although optional features, when enabled, can alter them.

Ultimately, your ideal V8ResourceConstraints and MaxRuntimeHeapSize numbers depend on the scripts you need to run. We understand that the memory requirements of user-provided scripts are difficult to predict, especially if those scripts could be buggy or even malicious, but that's the unfortunate reality.
A potentially useful feature not mentioned above is on-demand heap expansion, which provides a way to increase the heap size limit when a script comes close to exceeding it. See HeapExpansionMultiplier.
Good luck!

Hello, thanks a lot!
Well, 50ms period seems fine so far. May be, I can/will try to tweak it (lower the period) a little to let it hit sooner.
What is the connection between V8ResourceConstraints.MaxArrayBufferAllocation and MaxRuntimeHeapSize?
Per the DOC, these are set independently (that's why I set both values).
How does is co-operate?
Does the V8ScriptEngine.RuntimeHeapSizeSampleInterval check both the heap and the ArrayBufferAllocation?
If not, how to see/check/validate the allocated memory for ArrayBufferAllocation?
What can be the max memory footprint of the engine if I have these values set:
V8ScriptEngine.MaxRuntimeHeapSize = 1GB
V8RuntimeConstraints.MaxArrayBufferAllocation = 1GB
V8RuntimeConstraints.MaxOldSpaceSize = 1.5GB
Is it recommended to explicitly call the GC on the V8 Engine before the instance gets dispose?
About the HeapExpansionMultiplier
Is the default value 1? As I understand it, 1 means it does not expand/change the size of the heap?
I think it is not usable for this solution, or ...?

Hello Šimon,

What is the connection between V8ResourceConstraints.MaxArrayBufferAllocation and MaxRuntimeHeapSize?

They're unrelated. Memory for ArrayBuffer storage is allocated on the native heap rather than the V8 JavaScript heap.

Does the V8ScriptEngine.RuntimeHeapSizeSampleInterval check both the heap and the ArrayBufferAllocation?

No. Unlike failure to allocate memory on the JavaScript heap, V8 handles ArrayBuffer memory allocation failure cleanly – that is, it simply throws a JavaScript exception. ClearScript can therefore enforce that limit without periodic sampling.

If not, how to see/check/validate the allocated memory for ArrayBufferAllocation?

Although ClearScript tracks that internally, there's no API for retrieving it. Sorry!

What can be the max memory footprint of the engine

That's a difficult question to answer. Ignoring code, each V8 runtime includes managed data, native data (including ArrayBuffer storage), and a JavaScript heap.
Our understanding is that V8 crashes the process if any region of the JavaScript heap exceeds the corresponding V8RuntimeConstraints limit, unless the host allows the heap to expand at the last moment (which in ClearScript is done via HeapExpansionMultiplier). It is unclear how heap expansion updates the individual region limits.
V8 itself is unaware of MaxRuntimeHeapSize. When it's set, ClearScript periodically compares it against V8's total heap size (presumably the sum of the old and young/new region sizes) and cleanly terminates the script if necessary. Because periodic monitoring can't guarantee protection against memory usage spikes, we recommend augmenting it with HeapExpansionMultiplier.
There are other factors as well. For example, each V8 runtime reserves a significant chunk of address space up front, which can be a problem on smaller (32-bit) systems that use multiple runtimes in a single process. Last time we looked into it, V8 also had a number of internal limits that the host couldn't control or monitor, but we believe that recent versions have improved on that.

Is the default value 1? As I understand it, 1 means it does not expand/change the size of the heap?

The default value of HeapExpansionMultipler is zero. Set it to a value greater than 1 to enable on-demand heap expansion. We recommend a value of 1.25 or higher.

Is there any difference creating the engine this way

If you're only using one engine, there's no difference. The V8ScriptEngine constructor creates an engine with a private runtime, whereas the V8Runtime constructor and CreateScriptEngine method allow you to use multiple engines that share a runtime.
Please don't hesitate to send additional questions and comments our way!
Cheers!

They're unrelated. Memory for ArrayBuffer storage is allocated on the native heap rather than the V8 JavaScript heap.
No. Unlike failure to allocate memory on the JavaScript heap, V8 handles ArrayBuffer memory allocation failure cleanly – that is, it simply throws a JavaScript exception. ClearScript can therefore enforce that limit without periodic sampling.
Although ClearScript tracks that internally, there's no API for retrieving it. Sorry!

Well, this sounds really good. So, when the ArrayBuffer allocation rises up to the limit, the script fails. Thanks to u, I don't need any xtra polling or whatever to check/handle that.

V8 itself is unaware of MaxRuntimeHeapSize. When it's set, ClearScript periodically compares it against V8's total heap size ....

Thanks for the cleaner explanation of how CS handles this.

The default value of HeapExpansionMultipler is zero ....

Just being curious - what do values "0 -1" do?
How does it behave if it set to the recommended value of 1.25?
Does it go over the given limit?
How should it help here?

If you're only using one engine, there's no difference. ....

Is Runtime a "heavy" part? Would recommend rather creating the Runtime first then create a new Engine per request?
Currently, I create an Engine (via CTOR - each has its own Runtime according to your information) per request. I need memories to be separated - to avoid leakage of the data among engines. Is it still safe doing it one or the another way?


Adding Prometheus Alerts  📊 🚨

Prometheus Alerts
Curated list of Prometheus alerting rules. Most rules are common to every infrastructures. This is a place to share it !
Requirements for your pull request

I have read and understood the instructions for creating a list.
This pull request has a descriptive title in the format Add Name of List (Example: Add Swift), not Update readme.md or Add awesome list.
The entry in the Awesome list should:

Include a short description about the project/theme of the list. It should not describe the list itself.Example: - [Fish](…) - User-friendly shell., not - [Fish](…) - Resources for Fish..
Be added at the bottom of the appropriate category.

The list I'm submitting complies with the below requirements.

Requirements for your Awesome list

Has been around for at least 30 days.That means 30 days from either the first real commit or when it was open-sourced. Whatever is most recent.
It's the result of hard work and the best I could possibly produce.
Non-generated Markdown file in a GitHub repo.
Includes a succinct description of the project/theme at the top of the readme. (Example)
The repo should have awesome-list & awesome as GitHub topics. I encourage you to add more relevant topics.
Not a duplicate.
Only has awesome items. Awesome lists are curations of the best, not everything.
Includes a project logo/illustration whenever possible.

Either centered, fullwidth, or placed at the top-right of the readme. (Example)
The image should link to the project website or any relevant website.
The image should be high-DPI. Set it to maximum half the width of the original image.

Entries have a description, unless the title is descriptive enough by itself. It rarely is though.
Includes the Awesome badge.

Should be placed on the right side of the readme heading.

Can be placed centered if the list has a centered graphics header.

Should link back to this list.

Has a Table of Contents section.

Should be named Contents, not Table of Contents.
Should be the first section in the list.
Should only have one level of nested lists, preferably none.

Has an appropriate license.

That means something like CC0, not a code licence like MIT, BSD, Apache, etc.
WTFPL and Unlicense are not acceptable licenses.
If you use a license badge, it should be SVG, not PNG.

Has contribution guidelines.

The file should be named contributing.md. Casing is up to you.

Has consistent formatting and proper spelling/grammar.

The link and description are separated by a dash. Example: - [AVA](…) - JavaScript test runner.
The description starts with an uppercase character and ends with a period.
Consistent and correct naming. For example, Node.js, not NodeJS or node.js.

Doesn't include a Travis badge.You can still use Travis for list linting, but the badge has no value in the readme.

Go to the top and read it again.

Just reviewed #1171 and #1519 ;)
Thanks for you work @sindresorhus !!

Non-generated Markdown file in a GitHub repo.

This pull request has a descriptive title in the format Add Name of List

The Awesome graphic doesn't fit as it's not customized. Either customize it for your purpose by adding your list title and some fitting graphics to it, or drop it.

Includes a succinct description of the project/theme at the top of the readme. (Example)

The readme heading should be Awesome Prometheus Alerts, not Awesome Prometheus alerting rules.

@sindresorhus I fixed all but Non-generated Markdown file in a GitHub repo.
Prometheus Alerts are stored in _data/rules.yml and then are generated with Jekyll, based on a template, to respect Prometheus syntax.
For exemple:
- name: Elastic no new documents
  description: No new documents for 10 min!
  query: 'rate(elasticsearch_indices_docs{es_master_node="false"}[10m]) < 1'
  severity: warning

becomes
- alert: ElasticNoNewDocuments
  expr: rate(elasticsearch_indices_docs{es_master_node="false"}[10m]) < 1
  for: 30m
  labels:
    severity: warning
  annotations:
    summary: "Elastic no new documents (instance {{ $labels.instance }})"
    description: "No new documents for 10 min!\n  VALUE = {{ $value }}\n  LABELS: {{ $labels }}"

Prometheus Alerts are stored in _data/rules.yml and then are generated with Jekyll, based on a template, to respect Prometheus syntax.

Then it's unfortunately not suitable for inclusion here.

You should get it added to https://github.com/roaldnefs/awesome-prometheus instead.


HLS.parse is not a function

@jasonbyrne currently it's impossible to use this library with this error

It works. You just need to import HLS, which is exported by this library.

@jasonbyrne no, it does not:
import HLS from 'parse-hls'

console.log(HLS.parse('master'))

result:

node 16.0.0
parse-hls 1.0.7
esm modules

I just did a test, pulling it down from npm into a fresh project
import * as fs from "fs";
import HLS from "parse-hls";

const manifest = HLS.parse(fs.readFileSync("./example.m3u8", "utf8"));
console.log(manifest);

This worked just fine. TypeScript recognized the HLS.parse and it ran once transpiled to JS.  I don't know why a version would cause an issue but I have
TypeScript Version 4.2.4
Node v14.17.0
parse-hls 1.0.7

const {default: HLS} = require('parse-hls');


fix: hang on payload exceed 1k

Reason for This PR
the reason for hang on payload is because we changed epoll to mio
that only support edge trigger mode, we used to rely on level trigger
to make sure we not miss some event, but for edge trigger, we must make
sure we handle the event properly
Description of Changes
change the way to handle accept and read event
License Acceptance
By submitting this pull request, I confirm that my contribution is made under
the terms of the Apache 2.0 license.
PR Checklist
[Author TODO: Meet these criteria.]
[Reviewer TODO: Verify that these criteria are met. Request changes if not]

[ ] All commits in this PR are signed (git commit -s).
[ ] The reason for this PR is clearly provided (issue no. or explanation).
[ ] The description of changes is clear and encompassing.
[ ] Any required documentation changes (code and docs) are included in this PR.
[ ] Any newly added unsafe code is properly documented.
[ ] Any user-facing changes are mentioned in CHANGELOG.md.

Codecov Report

Merging #14 (a2a7c7f) into main (a1ccbe0) will increase coverage by 0.44%.
The diff coverage is 88.40%.

@@            Coverage Diff             @@
##             main      #14      +/-   ##
==========================================
+ Coverage   95.98%   96.43%   +0.44%
==========================================
  Files           9        9
  Lines        2542     2581      +39
==========================================
+ Hits         2440     2489      +49
+ Misses        102       92      -10

Impacted Files
Coverage Δ

src/server.rs
93.94% <88.40%> (+0.68%)
:arrow_up:

src/common/headers.rs
97.57% <0.00%> (+0.01%)
:arrow_up:

src/request.rs
97.26% <0.00%> (+0.02%)
:arrow_up:

src/connection.rs
98.41% <0.00%> (+0.15%)
:arrow_up:

src/router.rs
90.19% <0.00%> (+0.19%)
:arrow_up:

src/common/sock_ctrl_msg.rs
98.00% <0.00%> (+0.39%)
:arrow_up:

src/common/mod.rs
90.42% <0.00%> (+2.48%)
:arrow_up:

:mega: Codecov can now indicate which changes are the most critical in Pull Requests. Learn more

Can we explain how we handle the event properly in the commit message?

Could you please also to add sign-off?

ok, I will sqush the commits and sign off it

Can try to increase BUFFER_SIZE to solve it?
In the source code src/connection.rs, can see a size limit on the read buf.

Can we explain how we handle the event properly in the commit message?

yes, I improve the commit message


azure-eventhub extensions both fail depends check

But not for any real reason. Run locally, I do not see this repro.
Could not install packages due to an EnvironmentError: [Errno 2] No such file or directory: 'D:\\vss-agent-2.181.0\\_work\\1\\s\\sdk\\eventhub\\azure-eventhub-checkpointstoreblob\\.tox\\depends\\Lib\\site-packages\\azure\\eventhub\\extensions\\checkpointstoreblob\\_vendor\\storage\\blob\\_generated\\aio\\operations_async\\__pycache__\\_append_blob_operations_async.cpython-35.pyc'

Looks like a longpath issue, but need to investigate. Causing scheduled build failure on the nightly.

Resolved by minimizing the leading path. Thanks to the 1ES team for updating their image.


Move tutorials to jupyter notebooks

Closes #119
I prepared extra badges for each tutorial to load them automatically to nbviewer basing the configuration on the configs from lets-plot library examples.
We can run executable version of notebook just by single click on  or browse it not in GitHub version by clicking on . The preview should also be loaded on GitHub in the same way but loading process fails sometimes and manual reload is needed. Btw I linked refs to totorials to nbviewer location of files in markdown as this seems to be more readable and stable but they are still accessible from GitHub (FYI the nbviewer and binder use only files stored on repository so all files are kept only in repository).
For now, all refs are created to point to my fork, I will change it before merge to master to make it working for now (as there are no notebooks in master KotlinDL branch that the badges should point to). The change includes changing avan1235 to JetBrains.
I encourage you to do the review by starting from the main README.md on my fork, the nbviewer version of quickstart guide or just from the docs directory from my fork if you wish to use bare GitHub.
The changes includes some small changes in notebooks code to make it working and more readable in my opinion so feel free to comment with your opinion.

Will open PR from another branch to have clean master on my fork


[SPARK-46743][SQL][FOLLOW UP] Count bug after ScalarSubqery is folded if it has an empty relation

What changes were proposed in this pull request?

In this PR https://github.com/apache/spark/pull/45125, we handled the case where an Aggregate is folded into a Project, causing a count bug. We missed cases where:

The entire ScalarSubquery's plan is regarded as empty relation, and is folded completely.
There are operations above the Aggregate in the subquery (such as filter and project).

Why are the changes needed?

This PR fixes that by adding the case handling in ConstantFolding and OptimizeSubqueries.
Does this PR introduce any user-facing change?

Yes. There was a correctness error which happens when the scalar subquery is count-bug-susceptible, and empty, and thus folded by ConstantFolding.
How was this patch tested?

Added SQL query tests in scalar-subquery-count-bug.sql.
Was this patch authored or co-authored using generative AI tooling?

No.

Ping for reviews! @agubichev @cloud-fan

Looks like the CI build failures are unrelated.

The CI failure is unrelated, thanks, merging to master!


ColorScheme - Support semantic highlighting

Since version 3.1 Sublime Text offers native support for semantic highlighting, a feature formerly requiring ColorCoder.
See: Hashed Syntax Highlighting (aka Semantic Highlighting)
I see a lot of potential for this feature to enhance readability/understability of code.
However so far I have not seen any color scheme which makes good use of this feature.
The problem being that the dynamic nature of where only a color range is given for the semantic highlighting to chose from makes balancing colors difficult.
Also to the best of my knowledge there is no dark color scheme variant in existence to offer this feature (only the inbuilt Celeste scheme, which is bright.)
It would IMHO require a very apt designer to balance out colours in a way to make the semantic highlighting stand out while not transforming the color scheme into an ugly mess.
@mauroreisvieira If you want a real challenge and make Meetio to stand-out even further above other UI packs this would be the perfect opportunity to invest your enthusiasm into. Offering a sane and well working semantic highlight could become a unique selling point of Meetio.

Hi @pykong at the moment I do not see great advantages in using Hash Syntax Highlighting.
I at the beginning of Meetio development did some testing of this approach, but I found it a mess.
Because it's strange for me to assign different colors to the same or similar scopes.
Just change the scheme to Celeste that we realize this.

As I said, it is a question of how to delicately balance differentiability of colours against preventing the color scheme to become a mess.
Of course at hand we want to stress the similarity of related syntax element, while at the same time allowing individual instances to be differentiated.
I just close this issue for now. Feel free to reopen if you ever want to give it another shot.


GPS tracker

Old (two years since last update), but could be useful: https://ukhas.org.uk/guides:gps_modules

http://www.thefintels.com/aer/gpstelemetry.htm


Improve the CONTRIBUTING guide

Proposed changes
This PR updates the contributing guide. I took inspiration from Masonite Core's CONTRIBUTING.md to write clearer instructions on how to contribute to Bocadillo, including steps before and after implementing changes.
I'll leave this PR open for some time in case anyone sees anything to add or clarify. :+1:

Will merge this tonight (in ~10 hours).

❤


[BUG]

Is there an existing issue for this?

[X] I have searched the existing issues

Current Behavior
The local OMRS connection is incorrectly configured I received message :
"class": "SuccessMessageResponse",
"relatedHTTPCode": 500,
"exceptionClassName": "org.odpi.openmetadata.adminservices.ffdc.exception.OMAGConfigurationErrorException",
"exceptionCausedBy": "org.odpi.openmetadata.repositoryservices.ffdc.exception.OMRSConfigErrorException",
"actionDescription": "activateWithSuppliedConfig",
"exceptionErrorMessage": "OMAG-ADMIN-500-001 Method activateWithSuppliedConfig for OMAG server cocomap returned an unexpected exception of org.odpi.openmetadata.repositoryservices.ffdc.exception.OMRSConfigErrorException with message OMRS-CONNECTOR-400-004 The connection null passed to the EnterpriseOMRSRepositoryConnector is invalid.",
"exceptionErrorMessageId": "OMAG-ADMIN-500-001",
"exceptionErrorMessageParameters": [
"cocomap",
"activateWithSuppliedConfig",
"org.odpi.openmetadata.repositoryservices.ffdc.exception.OMRSConfigErrorException",
"OMRS-CONNECTOR-400-004 The connection null passed to the EnterpriseOMRSRepositoryConnector is invalid."
],
"exceptionSystemAction": "The system is unable to configure the OMAG server.  No change was made to the server's configuration document.",
"exceptionUserAction": "This is likely to be either an operational or logic error. Look for other errors.  Validate the request.  If you are stuck, raise an issue."
Expected Behavior
The error should not mention the enterprise OMRS - as this is misleading as in my case the error is not to do with the  enterprise OMRS. It is only to do with the local OMRS
Steps To Reproduce
Incorrectly configure a local OMRS connection
Environment
- Egeria:
- OS:
- Java:
- Browser (for UI issues):
- Additional connectors and integration:

Any Further Information?
No response

This may not be a bug.  The error thrown will be the first one encountered and the enterprise connector may have been intitialized with a null repository connection - which is invalid.  What is the configuration document being used when starting the server?  What is the nature of the error introduced into the local repository configuration?

@davidradl suggest updating the title to something meaningful ;-)


Combine separate *.{android,ios}.js files

We have 8 pairs of files named foo.ios.js / foo.android.js. These make use of an RN feature where when building for each platform, only the one file is included.
We should stop using this feature. As I explained here a little while ago, there are a couple of quite concrete costs to it, and the fact that it's a problem fits a classic pattern:

One reason is this deep dark secret  of React Native and Flow, which I noticed recently in our .flowconfig:
[ignore]
; We fork some components by platform
.*/*[.]android.js

(That's verbatim from the template file in RN upstream -- it's not our doing.) In other words, this .android.js / .ios.js convention is totally opaque to Flow, and as a result the best we know how to do is to completely leave .android.js files out from type-checking.
Similarly, the spiffy navigation features in VS Code, to jump to definition or find references, find this totally opaque.
So there's a pretty big cost to using this .android.js/.ios.js feature, as opposed to plain old conditionals.
I think this actually illustrates a kind of classic pattern: once any whiff of the logic of a program starts being expressed in ad-hoc fashion in some kind of configuration outside of the Real Programming Language(s) the rest of the program is written in, it generally isn't long before it begins to hurt to be doing that (a) without the nice, full-featured, composable, semantics of a Real Programming Language and (b) without the benefit of all the tooling that you and your language community have built up around that language (or languages). A very common form of this pattern is templating languages, which either are painfully restrictive or rapidly grow to encompass the main language or both; config-file formats tend to go this way as well.
For us, the Real Programming Language we use for the bulk of the app (including all this code) is JavaScript, and I think plain JS conditionals should express the same thing as the .android.js / .ios.js feature quite nicely.

Instead, we should just use plain JS conditionals.

What's involved in doing so? Here are the 8 such pairs we have:
$ wc -l {.,src/**}/*.@(android|ios).js
    7 ./index.android.js
    7 ./index.ios.js
   20 src/api/downloadFile.android.js
    8 src/api/downloadFile.ios.js
    8 src/api/notifications/registerPush.android.js
    9 src/api/notifications/registerPush.ios.js
    6 src/api/notifications/unregisterPush.android.js
    6 src/api/notifications/unregisterPush.ios.js
  370 src/compose/ComposeBox.android.js
  339 src/compose/ComposeBox.ios.js
    8 src/lightbox/shareImage.android.js
   19 src/lightbox/shareImage.ios.js
   23 src/start/oauth.android.js
   20 src/start/oauth.ios.js
    4 src/utils/openLink.android.js
    4 src/utils/openLink.ios.js

So 7 are very short. These, we should just straightforwardly combine. See
dd7cf109e for an example a little longer than any of those 7, or d0b131763 for a more complex example.
The one not-short example is ComposeBox. That'll be more work, and blocked behind some other work which we're actively pursuing; it's tracked separately, as #3017. (This one is an example where conditionals would have been less appealing... though if we didn't expect to get rid of one version soon, it'd make sense to do some refactoring to make conditionals work well there too.)

I'll take on the src/api/* ones, as part of the API PR.


nodejs server side templating incompatible with vue.js templating

Version
2.3.3
Reproduction link
https://jsfiddle.net/chrisvfritz/50wL7mdz/
Steps to reproduce
Hi ,
i am using below code to avoid {{}} templating issues between my server side templating and client side templating and i wanted to perform the same using vue.js
var myApp = angular.module('scotch', ['userroleCtrl', 'SelectAsyncController', 'mystackedctrl', 'ContactChipDemoCtrl', 'mainapp', 'AppCtrl', 'Switchbase', 'fabctrl', 'ExampleCtrl', 'slidenav'], function($interpolateProvider) {
    $interpolateProvider.startSymbol('[{');
    $interpolateProvider.endSymbol('}]');

});

What is expected?
some sort of interpolateProvider before or during lib which tells the vue.js to use '[{'  instead of {{ !
What is actually happening?
it is not excatly an issue. hence  nothing is happening !

the reproduction part is not required since rather than issue it is an incompatibility issue while rendering on client side and also for you reference
https://stackoverflow.com/questions/36517284/angularjs-not-working-in-nodejs-express

I think you're looking for this: https://vuejs.org/v2/api/#delimiters


Add garrett theme

Evaluate and embed @chauncey-garrett's https://github.com/chauncey-garrett/zsh-prompt-garrett as an external theme.

I'd be honored to have my theme as a part of Prezto. Let me know if there's anything I can do to help.

If you don't want it to be an external theme, you'll have to use Prezto's coding style.
If you want it to be faster, look into asynchronicity for Git; see, #796, #892, and #888.

If you want it to be faster, look into asynchronicity for Git; see, #796, #892, and #888.

I'm definitely interested in making the prompt faster while in a Git directory since there is a slight but noticeable delay (deciseconds scale). However, I won't be able to work on this anytime in the near future (that's not to say I won't eventually take time to work on speed improvements).
In the meantime, if someone wants to tackle it: PRs accepted!

you'll have to use Prezto's coding style.

Are we talking just tabs to 2 spaces (which I'm starting to like more and more) or more than that?

If you don't want it to be an external theme,

May be best to keep it external for two reasons:

It's more complicated that most other prompts I've come across -> I'll be able to handle issues directly
I'd like to add asynchronicity for Git at some point in the future

The coding style refers to more than spacing. You'll have to read the code to get a feel for it.
I don't mind keeping it external.

Just discovered this theme, it's nice :+1:

@habitullence Thanks! :)

@chauncey-garrett Thank you :) Did you get a chance to look at async? If not, I'm currently trying to learn zsh. Would be happy to take a look at it if you can point me in the right direction.

@habitullence I haven't had the time of day but it's still something I'd like to incorporate. See @sorin-ionescu's first comment in this thread that includes several conversations around doing so.

@sorin-ionescu It's still not in external, is it? At least I don't get it during update.

This was added to an experimental contrib repo in https://github.com/belak/prezto-contrib/commit/8ced528185d9d4c7bffd37d6fc290e3099616870

Any news on this one? Still not merged?

I'd love to see this merged as well. Garrett is the most useful prompt I've seen


skeleton

@zoeself register

@zoeself register

@h1alexbel I've just registered this ticket as a task and will assign it to someone soon. Thanks!

@h1alexbel this is your task now, please go ahead. Deadline (when this ticket should be closed) is 2023-09-20T15:08:57.681135.
Estimation here is 90 minutes, that's how much you will be paid.
Remember, you don't have to solve everything in this ticket - you can solve it partially and leave todo markers in the code, which will become future tasks.
If you have any questions don't ask me, I'm not a technical person. Open new tickets instead.
If you don't have time or simply don't want to work on this, you can always resign.

@h1alexbel Don't forget to close this ticket before the deadline (2023-09-20T15:08:58). You are past the first half of the allowed period.

@h1alexbel Looks like you've missed the task deadline (2023-09-20T15:08:58). You are now resigned from this task.
Please stop working on it, you will not be paid. I will assign it to someone else soon.

@LeonovAlexProg this is your task now, please go ahead. Deadline (when this ticket should be closed) is 2023-09-30T15:29:29.361399.
Estimation here is 90 minutes, that's how much you will be paid.
Remember, you don't have to solve everything in this ticket - you can solve it partially and leave todo markers in the code, which will become future tasks.
If you have any questions don't ask me, I'm not a technical person. Open new tickets instead.
If you don't have time or simply don't want to work on this, you can always resign.

@LeonovAlexProg Looks like you've missed the task deadline (2023-09-30T15:29:29). You are now resigned from this task.
Please stop working on it, you will not be paid. I will assign it to someone else soon.

@lisitsaaa this is your task now, please go ahead. Deadline (when this ticket should be closed) is 2023-11-19T14:32:42.373414.
Estimation here is 90 minutes, that's how much you will be paid.
Remember, you don't have to solve everything in this ticket - you can solve it partially and leave todo markers in the code, which will become future tasks.
If you have any questions don't ask me, I'm not a technical person. Open new tickets instead.
If you don't have time or simply don't want to work on this, you can always resign.

@lisitsaaa Don't forget to close this ticket before the deadline (2023-11-19T14:32:42). You are past the first half of the allowed period.

@lisitsaaa Looks like you've missed the task deadline (2023-11-19T14:32:42). You are now resigned from this task.
Please stop working on it, you will not be paid. I will assign it to someone else soon.

@iColdLight this is your task now, please go ahead. Deadline (when this ticket should be closed) is 2023-11-29T15:01:30.584750.
Estimation here is 90 minutes, that's how much you will be paid.
Remember, you don't have to solve everything in this ticket - you can solve it partially and leave todo markers in the code, which will become future tasks.
If you have any questions don't ask me, I'm not a technical person. Open new tickets instead.
If you don't have time or simply don't want to work on this, you can always resign.

@iColdLight Don't forget to close this ticket before the deadline (2023-11-29T15:01:31). You are past the first half of the allowed period.

@iColdLight Looks like you've missed the task deadline (2023-11-29T15:01:31). You are now resigned from this task.
Please stop working on it, you will not be paid. I will assign it to someone else soon.

@l3r8yJ Don't forget to close this ticket before the deadline (2023-12-09T15:31:54). You are past the first half of the allowed period.

@l3r8yJ Looks like you've missed the task deadline (2023-12-09T15:31:54). You are now resigned from this task.
Please stop working on it, you will not be paid. I will assign it to someone else soon.

@PavelRyauzov this is your task now, please go ahead. Deadline (when this ticket should be closed) is 2023-12-19T16:01:33.560804.
Estimation here is 90 minutes, that's how much you will be paid.
Remember, you don't have to solve everything in this ticket - you can solve it partially and leave todo markers in the code, which will become future tasks.
If you have any questions don't ask me, I'm not a technical person. Open new tickets instead.
If you don't have time or simply don't want to work on this, you can always resign.

@PavelRyauzov Don't forget to close this ticket before the deadline (2023-12-19T16:01:34). You are past the first half of the allowed period.

@PavelRyauzov Looks like you've missed the task deadline (2023-12-19T16:01:34). You are now resigned from this task.
Please stop working on it, you will not be paid. I will assign it to someone else soon.

@NikiTuz18 this is your task now, please go ahead. Deadline (when this ticket should be closed) is 2023-12-29T16:30:36.581444.
Estimation here is 90 minutes, that's how much you will be paid.
Remember, you don't have to solve everything in this ticket - you can solve it partially and leave todo markers in the code, which will become future tasks.
If you have any questions don't ask me, I'm not a technical person. Open new tickets instead.
If you don't have time or simply don't want to work on this, you can always resign.

@NikiTuz18 Don't forget to close this ticket before the deadline (2023-12-29T16:30:37). You are past the first half of the allowed period.

@NikiTuz18 Looks like you've missed the task deadline (2023-12-29T16:30:37). You are now resigned from this task.
Please stop working on it, you will not be paid. I will assign it to someone else soon.

@erstediy this is your task now, please go ahead. Deadline (when this ticket should be closed) is 2024-01-08T16:59:58.963713.
Estimation here is 90 minutes, that's how much you will be paid.
Remember, you don't have to solve everything in this ticket - you can solve it partially and leave todo markers in the code, which will become future tasks.
If you have any questions don't ask me, I'm not a technical person. Open new tickets instead.
If you don't have time or simply don't want to work on this, you can always resign.

@erstediy Don't forget to close this ticket before the deadline (2024-01-08T16:59:59). You are past the first half of the allowed period.

@erstediy Looks like you've missed the task deadline (2024-01-08T16:59:59). You are now resigned from this task.
Please stop working on it, you will not be paid. I will assign it to someone else soon.

@h1alexbel I couldn't find any assignee for this task. This is either because there are no contributors with role DEV available or because the project does not have enough funds.
Please, make sure there is at least one available contributor with the required role and the project can afford to pay them.


[main][2/2] Repo reorg Combine

A follow up to and considered blocked by: https://github.com/rancher/prometheus-federator/pull/96
This PR will actually combine things together and will be rebased on mallardduck:repo-reorg/prepare until #96 is merged - at which time, this PR's branch can be easily rebased on main and the PR will look smaller. Until then it will stay a draft.

@joshmeranda / @jbiers - I think this is ready for review now. I plan to send a follow up PR that handles setting up release artifacts for all 3 of the command entry points. Essentially the same stuff I implemented in helm-project-operator for the first 2 when they were merged - but ported to this repo.
However since this PR is pretty large already, I don't want that work to hold up this phase of things. Especially since all 3 being merged into one repo means those artifacts aren't necessary for building prometheus-federator at all anymore.


not working in navigation drawer

It doesn't work in the navigation drawer.
I need to rearrange items in the navigation drawer. it works with onTouchListener but disables onClick of items.
I need to use it with onLongClickListener so click can also work.
Please help me to do this.
Thanks.

Sorry, my bad.
It works well in the drawer. I had an issue because of the existing very complex layout file where the recycler view is inside DrawerLayout, not in NavigationView.


Can't call fromJsonFile from ServiceAccount since it private method

Description
I want to run this code:
$serviceAccount = ServiceAccount::fromJsonFile(FCPATH .'google-services.json');

Which I can see on every reference. But I get this error:
Fatal error: Uncaught Error: Call to private method Kreait\Firebase\ServiceAccount::fromJsonFile() from context 'Price' in C:\xampp\htdocs\bigio\priangandev\application\modules\api\controllers\price.php:19 Stack trace: #0 C:\xampp\htdocs\bigio\priangandev\application\libraries\REST_Controller.php(329): Price->firebase_get() #1 C:\xampp\htdocs\bigio\priangandev\application\libraries\REST_Controller.php(316): REST_Controller->_fire_method(Array, Array) #2 C:\xampp\htdocs\bigio\priangandev\system\core\CodeIgniter.php(325): REST_Controller->_remap('firebase', Array) #3 C:\xampp\htdocs\bigio\priangandev\index.php(202): require_once('C:\\xampp\\htdocs...') #4 {main} thrown in C:\xampp\htdocs\bigio\priangandev\application\modules\api\controllers\price.php on line 19

Bonus Question
Where I can find json file for this function?
Environment:

OS: Windows 10
PHP version: 7.3.5
Firebase SDK Version: 5.1.0
(Just in case) Composer.json

{
    "require": {
        "kreait/firebase-php": "^5.1"
    }
}

Sorry, I think I just found the solution from documentation version 5.1.0:
$factory = (new Factory)->withServiceAccount('/path/to/firebase_credentials.json');

I just read the documentation, but most of my reference before use class ServiceAccount, that's why. LOL


Different results in IE11 from ReactWrapper.find?

I'm running the same test in Chrome 53 and IE 11, but am seeing different results.  Here's my test:
const form = mount(<Form data={fakeData} isValid={false} validationMessage="test" />);
form.instance().handleSubmit(fakeEvent);
console.log(form.debug());
const alert = form.find(ClickableAlert);
console.log(alert.debug());

ClickableAlert is a stateless functional component without a displayName.  Calling handleSubmit results in a call to setState which triggers a render.
Both browsers output the same results when calling form.debug() (and indeed both contain the markup for ClickableAlert). However, IE11 outputs an empty string for alert.debug() (in other words, ReactWrapper.find() failed to find anything).  Adding a displayName to ClickableAlert produces the same result.
I'm using react 15.3.1 and enzyme 2.4.1. I'm seeing the same results on Win7 x64 and Win8.1 x86.

The issue is likely because IE 9 - 11 doesn't support the name property on functions - if you set ClickableAlert.displayName = 'ClickableAlert', does IE 11 start behaving?

Also, could you perhaps provide a jsfiddle that reproduces these results?

As I said above, adding a displayName to ClickableAlert produces the same results.
Are there base fiddles somewhere that I can use as a starting point?

Whoops, sorry, missed that in your OP.
https://jsfiddle.net/reactjs/69z2wepo/ may help.

We should probably get our own base fiddle setup at some point too

@ZebraFlesh I'm going to close this; but will happily reopen it if we can get a repro case.


Failed: key not found: "ram" during compiling

When deploy contrib serice v6, errors in compiling as below:
Started compiling packages
Started compiling packages > rootfs_lucid64/9b3f611b46e076b94b37645c98f9100e7bcef5dd
Started compiling packages > postgresql93/06163819b694f8d9836586d024f64c11efe30180
Started compiling packages > postgresql92/2867893e714aae6e6b76bd06e7aa30d47023c46e. Failed: key not found: "ram" (00:00:00)
Failed compiling packages > rootfs_lucid64/9b3f611b46e076b94b37645c98f9100e7bcef5dd: key not found: "ram" (00:00:00)
Failed compiling packages > postgresql93/06163819b694f8d9836586d024f64c11efe30180: key not found: "ram" (00:00:00)
Bosh log as below:
I, [2015-08-05 16:55:55 #17795] [compile_package(postgresql92/2867893e714aae6e6b76bd06e7aa30d47023c46e, bosh-vsphere-esxi-ubuntu-trusty-go_agent/3012)]  INFO -- DirectorJobRunner: Package postgresql92/2867893e714aae6e6b76bd06e7aa30d47023c46e' needs to be compiled on bosh-vsphere-esxi-ubuntu-trusty-go_agent/3012'
D, [2015-08-05 16:55:55 #17795] [compile_package(postgresql93/06163819b694f8d9836586d024f64c11efe30180, bosh-vsphere-esxi-ubuntu-trusty-go_agent/3012)] DEBUG -- DirectorJobRunner: (0.001169s) SELECT NULL
D, [2015-08-05 16:55:55 #17795] [compile_package(postgresql92/2867893e714aae6e6b76bd06e7aa30d47023c46e, bosh-vsphere-esxi-ubuntu-trusty-go_agent/3012)] DEBUG -- DirectorJobRunner: (0.000314s) SELECT NULL
D, [2015-08-05 16:55:55 #17795] [compile_package(rootfs_lucid64/9b3f611b46e076b94b37645c98f9100e7bcef5dd, bosh-vsphere-esxi-ubuntu-trusty-go_agent/3012)] DEBUG -- DirectorJobRunner: Deleted lock: lock:compile:90:1
D, [2015-08-05 16:55:55 #17795] [] DEBUG -- DirectorJobRunner: Worker thread raised exception: key not found: "ram" - /var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh_vsphere_cpi-1.3012.0/lib/cloud/vsphere/vm_creator_builder.rb:7:in fetch' /var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh_vsphere_cpi-1.3012.0/lib/cloud/vsphere/vm_creator_builder.rb:7:in build'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh_vsphere_cpi-1.3012.0/lib/cloud/vsphere/cloud.rb:158:in block in create_vm' /var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh_common-1.3012.0/lib/common/thread_formatter.rb:49:in with_thread_name'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh_vsphere_cpi-1.3012.0/lib/cloud/vsphere/cloud.rb:157:in create_vm' /var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3012.0/lib/bosh/director/vm_creator.rb:41:in create'
/var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3012.0/lib/bosh/director/vm_creator.rb:9:in create' /var/vcap/packages/director/gem_home/ruby/2.1.0/gems/bosh-director-1.3012.0/lib/bosh/director/deployment_plan/steps/package_compile_step.rb:153:in prepare_vm'
Any suggestions,thanks.

Could it be that you are deploying on vsphere and forgot to specify ram in your resource pool? If so relevant documentation can be found here.


tunnel: Fix goroutine leak

The goroutine reading from the TCP might miss when the tunnel closed, and would
get stuck trying to write to a channel forever. If the tunnel connection was
dying a lot, this could cause a pretty substantial leak. This makes sure to
cancel the goroutine whenever we stop tunneling.
Unfortunately this leak is a little hard to simulate, so it might take a few days (of time, not work) to "verify" that the fix is working as expected. I think this is strictly more correct than what we do right now, so we can go ahead and merge it whenever though. We will also want to update the node-controller code to use the new pkg version when this is merged.

Let's merge this now, I will also test over a longer period of time this week.

I'm pretty confident it works at this point.


WebSocket connection to 'wss://dev.*******.in/_nuxt/hmr/' failed:

Environment
Node 20.10.0
npm 3.8.2
Reproduction
https://stackblitz.com/edit/github-jfxmyq?file=app.vue,nuxt.config.js
client.ts:77 WebSocket connection to 'wss://dev.***.in/_nuxt/hmr/' failed:
[vite] server connection lost. polling for restart...
Describe the bug
client.ts:77 WebSocket connection to 'wss://dev.***.in/_nuxt/hmr/' failed:
setupWebSocket @ client.ts:77
(anonymous) @ client.ts:67
client.ts:105 [vite] server connection lost. polling for restart...
client.ts:339
Additional context
No response
Logs
No response

Works fine locally. More information + explanation is needed here ☺

possibly the same as https://github.com/nuxt/nuxt/issues/25335 (?)

Indeed. Let's consolidate in https://github.com/nuxt/nuxt/issues/25335


Updated comments which are incorrect.

Fixed some syntax errors.

I put this over in the main branch giving you attribution.


Communicating with the api.metaanchor.io

In order to make it clear since both projects are distinct parts of the same ecosystem but different applications and each has an API/backend itself I'll call api.metaanchor.io as API and this project as a metaanchor instance, whether is backend or frontend.

In order to authenticate a metaanchor instance and make sure that it can call the API, it should have some means to authenticate itself and do the whole auto-setup of the API. This basically gives the API a way to do sanity-checking and health checks on the instance and it unlocks the instance to read and push information to the API. The workflow right now, from a customer point of view, is to register for a DevKit, grab the JSON (containing the API Key), and upload it to their instance so it can freely communicate with the API.
Right now, when signing up for a DevKit, the user must register where is their instance located. Thinking in terms of a multi-tenant or single tenant, they should simply place where their instance is running, and the DevKit sign-up form should simply present their API and any other relevant information. From that point forward, as long as the instance has this copy of the API it can "call home" and register that instance.
Now, I see two potential ways to do it:
(1) Most likely we don't need multiple API Keys for the same instance. Since the instance can simply communicate using the same API Key to the API servers, and inform with the data it carries which tenant is doing what action/operation (using their wallet for instance). The whole setup can be a one-time thing that the instance owner would have to do before other users hop on. In other words, an instance would have an API Key aggregating multiple users.
(2) Each user would be obligated to do the whole setup every time, and the application would have to do the job of picking which API Key to use to communicate with the API; the API Server would use the API Key to figure it out who's talking to them. This can be useful for sending back information to the API, but the other way around would be a bit problematic since the API would have to pick which API Key to use to communicate back with the instance, etc.

I'd rather favor an approach similar to (1), where each instance has 1 API-Key. Going with api.metaanchor.io as API and this github-repository as INSTANCE. Further using OWNER as the person who owns the smart contract and orders e.g. the MetaAnchor DevKit.
I'd propose the following setup process for Single-Tenant;
(ST1)  OWNER fills out the order-form on https://metaanchor.io and lists 0x123...abc as the owner-wallet of a DigitalSoul-NFT contract identified by csn=UFCJ
(ST2) API creates an API-Key api_key=metaanchor_xyz for 0x123...abc and recognizes that 0x123..abc will at some point register a new INSTANCE.
(ST3) OWNER receives instructions, downloads and installs INSTANCE and starts setup.
(ST4) Setup and key-sharing protocol
-- (ST4.1) During setup, OWNER is asked to sign a message "Welcome to MetaAnchor-API" with his wallet 0x123...abc. We denote this message+signature string as SIGNED_WELCOME_MESSAGE
-- (ST4.2) INSTANCE generates an instance_api_key="SUPERSECRET", which is used by api.metaanchor.io to authorize itself to call the /push/ endpoints of the INSTANCE (refer #8)
-- (ST4.3) Setup of INSTANCE calls API, e.g. POST https://api.metaanchor.io/api/v1/register (which is open for all*) with the following payload: POST_DATA={"instance_api_key":"SUPERSECRET", "registrar": "0x123..abc", "authorization": "SIGNED_WELCOME_MESSAGE", ... additional info on reachability, versions etc ... }.
-- (ST4.4) API verifies that POST_DATA.registrar is allowed to register a new instance (otherwise returns 401) and that indeed registrar is sending the request by verifying whether signer(POST_DATA.authorization) == POST_DATA.registrar
-- (ST4.5) API stores details about INSTANCE (how to reach API, how to reach FRONTEND, ...) together with POST_DATA.instance_api_key
-- (ST4.6) Upon successful verification, API returns RESPONSE_DATA={"api_key": "metaanchor_xyz"}.
-- (ST4.7) INSTANCE stores RESPONSE_DATA.api_key and uses it for all subsequent communication with API
(ST5) INSTANCE may complete setup by copying files, starting services etc.
(ST6) Complete Registration
-- (ST6.1) INSTANCE calls API to signal successful setup via GET [Authorization Bearer api_key] https://api.metaanchor.io/api/v1/register/complete
-- (ST6.2) API tests GET [Authorization Bearer instance_api_key] INSTANCE/push/hello (#8) and possibly other push endpoints endpoints, status-endpoints etc
-- (ST6.3) API returns {"success": True/False}, depending on the results of (ST6.2)
(ST7) API may start pushing information to INSTANCE, such as SLID<>ANCHOR-Pairs of all SLIDs supported by the contract csn=UFCJ etc, refer #8

Some level of spam-protection for the API/register endpoint may make sense, e.g. adding a certificate or Static-API-Key or adding a pre-shared installation code may make sense. For simplicity in the first step, let's go with open-for-all.

Multi-Tenant:
TODO once we have a first iteration on the one above.

Sligthly adapting the one above by splitting into "register instance" and "register contract". An INSTANCE only needs to be registered once (by any contract owner), for each contract the contract owner has to log in at the INSTANCE and register the contract to the instance.
Specs INSTANCE registration

Each INSTANCE has one api_key, with which it authenticates itself towards API
Each INSTANCE issues one instance_api_key, with which API authenticates itself towards INSTANCE (#8 )

Specs Contract registration

Each INSTANCE "manages" 1...N contracts
An INSTANCE registers itself to manage a specific contract by the owner signing Here is MetaAnchor DigitalSoul!  and sending that to API/digitalsoul/register. This registers the specific contract to the INSTANCE via the api_key that has been used.
If a contract owner registers his contract through a different INSTANCE, the previous active instance looses all permissions to manage the contract.

Will close this, as follow-up tickets #9  and #10 for implementation were created. This ticket serves as documentation.