Including <glbinding/gl/gl.h> slows down compilation massively

You probably know about this - is there really nothing that can be done about it? I just cut down the compilation time of a small project from just about 3 minutes to 55 seconds by replacing a dozen or so gl.h with the actually needed types.h, enum.h, bitfield.h, functions.h... The thing is just, this is a lot of manual work.
I'd rather like to be able to just include gl.h and be able to use GL without killing my build times. Can we maybe outsource some non-GL functionality from gl.h to external headers? Maybe employ defines to disable features we don't need?
(I haven't bothered to figure out what's actually going on in gl.h, just pointing this out in general)

Yeah, we absolutely know about this :laughing:
First of all, even GLEW exposes comparable amounts in its own GL/glew.h in its header.
The only reason it is quicker is that is uses #defines and thus let the preprocessor handle the actual work.
With glbinding, we define actual symbols and use templates to enable type-safety and introspection mechanisms, which are completely handled by the compiler.
Your solution with using the splitted headers is exactly our way to address this issue.
Let me say a few words about your other proposed solutions:
Outsource functionality from gl.h: One of our main goals was to provide an API that is highly compatible to GLEW. So we wanted just one include and one using namespace as a transformation between GLEW and glbinding projects. The gl.h is as minimal as we think it may be to fulfill this purpose.
For a simple form of splitting the gl.h one can use the splitted headers.
Using defines: We want to program semantic-rich C++ that uses the preprocessor as least as possible. But if you want to cut down features, you can use the version-tailored headers of gl.h (e.g., gl45core.h).
Generally, the OpenGL API isn't designed that modularily and at first we took inspiration from the shipped OpenGL headers and GLEW.
Of course, we can even provide per-extension headers and we actually thought about it, but this would further increase manually collecting and using multiple headers.
At least, we thought about tailoring the generation process (as it is done by glLoadGen).

In addition, we just started to evaluate two different kinds of "arbitrary" categorization of gl commands (see queries tool queries/main.cpp and another approach is in logging scripts/categories.py) that are based on some gl documentation as well as on manual categorization ...  this could be used for further specialization of headers, e.g., glrendering.h and gltextures.h. I would like this a lot.
We would like to address this issue as follows: we just start providing a categorization in terms of a patch of gl.xml (move categorization.py information to patch.xml) and hope for a positive reception and adoption in terms of official feedback from khronos group as we want this to happen for the current patch.xml in general (note that the patch.xml can be merged into glm.xml automatically) since it partially exposes the incompletion of gl.xml. This, however, is a long way to go and requires a better overall reception/awareness of glbinding ... we are working hard to achieve both (patch.xml and adoption of glbinding).

please try compilation again, with the current master the times should be faster again ...

Too lazy to take before-after timings, but feels a lot better indeed.
You may remove that "wontfix" tag ;)


cgroupsv2: podman fails with runc error although crun is configured

Running the latest master, I get the following error:
ERRO[0000] oci runtime "runc" does not support CGroups V2: use system migrate to mitigate
Error: time="2019-10-10T16:06:50+02:00" level=error msg="this version of runc doesn't work on cgroups v2"
this version of runc doesn't work on cgroups v2: OCI x runtime error

We must have regressed since v1.6.1 which does not throw this error. I have /usr/share/containers/libpod.conf which is configured to use crun and v1.6.1 picks that up accordingly. The current master isn't and fails with the above error.
I have no /etc/containers/libpod.conf.

This is definitely Brent's patch. If you inspect the container, what is the runtime in use?

@mheon it uses runc:
[
    {
        "Id": "de5b7bf83e1e88aa550ec5d9d138fb161f5fe24a0851a73b05e96455e34987f4",
        "Created": "2019-10-10T16:06:50.410511908+02:00",
        "Path": "ls",
        "Args": [
            "/"
        ],
        "State": {
            "OciVersion": "1.0.1-dev",
            "Status": "configured",
            "Running": false,
            "Paused": false,
            "Restarting": false,
            "OOMKilled": false,
            "Dead": false,
            "Pid": 0,
            "ExitCode": 0,
            "Error": "",
            "StartedAt": "0001-01-01T00:00:00Z",
            "FinishedAt": "0001-01-01T00:00:00Z",
            "Healthcheck": {
                "Status": "",
                "FailingStreak": 0,
                "Log": null
            }
        },
        "Image": "ef49352c9c21ca58ce753fd0b5dda645492236cec4213ac31ee47c35f2e91b1c",
        "ImageName": "docker.io/library/fedora:latest",
        "Rootfs": "",
        "Pod": "",
        "ResolvConfPath": "/var/run/containers/storage/overlay-containers/de5b7bf83e1e88aa550ec5d9d138fb161f5fe24a0851a73b05e96455e34987f4/userdata/resolv.conf",
        "HostnamePath": "/var/run/containers/storage/overlay-containers/de5b7bf83e1e88aa550ec5d9d138fb161f5fe24a0851a73b05e96455e34987f4/userdata/hostname",
        "HostsPath": "/var/run/containers/storage/overlay-containers/de5b7bf83e1e88aa550ec5d9d138fb161f5fe24a0851a73b05e96455e34987f4/userdata/hosts",
        "StaticDir": "/var/lib/containers/storage/overlay-containers/de5b7bf83e1e88aa550ec5d9d138fb161f5fe24a0851a73b05e96455e34987f4/userdata",
        "OCIConfigPath": "/var/lib/containers/storage/overlay-containers/de5b7bf83e1e88aa550ec5d9d138fb161f5fe24a0851a73b05e96455e34987f4/userdata/config.json",
        "OCIRuntime": "runc",
        "LogPath": "/var/lib/containers/storage/overlay-containers/de5b7bf83e1e88aa550ec5d9d138fb161f5fe24a0851a73b05e96455e34987f4/userdata/ctr.log",
        "ConmonPidFile": "/var/run/containers/storage/overlay-containers/de5b7bf83e1e88aa550ec5d9d138fb161f5fe24a0851a73b05e96455e34987f4/userdata/conmon.pid",
        "Name": "flamboyant_margulis",
        "RestartCount": 0,
        "Driver": "overlay",
        "MountLabel": "system_u:object_r:container_file_t:s0:c348,c503",
        "ProcessLabel": "system_u:system_r:container_t:s0:c348,c503",
        "AppArmorProfile": "",
        "EffectiveCaps": [
            "CAP_CHOWN",
            "CAP_DAC_OVERRIDE",
            "CAP_FSETID",
            "CAP_FOWNER",
            "CAP_MKNOD",
            "CAP_NET_RAW",
            "CAP_SETGID",
            "CAP_SETUID",
            "CAP_SETFCAP",
            "CAP_SETPCAP",
            "CAP_NET_BIND_SERVICE",
            "CAP_SYS_CHROOT",
            "CAP_KILL",
            "CAP_AUDIT_WRITE"
        ],
        "BoundingCaps": [
            "CAP_CHOWN",
            "CAP_DAC_OVERRIDE",
            "CAP_FSETID",
            "CAP_FOWNER",
            "CAP_MKNOD",
            "CAP_NET_RAW",
            "CAP_SETGID",
            "CAP_SETUID",
            "CAP_SETFCAP",
            "CAP_SETPCAP",
            "CAP_NET_BIND_SERVICE",
            "CAP_SYS_CHROOT",
            "CAP_KILL",
            "CAP_AUDIT_WRITE"
        ],
        "ExecIDs": [],
        "GraphDriver": {
            "Name": "overlay",
            "Data": {
                "LowerDir": "/var/lib/containers/storage/overlay/4843c53b9094f182c4b6ac3412c333d8b770869e2ee2f81ba684ea507f247063/diff",
                "UpperDir": "/var/lib/containers/storage/overlay/d2b81c9c34e557f25ae6f86c92d075573688b8634d5eb40a2096f8ee6e5880d4/diff",
                "WorkDir": "/var/lib/containers/storage/overlay/d2b81c9c34e557f25ae6f86c92d075573688b8634d5eb40a2096f8ee6e5880d4/work"
            }
        },
        "Mounts": [],
        "Dependencies": [],
        "NetworkSettings": {
            "Bridge": "",
            "SandboxID": "",
            "HairpinMode": false,
            "LinkLocalIPv6Address": "",
            "LinkLocalIPv6PrefixLen": 0,
            "Ports": [],
            "SandboxKey": "",
            "SecondaryIPAddresses": null,
            "SecondaryIPv6Addresses": null,
            "EndpointID": "",
            "Gateway": "",
            "GlobalIPv6Address": "",
            "GlobalIPv6PrefixLen": 0,
            "IPAddress": "",
            "IPPrefixLen": 0,
            "IPv6Gateway": "",
            "MacAddress": ""
        },
        "ExitCommand": [
            "/home/valentin/go/src/github.com/containers/libpod/bin/podman",
            "--root",
            "/var/lib/containers/storage",
            "--runroot",
            "/var/run/containers/storage",
            "--log-level",
            "error",
            "--cgroup-manager",
            "systemd",
            "--tmpdir",
            "/var/run/libpod",
            "--runtime",
            "runc",
            "--storage-driver",
            "overlay",
            "--storage-opt",
            "overlay.mountopt=nodev,metacopy=on",
            "--events-backend",
            "journald",
            "container",
            "cleanup",
            "de5b7bf83e1e88aa550ec5d9d138fb161f5fe24a0851a73b05e96455e34987f4"
        ],
        "Namespace": "",
        "IsInfra": false,
        "Config": {
            "Hostname": "de5b7bf83e1e",
            "Domainname": "",
            "User": "",
            "AttachStdin": false,
            "AttachStdout": false,
            "AttachStderr": false,
            "Tty": false,
            "OpenStdin": false,
            "StdinOnce": false,
            "Env": [
                "PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin",
                "TERM=xterm",
                "HOSTNAME=de5b7bf83e1e",
                "container=podman",
                "DISTTAG=f30container",
                "FGC=f30",
                "FBR=f30",
                "HOME=/root"
            ],
            "Cmd": [
                "ls",
                "/"
            ],
            "Image": "docker.io/library/fedora:latest",
            "Volumes": null,
            "WorkingDir": "/",
            "Entrypoint": "",
            "OnBuild": null,
            "Labels": {
                "maintainer": "Clement Verna<EMAIL_ADDRESS>            },
            "Annotations": {
                "io.container.manager": "libpod",
                "io.containers.trace-syscall": "of:/home/valentin/go/src/github.com/containers/libpod/ls.json",
                "io.kubernetes.cri-o.ContainerType": "sandbox",
                "io.kubernetes.cri-o.Created": "2019-10-10T16:06:50.410511908+02:00",
                "io.kubernetes.cri-o.TTY": "false",
                "io.podman.annotations.autoremove": "FALSE",
                "io.podman.annotations.init": "FALSE",
                "io.podman.annotations.privileged": "FALSE",
                "io.podman.annotations.publish-all": "FALSE",
                "org.opencontainers.image.stopSignal": "15"
            },
            "StopSignal": 15
        },
        "HostConfig": {
            "Binds": [],
            "ContainerIDFile": "",
            "LogConfig": {
                "Type": "k8s-file",
                "Config": null
            },
            "NetworkMode": "default",
            "PortBindings": {},
            "RestartPolicy": {
                "Name": "",
                "MaximumRetryCount": 0
            },
            "AutoRemove": false,
            "VolumeDriver": "",
            "VolumesFrom": null,
            "CapAdd": [],
            "CapDrop": [],
            "Dns": [],
            "DnsOptions": [],
            "DnsSearch": [],
            "ExtraHosts": [],
            "GroupAdd": [],
            "IpcMode": "",
            "Cgroup": "",
            "Cgroups": "default",
            "Links": null,
            "OomScoreAdj": 0,
            "PidMode": "",
            "Privileged": false,
            "PublishAllPorts": false,
            "ReadonlyRootfs": false,
            "SecurityOpt": [],
            "Tmpfs": {},
            "UTSMode": "",
            "UsernsMode": "",
            "ShmSize": 65536000,
            "Runtime": "oci",
            "ConsoleSize": [
                0,
                0
            ],
            "Isolation": "",
            "CpuShares": 0,
            "Memory": 0,
            "NanoCpus": 0,
            "CgroupParent": "",
            "BlkioWeight": 0,
            "BlkioWeightDevice": null,
            "BlkioDeviceReadBps": null,
            "BlkioDeviceWriteBps": null,
            "BlkioDeviceReadIOps": null,
            "BlkioDeviceWriteIOps": null,
            "CpuPeriod": 0,
            "CpuQuota": 0,
            "CpuRealtimePeriod": 0,
            "CpuRealtimeRuntime": 0,
            "CpusetCpus": "",
            "CpusetMems": "",
            "Devices": [],
            "DiskQuota": 0,
            "KernelMemory": 0,
            "MemoryReservation": 0,
            "MemorySwap": 0,
            "MemorySwappiness": -1,
            "OomKillDisable": false,
            "PidsLimit": 4096,
            "Ulimits": [
                {
                    "Name": "RLIMIT_NOFILE",
                    "Soft": 1048576,
                    "Hard": 1048576
                },
                {
                    "Name": "RLIMIT_NPROC",
                    "Soft": 1048576,
                    "Hard": 1048576
                }
            ],
            "CpuCount": 0,
            "CpuPercent": 0,
            "IOMaximumIOps": 0,
            "IOMaximumBandwidth": 0
        }
    }
]

Is this a scratch-build, or a rawhide/F31 RPM? I think we're missing the patch that we carry on top of F31 that resets default OCI Runtime to crun

@vrothberg The patch to swap the default runtime isn't in master - we're carrying it in the RPMs because it's specific to F31 and Rawhide

The other way around, we seemed to have created a regression in master specific to F31 and cgroups as well. I did not look into the code yet why and where it's breaking but the behavioral change is concerning.

Ref: https://github.com/containers/libpod/pull/3901

FWIW, here's brent's PR for the check:  https://github.com/containers/libpod/pull/4216

Strace tells me we're looking at /usr/local/share/containers/libpod.conf but we are not looking into /usr/share anymore

Is this a make prefix thing? I know the Makefile lets you specify a prefix directory

Yes, that's it, thanks, @mheon ! PREFIX=/usr make podman did the trick :+1: Closing the issue.


Update offline model configuration and skip client initialization for…

Update offline model configuration .env files.

Bug Reported here (https://github.com/haseeb-heaven/code-interpreter/issues/10)


IAsyncEnumerable ToChannel Extension not visible in .NET 8 projects

Hi guys,
I have a problem upgrading from 6.x to 8.x, it appears that ToChannel extension is not visible anymore for IAsyncEnumerable<>
I downloaded the project and added a test method as I remarked that the test project is targeting .NET 8 to see whether the code would build or not
Result : I observe the same behavior, the following code does not build

Here is the code I added to BasicTests.cs
        [Theory]
	[InlineData(testSize1)]
	[InlineData(testSize2)]
	[SuppressMessage("Reliability", "CA2012:Use ValueTasks correctly", Justification = "Testing only.")]
	[SuppressMessage("CodeQuality", "IDE0079:Remove unnecessary suppression", Justification = "<Pending>")]
	public static async Task ToChannelTest(int testSize)
	{
		var range = CreateAsyncEnumerableRange(testSize);
		var result = new List<int>(testSize);

		var startedAt = TimeProvider.System.GetTimestamp();
		ChannelReader<int> reader = range
			.ToChannel(singleReader: true, deferredExecution: true);

		_ = reader.ReadAll(i => result.Add(i), true);

		await reader.Completion;
		var elapsed = TimeProvider.System.GetElapsedTime(startedAt);
	}

	static async IAsyncEnumerable<int> CreateAsyncEnumerableRange(int testSize)
	{
		foreach (var i in Enumerable.Range(0, testSize))
			yield return i;
		await Task.CompletedTask;
	}

On it.

v6, v7, and v8 all updated.
Please check and see if that fixes it. (it should).

I confirm it's compiling now, thanks mate 👌


Compat fix for recursive component ref auto-reg.

Requires space-wizards/RobustToolbox#1135

Too stale. Closing.


[Cherry-pick] [branch-2.1] Simplify the isColocateJoin function in PlanFragmentBuilder (#5091)

What type of PR is this：

[ ] bug
[ ] feature
[ ] enhancement
[ ] others

Which issues of this PR fixes ：

Fixes #
Problem Summary(Required) ：

run starrocks_fe_unittest


Search inbox

Is there a way to search my inbox? including both my user inbox and mod messages?

Not really, no. This module is only a wrapper around reddit's API, and reddit's API doesn't expose an inbox search function.
As a workaround, I suppose you could fetch the most recent messages in your inbox or modmail (e.g. with getInbox) and then do a regex search on the result.

Going to close this issue, but feel free to continue the discussion if you have any more questions.


Unable to build heka 0.10.0

@andyone, I've tried to prepare PR for heka 0.10.0 and found that file heka-man.tar.gz is missing. What should we do? Probably, you should add this gz-archive to the repository or I can skip it on during preparing new version.

I think that the use prerendered man docs was wrong decision. We must generate man docs but this require python-sphinx package > 1.0. I will try to write spec file for this package tonight.

Sounds good for me.

We waited so long that the Mozilla's project has already stopped developing. I think we should close this issue and never ever built it RPM package for this.

:laughing: I so love Mozilla's projects...


better support for concrete methods

I feel like this is already an open issue, but I couldn't find it, so making it again I guess.
We need to make concrete methods linkable and have some way to enforce that their signatures line up. Probably this means having a central place where the main definition lives, with (automatically generated) links to the various implementations.

Maybe internal methods, too.

Probably this means having a central place where the main definition lives

This already exists. E.g., for the 3 HasBinding concrete methods, the 'central place' is in Table 16. For enforcing that signatures line up, the table declaration gives the number and names of the parameters, but not their types (or the return type). Or rather, that type info is mostly there in the "Purpose" column, but not in a way that can be easily extracted by code.
So are you thinking that the tabular forms would be replaced with structured-header forms?


Need either a state_dict or a save_folder containing offloaded weights.

Describe the issue
warnings.warn(f'for {key}: copying from a non-meta parameter in the checkpoint to a meta '
Loading checkpoint shards: 100%|██████████| 6/6 [02:41<00:00, 26.98s/it]
You are using a model of type llava to instantiate a model of type llava_llama. This is not supported for all configurations of models and can yield errors.
Loading checkpoint shards: 100%|██████████| 6/6 [05:39<00:00, 56.56s/it]
Traceback (most recent call last):
File "/data2/zhaodaojie/project/LLaVA/ceshi/ceshi1.py", line 36, in
File "/data2/zhaodaojie/project/LLaVA/llava/eval/run_llava.py", line 55, in eval_model
tokenizer, model, image_processor, context_len = load_pretrained_model(
File "/data2/zhaodaojie/project/LLaVA/llava/model/builder.py", line 117, in load_pretrained_model
model = LlavaLlamaForCausalLM.from_pretrained(
File "/home/dell/ENTER/envs/llava/lib/python3.10/site-packages/transformers/modeling_utils.py", line 3917, in from_pretrained
dispatch_model(model, **device_map_kwargs)
File "/home/dell/ENTER/envs/llava/lib/python3.10/site-packages/accelerate/big_modeling.py", line 364, in dispatch_model
weights_map = OffloadedWeightsLoader(
File "/home/dell/ENTER/envs/llava/lib/python3.10/site-packages/accelerate/utils/offload.py", line 150, in init
raise ValueError("Need either a state_dict or a save_folder containing offloaded weights.")
ValueError: Need either a state_dict or a save_folder containing offloaded weights.

I am getting the same issue
ValueError                                Traceback (most recent call last)
Cell In[5], line 1
----> 1 pipeline = transformers.pipeline(
2 "text-generation",
3       model=model,
4       torch_dtype=torch.float16,
5  device_map="auto",
6 )
File /Library/Frameworks/Python.framework/Versions/3.11/lib/python3.11/site-packages/transformers/pipelines/init.py:895, in pipeline(task, model, config, tokenizer, feature_extractor, image_processor, framework, revision, use_fast, token, device, device_map, torch_dtype, trust_remote_code, model_kwargs, pipeline_class, **kwargs)
893 if isinstance(model, str) or framework is None:
894     model_classes = {"tf": targeted_task["tf"], "pt": targeted_task["pt"]}
--> 895     framework, model = infer_framework_load_model(
896         model,
897         model_classes=model_classes,
898         config=config,
899         framework=framework,
900         task=task,
901         **hub_kwargs,
902         **model_kwargs,
903     )
905 model_config = model.config
906 hub_kwargs["_commit_hash"] = model.config._commit_hash
...
raise ValueError("Need either a state_dict or a save_folder containing offloaded weights.")
ValueError: Need either a state_dict or a save_folder containing offloaded weights.

how to solve

The solution is the same as here:
https://stackoverflow.com/questions/76617863/flan-t5-xxl-valueerror-need-either-a-state-dict-or-a-save-folder-containin


Error when deleting assay

Assay n2 in a Study

Assay design --> Samples: no samples shown
Assay design --> Table: samples are shown
No SOP associates

Assay --> Actions --> Delete assay: it gives error (This is not a secure form and http://<IP_ADDRESS>:3002/assays/15?return_to=%2Fsingle_pages%2F9)
Screenshots of the error:

Not being able to delete the assay "root gene expression" could be due to the fact that a sample type (n 33) is still associated with the assay. How to solve that?

This is because the application uses the local server address. This is not basically an issue since it will be fine in the production server.


Ability to clear the field

Is there a way to clear the field after selecting a date? Something like the small "x" you can find in the Chrome datepicker.

You can use BACKSPACE/DELETE key to clear current value. Though I've noticed at present it only clears current selection in calendar but not the input value, will be fixed in the next version. Adding a separate clear button is a nice to have feature, not for release 2 I think.

Published fix in better-time-element, so BACKSPACE/DELETE keys work properly now. Check demo at http://chemerisuk.github.io/better-dateinput-polyfill/

It works pretty good, thank you very much. It introduced a new error, tough. If I click on the current month to change it, I get this: http://imgur.com/ZoSDDax

@LBreda hm, I can't figure out steps to reproduce the issue. Have you updated all related plugins? Does the bug exist on the online demo as well?

Yes, the bug exists on the online demo as well. I get it on Firefox, both on the Debian and Windows versions.
Screenshot: http://imgur.com/dpquijp

Alright, I think I got it. Should be fixed in v2.0.0-rc.4 :)

Thank you!
Il giorno mar 19 apr 2016 alle ore 13:30 Maksim Chemerisuk <
<EMAIL_ADDRESS>ha scritto:

Alright, I think I got it. Should be fixed in v2.0.0-rc.4 :)
—
You are receiving this because you were mentioned.
Reply to this email directly or view it on GitHub
https://github.com/chemerisuk/better-dateinput-polyfill/issues/70#issuecomment-211867774


HtmlUnit fails to parse script

I get following exception in my integration test environment:
org.htmlunit.corejs.javascript.EvaluatorException: missing formal parameter (http://..../jakarta.faces.resource/faces.js.xhtml?ln=jakarta.faces#2)
        at org.htmlunit.javascript.HtmlUnitContextFactory$HtmlUnitErrorReporter.error(HtmlUnitContextFactory.java:431)

Line Number: 2
Column Number: 864
The JS can be found here:
https://repo1.maven.org/maven2/org/apache/myfaces/core/myfaces-api/4.0.2/myfaces-api-4.0.2.jar
extract it and you can find it here:
\META-INF\resources\jakarta.faces\faces.js
the exception is there since v2.13 and still fails with 3.10.0

@tandraschko,
thanks for the bug report. HtmlUnit (and Wetator) has a log history testing JSF/Myfaces/Richfaces app. Therefore i spend some time looking at this.
The problem here is (again) som js feature support in rhino. The faces.js implementation uses rest parameters (https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Functions/rest_parameters) e.g.
e.chain = function(e, t, ...n)

that are currently not supported by Rhino.
What to do?
Option 1: wait until Rhino moves forward here - i the past i have provided a many updates to rhino but its getting harder because of the backward compatibility that rhino likes to manage
Option 2: I have a plan to replace the js engine by something more modern, but this is a huge effort and might not be available during the next months (you can of course ask your boss to sponsor my work (https://github.com/sponsors/rbri) to make this a bit faster). Please be a bit patient regarding this, i plan to announce the plan and more details soon
Option 3: Patch the faces.js file 'on the fly' and replace the problematic statements with some rhino compatible stuff. I did this already for Htmx and it is possible for this also. At least if you like to test bigger MyFaces projects (or many) this might be a good solution.
Please give me a sign, if you like to go with option 3 for some time and i will try to help you with this.

Looks like i have rhino support for function rest parameters ready... will relese something during the next days

that sounds great! Thank you! :)
NOTE: i'm just working on another OS project, Apache DeltaSpike, and i'm trying to fix our integration tests for new JakartaEE 10

is there any expected release date yet? :)

@tandraschko sorry but the fix i made for rhino (https://github.com/mozilla/rhino/pull/1451) seems to be only the first required one. The js file not only uses rest paramters but also spread syntax support.
At the moment i like to focus on https://github.com/HtmlUnit/htmlunit/issues/755 - this will solve the problem at all.
But there is no release date set - hope to know more in one week or so...


Compatible with 5.5.x PHP version?

Magento version: <IP_ADDRESS> EE
Plugin version: 2.10.0
Description
Currently, my Magento site is using PHP 5.5.9. But for the latest version, 2.10.0, it requires PHP 5.6.x version. My question is: can I use 5.5.9 for my Adyen payment? If I want it to work with PHP 5.5.x, what should I consider?

@rikterbeek yes, I think it should work. Currently, on my side, it's working fine on PHP 5.5.x


[iOS] [Idea] To improve TimetableDayHeader performance, divide TimetableTopView & use environment object.

Issue

close #1075

Overview (Required)

New TimetableTopView.swift to inject TimetableViewModel for bookmark toggle.

Since TimetableListView.swift was commonly used, I separated what I wanted to use with TimetableView.swift.

※ In my personal opinion, I don't think it's recommended to use TimetableListView.swift as is on every screen.
Test

[x] TimetableDayHeader collapses or expands smooth.
[x] Enable to bookmark checked or unchecked.

Movie

@fumiyasac
Can you check #1163 ? 🙏🏼
I fixed this performance issue with another way!

@ry-itto OK. I'll close this PR.


Angular code snippets appear during Page Refresh

I have a page with lots of Angular code in it.  However, during a postback (i.e. my users click the refresh button), Angular code snippets appear  then go away after Angular loads.
{{Message}}
[[m.FieldName]]
Is there any way to prevent these Angular codes from appearing?
Thanks
Tom

See: http://stackoverflow.com/q/12866447/1418796

Thank you very much!


Batch overview page

@lisawong19,
Thanks for your contribution as a Microsoft full-time employee or intern. You do not need to sign a CLA.
Thanks,
Microsoft Pull Request Bot

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-services/batch.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.

@annatisch please :)

:white_check_mark: Validation status: passed

File
Status
Preview URL
Details

docs-ref-services/batch.md
:white_check_mark:Succeeded

For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


Horizontal sharding

Hi,
I want to scale out my MySQL database into few servers using horizontal sharding. For example, I have 4 database servers (not replicas):

Shard 1 (<IP_ADDRESS>)
Shard 2 (<IP_ADDRESS>)
Shard 3 (<IP_ADDRESS>)
Shard 4 (<IP_ADDRESS>)

Now I want to connect to one of them depending on user_id (server_id = user_id % 4).
How can I pool mysql connections using Node.js mysql package? I've found only PoolCluster and Pooling connections in documentation. It seems that this package works only with one database or database replicas (master-slave).
Could anyone explain how to work with multiple database servers in Node.js?
Thanks

Could anyone explain how to work with multiple database servers in Node.js?

There is nothing built in this driver (and probably won't be, it's goal is mainly low level protocol implementation)
You'd have to create 4 separate connections (or connection pools) and query one manually based on your data logic ( in your case, user_id )

@sidorares Thank you for the reply. So in general it should look like this?
var mysql = require('mysql');

var connectionPool = {
	server1: mysql.createPool({ host: '<IP_ADDRESS>' ... });
	server2: mysql.createPool({ host: '<IP_ADDRESS>' ... });
	server3: mysql.createPool({ host: '<IP_ADDRESS>' ... });
	server4: mysql.createPool({ host: '<IP_ADDRESS>' ... });
};

var serverId = 'server' + (userId % 4);

connectionPool[serverId].getConnection(function(err, connection) {
   // execute query
   connection.release();
});

Thanks

So in general it should look like this for each query?

yes, this is how I'd do it
for simple queries you can also have .query() pool helper:
var serverId = 'server' + (userId % 4);

connectionPool[serverId].query(sql, (err, rows) => {
  // no need to release, it's taken care of already
});


docs: add decision on spacing

FX-4226
Description
This pull request adds an RFC for introducing new BASE design spacings described in https://toptal-core.atlassian.net/wiki/spaces/Base/pages/3217031216/Spacing.
How to test

Please review the https://github.com/toptal/picasso/blob/FX-4426-expose-base-spacing/docs/decisions/18-spacings.md

Development checks

[x] Self reviewed

All development checks should be done and set checked to pass the
GitHub Bot: TODOLess action

PR commands

List of available commands:

@toptal-bot run package:alpha-release - Release alpha version
@toptal-anvil ping reviewers - Ping FX team for review

PR Review Guidelines

When to approve? ✅
You are OK with merging this PR and

You have no extra requests.
You have optional requests.

Add nit: to your comment. (ex. nit: I'd rename this variable from makeCircle to getCircle)

When to request changes? ❌
You are not OK with merging this PR because

Something is broken after the changes.
Acceptance criteria is not reached.
Code is dirty.

When to comment (neither ✅ nor ❌)
You want your comments to be addressed before merging this PR in cases like:

There are leftovers like unnecessary logs, comments, etc.
You have an opinionated comment regarding the code that requires a discussion.
You have questions.

How to handle the comments?

An owner of a comment is the only one who can resolve it.
An owner of a comment must resolve it when it's addressed.
A PR owner must reply with ✅ when a comment is addressed.

@toptal-anvil ping reviewers

from @whymancreates: @sashuk and @dmaklygin I think right now, my main challenge is that I am blindsided to how a space-10 on desktop should adjust to what space-N on mobile. If FX team sees this as a benefit for engineers then lets work on it and have something similar to the audi system. thoughts??

Let's discuss this topic again from the actual needs of our users and to evaluate the option of responsive spacings.
From my point of view responsive spacing is something that have not been requested by anybody and does not really solve any problem now. This way, if we introduce it, consumers (in our case Designers and Engineers) will encounter the following problems or extra effort spent:

the need to understand the whole concept of tokens that changes the value depending on the screen width (popular UI libraries do not support this concept)
Figma needs to somehow support tokens that have different values depending on the screen width, so it is comfortable to worn on designs
need to implement additional logic on Picasso side

Taking into account all the issues above, it seems like it is not a good time for responsive spacing tokens as they are not needed. @whymancreates @dmaklygin can you please share your opinion? Maybe there are other obstacles or opportunities that I've missed?

I agree for me it would be premature to jump into responsive spacing and tokens. In figma there is a way to automatically set these however, our users are far from being comfortable with this change aswell. I think we should take it in steps and first steps for us would make sense to provide a set of fixed values with proper namings (space-N) that can be used freely.

@toptal-anvil ping reviewers

@toptal-anvil ping reviewers

@dmaklygin Thank you for the sync! The following was done as a follow-up:

both pull request have better titles
the deprecation plan for spacing in Picasso was described (I propose to go in two steps 3 weeks apart from each other)
string constants do map to BASE spacings ✅
custom usages were checked, there are around 10 non-BASE values of Container.top property in Toptal codebase


LoadKeys() use env + slog.Debug + refactor

Continuing discussion from https://github.com/Foxboron/ssh-tpm-agent/pull/23:
Refactor: keep functions small, less nested, and exit early. createListener (not listener, since it would result in variable shadowing). I ended up refactoring the bottom part, since there was a shadowed err in main().
My .ssh directory is a symlink. As there is no apparent reason for avoiding symlinks (neither is there precedent from ssh-agent, etc), I made it follow symlinks.
Turns out ssh-tpm-agent didn't use $SSH_AUTH_SOCK, as specified in the systemd unit, now it does.
The debug statements (and a small refactor in main()) are because it didn't give me any error before. Now I am staring at:
... level=DEBUG msg="%s not a TPM sealed key: %v\n" /r/c/ssh/hh-8192_ecdsa.tpm="tpm-ssh: unsupported key type \"TPM EC PRIVATE KEY\"

Resolved conflicts.


Numeric object key causes different color for first letter

TS and JS Grammar Extension version:  0.0.18 / latest
Code
var a = {
    0: b.cd()
};

In cd(), the c has a different color from d. I can reproduce this for both TypeScript and JavaScript.

Fixed by 36ad8ae650421f104ec3636658480379dabf5647


Make settings compatible with SQLcl 21.4.0 and SQLDev 21.4.0

There are changes from

SQLcl 21.3.3 to 21.4.0 and
SQLDev 21.2.1 to SQLDev 21.4.0

which seem to be incompatible. Several test fail. Furthermore the formatter is much slower than in previous versions

The following statement cannot be formatted in SQLDev and SQLcl 21.4.0 due to a syntax error:
select level
,ename
from emp
start with
mgr is null
connect by
prior empno = mgr;

The problem is start with. This must not start on column 1. Probably a conflict with the SQL*Plus start command.
The workaround is to ad a space before start with. Like this:
select level
,ename
from emp
 start with
mgr is null
connect by
prior empno = mgr;

Then the parse tree is correct without syntax error:


Websocket missing questions, disconnecting every 30 seconds

It's not a bug. it has to reconnect every 30 seconds because apparently HQ's servers needs a "heartbeat" to stay connected

Should be fixed in https://github.com/Exaphis/HackQ-Trivia/commit/73a5e82d06dd8dd9534173b49490ab20173d9e3e.


[release/v2.8] Add automation for system-agent version upgrade

Updates

Added GHA workflow for automating system-agent version upgrades.

Issue

https://github.com/rancher/rancher/issues/47179

Closing as per https://github.com/rancher/system-agent/pull/202#discussion_r1873531515


Microbenchmarks for kafka dispatcher

Proposed Changes

Microbenchmarks for toKafkaMessage and fromKafkaMessage
Modified inefficient log statement

/lgtm
/approve


Feature request: Mobile friendly

It would be great to stick the following on all the generated HTML files under <head> tag
 <meta name="viewport" content="width=device-width, initial-scale=1">

I'm happy to accept a PR ;)


fancy zones editor ui elements

Microsoft PowerToys version
<IP_ADDRESS>
Installation method
WinGet
Running as admin
Yes
Area(s) with issue?
FancyZones Editor
Steps to reproduce
Sliders for zone padding pretty sensitive. Hard to set exact value, let's say 1px. or 5px.
✔ Expected Behavior
Add input field and / or ratcheting / snapping slider. dunno why you should go for 1000px padding but yea. You move slider and it snaps to <IP_ADDRESS>.5.6px... or / and you enter number in a text box.
❌ Actual Behavior
You move slider a tiny bit and it goes brrrr +-10-20 px. even to a negative values. Which is okay for some scenarios. but those crazy jumps... you want to set it to 1px, and you can't click on indicator and just change it to your desired value.
Other Software
No response

Try to set focus to the slider and press left or right keys.


Issues with the hotfile and the host configuration

Currently the hot file will only store one interface address
eg: vite --host <IP_ADDRESS> will output http://<IP_ADDRESS>:7894, However you cannot connect to <IP_ADDRESS> directly.
Let say you have a system that has 2 network interfaces like <IP_ADDRESS> and <IP_ADDRESS>, so then you can connect to either of these externally, and <IP_ADDRESS> internally
So having http://<IP_ADDRESS>:7894 is not valid.
what i've done to fix this is (as a workaround for now), i just put all my network addresses ( that vite already gives me ) in the hotfile
eg: vite --host <IP_ADDRESS> will give me
➜  Local:	http://localhost:7894
➜  Network: http://<IP_ADDRESS>:7894
➜  Network: http://<IP_ADDRESS>:7894
➜  Network: http://<IP_ADDRESS>:7894

and tell laravel to use whatever host is being used.
if i go to my laravel url (http://<IP_ADDRESS>:8000), it will give me
<script type="module" src="http://<IP_ADDRESS>:7894/@vite/client" />
<script type="module" src="http://<IP_ADDRESS>:7894/resources/js/app.jsx" />

There are other issues like it outputs the ipv6 loopback http://[::1]:7894 when no --host is given
which also doesn't work when fetching the assets.
And also where the given base isn't appended at the end, eg: when i set my vite.config with base: '/something/'
i expect also to have http://<IP_ADDRESS>:7894/something in my hotfile
But i think there are open or closed issues regarding these 2 ...
I'm not sure if i was clear enough with my explanation, i hope it make sense 😅
and please do tell me if there is anything i can help out with 👍
My configuration

Laravel Vite Plugin Version: 0.7.3
Laravel Version: 9.48.0
Node Version: LTS-18.12.1
NPM Version: 8.19.2
Host operating system: Windows 11
Running in Sail / Docker: No

The issue of not being able to connect to <IP_ADDRESS> is a known issue with Windows. On Mac and Linux it behaves similarly to the loopback address when connecting to it. I'm not aware of a great solution for Windows yet - it's hard to simultaneously tell Vite to listen on all addresses but then only be able to use one of those addresses for asset links.
What should an ipv6 loopback address look like on Windows if not what is currently provided?
If you need to access it via ipv4 loopback, does it work if you specify the host as either localhost or <IP_ADDRESS>?
If you want to access it externally, can you specify the exact address you want? I know this is a bit inconvenient if your address changes, but the only other thing I can think of is to maybe prompt with all of the detected addresses so that a specific address can be selected. I don't know if that is possible unless it could block Vite from loading until an answer is provided.
As for the base option, I can't remember off the top of my head if there's a specific reason why it doesn't get added to the hot file. What is the use case for changing it from the defaults?

The issue of not being able to connect to <IP_ADDRESS> is a known issue with Windows. On Mac and Linux it behaves similarly to the loopback address when connecting to it.

From what i've read, <IP_ADDRESS> is not meant to be routable. It's a special address that means "any address". So it's not meant to be used to connect to a server, which is why it's not working on windows.

it's hard to simultaneously tell Vite to listen on all addresses but then only be able to use one of those addresses for asset links.

I think there is a missunderstanding here... since vite will listen to all addresses, you can use any of those addresses to access the assets.
Let say vite, is listening to <IP_ADDRESS> & <IP_ADDRESS> on port 7894.
then http://<IP_ADDRESS>:7894/asset.js and http://<IP_ADDRESS>:7894/asset.js will both work.
Vite by itself does it, you can test that by creating a vanilla vite project and running vite --host <IP_ADDRESS>,
then going to one of the addresses that vite is listening to, and you will see that the assets are loaded from the same address as the one you are using to access the page.
there are probaly better explanations out there, i hope what i said make sense ..

If you need to access it via ipv4 loopback, does it work if you specify the host as either localhost or <IP_ADDRESS>?

i'm not sure what you mean by that..
but if we say the host is <IP_ADDRESS> then you will be able to access the assets from either localhost or <IP_ADDRESS> and not from any other address, but i don't think that was your question :sweat_smile:

If you want to access it externally, can you specify the exact address you want? I know this is a bit inconvenient if your address changes, but the only other thing I can think of is to maybe prompt with all of the detected addresses so that a specific address can be selected. I don't know if that is possible unless it could block Vite from loading until an answer is provided.

I think laravel should resolve the appropriate address to use, the host of laravel should match the one on vite's side or at least be able to configure that.
if i'm navigating to http://<IP_ADDRESS>:8000/ (laravel app) then the assets urls should have the same host as laravel's http://<IP_ADDRESS>:5789/myasset.js
we can do that by getting the current host of the request
for example request()->getHttpHost() will return <IP_ADDRESS>:8000 and we can use that to build the asset url.
i'm not sure if we need to put all the addresses in the hot file though, we might need only the hot file and omit the addresses if laravel resolves it that way :thinking:
Sources

https://superuser.com/questions/949428/whats-the-difference-between-127-0-0-1-and-0-0-0-0/949522#949522
https://superuser.com/questions/1307050/how-does-the-os-resolve-a-request-to-connect-to-0-0-0-0
https://stackoverflow.com/a/21057974/11383209

As for the base option, I can't remember off the top of my head if there's a specific reason why it doesn't get added to the hot file. What is the use case for changing it from the defaults?

If you specify a base path to vite, it means all the assets will be served from that base path. so if you have a base path of /somebasepath then all the assets will be served from http://localhost:3000/somebasepath/asset.js instead of http://localhost:3000/asset.js. This is useful if you want to serve vite from a subpath of your domain.
Maybe public base path is a better name for this option, but it's already called base in the vite config so I just kept it the same. sorry if this was confusing
Vite doc : https://vitejs.dev/config/shared-options.html#base

Hey @Madscientiste,
I'm open to looking into how we could do this, but there are scenarios that complicate things (which are also complicated to explain!). I'll do my best to explain, even if just to help myself remember how this all works in order to think of a potential solution.
For example, imagine you have:

An image at resources/images/foo.jpg

A resources/css/app.css file like this:
.foo {
    background-image: url('../images/foo.jpg')
}

A resources/js/app.js file like this:
import '../css/app.css'

If we ignore the Laravel Vite plugin for a second, in vite's "serve" mode, it the image available via the Vite dev server (e.g. at http://localhost:5173/resources/images/foo.jpg) and will update the URL in the CSS to be /resources/images/foo.jpg.
If we're running a Laravel dev server (e.g. at http://localhost:8000) and load the JavaScript from the Vite dev server at http://localhost:5173/resources/js/app.js, then Vite will dynamically insert the compiled CSS from the imported app.css into a <style>...</style> tag on the page. It does not link to the CSS file.
Unfortunately, the URL in the CSS (/resources/images/foo.jpg') doesn't specify a host, so it will be requested via the host where the CSS came from. Because this was dynamically injected into a tag on the page that we're accessing athttp://localhost:8000, the browser will try to load the image file from http://localhost:8000/resources/images/foo.jpg` instead of from Vite at `http://localhost:5173/resources/images/foo.jpg'.
To work around this, the Laravel Vite plugin configure Vite's server.origin option to make Vite generate full URLs that point back to itself (e.g. http://localhost:5173/resources/images/foo.jpg instead of just /resources/images/foo.jpg).
This is where it gets really complicated.
At the time when we configure server.origin, the Vite dev server hasn't yet started, so we don't know what address(es) it will have. So, we set server.origin to __laravel_vite_placeholder__:
https://github.com/laravel/vite-plugin/blob/453a39b39433fb92143cd5fc87df07f924eeb222/src/index.ts#L140
This will result in that image URL being written as __laravel_vite_placeholder__/resources/images/foo.jpg in the compiled CSS.
We then use a transform hook at runtime to replace __laravel_vite_placeholder__ with the Vite dev server address that we've detected:
https://github.com/laravel/vite-plugin/blob/453a39b39433fb92143cd5fc87df07f924eeb222/src/index.ts#L180-L186
The detection is based on any user Vite config overrides, but by default, it will be the address reported to us by Vite's dev server, which by default will be <IP_ADDRESS> (or the ipv6 equivalent) and so the image URL will be written as http://<IP_ADDRESS>:5173/resources/images/foo.jpg, which is what we want.
If you've changed the host to <IP_ADDRESS> to listen on all addresses, that is also the address that the Vite dev server will give to us (or the ipv6 equivalent) as it only provides a single address. We have no way of knowing which address you'll actually be accessing Vite on, so we leave the <IP_ADDRESS> intact. At this point, we have no way of accessing Laravel's request()->getHttpHost() so even if we were to use that address to load the initial JavaScript, the subsequent request for the image would fail.
Leaving the <IP_ADDRESS> intact works okay on Linux and macOS because both operating systems will resolve that to <IP_ADDRESS> when trying to connect to it (as opposed to "all addresses" when listening on it). This doesn't work if you're not on the same machine as the Vite dev server though.
I hope that all makes sense.
I am curious whether we can check the requested address made to Vite during the transform hook and dynamically update the placeholder with whichever address Vite is being accessed on :thinking:

Yeah it make more sense to me now, i do have kind of solution not sure if its a good idea but anyway :
So vite docs says:

In order to properly serve assets, you have two options:

Make sure the server is configured to proxy static assets requests to the Vite server
Set server.origin so that generated asset URLs will be resolved using the back-end server URL instead of a relative path

So i was thinking, using a reverse proxy (eg: ngnix) this can be solved, prefix the assets urls with /:vite:/ and redirect it the vite dev server .. but how about instead, we let laravel handle this while vite is running ?
i tested this and its seems to work, now maybe there are issues with that... What do you think about this ?
Here is how i've done it:

Create a new laravel project
Setup vite.config.js to use server.origin with /:vite: instead
Have an image at resources/images/foo.jpg
A resources/css/app.css with:

.foo {
    background-image: url('../images/foo.jpg')
}

A resources/js/app.js that imports import '../css/app.css'
Go to routes/web.php and add this route:

Route::get('/{vite}', function () {
    $uri = str_replace(':vite:/', '', request()->getRequestUri());
    $host = request()->getHost();

    $vitePort = 5173; // this can be fetched from the hotfile or by a given configuration

    return redirect()->to("http://" . $host . ':' . $vitePort . $uri);
})->where('vite', ':vite:(.*)');

What do you think about this approach ? @jessarcher

Hey @Madscientiste,
Interesting idea. It feels a bit weird to route asset requests via Larave. The redirect would also result in double entries for each asset in your network tab, right?
I think my preferred solution would be to see if we could PR Vite with an option to prefix URLs with whatever host it was requested on. I might hack around with it once Laravel 10 is released and things have settled down.

The redirect would also result in double entries for each asset in your network tab, right?

Yep

But then if i let laravel 'serve' the assets (no redirect):

I think my preferred solution would be to see if we could PR Vite with an option to prefix URLs with whatever host it was requested on. I might hack around with it once Laravel 10 is released and things have settled down.

alright 👍

Related: https://github.com/laravel/vite-plugin/pull/290


Implement methods of SearchTree

I have made remove, set, setIfEmpty, getMax, clear, preOrderTraversal methods in searchTree. They are created to manage the structure of binary trees.

супер


Detect COM's status closed/open V5.0.0

SerialPort Version: V5.0.0
NodeJS Version: V6.3.0
Operating System: WIN 10 64B
Hello,
I would like to know how to detect COM status (open/closed).
I have seen the function isOpen() but node doesn't recognize it.
I think its belong to a pervious version, there is another function instand?
var express = require('express');
var router = express.Router();
var cors = require('cors');
var SerialPort = require('serialport');
router.use(cors());

console.log('init start');
const Readline = SerialPort.parsers.Readline;
const port = new SerialPort('COM7', {
  baudrate: 9600
});
const parser = new Readline();
port.pipe(parser);
if (port.isOpen() == true) {
 console.log('ok');
}else{
  console.log('bad');
}

https://github.com/eshk12/SerialPort-HTTP-Server/blob/master/routes/index.js
Thanks!

hey, I have checked it and i get false while the com is currently open and sending data.
console.log(port.isOpen); is this the way I should use it?

what do you mean right time?
the com is connected and active if i connect via putty that mean is open right?

no im sorry you didnt undeestand me propely
i have the code that i post inside the 1st message after the declration i write that console.log(port.isOpen) and i recive false while i get the updates from the serial

i would like to know for example if com7 is exists before i try to coñnect

up :)

https://stackoverflow.com/questions/46069632/check-if-port-exists-before-running-serialport-via-nodejs
can you check?


${relativeFile} not relative to workspace folder using Jest in Linux

VSCode Version: 1.45.1
OS Version: Linux x64 5.3.0-51-generic (Kubuntu 20.04)

Steps to Reproduce:

Symlink ~/repos, a directory of repositories, to /repos on the root filesystem
Open /repos/project1 TypeScript project in Code as root workspace. The directory has at least the following structure:

.
├── .vscode/
│   ├── launch.json
├── lib/
│   ├── index.test.ts
│   ├── index.ts

Add the following configuration to .vscode/launch.json based on the jest debugging recipe at microsoft/vscode-recipes:

{
    "version": "0.2.0",
    "configurations": [
        {
            "type": "node",
            "name": "jest (all)",
            "request": "launch",
            "args": [
                "--runInBand"
            ],
            "cwd": "${workspaceFolder}",
            "console": "integratedTerminal",
            "internalConsoleOptions": "neverOpen",
            "disableOptimisticBPs": true,
            "program": "${workspaceFolder}/node_modules/jest/bin/jest"
        },
        {
            "type": "node",
            "name": "jest (current file)",
            "request": "launch",
            "args": [
                "--runInBand",
                "${relativeFile}"
            ],
            "cwd": "${workspaceFolder}",
            "console": "integratedTerminal",
            "internalConsoleOptions": "neverOpen",
            "disableOptimisticBPs": true,
            "program": "${workspaceFolder}/node_modules/jest/bin/jest"
        }
    ]
}

Navigate to lib/index.test.ts file in Code
Start jest (current file) in Code's debug view

Expected Behavior (Jest works properly):
Code executes cd /repos/project1 ; /usr/bin/node --inspect-brk=40687 /repos/project1/node_modules/jest/bin/jest.js lib/index.test.ts
Actual Behavior (breaks Jest):
Code executes cd /repos/project1 ; /usr/bin/node --inspect-brk=40687 /repos/project1/node_modules/jest/bin/jest.js ../../home/$USER/repos/project1/lib/index.test.ts
This behavior does not seem to comport with how ${relativeFile} (and also ${workspaceFolder}) is described in the documentation.

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

Update: I noticed this path problem pop up in various places after accessing my project via the /repos symlink. For instance, when trying to use the debugger, breakpoints weren't being picked up. Seems to be because I'm making breakpoints in the /repos/project1/lib/index.test.ts file while Code is expecting the node inspector to understand /home/$USER/repos/project1/lib/index.test.ts. I noticed this after adding a debugger; line to my jest test and seeing what file popped up.
I was eventually able to fix this by bind mounting my repository directory to /repos instead of symlinking it. `${relativeFile} now returns the expected value.

As this is configuration resovling assigning also to @alexr00 and unassigning myself.

@Xunnamius I can't get the same behavior to happen.

Make symlink: sudo ln -s /home/alex/repos /repos
Open the /repos/simpleTest in VS Code
Have this simple launch.json that should repro your behavior:

{
	"version": "0.2.0",
	"configurations": [
		{
			"name": "Launch test",
			"request": "launch",
			"type": "node",
			"cwd": "${workspaceFolder}",
			"program": "${workspaceFolder}/${relativeFile}"
		}
	]
}

Have a /repos/simpleTest/test.js:

console.log('hello!');

Run launch.
Output:

/usr/bin/node --inspect-brk=8654 /repos/simpleTest/test.js
Debugger listening on ws://<IP_ADDRESS>:8654/5bb3265b-40a1-4406-8cde-e855bafc2da2
For help, see: https://nodejs.org/en/docs/inspector
Debugger attached.
hello!

If you use my simple repro do you still see the issue?

@alexr00 I will test this out tonight and get back to you


add filter support for csv-export endpoints

Codecov Report

Merging #464 (b250eaa) into main (2827ec2) will decrease coverage by 7.00%.
The diff coverage is 55.86%.

@@            Coverage Diff             @@
##             main     #464      +/-   ##
==========================================
- Coverage   94.78%   87.77%   -7.01%
==========================================
  Files          12       12
  Lines         824      998     +174
==========================================
+ Hits          781      876      +95
- Misses         43      122      +79

Impacted Files
Coverage Δ

be/osoc/common/models.py
100.00% <ø> (ø)

be/osoc/common/utils.py
68.88% <30.00%> (-31.12%)
:arrow_down:

be/osoc/common/filters.py
73.62% <34.28%> (-24.65%)
:arrow_down:

be/osoc/common/views.py
90.94% <40.00%> (-7.10%)
:arrow_down:

be/osoc/common/serializers.py
89.78% <76.40%> (-8.16%)
:arrow_down:

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


USHIFT-1926: Implement certificate cleanup option in microshift-cleanup-data script

The new script usage is as follows.
Stop all MicroShift services, also cleaning their data

Usage: microshift-cleanup-data.sh <--all [--keep-images] | --ovn | --cert>
   --all         Clean all MicroShift and OVN data
   --keep-images Keep container images when cleaning all data
   --ovn         Clean OVN data only
   --cert        Clean certificates only

/retest-required

/test metal-periodic-test-arm

/lgtm

Wait until the https://github.com/openshift/microshift/pull/2695/files is merged. This is necessary to fix frequent failures when restarting microshift and greenboot services.
/hold

/unhold

/test metal-periodic-test

/test microshift-metal-tests metal-periodic-test

/test microshift-metal-tests metal-periodic-test

/test metal-periodic-test

/lgtm

ARM failing due to lack of AWS resources.
/override ci/prow/microshift-metal-tests-arm

The failure is for the known network test.
/override ci/prow/microshift-metal-tests-arm
/unhold


Purge unused extern crates

r? @matklad
(rust_highfive has picked a reviewer for you, use r? to override)

:pushpin: Commit 2130c8b has been approved by matklad

@bors r+
Thanks!

:hourglass: Testing commit 2130c8b90bf0cee946318e928eeb19ce0797d70e with merge dc3c6ee60f04e9ba934ad6e63dd135a96b9631ed...

:sunny: Test successful - status-appveyor, status-travis
Approved by: matklad
Pushing dc3c6ee60f04e9ba934ad6e63dd135a96b9631ed to master...


Additional headers

Which problem is this PR solving?

Fixes #2039

Short description of the changes

Added a parameter query.additional-headers that allows for multiple headers to be added to jaeger query's api
Configurable from the CLI

--query.additional-headers "Access-Control-Allow-Origin: https://mozilla.org" --query-additional-headers "Access-Control-Expose-Headers: X-My-Custom-Header"

Configurable from yamlquery:
  additional-headers:
    - "Access-Control-Allow-Origin: https://mozilla.org"
    - "Access-Control-Expose-Headers: X-My-Custom-Header"

Added a config.StringSlice object that can be used to pass string slices through pflag/viper

Functionality confirmed with local testing.  Dropping Draft status.

restarting unit tests to get the coverage numbers (call to codecov timed out)


Create a wasm-pack npm module that installs wasm-pack

💡 Feature description
Publish a wasm-pack package to npm that runs the new wasm-pack installers, so JS users can get wasm-pack setup with just npm i -g wasm-pack.
💻 Basic example
$ npm i -g wasm-pack
...
$ wasm-pack --version # and now wasm-pack is installed!
0.5.0

i will reserve this name now!

https://www.npmjs.com/package/wasm-pack/

@robertohuertasm awesome! I think it would make sense, once you have windows support and feel the package is in a good spot, to send a PR that embeds the package somewhere like wasm-pack/npm-package in this repo.

FYI: I've found some issues with the Windows installer in other PCs so it seems Windows is not available yet (unless the user uses the git terminal or the linux sub-system).

installs Rust,

installs wasm-pack,

sets the nightly toolchain (for the moment),

adds wasm32-unknown-unknown target

installs cargo-generate for you.

Somehow I missed that the npm package you were working on does all of these things. I think we should cut back the scope of the npm package so that it doesn't duplicate work that wasm-pack already does (adding the w32-u-u target), do things that will become unnecessary in one week (force nightly rust).
Instead, I think we should just install wasm-pack and that's it.
We don't want to hide cargo and rustup et al from users, since they are core tools for rust hacking. That isn't to say that you were implying we should hide them from users, I'm just braindumping right now. I could also imagine a world where wasm-pack would install rustup users if they didn't already have it, but in keeping with the "don't hide that rustup/cargo/etc exist" motto, wasm-pack would not wrap the underlying rustup functionality or try to manage the rust toolchain versioning/install itself.
Basically, I think this npm package should be a small on-ramp to wasm-pack and that's it. All else, should we decide to implement it, should be implemented in wasm-pack itself.
Thoughts @robertohuertasm, @ashleygwilliams?

Just to make clear why I put all those things into the package, my inspiration was the windows-build-tools package. Whenever you try to write a native node module and you don't have all the underlying tooling installed (C++ build tools and Python) by just installing this package you get all that from a single source and you don't have to worry about knowing all the dependencies. Just focus on developing the native node module.
Being at work surrounded by other web developers I've found the easiest way to make them enter into the wasm world is by hiding a little bit the complexities of the dependencies. Whenever they feel they have to install Rust, install wasm-pack, change the toolchain (until this will change) and so on, they become overwhelmed. The same when you have to install the tooling to develop native node modules. Eventually I will learn that this is powered by Python, for instance, because the installer makes it pretty clear that the Python installation is taking place but I don't necessarily need to care about learning beforehand that I need it or where to get it and how to install it.
To be honest, I missed that  wasm-pack was already adding the wasm32-u-u target. But to make my point clearer, I was thinking from the perspective of a web developer completely alienated from the Rust ecosystem. What if I told you that you don't have to care about installing Rust, wasm-pack, cargo-generate and so on. What if I told you, just use this tool that you know (npm) and use it to install all the dependencies that will allow you to start playing with a wasm project. Of course, later on, you will have to deal with Rust, and eventually learn the specifics about it, but you wouldn't have felt this process as a complicated thing. It was just introduced to you by a tool you know well. It's somehow like using a template to start a project. You just want a point where you can get all you need to start coding. I agree is somehow hiding it, but soon enough it will become clear what is really powering up all this. I think it more as a gradual/gentle introduction to the tooling.
My concerns about having just a wasm-pack installer in npm is that I don't see the point. Why should I need an npm installer if I already had to install Rust and have access to cargo? What would be the difference between doing npm -i wasm-pack and cargo install wasm-pack? Indeed, I think having here the npm package will distract the users from cargo in an unnecessary way (but maybe I'm missing some point).
That being said, I completely understand other kind of motivations and I'll be happy to contribute as needed. 😃

Some of the ideas that were discussed today in the online meeting (all open to discussion):

wasm-pack installer should install Rust in case it's not already installed.
The npm package should only install wasm-pack.
Some were wondering if having several installers would lead to user's confusion vs user alternatives.

So basically the major alternatives are:

No npm package, as the wasm-pack installer will manage to install all that's needed.
The npm package will be another way to execute the wasm-pack installers (by executing the bash or powershell scripts).
In case wasm-pack doesn't install all the dependencies, extend the domain of the npm installer (that's the current approach).

▶  From my point of view, strategy 2 has a really low cost in terms of implementation and maintenance as it will be using/downloading the new wasm-pack installer scripts (thus avoiding to keep two separate installation code scripts) and at the same time it will provide more exposure of  wasm-pack to all kind of web developers that may find it more convenient to use npm instead of a raw usage of curl or powershell.

@fitzgen @ashleygwilliams What will be the approach here? What should the npm package actually do?

I think what we want to do here is to install wasm-pack as a pre-built binary. Installs will be much faster, and there will be no dependencies on Rust tooling.


AFX 1.4.7 - syntax highlighting not working for CMD/BAT files.

The following test document is rendered in AsciidocFX 1.4.7
= Test Document

== Test CMD Scripts

[source,cmd]
----
set MY_JARS=.;*.class
set CLASSPATH=%CLASSPATH%;%MY_JARS%
del *$py.class
call jython testcase_client.py --app_name="JavaTest1"
----

correctly using the Browser option as:

However when saved to HTML using "HTML / Save" the output is incorrect (syntax highlighting is not working for CMD/BAT files):

Hi @wfouche , Asciidoctor project adds highlight.js script from CDN and it has only 22 most used code highlighter. At this point, if you want to support others than 22, you should set your own highlightjs location with :highlightjsdir: attribute.


Training for Conv1D

Related #244, #200.
Investigate what it would take to be able to enable secure training with particular attention paid to models including Conv1d.  At first glance it seems that implementing the backward pass for each requisite op in tfe would be sufficient, but there will likely be some unknowns that we discover along the way.
List of ops forthcoming after completion of #200.

Any updates @jvmancuso?


API: add participation viewset

@jeriox should we keep the users/1/participations endpoint or deprecate it and include user filtering in this one? It's not trivial, as this new ViewSet works on abstract participations and we'd need a few lines to filter for the Local user participations if a user id to filter for is given.
Also, mind that I narrowed the permission check. You now need to be able to view users and the event to see the participations. I'd be fine with only users too, as I find that more important in this case (includes email and stuff). Maybe we should talk about the permission model at some point. For example we could include a reduced view that only shows the VIEW_PUBLIC scoped information like in the web interface (just display name and qualifications, no email).

@jeriox should we keep the users/1/participations endpoint or deprecate it and include user filtering in this one? It's not trivial, as this new ViewSet works on abstract participations and we'd need a few lines to filter for the Local user participations if a user id to filter for is given.

I think we should keep the other one. The usecase is quite different and it feels weird to include users here as it deals with AbstractParticipations

Also, mind that I narrowed the permission check. You now need to be able to view users and the event to see the participations. I'd be fine with only users too, as I find that more important in this case (includes email and stuff). Maybe we should talk about the permission model at some point. For example we could include a reduced view that only shows the VIEW_PUBLIC scoped information like in the web interface (just display name and qualifications, no email).

Both sounds good.
I liked the narrowed-down version for VIEW_PUBLIC

Also, mind that I narrowed the permission check. You now need to be able to view users and the event to see the participations. I'd be fine with only users too, as I find that more important in this case (includes email and stuff). Maybe we should talk about the permission model at some point. For example we could include a reduced view that only shows the VIEW_PUBLIC scoped information like in the web interface (just display name and qualifications, no email).

Both sounds good. I liked the narrowed-down version for VIEW_PUBLIC

coverage: 85.256% (-0.001%) from 85.257%
when pulling ca72d816a7eb5015f9d5f0faebd7c9d02bf5923c on api-filterable-participations
into 79aeff65f26c4a32e0600f37bdc0298d878d90c5 on main.


Fix: visual bug in homepage with triplet section

Summary
There is a visual defect with the triplet section on our home page when its smaller than a certain size
Reproduction Steps

go to https://res-gen.netlify.app/#/
reduce window width to below 400px
scroll down to triplet section
observe text is hidden below next section

Screenshots

Expected Outcome

the text should extend the size of its section (the beige area) and not flow under the next section

fixed by https://github.com/starter-code/res-gen/pull/59

fixed by https://github.com/starter-code/res-gen/pull/59


Crashes while trying to make world

Minecraft Version
1.20.1
Describe the Bug
https://github.com/Creators-of-Create/Create/issues/6567
https://mclo.gs/b0fRRYJ
After removing Create Central Kitchen, can create the world normally.

apparently, it also just worked after i removed a mod called smidgeon o' bliss, which is just a thingpack mod requiring json things. I thought that was the issue?
maybe these 2 mods are conflicting in recipes?

I also have this mod. Maybe you should give some feedback over there too?


Use Unicode 10 Emojis

http://blog.emojipedia.org/whats-new-in-unicode-10/

Any news here, @johannhof?

BTW, as this seems to be quite unmaintained right now, I've created my own add-on that has up-to-date emojis (actually Emoji 10, Emoji 11 is hopefully on the way), a good search feature and can actually input emojis into input fields you currently have selected.
Find it here:
https://addons.mozilla.org/firefox/addon/awesome-emoji-picker/?src=external-github


Cannot build even.

environment
macos 10.12.6
➜  ~ node -v
v12.4.0
➜  ~ npm -v
6.9.0
angular 8
carbon latest
I just follow the official guide do the flows
$ npx @angular/cli new my-project --style=scss
$ cd my-project
$ npm i --save carbon-components-angular carbon-components
then in src/styles.scss:
@import "~carbon-components/scss/globals/scss/styles.scss";
then  I run ng serve --port 3000 in local

what should I do, I cannot google anything to solve this.
hope someone would help me.
UPDATE:
I also try this , but doesn't work too.

check that you have node-sass (listed as devDependancy in package.json) installed.
npm install node-sass

@Saliva520319 Carbon Angular Starter has everything set up (with ng cli) for a carbon angular project.
It's a recommended way to start with carbon-angular-components. Try it out ;)

This is an issue with carbon-components. At the moment they're just supporting node-sass, we're pushing for them to support the newer dart-sass compiler (what angular switched to).

node-sass

Solve my problem! Thanks!

This is an issue with carbon-components. At the moment they're just supporting node-sass, we're pushing for them to support the newer dart-sass compiler (what angular switched to).

I'll try~

@Saliva520319 Carbon Angular Starter has everything set up (with ng cli) for a carbon angular project.
It's a recommended way to start with carbon-angular-components. Try it out ;)

I'll try~


NixOS base images seem awfully big

The minimal 64-bit 14.12 image on nixos.org is 315 MB. Intuitively (and perhaps naively), it doesn't feel like the minimal one needs to be much larger than the bootstrap-tools.tar.gz (24 MB) that underlies nixpkgs, along with the contents of nixpkgs itself (a few MB) and the nix toolset. Any subsequent needs can be retrieved from the binary cache, I think?
Is there a reason the image is so much larger than that? Is there a breakdown of what eats up most of the space?
I was mostly just taken aback by the size of the Amazon AMIs and Vagrant boxes for NixOS, since it feels like lightweight provisioning of new boxes can be yet another place where NixOS really shines.

List of packages that take the most space: http://i.imgur.com/hLyl7W5.png

Thanks! It looks like around 115M of that linux package is drivers. I was thinking that NixOS would boot to a minimal state (with almost no interesting drivers) and then nixos-switch itself to a reasonably usable state. Not sure how feasible/idealistic that is.
Given an assumed reachable binary cache, it seems like many of those other packages are not essential. Python, gcc, and so on could easily be omitted and retrieved separately when something needed them, right?

Python is required to generate boot entries on UEFI/gummiboot machines:
https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/system/boot/loader/gummiboot/gummiboot-builder.py
--
Jascha Geerds
<EMAIL_ADDRESS>

Yeah, I have similar issues while woking on service abstraction layer
docker. We should start doing something on reducing the size of the
packages with multiple outputs.
Nixos is currently not best tunned for small space usage. The real question
might be what we, as developers/maintainers, could do to reduce the size of
the packages?
On Jan 4, 2015 10:39 PM, "Jascha Geerds"<EMAIL_ADDRESS>wrote:

Python is required to generate boot entries on UEFI/gummiboot machines:
https://github.com/NixOS/nixpkgs/blob/master/nixos/modules/system/boot/loader/gummiboot/gummiboot-builder.py
--
Jascha Geerds
<EMAIL_ADDRESS>—
Reply to this email directly or view it on GitHub
https://github.com/NixOS/nixpkgs/issues/5581#issuecomment-68650319.

There are currently almost no optimizations (Besides trying to keep the package set minimal).
What you can disable:

all hardware switch
vim
spidermonkey (probably compiled for javascript support in elinks or w3m)
python (non-uefi)

You could go one step further and remove all $out/include, $out/share directories and see if they are needed at all.
See nixos/modules/profiles/base.nix

Yeah, multiple outputs will reduce closure sizes a lot. For instance, it will allow us to get rid of most of GCC in the ISO.
In the meantime, I notice that the linux-dev output is present in the ISO, which should not be the case. Getting rid of it would save 38 MB.
+1 on removing vim, it doesn't sound like something that should be included in a minimal CD. We have nano after all :-)

For reference, this-year multiple-output status & progress: https://gist.github.com/vcunat/6139ee17ae1dec684fd3#comment-1318994. I expect to go back to it this month and hopefully integrate it into master in February.

We have a separate PR for multiple-outputs now, this can be closed (until we have more ideas what to do)

Ouch. Somehow, despite multiple output support, this appears to be getting worse... :grimacing:

14.12 - 315 MB minimal image
...
20.09 - 571 MB minimal image

This issue did not age well 😅


rebot --merge ouput looks to be confusing

Let's say we have a suite with 3 test cases, on a 1st run last 2 fail, on 2nd run last one fails, on 3rd run all pass.
It is a bit confusing that A.C_1 (failed twice, passed once) test has 4 statuses:
Re-executed test has been merged.
New status: PASS
New message:
Old status: FAIL
Old message: Re-executed test has been merged.
New status: FAIL
New message: AssertionError
Old status: FAIL
Old message: AssertionError

I use rebot --merge output_1.xml output_2.xml output_3.xml to merge 3 outputs.
Refer to logs: logs.zip

How'd you want it to look?

I would say that I expect it to be something like that:
Re-executed test has been merged.
New status: PASS
New message:
Old status: FAIL
Old message: AssertionError
Old status: FAIL
Old message: AssertionError

OK, I think I got it now. It seems output 1 is first merged with output 2 and that result is then merged with output 3. Possibly all merges could be done in one go and then the error message could be enhanced as well. I'm afraid implementing it would require quite big changes to the merge logic, though.
Although I can see this could be enhanced, I don't consider the current message that bad. Due to all other higher priority issues, I doubt I have time to look at this in the foreseeable future. Unless someone else is interested to look at this, or is willing to pay specially for fixing this, I will close this issue.

The problem is just the confusing message right? In that case this could also be fixed without changes to the result merging logic.
This  could be done by updating just the message merging logic i.e. if the old message contains that "Re-executed test has been merged" string then modify the old message accordingly.
This should be quite simple - the files and methods to change would be more or less the same as in PR #2562  (where the message format was changed to HTML)

Yeah, I guess that would work as well. I'd don't like the idea of making guesses based on earlier messages that much, but probably it would be possible to add such markers when merging the first messages that subsequent merges could reliably detect that.
If this is done, it would also change the behavior in this case:
rebot --output merge1.xml --merge orig1.xml orig2.xml
rebot --output merge2.xml --merge merge1.xml orig3.xml

I guess that could be considered a feature rather than a bug.

Do you @tysonite still consider this a problem? Would enhancing the message be enough? That ought to be pretty easy to implement.

I think it would be more user-friendly, if messages reflect more correctly the results in HTML log. But this is something really related to user experience rather than to issues. Even if not fixed, this could be explained to someone who looks into HTML logs.

Do you have concrete ideas what to do to this issue? Changing the message would be easy, easily done before RF 3.2 final, anything else much more complicated.

I suppose merged messages shall look like below for the rebot --merge output_1.xml output_2.xml output_3.xml case:
Re-executed test has been merged.
New status: PASS
New message:

Old status: FAIL
Old message: AssertionError

Old status: FAIL
Old message: AssertionError

Would it be possible with just message changing?

I did some experiments with the file you mentioned earlier:
diff --git a/src/robot/result/merger.py b/src/robot/result/merger.py
index 8f1a46852..8127a2ced 100644
--- a/src/robot/result/merger.py
+++ b/src/robot/result/merger.py
@@ -87,13 +87,21 @@ class Merger(SuiteVisitor):
             return html_escape(message)

     def _create_merge_message(self, new, old):
-        return ''.join([
-            '*HTML* Re-executed test has been merged.
',
-            'New status: %s
' % self._format_status(new.status),
-            'New message: %s
' % self._html_escape(new.message),
-            'Old status: %s
' % self._format_status(old.status),
-            'Old message: %s' % self._html_escape(old.message)
-        ])
+        if 'Re-executed test has been merged' in old.message:
+            return ''.join([
+                '*HTML* Re-executed test has been merged.
',
+                'New status: %s
' % self._format_status(new.status),
+                'New message: %s
' % self._html_escape(new.message),
+                '%s' % self._html_escape(old.message.replace('New', 'Old').replace('Re-executed test has been merged.
', ''))
+           ])
+        else:
+            return ''.join([
+                '*HTML* Re-executed test has been merged.
',
+                'New status: %s
' % self._format_status(new.status),
+                'New message: %s
' % self._html_escape(new.message),
+                'Old status: %s
' % self._format_status(old.status),
+                'Old message: %s' % self._html_escape(old.message)
+            ])

     def _format_status(self, status):
         return '%s' % (status.lower(), status)

It looks like that this patch does what you mean.

That message looks good to me and I guess this would be an ok approach in general, but just looking that the message contains something and especially unconditionally replacing "New" with "Old" are both pretty fragile. We definitely don't want to change someone message containing e.g. "New York" to "Old York". Using more explicit markers would be a lot safer. Perhaps something like this:

When creating the first merge message, start it with something like *HTML* Re-executed tests have been merged.
 (somehow 'tests have' sounds better to my ear than 'test has')
Use something like New status: and Old message: instead of literal strings.
When checking is the message already a merge message, check does it start with *HTML* ....
 i.e. the exact text we added ourselves. If it does, split the old header away by using something like message = old.message.split('
', 1)[1].
When creating the new message, replace  with . It's very unlikely someone has had this in their real message.
For bonus points, don't include old or new messages that are empty in the message.

There's quite a lot of different cases here and I would expect it to be best to test this thoroughly with unit tests. Just needed to create a helper method accepting old and new messages that would be easy to test on that level. The old acceptance tests should obviously be updated and possibly some new added as well.
If you think the above make sense, please create a PR and I promise to look at it. I'm just about to start my winter holiday, but latest after that.

Thanks for suggestions and guidelines, I've tried to encaplusate all of them. BTW, that's was funny to do such minor change. I've submited PR with proposed changes, please, have a look. I am sure that I have not modified unit tests as you wished as I am not completely sure how to do that properly - probably, new test file has to be created as well as Merger API has to be modified for better testability. But I am not certain how you want it to look like. Please, suggest.

I had totally forgotten about this issue. Should have added it to RF 3.2 scope. On a quick look the PR looks so good that I guess this can still be included.

This was implemented in PR #3476 by @tysonite and I refactored the code a little in 16762151c75238f0743467fdc69ca73d927a22a7.


"THUcnews news headline text classification model based on TextCNN''

THUcnews news headline text classification model based on TextCNN

 Thank you for your submission! We really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Uncaught TypeError: Cannot use 'in' operator to search for 'text' in undefined

Uncaught TypeError: Cannot use 'in' operator to search for 'text' in undefined
    at get title [as title] (chatModel.js:288:36)
    at ChatEditorInput.getName (chatEditorInput.js:63:30)
    at OpenEditorsAccessibilityProvider.getAriaLabel (openEditorsView.js:582:42)
    at AccessibiltyRenderer.renderElement (listWidget.js:933:58)
    at PipelineRenderer.renderElement (listWidget.js:907:26)
    at ListView.insertItemInDOM (listView.js:624:23)
    at ListView._splice (listView.js:418:26)
    at ListView.splice (listView.js:336:29)
    at splice.js:14:45
    at Array.forEach (<anonymous>)
    at CombinedSpliceable.splice (splice.js:14:30)
    at listWidget.js:1156:67
    at EventBufferer.bufferEvents (event.js:1235:23)
    at WorkbenchList.splice (listWidget.js:1156:32)
    at RunOnceScheduler.runner (openEditorsView.js:143:27)
    at RunOnceScheduler.doRun (async.js:788:26)
    at RunOnceScheduler.onTimeout (async.js:784:22)

Happens when opening a chat as editor when open editors view is visible.

Thanks!


Add preface to airlock docs

Resolves #2813
Adds preface to the researcher import/export data docs that makes it clear it pertains to Airlock and that it is intended for the ad-hoc use case as per @marrobi's request.

/test-force-approve


Track the number of open strings for nested string interpolation

Addresses bugs with nested string interpolation (#447, #441, #368).
Nested string interpolation produces nested STRING_START and STRING_END tokens,
for example "#{"#{a}"}bc" gets tokenized to
[STRING_START (] [( (] [STRING_START (] [STRING ""] [+ +] [( (] [IDENTIFIER a] [) )] [STRING_END )] [) )] [+ +] [STRING "bc"] [STRING_END )]

Setting @isInterpolation to false when the first STRING_END token is encountered is too early, as only the inner string interpolation has ended at this point.
To correct this, this PR tracks the number of started but not yet ended strings.
As long as there are unmatched STRING_START tokens we are still inside of an interpolation.

:+1:

Before I consider merging, can you show me any example of good (clear, easy to read) code that needs nested interpolation? This still seems like either a contrived problem, or a method of justifying bad code.

I consider showing incorrect and misleading warnings a bug, whether or not nested string interpolation is considered good style.
If you like I'll add a rule that warns about nested string interpolation.

:+1: I agree, and that's a good idea. Please set it to warn by default.

@AsaAyers Added the rule no_nested_string_interpolation!

Thanks :)


Why not mount /var/run/docker.sock as a readonly volume?

I do not think a log collection service should ever need write permission on Docker Daemon socket. I feel uncomfortable to give logspout write permission to that socket for security concern.
https://github.com/gliderlabs/logspout/blob/f62d0c473a672aa5048335d7602984944d33bce6/README.md#route-all-container-output-to-remote-syslog
Can I mount /var/run/docker.sock as a readonly volume here?

It's a socket file, you can't send commands into it unless you can write to it.
I would do the following:
• user: 65534
• groups: 999
• read_only: True
So the entire container is read-only except /var/run/docker.sock and the container run as the user nobody the docker group so it can write to the mounted socket file

@rhuddleston What specific commands does logspout need to send into Docker Daemon?

https://docs.docker.com/engine/api/v1.24/
"GET /containers/(id or name)/logs" etc. You can't do anything with the socketfile unless you can send it commands which is considered a write

We should close this issue as it makes very little sense. If you want to protect the docker api (since it currently has no support for ACLs) then i suggest you expose your docker api through tcp, and put a reverse proxy in front which can deny any http requests you want. This project has nothing to do with this "issue"


Don't require a name or version in "project" manifests.

In resolving https://devdiv.visualstudio.com/DevDiv/_workitems/edit/1494960 "[vcpkg ce] vcpkg-ce does not find vcpkg.json to find vcpkg-configuration.json" I ran into a problem for existing vcpkg artifacts-only customers, where today they can name artifact dependencies without needing to supply a name or version. I want to be able to provide a reasonable "how to fix it" message for these customers and it seems reasonable to be able to declare dependencies without having a name or version. After some discussion with @ras0219-msft and @vicroms , the requirement for a name and version seems to be a historical artifact of using the same code to parse both port manifests and consumer/project manifests.
include/vcpkg/sourceparagraph.h:
Rename parse_manifest_object to parse_port_manifest_object and add parse_project_manifest_object.
include/vcpkg/versiondeserializers.h:
Declare visit_optional_schemed_deserializer (with static removed in the versiondeserializers.cpp)
include/vcpkg/versions.h:
Add VersionScheme::Missing for the case that it isn't provided.
cmakevars.cpp:
Use "_manifest_" as the "port" name when a name wasn't supplied for purposes of vcpkg_get_dep_info.
add.ps1:
Add a new test of add port that uses an input manifest with no name or version information.
manifests.ps1:
Remove name and version from the prototype manifest. Note that some of the tests still use a manifest with a name; in particular the "self reference" ones so we still have coverage of that.
format-manifest.ps1:
Add project manifest examples in addition to the previous "reserialize all ports" test.

Rename parse_manifest_object to parse_port_manifest_object and add parse_project_manifest_object.

Then we can also warn when a user is using overwrites or baseline in a ports manifest.

As the designer of this feature, I don't personally like this. The design of manifests was always such that one would eventually be able to use a simple repository of code as a dependency, and this breaks that feature, imo.

Yeah, we absolutely should acknowledge that this weakens the "vcpkg.json is what you publish" story and we need to make sure we are OK with that.
I think for things that are libraries, anything that we would normally package up as a port, we still want documentation etc. to encourage that. If we're integrated into a situation where we know it's a library, e.g. a library vcxproj, it probably makes sense to emit warnings for that, and similar. We also should be making sure vcpkg new is emitting a name and version to encourage supplying them.
However, we also have acknowledged:

"applications" which we explicitly never expect to be turned into ports and consider only as downstream customers, and
monorepo scenarios which need to share a single vcpkg.json to preserve correct link compatibility with features but which would need to be more than one port in practice on publish1

and for these what name and/or version one is to use is unclear, and forcing someone to provide a nonsense name doesn't seem to further "simple repository of code" for libraries.

I will point out that both Cargo and npm both require a package name and a version.

I can't speak to cargo, but my limited understanding from NPM world is that there all uses are nominally creation of NPM packages: when you distribute your application it's morally the same as the actual NPM package you would make if you were to publish the thing. That means that they assume everything must be packagable and thus everything must obey packaging rules. I don't think we have that assumption, particularly for folks using artifacts only.

However, I'm no longer on the team, so my opinion is obviously less important. Up to y'all.

I certainly value your opinion on this topic; it's why I pinged you out of band for comment. (And am going to do further checking to make sure the team overall have considered this opinion)
1 Also note that this problem is less bad for ECMAscript since they don't have the link compat problem and different versions/features of ECMAscript packages can exist without stomping on each other as much but https://rushjs.io/pages/advanced/npm_doppelgangers/ are still a problem

It would be great to have a test covering overlay ports / filesystem registries.
We should specifically make sure that failing to specify a name in an overlay is loudly diagnosed.

It would be great to have a test covering overlay ports / filesystem registries.

I added one for overlays.
Even looking at docs I don't know how to form a filesystem registry correctly to write a test for that though.

We should specifically make sure that failing to specify a name in an overlay is loudly diagnosed.

(insert rant that I still think appending this message about updating is pointless)

However, we also have acknowledged:
* "applications" which we explicitly never expect to be turned into ports and consider only as downstream customers, and

* monorepo scenarios which need to share a single vcpkg.json to preserve correct link compatibility with features but which would need to be more than one port in practice on publish1

and for these what name and/or version one is to use is unclear, and forcing someone to provide a nonsense name doesn't seem to further "simple repository of code" for libraries.

Our products repo have vcpkg.json with name:"name of repo" version: "0.0.0" because they won't be package with vcpkg ever.
So removing those lines is perfect 👍
I guess most of the userbase of vcpkg will be in that same usecase because creating a package still require lots of investment.
We have private vcpkg registry with library using name and version and that's fair to require it, even if it's painful for us to manage version file of our product=>update version in vcpkg.json of repo to deploy => update version in registry portfile => update version in baseline and try to make them similar to understand version fields in debugging product/CI.


Update copy image logic to match create image.

Image "guestOsFeatures" should behave the same during image copy and creation.
Description

Unify "guestOsFeatures" logic in image copy and create.
Moved image copy next to image create because they are highly related.

Status
done, ready for review
Checklist (tick everything that applies)

[x] Code linting (required, can be done after the PR checks)
[x] Documentation
[x] Tests
[ ] ICLA (required for bigger changes)

/cc @supertom

cc @tonybaloney

Friendly ping?

Sorry for the delay.  Looks fine and tests/lint check pass.
We've now duplicated that guest_os_feature check in both the create and copy methods - what do you think about creating a helper function to reduce the duplication (any chance of any other API exposing this somehow)?  Also, are there more guest_os_features coming?  Should we make a static list?

I moved the functions together for that purpose and considered writing a helper function. I decided against it for two reasons.

I think the logic for the particular feature is limited to those two functions and will not need to be used elsewhere.
The two functions where the logic is duplicated (image create and copy) are serving the same purpose and should be combined. I didn't want to deal with combining the functions for this change which is why I left the logic duplicated for now.

We will want to add more guest_os_features in the near future, so it should be a static list. Any suggestions for where I should put that? Define a global variable in the file?

Updated to make the feature a static list.

Thanks for adding the list of OS features.  I agree, the functions should be combined, but we can deal with that later on.  LGTM.

Any concerns about merging?


PruneCluster and React.js

Hi.
Do you plan React.js version?
Or maybe you know React Component for PruneCluster...
Thank you.

Hi,
No, no plan for react, and I don't know a react component for PruneCluster.

Thank you (-:

If anybody stumbles upon this issue:
You can use it in react without having a component. See: https://stackoverflow.com/questions/34286899/prunecluster-and-react-js
[This should stay closed.]

@thomasrosen how does
var P = require('../Lib/PruneCluster');
this.clusterGroup = new P.PruneClusterForLeaflet();

show you how to use it in react haha?


Fixed minor typo in GetConnect document

Fixed a minor typo in GetConnect documentation under Custom configuration section
Pre-launch Checklist

[x] I updated/added relevant documentation (doc comments with ///).
[x] I added new tests to check the change I am making or feature I am adding, or @jonataslaw said the PR is test-exempt.
[x] All existing and new tests are passing.

Thanks for your contribution!
LGTM


Serializer exception doesn't list offending property names

https://github.com/confluentinc/confluent-kafka-dotnet/blob/de0fe579c0b5f830f6cfe36b5a48d5fe0d7caf5e/src/Confluent.SchemaRegistry.Serdes.Json/JsonSerializer.cs#L147
This code doesn't print property names, it prints the name of the serializer class because the closing parenthesis is misplaced.
This is what it should be:
validationResult.Select(r => r.Path)) + "]");

thanks @mdomashchenko - feel free to open a PR (I'll merge it right away).


Pointer cast is more likely correct than passing back array by value.

Since the array is bigger than 32-bits and the code should be endian agnostic otherwise, I'd suggest passing a pointer would be better since that's what the function signature indicates you're trying to do anyway.  Also a cast is necessary to make the pointer type compatible.
Signed-off-by: Samuel D. Crow<EMAIL_ADDRESS>

Thank you very much!


Line 28

Shouldn’t @participant be @quiz_taker?  Also, this line of code seems to assume that only one person is on the team.  I think that’s the team that took the quiz, but is it perhaps the team whose quiz was taken?  This is not clear.

Added comment to explain the variable name.

Closed with commit 9f7a4fb945264f02b0b5afe8a131269c6bea2a17


changed hmetrics() to vmetrics().

vmtx.rs
changed hmetrics() to vmetrics().

Oops, good catch. Thanks!


This addon does not work if used within other addons

It throws error "property 'ember-bootstrap' is not found"
See here the generic problem and solution
ember-cli/ember-cli#3718
It would be nice to have it fixed :)

Fixed in v0.6.2