Functional Tests GPU: automation refresh

Added support for ubuntu 18.04 for CUDA drivers, and made obsolete 14.04 according to supported distro versions.
Removed hardcoded use of distro version 16.04/14.04.
Removing old ubuntu mappings, not used in any tests, and versions were very old, obsolete.
Renamed test cases to a simpler format.

To do:

Finish RedHat/CentOS implementation.
Include Ju's fixes from PR #757

Sample run:
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] ARM Image Under Test  : Canonical : UbuntuServer : 18.04-DAILY-LTS : latest
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] Total Test Cases      : 1 (1 Passed, 0 Failed, 0 Aborted, 0 Skipped)
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] Total Time (dd:hh:mm) : 0:0:7
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2]
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2]    ID TestCaseName                                                                TestResult TestDuration(in minutes)
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] ---------------------------------------------------------------------------------------------------------------------
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2]     1 NVIDIA-CUDA-DRIVER-NC6-VM                                                         PASS                 5.32
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] 	lsvmbus: Expected "PCI Express pass-through" count: 1, count inside the VM: 1 : PASS
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] 	lspci: Expected "3D controller: NVIDIA Corporation" count: 1, found inside the VM: 1 : PASS
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] 	lshw: Expected Display adapters: 1, total adapters found in VM: 1 : PASS
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] 	nvidia-smi: Expected GPU count: 1, found inside the VM: 1 : PASS

[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] ARM Image Under Test  : Canonical : UbuntuServer : 16.04-DAILY-LTS : latest
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] Total Test Cases      : 1 (1 Passed, 0 Failed, 0 Aborted, 0 Skipped)
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] Total Time (dd:hh:mm) : 0:0:12
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2]
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2]    ID TestCaseName                                                                TestResult TestDuration(in minutes)
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] ---------------------------------------------------------------------------------------------------------------------
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2]     1 NVIDIA-CUDA-DRIVER-NC6-VM                                                         PASS                10.19
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] 	lsvmbus: Expected "PCI Express pass-through" count: 1, count inside the VM: 1 : PASS
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] 	lspci: Expected "3D controller: NVIDIA Corporation" count: 1, found inside the VM: 1 : PASS
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] 	lshw: Expected Display adapters: 1, total adapters found in VM: 1 : PASS
[Azure NVIDIA-CUDA-DRIVER-NC6-VM westus2] 	nvidia-smi: Expected GPU count: 1, found inside the VM: 1 : PASS

Known failure in azure-kernel
[Azure NVIDIA-CUDA-DRIVER-NC24-VM westus2] ARM Image Under Test  : Canonical : UbuntuServer : 18.04-DAILY-LTS : latest
[Azure NVIDIA-CUDA-DRIVER-NC24-VM westus2] Total Test Cases      : 1 (0 Passed, 1 Failed, 0 Aborted, 0 Skipped)
[Azure NVIDIA-CUDA-DRIVER-NC24-VM westus2] Total Time (dd:hh:mm) : 0:0:8
[Azure NVIDIA-CUDA-DRIVER-NC24-VM westus2]
[Azure NVIDIA-CUDA-DRIVER-NC24-VM westus2]    ID TestCaseName                                                                TestResult TestDuration(in minutes)
[Azure NVIDIA-CUDA-DRIVER-NC24-VM westus2] ---------------------------------------------------------------------------------------------------------------------
[Azure NVIDIA-CUDA-DRIVER-NC24-VM westus2]     1 NVIDIA-CUDA-DRIVER-NC24-VM                                                        FAIL                 6.06
[Azure NVIDIA-CUDA-DRIVER-NC24-VM westus2] 	lsvmbus: Expected "PCI Express pass-through" count: 4, count inside the VM: 4 : PASS
[Azure NVIDIA-CUDA-DRIVER-NC24-VM westus2] 	lspci: Expected "3D controller: NVIDIA Corporation" count: 4, found inside the VM: 1 : FAIL
[Azure NVIDIA-CUDA-DRIVER-NC24-VM westus2] 	lshw: Expected Display adapters: 4, total adapters found in VM: 1 : FAIL
[Azure NVIDIA-CUDA-DRIVER-NC24-VM westus2] 	nvidia-smi: Expected GPU count: 4, found inside the VM: 1 : FAIL

@juhlee-microsoft please review the latest code in PR.
All changes have been made, plus a few more additions - like initial nvidia driver check etc.
Test results updated in main description.
Still left to do is redhat/centos to verify issue and update code.

@juhlee-microsoft please check and merge this.
Will send another PR to install LIS RPMs for centos/redhat separately, the current support is functional for centos/redhat as it is, without lis rpm's, so that would be a minor addition.
Adrian Suhov also used this PR code to validate latest azure kernels and it passed.


Ports: Double clicking should trigger rename widget

Double clicking a Port column cell should trigger the Set Port Label action.

Duplicate of https://github.com/microsoft/vscode/issues/117573


feat(ui): revamp user profile page

Describe your changes:

I worked on revamping user profile page

Type of change:

[ ] Bug fix
[x] Improvement
[ ] New feature
[ ] Breaking change (fix or feature that would cause existing functionality to not work as expected)
[ ] Documentation

Checklist:

[x] I have read the CONTRIBUTING document.
[ ] My PR title is Fixes <issue-number>: <short explanation>
[ ] I have commented on my code, particularly in hard-to-understand areas.
[ ] For JSON Schema changes: I updated the migration scripts or explained why it is not needed.

code smell is showing in the permission check so we can avoid this.

@Ashish8689 Can you check 2 code smells?

@Ashish8689 Can you check 2 code smells?

here it is https://github.com/open-metadata/OpenMetadata/pull/13744#issuecomment-1786658579


#3017 fix syncing with a forked peer

addresses the reported failure by changing how the synchronizer handles block errors, getting rid of the "second try" logic in favor of a "one and done" approach instead. If one rejected block is received from a peer, that connection is closed and an updated curren state message is sent to all peers again.

Actually I think a better solution for finding the next chunk provider is to send pu another round of handshake messages and pick the first responder, since that will be the once with the least latency.


A free file hosting site

If you cannot go through the steps below, I can provide you with the .h5 files. However, I honestly cannot think of a stable way to transport three files that sum up to ~40GB, so you'll have to provide me with a good way to do so.

I found a free file hosting site, maybe you can upload the .h5 file here.

Thank you, however there seems to be many mentions of this site being a bit suspicious, so I am withholding for now.

try this?
where ppl host the huge models for AI art
https://huggingface.co/

Or host the dataset on huggingface kaggle or cut it to 2gb files and upload through github release

Sorry for the late reply.
As you might be able to infer, our dataset contains material copyrighted by many, many parties. While the big file sizes are one reason why I am reluctant to host the files, another would be that I have no idea if redistributing the dataset will go against Korean or American law (both, since I am a dual citizen). And as far as I know, the fair use clause isn't really a thing in Korea, either.
Alternatively, hosting a demo (not the dataset) in Huggingface seems like a very possible thing to do, and I will definitely look into it when I have more time.
Thus, I will be leaving this issue closed. Thank you for your inputs!


ARROW-12086: [C++] Fix environment variables for bzip2, utf8proc URLs

This should fix offline builds after having run ./thirdparty/download_dependencies.sh.

Should/can we add a crossbow job for this--something that runs the download script, blocks some connection/ports, and tests that the build succeeds?

I wonder if that can be done reliably. Especially as the job needs to communicate with the CI provider?

I made ARROW-12095 about adding a nightly job for this.


from_vscode: invalid value (nil) at index 1 in table for 'concat'

Updating to latest version I now have this error:

Here is my simple config (based off stripped down version of the example) that used to work a few commits ago:
    local luasnip = require('luasnip')

    luasnip.config.set_config({
        history = true,
        updateevents = 'TextChanged,TextChangedI',
    })

    require('luasnip/loaders/from_vscode').load()

I've tried playing with opts and add an include but I think the issue is with handling the path. Sadly I can't help much more than this bug report as my lua and neovim is still pretty limited.

Oh no, @leiserfg could you also take a look?

Thanks for reporting this so quickly

I'm on it.

So far I've got this, to actually get the split paths.
-- list of paths to crawl for loading (could be a table or a comma-separated-list)
-- opts.paths = (
-- 	type(opts.paths) == "table" and values(opts.paths)
-- 	or (opts.paths or vim.o.runtimepath):gmatch("([^,]+)")
-- )
if type(opts.paths) == "table" then
	opts.paths = values(opts.paths)
else
	local split_paths = {}
	for path in (opts.paths or vim.o.runtimepath):gmatch("([^,]+)") do
		table.insert(split_paths, path)
	end
	opts.paths = split_paths
end

Though we could also just use vim.split for that :sweat_smile:

True, will you do it?

That's only part of the issue, after that I still get a nil from somewhere.

Then I will do it.

TY!

I see, the function to optain the absoluted paths in nvim gives nil if the path does not exists

Thanks for delivering the fix so quickly! :tada:
Feel free to close this issue.


azcopy sync to storage account that doesn’t exists returns no error and keep retrying until it’s timeout.

Which version of the AzCopy was used?
version 10.13.0
Which platform are you using? (ex: Windows, Mac, Linux)
Windows
What command did you run?
azcopy sync src-path https://storageaccount.blob.core.windows.net/container
What problem was encountered?
azcopy sync doesn’t fail with error but keep retrying even if the storage account doesn’t exists.
How can we reproduce the problem in the simplest way?
To run this command to a storage account that doesn't exists.
Have you found a mitigation/solution?
No.
Description
I’d like to ask you if the following azcopy’s behavior is designed.
azcopy sync doesn’t fail and keep retrying even if the storage account doesn’t exists.
If it fails when the client get the first “dial tcp: lookup storageaccountthatdoesntexists.blob.core.windows.net: no such host” and write error messages on the console, I think it’s more user friendly.
If it's a designed behavior, I’d l like you to think of fix this behavior in the future updates if possible.
The process keep retrying until time is up.
PS C:\Users\takebi> azcopy login
PS C:\Users\takebi> azcopy sync <src-path> https://storageaccountthatdoesntexists/container
INFO: Authenticating to destination using Azure AD
INFO: Any empty folders will not be processed, because source and/or destination doesn't have full folder support

Job *** has started
Log file is located at: C:\Users\username\.azcopy\****.log

1 Files Scanned at Source, 0 Files Scanned at Destination

In the azcopy’s log, the following logs are recorded.
2022/02/25 00:49:51 ==> REQUEST/RESPONSE (Try=1/68.308ms, OpTime=68.308ms) -- REQUEST ERROR
   HEAD https://storageaccountthatdoesntexists.blob.core.windows.net/container?timeout=901
   Authorization: REDACTED
   User-Agent: [AzCopy/10.13.0 Azure-Storage/0.14 (go1.16; Windows_NT)]
   X-Ms-Client-Request-Id: [****]
   X-Ms-Version: [2019-12-12]
   --------------------------------------------------------------------------------
   ERROR:
-> github.com/Azure/azure-pipeline-go/pipeline.NewError, /home/vsts/go/pkg/mod/github.com/!azure/azure-pipeline-go@v0.2.3/pipeline/error.go:157
HTTP request failed

Head "https://storageaccountthatdoesntexists.blob.core.windows.net/container?timeout=901": dial tcp: lookup storageaccountthatdoesntexists.blob.core.windows.net: no such host

goroutine 1 [running]:
github.com/Azure/azure-storage-azcopy/v10/ste.stack(0xc00003ab10, 0xc0003e5100, 0x0)
    /home/vsts/work/1/s/ste/xferLogPolicy.go:237 +0xa5
github.com/Azure/azure-storage-azcopy/v10/ste.NewRequestLogPolicyFactory.func1.1(0x19f1b80, 0xc000278480, 0xc0003e5100, 0x10, 0x0, 0x0, 0xc000274f20)
    /home/vsts/work/1/s/ste/xferLogPolicy.go:151 +0x7c5
github.com/Azure/azure-pipeline-go/pipeline.PolicyFunc.Do(0xc000081db0, 0x19f1b80, 0xc000278480, 0xc0003e5100, 0xc000274fa8, 0x0, 0xc000be0910, 0xd160b6)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-pipeline-go@v0.2.3/pipeline/core.go:43 +0x4b
github.com/Azure/azure-storage-azcopy/v10/ste.NewVersionPolicyFactory.func1.1(0x19f1b80, 0xc000278480, 0xc0003e5100, 0xd1557e, 0xc000ef4007, 0xc000eae000, 0x2af7)
    /home/vsts/work/1/s/ste/mgr-JobPartMgr.go:83 +0x1c9
github.com/Azure/azure-pipeline-go/pipeline.PolicyFunc.Do(0xc0000946a8, 0x19f1b80, 0xc000278480, 0xc0003e5100, 0x2af7, 0x2af7, 0x1, 0xc000ef4000)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-pipeline-go@v0.2.3/pipeline/core.go:43 +0x4b
github.com/Azure/azure-storage-blob-go/azblob.responderPolicy.Do(0x19e1e00, 0xc0000946a8, 0xc000ea0790, 0x19f1b80, 0xc000278480, 0xc0003e5100, 0x2, 0x2, 0xc000ef4000, 0xc000274f20)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-storage-blob-go@v0.13.1-0.20210823171415-e7932f52ad61/azblob/zz_generated_responder_policy.go:33 +0x5a
github.com/Azure/azure-storage-blob-go/azblob.(*tokenCredential).New.func1(0x19f1b80, 0xc000278480, 0xc0003e5100, 0xcceebf, 0x10, 0x1754e00, 0x1346f4b4b01)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-storage-blob-go@v0.13.1-0.20210823171415-e7932f52ad61/azblob/zc_credential_token.go:135 +0x212
github.com/Azure/azure-pipeline-go/pipeline.PolicyFunc.Do(0xc000beaee0, 0x19f1b80, 0xc000278480, 0xc0003e5100, 0xd18c2e2800, 0x0, 0xc0003f4360, 0xc0003f4360)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-pipeline-go@v0.2.3/pipeline/core.go:43 +0x4b
github.com/Azure/azure-storage-azcopy/v10/ste.(*retryNotificationPolicy).Do(0xc00037c4c0, 0x19f1b80, 0xc000278480, 0xc0003e5100, 0x0, 0xc000278490, 0x18d8878, 0xc000be0c00)
    /home/vsts/work/1/s/ste/xferRetryNotificationPolicy.go:59 +0x62
github.com/Azure/azure-pipeline-go/pipeline.PolicyFunc.Do(0xc00037c4d0, 0x19f1b80, 0xc000278480, 0xc0003e5100, 0xc000278480, 0xc00037c5b0, 0xc000000001, 0x0)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-pipeline-go@v0.2.3/pipeline/core.go:43 +0x4b
github.com/Azure/azure-storage-azcopy/v10/ste.NewBlobXferRetryPolicyFactory.func1.1(0x19f1bb8, 0xc0003c90b0, 0xc0003e5000, 0x10, 0x16df920, 0x64492d747301, 0xc000274dc0)
    /home/vsts/work/1/s/ste/xferRetrypolicy.go:384 +0x762
github.com/Azure/azure-pipeline-go/pipeline.PolicyFunc.Do(0xc000081e00, 0x19f1bb8, 0xc0003c90b0, 0xc0003e5000, 0xc000274e78, 0x20, 0x19c725a, 0xc000be0f90)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-pipeline-go@v0.2.3/pipeline/core.go:43 +0x4b
github.com/Azure/azure-storage-blob-go/azblob.NewUniqueRequestIDPolicyFactory.func1.1(0x19f1bb8, 0xc0003c90b0, 0xc0003e5000, 0x10, 0x16df920, 0xccee01, 0xc000274dc0)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-storage-blob-go@v0.13.1-0.20210823171415-e7932f52ad61/azblob/zc_policy_unique_request_id.go:22 +0xd4
github.com/Azure/azure-pipeline-go/pipeline.PolicyFunc.Do(0xc000094738, 0x19f1bb8, 0xc0003c90b0, 0xc0003e5000, 0xc000274e60, 0x36, 0xc0000be480, 0xc000be1048)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-pipeline-go@v0.2.3/pipeline/core.go:43 +0x4b
github.com/Azure/azure-storage-blob-go/azblob.NewTelemetryPolicyFactory.func1.1(0x19f1bb8, 0xc0003c90b0, 0xc0003e5000, 0x1, 0x0, 0x1, 0xc0000060a8)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-storage-blob-go@v0.13.1-0.20210823171415-e7932f52ad61/azblob/zc_policy_telemetry.go:34 +0x169
github.com/Azure/azure-pipeline-go/pipeline.PolicyFunc.Do(0xc0003c9980, 0x19f1bb8, 0xc0003c90b0, 0xc0003e5000, 0xc0003c9980, 0x0, 0xc000be1118, 0xcceebf)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-pipeline-go@v0.2.3/pipeline/core.go:43 +0x4b
github.com/Azure/azure-pipeline-go/pipeline.(*pipeline).Do(0xc0000dc2c0, 0x19f1bb8, 0xc0003c90b0, 0x19e1f00, 0xc000ea0790, 0xc0003e5000, 0x19, 0xc0000a8360, 0x5, 0x0)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-pipeline-go@v0.2.3/pipeline/core.go:129 +0x88
github.com/Azure/azure-storage-blob-go/azblob.blobClient.GetProperties(0xc0001bb4d0, 0x5, 0x0, 0x0, 0x0, 0xc0001bb4d8, 0x19, 0xc0000a8360, 0x5, 0x0, ...)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-storage-blob-go@v0.13.1-0.20210823171415-e7932f52ad61/azblob/zz_generated_blob.go:1009 +0x405
github.com/Azure/azure-storage-blob-go/azblob.BlobURL.GetProperties(0xc0001bb4d0, 0x5, 0x0, 0x0, 0x0, 0xc0001bb4d8, 0x19, 0xc0000a8360, 0x5, 0x0, ...)
    /home/vsts/go/pkg/mod/github.com/!azure/azure-storage-blob-go@v0.13.1-0.20210823171415-e7932f52ad61/azblob/url_blob.go:188 +0x17f
github.com/Azure/azure-storage-azcopy/v10/cmd.(*blobTraverser).getPropertiesIfSingleBlob(0xc000278300, 0x5, 0x0, 0x0, 0x0)
    /home/vsts/work/1/s/cmd/zc_traverser_blob.go:93 +0x428
github.com/Azure/azure-storage-azcopy/v10/cmd.(*blobTraverser).Traverse(0xc000278300, 0x0, 0xc00003eec0, 0x201dfa0, 0x0, 0x0, 0x0, 0x0)
    /home/vsts/work/1/s/cmd/zc_traverser_blob.go:129 +0xe5
github.com/Azure/azure-storage-azcopy/v10/cmd.(*syncEnumerator).enumerate(0xc000bbc370, 0x19f1b00, 0xc0003c90b0)
    /home/vsts/work/1/s/cmd/zc_enumerator.go:631 +0xfb
github.com/Azure/azure-storage-azcopy/v10/cmd.(*cookedSyncCmdArgs).process(0xc000262a80, 0x62, 0x0)
    /home/vsts/work/1/s/cmd/sync.go:683 +0x425
github.com/Azure/azure-storage-azcopy/v10/cmd.init.19.func2(0xc0003d3900, 0xc0003d0400, 0x2, 0x4)
    /home/vsts/work/1/s/cmd/sync.go:718 +0x17a
github.com/spf13/cobra.(*Command).execute(0xc0003d3900, 0xc0003d03c0, 0x4, 0x4, 0xc0003d3900, 0xc0003d03c0)
    /home/vsts/go/pkg/mod/github.com/spf13/cobra@v1.2.1/command.go:860 +0x2c2
github.com/spf13/cobra.(*Command).ExecuteC(0x1fc9e20, 0xe139882638f8827e, 0x30, 0x17975e0)
    /home/vsts/go/pkg/mod/github.com/spf13/cobra@v1.2.1/command.go:974 +0x375
github.com/spf13/cobra.(*Command).Execute(...)
    /home/vsts/go/pkg/mod/github.com/spf13/cobra@v1.2.1/command.go:902
github.com/Azure/azure-storage-azcopy/v10/cmd.Execute(0xc0000aad50, 0x17, 0xc0000aad50, 0x17, 0xc0000a7120, 0x1d, 0x7fffffff)
    /home/vsts/work/1/s/cmd/root.go:165 +0xfa
main.main()
    /home/vsts/work/1/s/main.go:82 +0x397

Hey @v-takebi ,
Thanks for reaching out!
AzCopy has retry with exponential back-off policy to retry a failed request 20 times. There can be n number of network errors while transferring data over internet and AzCopy cannot account for all of them. Afterall, an error may or may not be fatal. If not fatal, it may be transient and go away with retries. So, it is by design.
It is generally expected to have correct StorageAccountName in the source/destination URLs provided to AzCopy command.

Mohit Sharma-san,
Thanks for your quick and precise answer.
Understand. This behavior is not about azcopy but networking, and should be by design.
We'd like to use some conditional logic to validate before running into azcopy's process.
Many thanks as always! :)

Glad you found that useful!
You can use Azure CLI to get the properties of a storage Account. Please find this link
If you're invoking AzCopy from a program, I suggest you write a simple REST API call to get properties of a storage account. If it fails, it means that storage account wasn't valid.

Thanks for your alternative plan!
Sure. I will use it to get better at it myself.

AzCopy has retry with exponential back-off policy to retry a failed request 20 times. There can be n number of network errors while transferring data over internet and AzCopy cannot account for all of them. Afterall, an error may or may not be fatal. If not fatal, it may be transient and go away with retries. So, it is by design.

The concern here is that AzCopy retries even 401 and 403 HTTP responses, your argument does not stand as HTTP error codes could determine what calls do not make sense to retry. The HTTP codes valid for retry are e.g. 408, 502, 503 and 504.
It seems to me that it was easier on your side not to deal with this problem at all ,which is sad.


Attach varname_to_symbol mapping to Chains

After https://github.com/TuringLang/DynamicPPL.jl/pull/534 in DynamicPPL.jl, attaching a dict-like mapping from VarName to Symbol (as represented in the Chains) allows a much improved experience when working with Model and Chains together, e.g. generated_quantities that can handle things like Cholesky variates.

So I was just looking at this one myself, and I don't think upping the DPPL version should fix this. This PR should have been functional on it's own.

Okay, so I can't actually reproduce the error from the tests :confused:
But I've now made it optional to include the varname_to_symbol mapping, so it will be possible for users to opt-out of this inclusion if they prefer. I think that should be good enough :+1:


2019.1 content with overflow-y wouldn't display

The content with overflow-y: scroll masks the content that is not overflowing.
I've also noticed that some of my layouts broke.
This happens for me on the Mac 10.14.3 and latest Tableau.

I'm not able to reproduce this issue. Could you confirm if you still see this happening on the latest Tableau Desktop ? If so, could you detail the steps you used to repro the issue?

I'm not sure this is relevant anymore. If the Tableau team has upgraded the Chromium version version, then it might not be the issue anymore.


Adding custom tabs to OOM reports.

Goal
Using the metadata client set for showing as new tabs in OOM reports.
Design

Changeset

Testing
It was tested in a real project and client set metadata are visible as custom tabs in OOM reports like in other reports.

Hi @tubatintin,
Thanks for the PR, however I'm not sure it will work as you expect.
A little background on OOMs (apologies if this is something that you already know!): Out of Memory errors on iOS cannot be detected directly by Bugsnag, so we use a heuristic. We monitor for the app closing unexpectedly and infer that it’s an out of memory error on next relaunch by ruling out other known app termination causes. We then send the report to the dashboard. Any addOnSendErrorBlocks are run at delivery time so is no longer in the same session as when the OOM occurred.
By using the addOnSendErrorBlock like this you would be effectively attaching metadata associated with the new session (from relaunch) with that of the report captured for the OOM report (and any other report) which would be about to be sent. While static information could be added it would not be specific to the original event session.
While there may be circumstances where this would be useful in general this would be confusing and unexpected behaviour if we were to adopt it. In this scenario we could not accept the PR, but thanks for the effort, we do appreciate it.
If this is the behaviour you require for your circumstances you can use a global onSendError block and apply the metadata there. If you only wanted this to apply only to OOMs you could determine the errorclass contained within the event first. But again this is adding data after the fact and will not be from the OOM session.
As an aside we are currently working on something to allow attaching metadata to OOMs.
Thanks.


Consider ignoring ; after an inline code at the end of a list (or enum/paragraph)

Description
One of the rules that is (I think) almost universal, is that non-last items in a list should end with ; and the last item should end with .. This makes the whole multi-line sentence/paragraph grammatically correct. But if you need to call some function at the end of a list item, then the ; will be swallowed because it terminates the (inline) code expression. And the only way to go around this is to escape each item one by one (which can be slightly simplified by using find and replace tool). Not everyone knows about this quirk, so this has to be "proofread" even though in the source file there are no mistakes. But in the output file, the semicolons are removed. I propose to make an exception in such cases, i.e., ignoring the semicolon at the very end since there is no benefit in putting it there just to terminate the expression.
#let f(input) = raw(str(input))

Here are some items:
- item #f(1);
- item #f(2);
- item #f(3);
- item #f(4);
- item #f(5);
- item #f(6);
- item #f(7);
- item #f(8);
- item #f(9).

Here are some items:
- item #f(1)\;
- item #f(2)\;
- item #f(3)\;
- item #f(4)\;
- item #f(5)\;
- item #f(6)\;
- item #f(7)\;
- item #f(8)\;
- item #f(9).

real world example

Use Case
Removing the need for escaping the semicolon (either by prepending a backslash or by typing the second semicolon right after the first one) can simplify the way the source code is written and unify it with the output. It will further remove the confusion of the new users or those who simply didn't face this problem before.

I'm not sure about the ; rule. This is the first time I ever heard of that; I usually just use , to end non-last items. I assume this is a regional or language-based difference.
Regardless, I don't think this proposal is a bad idea.
Maybe we should look into this more generally to allow semicolons after any inline expression to be parsed as text?

I'm not sure about the ; rule. This is the first time I ever heard of that; I usually just use , to end non-last items. I assume this is a regional or language-based difference.

Ah, yes, I forgot about the ,. In Russia, you would normally only use ;, but I think , can be used too, but I checked all of this a long time ago, so I can mix things up.

From Laurenz:

It's too non-local for a parsing decision. If anything, we can discuss whether we can change the behaviour of semicolon after interpolated expressions in a more general way.

As quoted, I think the proposal as-is is too non-local, so I'll close this.

So I just need to rename the title to a "local" or not so "non-local" name?
What does "too non-local" means anyway? "Too broad"? "Very general"?

The fix would not be to just rename the issue, but to come up with a proposal that is syntactically less surprising.
Too non-local means that the rule "ignore ; after code, but only in lists" requires too much context in the parser. It must know it's in a list to handle code parsing. It's not impossible, but it's not a good design in my opinion. Too specific & potentially surprising edge case.

Thanks, but now I don't understand what "syntactically surprising" means. The only surprise for me is that a common ; at the end of a list item is ignored (as it's also a code mode terminator).
One other situation is when semicolon is used in a sentence without Typst lists (for complex sentence or sequence of some sort). For example:
This is my sentence; the sentence has a semicolon.

When you add something:
This is my sentence #some-var; the sentence has a semicolon.

Now the semicolon is gone. It's only useful when you need to write something right after:
#let name = "cookie"
This is my sentence #name;-based the sentence has a semicolon.

This is probably very rare, but still a valid use case.
So the semicolon shouldn't be ignored when inline code mode is embedded into (parent) markup mode and there is a new line or a space after the semicolon. How does this sound?
I think that semicolon is probably the last thing anyone would use for code mode in Typst as it's unnecessary always (I never used it). So no one will probably put it in the above circumstances in the first place. Which means ignoring the semicolon only has disadvantages and no advantages, the way I see it.


CSS isolation for every component

I'm submitting a ...

[ ] bug report
[ x] feature request
[ ] support request
[ ] other (Please specify)

Provide information & explanation

Hello everyone, I know I've ticked that this is a feature request but it's mostly because I don't see it on the current version of the boilerplate, I may have missed a point, in that case, please excuse me.
That said, I would like to know if there is something about CSS isolation, if it's planned and if someone knows something about this specific feature in this boilerplate. (or a workaround, anything)
For now I'm setting a specific CSS class for every page but as you might guess, sometimes some elements get affected even though I'm using rather complex CSS selectors.
Thank you in advance.

Laravel & Angular version: 3.2.0

You can use css modules in your project, https://github.com/css-modules/css-modules


Filament version used in Tutorial is old

Is your feature request related to a problem? Please describe.
The latest version of Filament contains some breaking changes, so the tutorial code will not work with the latest version of Filament.
Describe the solution you'd like
The current version of Filament used in Tutorial is probably v1.4.x.
Some methods are out of date and need to be updated.
For example.
https://google.github.io/filament/webgl/tutorial_triangle.html
//this.view.setClearColor([0.1, 0.2, 0.3, 1.0]);
this.renderer.setClearOptions({clearColor: [0.1, 0.2, 0.3, 1.0], clear: true});

Also, The material files (.filamat) are also incompatible and will need to be regenerated with the latest version of matc.

Thanks for the bug report, I'll go ahead and update these.  I recently updated our Android tutorial on Medium but yes we should maintain our JavaScript tutorials too.


QA| E-Filing| When user clicks on Save as Draft button from Review cases File form  "Tips for stronger case compliant" card is displaying

https://jam.dev/c/4974afc5-fd7d-45f4-89f8-4ad6fad753c0

working fine.


build: only ignore specific sub-directories in dist

Refine .gitignore to only ignore bash_completion and manpages
artifacts. Reinstate the toplevel dist directory, as it contains
some other tracked data.

lgtm


Windows 1.0.3: File browser cuts off content when there is a lot of files

Using 1.0.3.
When opening a folder with a lot of subdirectories/subfiles, the content cuts off.
Attached video.
https://github.com/face-hh/griddycode/assets/32877032/b496f2ec-e698-4fb3-8dc8-214fc3f852f7
Clicking Enter while on the invisible screen seems to navigate to the folder properly however.

yep same

The limit has been increased in v1.0.4 (will release later). To fix this completely, #8 would have to be implemented.


Turn duplicate rules for the same target into an error

If multiple build edges generate the same output, ninja currently warns with
ninja: warning: multiple rules generate $name. build will not be correct; continuing anyway

Internally, ninja just ignores all but the last rule. In practice, this usually happens if people accidentally repeat a rule in their meta-buildsystem. But for rules with multiple targets, ninja's current handling of this can lead to inconsistent build graphs that can lead to crashes (see e.g. #867). Also, some people mistake this diagnostic for a bug in ninja instead of a bug in their build files (e.g. #543 last comment). Arguably, ninja could try to check if the two rules are exactly the same and not complain in that case, but

That's something the generator could do
It's not always obvious – the commands could be cd ../.. && foo/bar.sh and cd ../../.. && baz/foo/bar.sh, or they could set slightly different env vars (which happen to not make a difference in practice, but ninja can't know that)

So this should be an error, not a warning. However, this is something that happens in practice every now and then (examples: http://reviews.llvm.org/D6166#109619 http://crbug.com/351052), so the rollout for this should look something like this:

Add a flag to turn this warning into an error, but don't set it by default (--dupeedge=[warn|error]?), make a release with this. (Mention the flag name in the warning text.)
File bugs with all known generators to reject duplicate rules for the same target (up to generators to allow this if the two rules effectively are the same – generators are in a better position to make that decision. If they opt to do that, they still should only write one of these rules). Wait for this to be implemented everywhere, and to make it into releases.
Flip the flag default to error, but keep the flag around to switch back to warning, keep mentioning the flag in the error message, and in --help output. Make another release.
Remove flag from error message and help output, but keep honoring it. Make another release.
Eventually, remove the flag.

Not sure if we ever actually want to do 5, but the rest all seem like Obviously Good steps.

#940 was another bug in this area.

RfC to make this err by default from a while ago (no concerns): https://groups.google.com/forum/#!topic/ninja-build/ob5vhaGvvTc


use MouseEvent constructor to simulate touch events.

simulating event with .initMouseEvent still available for browsers not supporting MouseEvent.

.initMouseEvent is deprecated
https://developer.mozilla.org/en-US/docs/Web/API/MouseEvent/initMouseEvent

Nice catch! Thanks :+1:


Migrate STDOUT/STDIN exchanges from asynchio pipes to queues

Migrated from GitLab: https://gitlab.com/meltano/meltano/-/issues/2900
Originally created by @aaronsteers on 2021-08-18 21:44:57

As discussed in #2743 and this comment (https://gitlab.com/meltano/meltano/-/issues/2743#note_569087851), asyncio queues can be used in place of pipes to send data between processes.
cc @pandemicsyn

From our code:
https://gitlab.com/meltano/meltano/-/blob/c58cb8e56be1b8bae0eefcb6ba906e3c2010852e/src/meltano/core/logging/output_logger.py#L201
   async def _read_from_fd(self, read_fd):
        # Since we're redirecting our own stdout and stderr output,
        # the line length limit can be arbitrarily large.
        line_length_limit = 1024 * 1024 * 1024  # 1 GiB

        reader = asyncio.StreamReader(limit=line_length_limit)
        read_protocol = asyncio.StreamReaderProtocol(reader)

        loop = asyncio.get_event_loop()
        read_transport, _ = await loop.connect_read_pipe(  # <<<<
            lambda: read_protocol, os.fdopen(read_fd)
        )

        await capture_subprocess_output(reader, self)

From https://docs.python.org/3/library/asyncio-platforms.html#windows:

SelectorEventLoop has the following limitations:

...
Pipes are not supported, so the loop.connect_read_pipe() and loop.connect_write_pipe() methods are not implemented.

Alternative implementation using queues from here:
async def first_pipe_cmd(command, queue, cwd="."):
   proc = await asyncio.create_subprocess_shell(
           command,
           stdout=asyncio.subprocess.PIPE,
           #stderr=asyncio.subprocess.PIPE,
           cwd=cwd)
  #await asyncio.wait(_outstream_handler(proc.stderr, "stderr", "first_pipe_cmd")) #Broken at the moment
   data ="first"
   while data:
       data = await proc.stdout.readline()
       line = data.decode()
       if data: await queue.put(line)
       logging.info(f"Queue data for processes, data is {line}")
   logging.info("First piped process has completed")

Is this still something the Meltano team is looking to add and would the addition of queues be helpful for getting BATCH/FastSync implemented ?

@BuzzCutNorman good question!
@aaronsteers what are your thoughts on this as we start to prioritize more EL-related work?

@aaronsteers ping on this one!

@tayloramurphy - thanks for the ping.
On reviewing this, I don't think it is a high priority as of now, given that:

BATCH messages mitigate the performance side of the issue. (Mitigated in part although admittedly not in full.)
Windows support is working now natively for both meltano run and elt. (Interop was one of the drivers here, if I remember correctly.)

There are still potential benefits, but there are risks also in terms of compatibility and performance. There's another discussion (I think I  the SDK repo) about preformance benchmarking and I think we'd want that process be in place before making a big change like this.
It's also arguable that investing in adding BATCH support to stream maps (along with good docs) may be a better investment, since that would bring similar benefits of reducing memory pressure to legacy taps and targets as well as sdk-based ones.
@BuzzCutNorman, @visch - do you see strong value on this as of now or would you agree it's ok to deprioritize?

@aaronsteers I'm good without it. It's nice for performance tracking as you can tell when a tap or target is behind very easily with a queue setup!

Agreed. And thanks, @visch . Probably this could come back into focus in 2023 but for now, I think we can move back to the backlog, or close as "not (currently) planned".
Cc @tayloramurphy

Agreed. And thanks, @visch . Probably this could come back into focus in 2023 but for now, I think we can move back to the backlog, or close as "not (currently) planned".
Cc @tayloramurphy

Windows support is working now natively for both meltano run and elt. (Interop was one of the drivers here, if I remember correctly.)

Wanted to clarify one thing, Windows does not work with elt we direct folks to use run. We could fix this I'm sure, but that was the choice we went with

Windows does not work with elt

Thankfully we've documented it as such in https://docs.meltano.com/guide/installation-guide#windows 😅


Fix extras/ dependency problem

Problem

In the past, I've encountered an issue where a selector defined in extras/lbryinc couldn't be found, even though the code looks ok.  Jessop's guess is that there is a circular-dependency somewhere.  I managed to skipped the problem back then by moving the selector into another file.
While doing FYP, I found 2 issues:  (1) can't import extras/recsys in certain files (2) a very subtle bug that wasn't visible until you visit a page (see "Reproduce" below)

Reproduce
https://github.com/lbryio/lbry-desktop/commit/9f58c529bc35a8799250d6398491effc76549d23
In this commit, we are just importing an action from another file.  It looks normal and even compiles, but if you enter a File Page, it crashes because one distant (and unrelated) selector became undefined.
Potential fixes

If someone can take a look at it (most likely webpack-related?) to find the root-cause, that will be great to avoid subtle bugs in the future.
Alternatively, I spoke to Jessop and there is no actual need for an "extras/" folder for Odysee ... having to 2 sets of redux code, for example, is confusing at times.  I think we can just consolidate it further and move it into ui/, and the import issues should go away.

If someone can look at the problem under "Reproduce" and understand/fix the problem, that will be great.

Probably need this https://github.com/aackerman/circular-dependency-plugin

ui/analytics.js imports lbryinc, which imports ui/analytics.js and its own selectors.

Repro:  use analytics.log in selectors/blocklist


Application structure

Hello
Tell me, how do you move the code out of the function? For example, I want to use http-client and websocket-client. Everything needs to be written inside ::run(function () { /* my long code */ }) or can I somehow put it in different files? Please tell me how to build applications from more than one file. I'm trying to figure out asynchronous PHP. Thanks.

You can of course split your application into multiple files / classes. Loop::run with a callback is the equivalent of Loop::defer + running the loop, you can also have multiple defers or use call / asyncCall at various places. What's keeping you from using multiple files?

Do you have any example how to require this things and where to write the functions? Where can I see an examples of implementation?

Which kind of application do you want to build?

I am trying to create an application that can communicate WS at a time with other services. Send WS to my GUI. Also communicate with DB, make requests for HTTP and, when zapeskoy, raise HTTP server

Sorry for my english. Do you understand me?

I do understand what you plan to implement, yes, but I don't have an example I can link right now. https://github.com/amphp/websocket-server/blob/f5e27858f2b9a37e909a3d96b50ab3420842e5b1/examples/stackexchange-questions/server.php Might help?

Just using this example, I would like to understand how to break it down into honor. Maybe I don't have enough experience and understanding to understand, I don't know.

Do your have your current source online somewhere? Maybe I can make specific suggestions then and we can work on concrete questions?

Do you have Discord or Telegram? We can discuss it there.
My contacts:

Discord: eleimt#3606
Telegram: @eleimt

Yes, I do, you can join our group via https://t.me/amphpchat.

File a.php
<?php

require __DIR__.'/b.php';

\Amp\Loop::run(function() {
    yield request();
});

File b.php
<?php

use function Amp\call;

function request() {
    return call(function() {
        $request = new Request(..);
        return yield $existsClient->request($request);
    });
}


Investigate switching to xml-rs from quick-xml

https://github.com/kornelski/xml-rs has a new maintainer now and as it is used in the Android source code might get better stability and support than quick-xml in the future.
Investigate: Does quick-xml have some industry usage as well?

xml-rs seems way slower


Rewrite eoflineRule

PR checklist

[ ] Addresses an existing issue: #0000
[x] New feature, bugfix, or enhancement

[x] Includes tests

[ ] Documentation update
[x] Enable CircleCI for your fork (https://circleci.com/add-projects)

What changes did you make?
Add tests.
Allow disabling the rule.
Use SourceFile's text instead of EndOfFileToken.
Is there anything you'd like reviewers to focus on?
I'd like to get feedback, if checking for \n is a problem on systems where only \r is used (macOS?).
The original code was also checking for \n, but only if the line before EOF contained only comments or whitespace.

mac uses /n and windows uses \r\n so I think we're good here


Troubles in setting up the configuration file

Hi Maria,
Nice work, congratulation for the paper!
I have troubles in setting up the configuration file when I want to add the additional options, e.g. the 'model' keyword is not read and I cannot switch to the 'marcs' model - I have to modify synthDriver.py to make FASMA work. Could you provide some examples in the repository?
Cheers
Luca

Hi Luca,
Can you please send an example of the configuration file? I will try to reproduce your issue then. And some of the error will be helpful too.
You should definitely not have to touch the synthDriver.py.
Cheers,
Daniel

I just pushed some new commits. Can I ask you to pull again Luca, and try run
$ python synthDriver.py myConf.cfg

where the file myConf.cfg looks like this:
# this is a header (all special characters will act as header/comments)
giraffe_sun_arcturus_calib.lst
giraffe_sun_arcturus_calib.lst model:marcs

The two lines should give the same results, as I've changed the default model atmosphere to use is now MARCS. Before it was some we call kurucz95 which are not provided (we are not allowed to share those, sorry).

Hi Luca,
Thanks for mentioning this. I uploaded a new version of marcs models, so please after you pull, untar them. Yeap we need to create a useful manual. If your config file is like this:
# this is a header (all special characters will act as header/comments)
giraffe_sun_arcturus_calib.lst
Then a synthetic spectrum will be created but not saved so probably it will not be useful. You probably need to save, view, or change the stellar parameters. So probably this will be better:
# this is a header (all special characters will act as header/comments)
# linelist teff logg [M/H] vt vmac vsini options
giraffe_sun_arcturus_calib.lst 5777 4.44 0.0 1.0 3.21 1.9 save,plot
giraffe_sun_arcturus_calib.lst 5777 4.44 0.0 1.0 3.21 1.9 save,plot,resolution:115000
giraffe_sun_arcturus_calib.lst 5777 4.44 0.0 1.0 3.21 1.9 observations:Sun_HARPS.fits,resolution:115000,minimize,plot
Now 1) a solar synthetic spectrum will be plotted and saved at results folder without a resolution broadening, 2)  a solar synthetic spectrum will be plotted and saved at results folder with a resolution of 115000, 3) the code will find best fit parameters for the spectrum which is at the spectra folder and save the results in the synthresults.dat file.
Hopefully this will work. :)

Hi Maria, Daniel,
Thank you very much for the quick feedback, yhe examples you provided all work!
Specifcally, my problem was just a wrong use of the '':  I tried 'model':'marcs' and model:'marcs', but I didn't try model:marcs. The README is a bit misleading on this matter!
Cheers
Luca

Hi Luca,
I just pushed a new version of the README without the quotes. I agree it was a bit confusing.
Let us know if you have any other problems.
Cheers,
Daniel


Link invalid

This link is invalid. Please take a look.
https://news.realm.io/news/orta-therox-moving-to-oss-by-default/

This link is invalid. Please take a look.
https://news.realm.io/news/orta-therox-moving-to-oss-by-default/


json file meta-data gets overwritten with new scrape

Thanks for this great scraper!
I am using it to scrape images using tags, using the following line:
instagram-scraper --tag -f tags.txt --maximum 1000 --media-types image --media-metadata --comments --include-location
I repeat this scraping every 24 hours to get the newly added images + meta-data (up to 1000 as you can see).
The issue I am running into now is that it seems that only the meta-data of 1000 posts is being saved. So even though I have scraped about 8000 images, I only have meta-data for 1000 of them. Does anyone know how to fix this issue so I can keep scraping subsequently without duplicating the json file in between scraping?
Best!

You could get around this by running a follow up script each time this command finishes that writes the metadata into a database or just a aggregate file that won't be overwritten the next time the scraper runs.

thanks for the suggestion @jakeseaton ! I am planning to do that for now, like I said by duplicating the json file. But it'd be nice if this wouldn't be necessary in the future.

Oh whoops didn't see your last sentence :)


[RFC] setup.py: Add optional GUI dependencies.

Resolves #115.

:+1:

Ping @bfredl.

LGTM :+1: merged.

Thanks!

@bfredl Given all the recent improvements, could you bump the version?

Sure, if it is as simple as it seems... (bump commit + tag)

I don't think I can upload to PyPI tho, ping @tarruda.


Fix for react-router context.

How do you workaround issue with react-router context? Este.js approach is https://github.com/steida/este/blob/5b26613ec81c3fefce19734d349f24f15ffe1373/src/client/components/purecomponent.react.js#L13

Hmm. I guess one way to handle this is to always return true if this.context is an object. Does this make sense?

Isn't context always object? I believe it is. This workaround is good enough.

I don't want to have lib-specific workaround to be honest. Also, this won't help someone struggling with the same problem, but with some other context-reliant library like Moriarty.

Oh, I get it now. Your workaround is functioning because you explicitly put contextTypes on it.
As I said I don't want to special-case RR here, so I'm going to add a note explaining the problem instead.

Closing via https://github.com/gaearon/react-pure-render/commit/3365677c308a8bd548c596f8f7e3964cecf1388c.
Thanks a lot for the input. I understand your solution is more pragmatic, but it wouldn't work with a function anyway. If used on base class, people would be able to overwrite it by mistake. So it's not perfect either.

You are welcome. Este.js needs it because stack must work out of the box. I like you added very thoughtful explanation.


add focusin/focusout to dart:html

https://developer.mozilla.org/en-US/docs/Web/Events/focusin
The angular analyzer project uses dart:html to find metadata with type information for validating angular.
  <div (focusin)="handle($event)"></div>

I'd like to not have to hardcode the existence/type of focusin/focusout. It'd be much better if they were implemented in dart:html like focus and blur already are:
  /// Stream of `blur` events handled by this [BodyElement].
  @DomName('HTMLBodyElement.onblur')
  @DocsEditable()
  ElementStream<Event> get onBlur => blurEvent.forElement(this);

In this case, the analyzer would simply find it, and the dart:html API would just in general be better/more complete, so seems like a win/win.

See https://w3c.github.io/uievents/#events-focus-types


Message edit history breaks with some large messages

In particular, see this message: https://chat.zulip.org/#narrow/stream/issues/subject/quote.20autocomplete/near/236165

I'm not sure what exactly is causing this to happen. Played around with it for a while and have yet to reproduce it.

@zulipbot label "bug" "area: message-editing"

I think the work is complete, but I haven't got any feedback after last commit.

Can I ask for another review?

@Amadeo234 please post on the PR when you ask for a review -- saves reviewers an extra click :)


Switch mock based tests of check_db_migrated to functional tests

The existing tests for check_db_migrated were hard to understand, as
they relied heavily on mocking out parts of the Pyramid and alembic
internals. They effectively tested the implementation of the
check_db_migrated function, rather than the outcomes. This change
introduces a new local fixture which downgrades the structure of
the test database for one test, allowing for tests to run in the
context of an outdated database.
The existing tests for check_db_migrated are then replaced with simple
invokations of bootstrap(), which causes check_db_migrated to be
called by the app startup (as SKIP_CHECK_DB_MIGRATED is not given).
The tests assert that the check is indeed called by bootstrap and
that sys.exit is either called or not, depending on which db
fixture is in use.

Hey @zupo,
This is the last of the TODOs that I was to have a look at. I've taken your suggestion and changed the tests from testing the implementation of check_db_migrated to actually testing the effects of bootstrapping the project with an up-to-date or an outdated database structure.
Let me know what you think
Matt


fix(fastly) provide service version and other contextual information

Description
Provide additional contextual details in the context parameter passed to the main function for services running in Fastly Compute@Edge.
The following fields (which were previously null) are now set:

context.func.name: the service ID
context.func.fqn: A globally unique function identifier which includes the service ID and version
context.func.version: the fastly service version - typically a whole number that automatically increases with every deploy
context.invocation.requestId: An ID uniquely associated with the current request
context.invocation.transactionId: The x-transaction-id header from the request or otherwise a unique ID associated with the current request.
context.runtime.region: The region as 3-letter point-of-present code where the service is executed, see here for codes: https://developer.fastly.com/learning/concepts/pop

Usage example:
module.exports.main = async function main(req, context) {
  return new Response(`Executed in version: ${context?.func?.version}
      Region: ${context?.runtime?.region}
      Func Name: ${context?.func?.name}
      Func FQN: ${context?.func?.fqn}
      TxID: ${context?.invocation?.transactionId}
      ReqID: ${context?.invocation?.requestId}`);
}

Related Issue
Fixes: #598
Motivation and Context
It allows to determine with certainty what version of the function is being invoked (sometimes an update can take a while) and provides additional information which can be useful for tracing and debugging.
How Has This Been Tested?
A new unit test has been added: fastly-adapter.test.js.
Additionally the computeatedge.integration.js test has been enhanced to check environment-reported information returned by the function implementation. It checks that the service ID reported via the environment inside the function is the same as the service ID known to the test.
Types of changes
As the fields for this information were there but not filled in I consider this a bug fix.

[X] Bug fix (non-breaking change which fixes an issue)
[ ] New feature (non-breaking change which adds functionality)
[ ] Breaking change (fix or feature that would cause existing functionality to change)

Checklist:

[X] I have signed the Adobe Open Source CLA.
[X] My code follows the code style of this project.
[ ] My change requires a change to the documentation.
[ ] I have updated the documentation accordingly.
[X] I have read the CONTRIBUTING document.
[X] I have added tests to cover my changes.
[X] All new and existing tests passed.

The missing coverage reported is mostly covered by the computeatedge.integration.js test which is not included in the coverage figures.


bug

So i was trying to setup this but iam getting this issue

without running in debug mode its just pressing enter and always fails

Im having the same problem, cant find a way to fix this


D_2 forecast added

Pull request

Resolves: #<>
Results: <>
Checklist

[ ] The branch is fully up-to-date with the current master.
[ ] The corresponding GitHub issue has been linked to this pull request.
[ ] Link to the (description) of the results has been added.

Fixes #15


Run codecov action only once

Description
Codecov should run once for linux amd64.
Type of change

This pull request fixes a bug in Radius and has an approved issue (issue link required).
This pull request adds or changes features of Radius and has an approved issue (issue link required).
This pull request is a minor refactor, code cleanup, test improvement, or other maintenance task and doesn't change the functionality of Radius (issue link optional).

Fixes: #issue_number

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

Project coverage is 46.78%.  Consider uploading reports for the commit 9e42b3d to get more accurate results

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files

@@            Coverage Diff             @@
##             main    #7427      +/-   ##
==========================================
- Coverage   46.79%   46.78%   -0.01%
==========================================
  Files         500      500
  Lines       44893    44893
==========================================
- Hits        21007    21004       -3
- Misses      22342    22344       +2
- Partials     1544     1545       +1

Flag
Coverage Δ

unittests
46.78% <ø> (-0.01%)
:arrow_down:

Flags with carried forward coverage won't be shown. Click here to find out more.
see 2 files with indirect coverage changes


Please clarify about findNearest() method.

Hello!
I want to ask you to clarify guideline for vector based search findNearest() method.
There is difference between how it is described in the doc and how it is implemented in the library (I have the latest firebase-admin 12.6.0  installed).
So, the doc (https://firebase.google.com/docs/firestore/vector-search#make_a_nearest-neighbor_query) isays :
// Requires a single-field vector index
const vectorQuery: VectorQuery = coll.findNearest({
  vectorField: 'embedding_field',
  queryVector: [3.0, 1.0, 2.0],
  limit: 10,
  distanceMeasure: 'EUCLIDEAN'
});

While the working definition is:
const vectorQuery: VectorQuery = coll.findNearest({
  'embedding_field',
   [3.0, 1.0, 2.0],
  { limit: 10,
  distanceMeasure: 'EUCLIDEAN'
});

The vector distance value and threshold as described in https://firebase.google.com/docs/firestore/vector-search#vector-distance and https://firebase.google.com/docs/firestore/vector-search#distance-threshold not available at all.
Method description from the package looks like this:
/**
     * Returns a query that can perform vector distance (similarity) search with given parameters.
     *
     * The returned query, when executed, performs a distance (similarity) search on the specified
     * `vectorField` against the given `queryVector` and returns the top documents that are closest
     * to the `queryVector`.
     *
     * Only documents whose `vectorField` field is a `VectorValue` of the same dimension as `queryVector`
     * participate in the query, all other documents are ignored.
     *
     * @example
     * ```typescript
     * // Returns the closest 10 documents whose Euclidean distance from their 'embedding' fields are closed to [41, 42].
     * const vectorQuery = col.findNearest('embedding', [41, 42], {limit: 10, distanceMeasure: 'EUCLIDEAN'});
     *
     * const querySnapshot = await aggregateQuery.get();
     * querySnapshot.forEach(...);
     * ```
     *
     * @param vectorField The field path this vector query executes on.
     * @param queryVector The vector value used to measure the distance from `vectorField` values in the documents.
     * @param options Options control the vector query. `limit` specifies the upper bound of documents to return, must
     * be a positive integer with a maximum value of 1000. `distanceMeasure` specifies what type of distance is
     * calculated when performing the query.
     */
    findNearest(
      vectorField: string | FieldPath,
      queryVector: VectorValue | Array<number>,
      options: {
        limit: number;
        distanceMeasure: 'EUCLIDEAN' | 'COSINE' | 'DOT_PRODUCT';
      }
    ): VectorQuery<AppModelType, DbModelType>;

No distanceResultField or distanceThreshold fields.
Please advice how to get distanceResultField and distanceThreshold fields working.
Thanks

What version of @google-cloud/firestore are you using? Check with npm list @google-cloud/firestore.
Support for distanceResultField and distanceThreshold was added in<EMAIL_ADDRESS>If you don't have this version, upgrade with npm upgrade (or if you're not using npm, then use the appropriate command for the package manager you are using).
FWIW, the older definition of findNearest(vectorField, queryVector, options) is still supported alongside the new definition findNearest(vectorQueryOptions).

Thank you @MarkDuckworth ! You explanation helps.
I had<EMAIL_ADDRESS>despite the latest<EMAIL_ADDRESS>Update to<EMAIL_ADDRESS>solved the issue.


all features

@rultor release, tag is 0.0.2

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.0.2

@yegor256 Oops, I failed.
Command failed with status (1)
/usr/local/rvm/gems/ruby-3.2.2/gems/rake-13.1.0/exe/rake:27:in `<top (required)>'
/usr/local/rvm/gems/ruby-3.2.2/bin/ruby_executable_hooks:22:in `eval'
/usr/local/rvm/gems/ruby-3.2.2/bin/ruby_executable_hooks:22:in `<main>'
Tasks: TOP => default => test
(See full trace by running task with --trace)
container f2e1a427bccdc52646447d00d9d636d82886c27c4057f06c0e07f65a8643273d is dead
Wed Jan 31 08:20:24 AM CET 2024

@rultor release, tag is 0.0.2

@rultor release, tag is 0.0.2

@yegor256 OK, I will release it now. Please check the progress here

@rultor release, tag is 0.0.2

@yegor256 Done! FYI, the full log is here (took me 2min)


Fix the link to configuration

Description
This fixes the link to configuration on Guides/Angular page. The current link leads to a 404 page.

Thanks 🎉! Don't hesitate if you find something else or if you have idea for the doc


Why?

''The warp you are using is attached to a level which isn'r loaded
Teleporting..."
Everytime i restart/reload the server,this always happen

This is SimpleWarp related. See https://github.com/Falkirks/SimpleWarp/wiki/Level-not-loaded. This is likely caused by a bad level configuration.


Template biomes do not "inherit" the stone block from the biome they are imitating

Example - Warped Forest is supposed to have Netherrack as its stone block. If you use a template biome to add the Warped Forest to an OTG world then it uses stone instead, with no way to configure it.
Vanilla Warped Forest:

OTG Warped Forest (added with a template biome):

Will be fixed for 0.1.0


[Firefox]Flex items aren't sorted according to "order", if they're separated by an abspos sibling

See https://bugzilla.mozilla.org/show_bug.cgi?id=1345873

Closing as there's no context here and the linked bug is marked as fixed.


Visualize the shapefiles

Created a shape-visual.js and gmap.js component that uses react-leaflet to visualize the GeoJSON data.

interface/src/components/shape-visual.js
interface/src/components/gmap.js
interface/src/components/stylesheets/shape-visual.css

we don't need to visualize the shapefiles directly, we want to visualize the data after it has been inserted into the database. For example, we want to test that this is valid ....
select experiments.name, sitename, st_asgeojson(geometry) as polygon from sites
    join experiments_sites on sites.id = experiments_sites.site_id
   join experiments on experiments.id = experiments_sites.experiment_id
   where ????<find the stuff that hasn't been committed e.g. sites.created_at = just now>;

Done in #68


Cognito pre-token claim attributes are missing from Graphql resolver

Note: If your issue/bug is regarding the AWS Amplify Console service, please log it in the
Amplify Console GitHub Issue Tracker

Describe the bug
I am using pre-token generation trigger in Cognito that set tenantContext value to identify user tenant relationship.
After login to cognito via Auth.signIn, I am trying to execute API.graphql(graphqlOperation(...))
everything works fine except I do not see my tenantContext attribute inside resolver function.
$ctx.identity.claims.get("tenantContext") --> This value always comes null.
I checked my Cognito pre-token trigger response and it correctly sets the value inside signInUserSession.idToken.payload but this value is absent inside graphql resolver.
I tried to see what values graphql resolver gets and it gets all the values for accessToken (inside $ctx.identity.claims.get) but not for identity token , pre-token-trigger sets the context values inside identity token.
How do I access my value set by pre-token-trigger inside resolver correctly? Do I need to change the way API.graphql works or is there something I am missing inside resolver.
Note: My graphql schema use @auth directive and rules are pre-populated inside resolver so I haven't changed anything.
My amplify cli version is : 1.12.0
To Reproduce
Steps to reproduce the behavior:

Go to '...'
Click on '....'
Scroll down to '....'
See error

Expected behavior
A clear and concise description of what you expected to happen.
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: [e.g. iOS]
Browser [e.g. chrome, safari]
Version [e.g. 22]

Smartphone (please complete the following information):

Device: [e.g. iPhone6]
OS: [e.g. iOS8.1]
Browser [e.g. stock browser, safari]
Version [e.g. 22]

Additional context
Add any other context about the problem here.

I have the same question. In my case the graphql request from the browser puts the access token in the HTTP Authorization header. I assume this is what eventually gets to a resolver to handle authorization. I am new to all this, following the getting started tutorial.  I changed the tutorial a bit to use AMAZON_COGNITO_USER_POOLS instead of the api key.
Simplified client javascript:
import API, { graphqlOperation } from '@aws-amplify/api'
import Amplify, { Auth } from 'aws-amplify'
import awsconfig from './aws-exports';
API.configure(awsconfig);
await Auth.signIn('username', 'password');
API.graphql({       query: createTodo,       variables: { input: todo },       authMode: 'AMAZON_COGNITO_USER_POOLS'   })
Is there perhaps a different way to set up authentication/authorization at the client side so it uses the ID token instead of the Access token?

Pre-token generation trigger in Cognito updates idToken of the user and Amplify API uses accessToken when making a request to AppSync. This is what is  causing your $ctx.identity.claims.get method to return null for tenantContext. You could update your code to set custom authorization header as mentioned in the docs and send idToken and you should be able to get the tenantContext
Amplify.configure({
  API: {
    graphql_headers: async () => {
    const session = await await Amplify.Auth.getCurrentUser()
    return ({
        'Authorization': session.getIdToken().getJwtToken()
    })}
  }
});

Thanks, that worked for me. I added that to my app.js. But I had to change one line to:
const session = await Amplify.Auth.currentSession()

Please feel free to comment if this does not answer your question.

Thanks @yuth for providing a solution to this. Sorry for the late response.