cmd/go: enable injection of build version info

This is somewhat related to #44469
I compile a binary with go. I distribute it. go, in its helpfulness, includes lots of information about modules and their versions, e.g. from dlv:
$ go version -m ./dlv
./dlv: go1.20.1
	path	github.com/go-delve/delve/cmd/dlv
	mod	github.com/go-delve/delve	(devel)
	dep	github.com/cosiner/argv	v0.1.0	h1:BVDiEL32lwHukgJKP87btEPenzrrHUjajs/8yzaqcXg=
	dep	github.com/cpuguy83/go-md2man/v2	v2.0.0	h1:EoUDS0afbrsXAZ9YQ9jdu/mZ2sXgT1/2yyNng4PGlyM=
	dep	github.com/derekparker/trie	v0.0.0-20221213183930-4c74548207f4
	dep	github.com/go-delve/liner	v1.2.3-0.20220127212407-d32d89dd2a5d	h1:pxjSLshkZJGLVm0wv20f/H0oTWiq/egkoJQ2ja6LEvo=
	dep	github.com/google/go-dap	v0.6.0	h1:Y1RHGUtv3R8y6sXq2dtGRMYrFB2hSqyFVws7jucrzX4=
	dep	github.com/hashicorp/golang-lru	v0.5.4	h1:YDjusn29QI/Das2iO9M0BHnIbxPeyuCHsjMW+lJfyTc=
        ...

Except for the module itself, which just shows (devel).
The compiled binary carries with it all of its dependency version and source information, but only package name for the root module itself. This makes it of much less usefulness for sbom and software supply-chain and provenance tools.
The build process populates BuildInfo, but leaves the version blank.
I recall seeing a discussion earlier about not wanting to depend on external tools; I get that. It might even be a good enough start if there were a "hook" that let you add that information, whether a flag or even the usual -X something=v1.2.3 (although calculating if it is a tag or a pseudo-version and what that is also appears not to be in an obviously exposed package).

Ideal: go build figures out, "I am running in a git repo at a specific commit, I will figure out my version or pseudo-version and put it in"
Below: go build provides an option to do it, something like --module-version=auto (to auto-populate) or --module-version=v1.2.3
Below: it provides a -X flag that can be used, e.g. -ldflags '-X runtime.BuildInfo.Version=v1.2.3', although that leaves it on the user to figure out what that version or pseudo-version is

Duplicate of #50603

Dang that was quick. Thanks @seankhliao .
I would have just commented on that issue, but so hard to find. GitHub needs better search.


How to disable console log hmr update

Is your feature request related to a problem? Please describe.
I'm always frustrated when vite print a lot of logs on HMR, I tried both logLevel: silent and logLevel: error, none of them remove hmr update /path-to-file. Am i missing something?

export default defineConfig({
  plugins: [reactRefresh()],
  dedupe: ['react', 'react-dom'],
  logLevel: 'silent',
});

@xiaoyu-tamu I notice that vite implements a custom logger，but it only takes effect on the server side.
for example, to output hmr information，by logger.info
config.logger.info(
    updates
      .map(({ path }) => chalk.green(`hmr update `) + chalk.dim(path))
      .join('\n'),
    { clear: true, timestamp: true }
  )

but on the client side, vite uses console.log()，which does not support logLevel，you could see the code in client.ts
    console.log(`[vite] hot updated: ${loggedPath}`)

@xiaoyu-tamu I notice that vite implements a custom logger，but it only takes effect on the server side.
for example, to output hmr information，by logger.info
config.logger.info(
    updates
      .map(({ path }) => chalk.green(`hmr update `) + chalk.dim(path))
      .join('\n'),
    { clear: true, timestamp: true }
  )

but on the client side, vite uses console.log()，which does not support logLevel，you could see the code in client.ts
    console.log(`[vite] hot updated: ${loggedPath}`)

Use negated console filters:

Use negated console filters:

Thanks, that helps

Thanks, that helps

[...] Disable console log in production [...]

This logs are only in development?! :shrug:
What is your comment aiming for?! Why posting in a five month closed issue?
As Evan said, there is a working filter ability in you browsers


Question about SVTYPE=INS comparison

Dear Truvari developers,
I would like to use your tool to compare a set of 'comp' calls to a set of 'base' calls for NA24385 sample (ftp://ftp-trace.ncbi.nlm.nih.gov/giab/ftp/data/AshkenazimTrio/analysis/NIST_SVs_Integration_v0.6/HG002_SVs_Tier1_v0.6.vcf.gz).
I read that HG002_SVs_Tier1_v0.6.vcf.gz contains only SVTYPE=DUP and SVTYPE=INS variants, however there is a field named REPTYPE which gives further information about the type of variant. I saw that SVTYPE=INS variants may have REPTYPE=DUP value. So, my questions are:

If I want to benchmark insertion calls from a SV-caller whose VCF file splits the INS structural variants over SVTYPE=INS and SVTYPE=DUP types (or gives only SVTYPE=DUP variants), is Truvari only going to consider SVTYPE=INS variants for insertions comparisons or is it able to manage different types of variants annotations, if these are compliant to the VCF format?

If a SV-caller I want to benchmark produces a VCF file with many other SVTYPEs (as INV, BND, ...) along with DEL and INS, are those going to decrease the overall precision or are they just going to be ignored? In other words, is it better to grep only the "interesting" lines from the 'comp' calls VCF or is it indifferent?

Thanks

Thank you, just 2 additional questions:

As for the --sizemin and --sizefilt parameters, since INS tipically have starting and ending coordinate that are identical, should I modify the default values (--sizemin 50 --sizefilt 30) ?
Is Truvari able to parse AVGLEN (from Parliament2 output) for inferring the INS size, in order to perform a comparison on non-sequence-resolved calls (--pctsim 0)?


Parameter Positions Not Working

Perhaps I am not using my parameters properly but this does not seem right.
        {
            "Verb": "Get",
            "Noun": "ADBDir",
            "OriginalName": "adb.exe",
            "Platform": [
                "Windows"
            ],
            "Description": "Get directory listing of supplied folder.",
            "Usage": {
                "Synopsis": "Get your shit"
            },
            "Examples": [
                {
                    "Command": "Get-ADBDir -Serial nhe908h -Directory /sdcard/Download",
                    "Description": "Get directory listing from /sdcard/Download on device with serial number nhe908h",
                    "OriginalCommand": "adb.exe -s nhe908h ls -lah /sdcard/Download"
                }
            ],
            "Parameters": [
                {
                    "OriginalName": "-s",
                    "Position": 0,
                    "Name": "Serial",
                    "ParameterType": "string",
                    "Mandatory": true,
                    "NoGap": false,
                    "Description": "Device serial number",
                    "ValueFromPipeline": true,
                    "ValueFromPipelineByPropertyName": true
                },
                {
                    "OriginalName": "shell",
                    "Position": 1,
                    "Name": "Shell",
                    "ParameterType": "string",
                    "DefaultMissingValue": "shell"
                },
                {
                    "OriginalName": "ls",
                    "Position": 2,
                    "Name": "ls",
                    "ParameterType": "string",
                    "DefaultMissingValue": "ls"
                },
                {
                    "OriginalName": "-lah",
                    "Position": 3,
                    "Name": "Directory",
                    "ParameterType": "string"
                }
            ]
        }

I am not sure why but my output is coming out improperly.
PS V:\GitLab\crescendo\adb> Get-ADBDir -Serial 1ae29ace -Directory /sdcard/Download -Verbose
VERBOSE: adb.exe
VERBOSE: -lah
VERBOSE: /sdcard/Download
VERBOSE: -s
VERBOSE: 1ae29ace
VERBOSE: Performing the operation "Get-ADBDir" on target "adb.exe -lah /sdcard/Download -s 1ae29ace".
adb: usage: unknown command -lah

I am expecting the order to be:
adb.exe -s 1ae29ace shell ls -lah /sdcard/Download

Sorry, I have found the issue.  I am not sure on the difference right now but there are 2 position parameters.
Position and OriginalPosition
I will have to spend some more time looking into this but OriginalPosition seems to be the position in which is presented to the executable.


KeyError on integration setup when area doesn't match

The problem
I didn't run into any errors during the setup, but when it was complete, my Nest Protects weren't found. The logs showed the following for all the entities the integration tried to set up. The line numbers vary of course but it happens for binary_sensor, sensor, select, and switch.
This seemed to be corrected when I made the areas in the Nest app match the areas in Home Assistant. For example, I had my basement Nest Protect location set to 'Downstairs' but that location does not exist in Home Assistant, instead it is called 'Rec. Room'. Once I changed the name from 'Downstairs' to 'Dining Room' the Nest Protects were discovered immediately. I also removed the additional descriptions that appear in brackets, so I am not sure if that contributed as well.
Perhaps a solution would be to not to try and add the area automatically and let the user decide where they go. Seems the simplest way to go :-)
After the initial setup, I was able to change the location of Nest Protect back to 'Downstairs' and there were no issues. I manually changed the Nest Protect area in Home Assistant from 'Dining Room' to 'Rec Room'. All seems to be functioning well.
What version of this integration (ha-nest-protect) has the issue?
v0.3.3 & v0.3.4
What version of Home Assistant Core has the issue?
core-2022.4.7
Device / Model
Topaz-2.9, Topaz-2.33, Topaz-2.33 (Nest Protect 2nd Gens)
Diagnostics information
Working - config_entry-nest_protect-e07d1c46cc43a0e1eb6bcc5b2d3b406a.json.txt
Not Working - config_entry-nest_protect-7f217c93e3fce8d43ce4078eabe506eb.json.txt
Home Assistant log
Logs
2022-04-25 12:10:21 ERROR (MainThread) [homeassistant.components.select] Error while setting up nest_protect platform for select
Traceback (most recent call last):
File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 249, in _async_setup_platform
await asyncio.shield(task)
File "/config/custom_components/nest_protect/select.py", line 60, in async_setup_entry
NestProtectSelect(device, description, data.areas, data.client)
File "/config/custom_components/nest_protect/entity.py", line 89, in __init__
super().__init__(bucket, description, areas, client)
File "/config/custom_components/nest_protect/entity.py", line 31, in __init__
self.area = areas[self.bucket.value["where_id"]]
KeyError: '00000000-0000-0000-bb70-aa3f78160280'

Additional information
The logging above is with debug on but nothing else useful was logged. I've included diagnostic data from before and after things started to work.

The way to go would be to gracefully fall back on an unset area if automatic assignment fails like this.

That would work or do it like the other Nest integration or a combination. I just re-added my doorbell and thermostat as well and it asked what areas to put them in during the setup.

When you say you only suggest areas, how is the suggestion made? I didn't get any suggestions. The integration for the other Nest products asked me where my doorbell and thermostat was located for example.
I didn't get that prompt from the Protect integration though. I picked the integration from the list and authenticated. It appeared in my integrations with no devices/entities associated with it and the mentioned errors in the logs.
I'm not sure how the keys are generated and compared so it's hard for me to help you troubleshoot. How does that work?

They are assigned by default; above a screenshot of my development environment where I didn't create any areas myself yet. I will need to look into your diagnostics information. It looks like a mismatch between the where_id of your device and the available ids in the 'all Google areas query'.

@blue-hound any update? Otherwise I will close this issue, since I cannot reproduce.

Sorry, I got busy. I will investigate some more on the next few days, I seemed to have missed your update back in April.


poco -new ~/tmp/foo/bar fails when inside the Poco app directory, but not outside it

Actually not true. It's worse.
In these examples the poco application directory is in cd ~/pococms/poco
$ rm -rf ~/foo/bar
$ cd ~/pococms/poco
$ poco -new ~/foo/bar
PocoCMS /Users/tom/pococms/poco/index.md:
 	 open /Users/tom/pococms/poco/.poco/themes/pocodocs/.poco/css/newpoquito.css: no such file or directory

Note it's looking for a source file in some nonexistent theme directory named /Users/tom/pococms/poco/.poco/themes/pocodocs/.poco/css
Going to another directory gives a completely wrong output directory:
$ cd ~/pococms/poco/tmp
~/pococms/poco/tmp $ poco -new ~/foo/bar

Look carefully! Instead of ~/foo/bar it's just the current directory!
Site published to /Users/tom/pococms/poco/tmp/WWW/index.html
~/pococms/poco/tmp $

Fixed with commit #2706dcf


Feature: Switch from CDN FontAwesome to AntD icons

@jgudo
how did you manage to run the code, localhost is not even running.
help me with this


entityManage.create calls convertToJSValue on non-database value

Describe the bug
With upgrade from v6 rc candidates to 6.0.4 we're encountering a problem where create on entity with custom type fails as the transformation (decryption) is done on non encrypted value, even before the entity instance is flushed into database
Reproduction
Create entity using this type, which should always be encrypted in database and decrypted when loaded
export class EncryptedStringType extends Type<string | null> {
  public convertToDatabaseValue(value?: string | null): string | null {
    if (value !== 'decrypted') throw new Error()
    return 'encrypted'
  }

  public convertToJSValue(value?: string | null): string | null {
    if (value !== 'encrypted') throw new Error();
    return 'decrypted'
  }
}

Then create instance, even before saving into database the error in convertToJSValue will be thrown
What driver are you using?
@mikro-orm/postgresql
MikroORM version
6.0.4
Node.js version
18.17.1
Operating system
Mac os
Validations

[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.
[X] Check that this is a concrete bug. For Q&A open a GitHub Discussion or join our Slack.
[X] The provided reproduction is a minimal reproducible example of the bug.

I'm fairy sure it's this: https://github.com/mikro-orm/mikro-orm/commit/b293789441ee179dcfac4016774bfd2ccb6f830b
I would expect that if value is assigned in constructor it would already be the JS value and we don't have forceEntityConstructor explicitely enabled (although I haven't checked default for it)


Proofs don't work with subdomains

Trying to use a proof with a subdomain doesn't actually work and results in the console error: "Please provide the fully qualified Blockstack name."
Offending line: https://github.com/blockstack/blockstack.js/blob/377e9bbd307aa5313d58bcbc792f34a5b0d3def1/src/profiles/services/serviceUtils.js#L2

The problem is that the current shipping version of browser uses an older version of blockstack.js that doesn't support subdomain proofs. https://github.com/blockstack/blockstack-browser/issues/1600
This was fixed in v18.0.0.


fix to avoid replacing charts with the Loading logo when charts are n…

this is to fix issue 27532
SUMMARY
by setting to True the following feature flag in config.py
"DASHBOARD_DISABLE_LOADING": True
one can avoid having charts replaced by the login icon when charts are not in the current view.
This is useful to export all the charts of a dashboard to a pdf file.
TESTING INSTRUCTIONS
after having set the feature flag DASHBOARD_DISABLE_LOADING, see in the DOM that charts don't get replaced by the "loading" img upon scrolling the page.
Fixes #27532

@kgabryje ok, do you mean that setting ENABLE_DASHBOARD_DOWNLOAD_WEBDRIVER_SCREENSHOT = True would be enough to have the pdf generated on the backend?
I thought that is only for scheduled dashboards

@kgabryje ok, do you mean that setting ENABLE_DASHBOARD_DOWNLOAD_WEBDRIVER_SCREENSHOT = True would be enough to have the pdf generated on the backend?
I thought that is only for scheduled dashboards

No, that feature flag enables downloading dashboard as an image through Selenium, not client-side. I meant that we should do a similar thing for downloading as PDF to fix the problem with loading charts

I'm testing with DASHBOARD_VIRTUALIZATION = false, does't seem to help in embedded dashboards. Do you think it's available in version 4.0.1 ?
BTW, for the generation on the backend, is it enough to set ENABLE_DASHBOARD_DOWNLOAD_WEBDRIVER_SCREENSHOT = True
or does that go together with another setup?
Thank you

TBH I don't really know the details of that feature, but perhaps @geido knows more?

I'm testing with DASHBOARD_VIRTUALIZATION = false, does't seem to help in embedded dashboards. Do you think it's available in version 4.0.1 ?
BTW, for the generation on the backend, is it enough to set ENABLE_DASHBOARD_DOWNLOAD_WEBDRIVER_SCREENSHOT = True or does that go together with another setup?
Thank you

You also need ENABLE_DASHBOARD_SCREENSHOT_ENDPOINTS

closing this PR as not relevant anymore


Service desk feature

There is an awesome feature in Gitlab Enterprise Edition that I would love to see in Gitea called Service Desk: https://docs.gitlab.com/ee/user/project/service_desk.html
The idea is to manage the relation with your user throught issue that are created by email.

Since no one has picked this up: I have implemented a naive version of this feature as a seperate service here, which you might be able to use in the meantime (no guarantees, though)

I am also looking forward to replacing Freescout in our setup and Gitea seems great candidate. With #22056 I think there isn't much left to be done, just add codepath for creating new issue from mail without token

Which tasks left? Let's try to clarify.

[ ] creating issues/creating comments from incoming email
[ ] remember which emails have participated this conversation
[ ] send emails to others when one comment posted from UI or from email


Add mapping to Rust Bound

Rust Bound has three type of value: Unbounded, Included and Excluded, but python can not express them well. So we should build a structure mapping to Rust Bound like this:
await txn.scan(Bound::Included(1), Bound::Unbounded, limit=100, projection=["age", "weight"])

Maybe create a Python standard enum to define Bound?

Maybe create a Python standard enum to define Bound?

I also have considered two ways:

use enum, but pyo3 does not support the combination of simple enum and complex, so it would look like Bound::Unbounded(). Maybe None could be used to replace it
use generic parameter and use None to express Unbounded

ref: #181


Add 'TimeToLive' and 'Hops' aliases to MaxHops parameter of Test-Connection cmdlet.

PR Summary
Fix #7849
Add the following aliases to MaxHops parameter of Test-Connection cmdlet:
TimeToLive
It is the similar parameter's name from Windows PowerShell Test-Connection cmdlet .
Hops
Similar parameter's name from Test-NetConnection cmdlet.
Fix MaxHops parameter summary.
PR Checklist

[x] PR has a meaningful title

Use the present tense and imperative mood when describing your changes

[x] Summarized changes
[x] Change is not breaking
[x] Make sure all .h, .cpp, .cs, .ps1 and .psm1 files have the correct copyright header
[x] This PR is ready to merge and is not Work in Progress.

If the PR is work in progress, please add the prefix WIP: to the beginning of the title and remove the prefix when the PR is ready.

User-facing changes

[x] Not Applicable
OR
[ ] User-facing Documentation needed

[ ] Issue filed - Issue link:

Testing - New and feature

[x] Not Applicable or can only be tested interactively
OR
[ ] Make sure you've added a new test if existing tests do not effectively test the code changed

[ ] Add [feature] if the change is significant or affects feature tests

Hm. I haven't touched NJsonSchema.

@sethvs Please update NJsonSchema package version. It is not related to the PR but it come from our new common test.

Should I update Markdig.Signed Version?

Feel free to update.

@adityapatwardhan is it something that requires "User-facing Documentation needed"
or alternative aliases will be automatically included in the help?

@SteveL-MSFT Rebased.

@anmenaga The help for PowerShell Core 6.1 Test-Connection now is almost similar to Windows PowerShell 5.1 Test-Connection. It should be massively reworked.

@anmenaga Yes, we need to file an issue according to the template for updating the docs.

@anmenaga @adityapatwardhan Created issue and PR in powershell-Docs repo.

@sethvs The PR still contains other's commits. Please rebase properly.


Conflict with node-red swipe gesture

Hi,
when I have swiping through tabs enabled, after setting the "Nest" temperature, it also changes the page.
Is it possible to separate those two to not initiate the tab switch when inside the nest widget?

You can also swipe up/down to change the nest temperature instead of
left/right - would that solve the problem enough?
On Thu, 16 Nov 2017 at 09:07, martinschki<EMAIL_ADDRESS>wrote:

Hi,
when I have swiping through tabs enabled, after setting the "Nest"
temperature, it also changes the page.
Is it possible to separate those two to not initiage the tab switch when
inside the nest widget?
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/Paul-Reed/thermostat/issues/4, or mute the thread
https://github.com/notifications/unsubscribe-auth/AAiL5Y7agTk-pSXibVYXlHSmhdI6jyEeks5s2_tPgaJpZM4QgKgn
.

I know but this goes to usability and WAF...
Should be intitive and easy to use

Fair enough.
I don't know how it's implemented in this project, I wrote the original
code for the nest widget (just the ui, not any actual control code) so not
sure how it interacts with the rest of the ui.
On Thu, 16 Nov 2017 at 09:11, martinschki<EMAIL_ADDRESS>wrote:

I know but this goes to usability and WAF...
Should be intitive and easy to use
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/Paul-Reed/thermostat/issues/4#issuecomment-344860848,
or mute the thread
https://github.com/notifications/unsubscribe-auth/AAiL5TqOTh8Vicj5mXcgXRN7odg0-AjSks5s2_xcgaJpZM4QgKgn
.

I can't see any quick fix for this, other than disabling 'swipe between tabs' in nodered, as that function appears to override the thermostat function.


Using Azure Team Services Agent extension without specifying a deployment group

With the current (version) of the Team Services Agent Extension, it is required to specify the Team Project and the Resource Group. Therefore it is not possible to use this extension as a normal/generic build agent where just only the Agent Pool should be specified.
Is that something you deliberately don't support? Because as far as I found out it worked that way before. If I'm correct the extension itself isn't open source?

@RoopeshNair Can you help answer this question?
BWT, is there a repository for this extension? so forks can log issue in there.

@riezebosch - Your inference is right, the extension configures only deployment group agent. It has been that way since the beginning. We never added support for build & release agent configuration via this agent.

@TingluoHuang - I don't think the extension code is public. @sachinma for confirmation

You are right @RoopeshNair, it is not public as of now. We can discuss if we should make it public

@sachinma @RoopeshNair it would be great if there is a place users can leave feedback or report issues for the extension, so far most customer leave their feedback or issue in the agent repository which is not really the right place. :D

Plus we could make our own extension based on the work you already did. 🎉

Hi, sorry for re-opening this old discussion but i had the same problem with a client today. The extension description is really misleading, saying that Build and Release Agent capabilities will be installed but that's FALSE. Please, change the extension description!!!

We are updating the description to make it clear that the extension is for Deployment Groups only


Update use-dkim-to-validate-outbound-email.md

@JohanFreelancer9 - kindly do the copy editor review for this PR. Thanks

@puneethmeister Gentle reminder.

@MSFTTracyP Please merge this PR. Thanks


Allow tasty-quickcheck-0.11 ?

https://github.com/nikita-volkov/lawful-conversions/blob/d66c8e0aaf2b8521d57e6198e201c7000d0e3ff9/lawful-conversions.cabal#L178
Is the bound tasty-quickcheck < 0.11 needed or was this an oversight?

https://github.com/commercialhaskell/stackage/issues/7597

An oversight. Will fix in a moment. Thanks.

Fixed


Add isc dhcp client to kvm and metal

What this PR does / why we need it:
Fixes build of Garden Linux kvm and metal based flavours

only effects flavours using _boot, flavours using _secureboot were not affected
dracut[I]: Module 'network-legacy' will not be installed, because command 'dhclient' could not be found!

Special notes for your reviewer:

might be related https://github.com/dracutdevs/dracut/commit/e863807

network-legacy is just a fallback option. We want to use systemd-networkd instead. See #1879


os.tmpDir

Node is complaining that tmpDir is not a member of os inside of file 'lib/incomingform.js'.  Testing os from the repl shows that there isn't any issue on my system and I noticed that incomingform.js is the most recently updated file in the git repository.
Is there anyway that the os object returned by require for this file could be different than the standard os object?

It was probably 321e922b45cb368c25de32e2a3b0d7270dbdf87e - fixed


Implement tests

Implement some tests to check the CSS attributes of the components when props are present. More specifically, for example in the Row component, if the gutters and margin properties are present what is the expected CSS margin; No clue how this is done at the moment.

https://github.com/styled-components/jest-styled-components. I'll add some of those in the near feature. 👌


Understanding the experiments

Hi, thanks for the work. I have a question about the experiment section in the paper.
You mentioned
BALANCED : all three HRLs get 160K documents each
SKEWED : English gets one million, French half million, and Hindi 160K documents.
In the result tables, you also mentioned several setups, e.g. Balanced-4, Balanced-12 and Skewed-12. What are the 4 and 12 mean here? Thanks

Hi, thanks for reaching out. Balanced-4 setting involves training 3 separate models with 4 languages each (1 HRL and 3 LRLs) from the same family corresponding to each row in Table 2 of the paper. Balanced-12 setting involves training a single model with all 12 languages. I hope this makes it clear.


Implement Subscription expiry

From the FHIR spec:
"If a subscription nominates a fixed end date, the server automatically deletes it at the specified time."
ref. https://www.hl7.org/fhir/subscription.html

Re-opening since it was auto-closed and probably shouldn't have been.


Change 'Dependency' to 'Depends' in documentation

SconsEnvironment contains a function called 'Depends', not 'Dependency'. This simple PR changes
the documentation to match reality.
Contributor Checklist:

[n/a] I have created a new test or updated the unit tests to cover the new/changed functionality.
[n/a] I have updated master/src/CHANGES.txt directory (and read the README.txt in that directory)
[x] I have updated the appropriate documentation

You should add a blurb in CHANGES.txt 'updated design doc to have correct syntax for Depends()'

You should add a blurb in CHANGES.txt 'updated design doc to have correct syntax for Depends()'

Done and pushed.

BTW that doc's not actively maintained so there may be other out of date items there.  I encourage you to check the users guide and manpage. They get the most attention.

BTW that doc's not actively maintained so there may be other out of date items there. I encourage you to check the users guide and manpage. They get the most attention.

Thanks -- unfortunately, the page I fixed was the one that Google pointed me to when I searched for the solution to a problem I was having. There wasn't any immediate indication the docs were out of date so I figured they were still supposed to be current - hence the fix.

Please join us on IRC or our Discord server or the users mailing list.
See the website for info on how to join/contact via any of those.
https://scons.org/contact.html


[epic] Implement neural processes emulator

see

https://github.com/wesselb/neuralprocesses
https://yanndubs.github.io/Neural-Process-Family/text/Intro.html
https://kasparmartens.rbind.io/post/np/

Now that autoemulate uses the sklearn estimator template, it would be good to use skorch to implement Pytorch models, so that cross-validation and hyperparameter search are compatible.

[ ] #137

Leaving a note here that the 'neuralprocesses' package has overlaps with the Turing/BAS collaboration deepsensor, which I have been helping out with. I'd be more than happy to explore interests across these packages, and/or any engagement with the author of 'neuralprocesses' that we can imagine. Dropping comment here to keep it on our radar.

@mastoffel I have noted from last sprint planning meeting that we were thinking about setting up a knowledge exchange with the author of neuralprocesses about the package and how it works. It might be of interest to more people than just our group. Would that be something you think would be beneficial?

Just to note, also, that this might be something we want to do after AI UK so flagging it as not super priority...!

I did some more thorough research on this, and my conclusion is that the utility of neural processes for emulation is still a research question that requires more of a long term investigation. In particular, neural processes don't assume any particular properties of the underlying function to be approximated (other than that they can be approximated by a neural network), but rather attempts to learn them from contextual data before being fitted to a particular model. Gaussian Processes, on the other hand, specify mean and covariance functions to constrain the function space from which the model will be fit. Most other regression models that aren't neural networks have some other kind of constraint like this. Thus to make something that is adaptable to black box emulation, we need to specify example functions or enough simulation-specific data to allow those functions to be learned.
Thus, I don't think it's feasible to implement this in the library in the short term, and my suspicion is that until more is known about how to structure neural process, emulation, a neural network is probably going to have similar emulation performance. However, I am of the opinion that meta-learning is a potentially rich area to explore for the emulation problem that could overcome some of the existing challenges in black box emulation, and neural processes are the technical methodology with which this would be done.

Thanks @edaub, that's super helpful. So it seems like we would need a larger dataset initially, which we usually won't have I think. But I agree that we can just leave neural processes / meta learning as a research issue for the future of the package.

tagging @MartinSJRogers for awareness

conditional neural processes now implemented in #217


Add ModelBindingResult.IsFatalError and make body binding more consistent

part I of II for #2445 (with a duplicate code PR to follow)
needed for #2445 because new ModelState entries for values will make inconsisteny worse
change BodyModelBinder to use same keys for all ModelBindingResults and ModelState entries
return fatal error result if formatter adds an error to ModelState
update potential callers to avoid avoid ignoring IsFatalError
fix test attempting to serialize all of ModelState
will be borked with additional RawValues in state
fix two other tests that serialized ModelState but checked only IsValid

nits:

address minor inconsistencies in ModelBindingContext
use System.Reflection.Extensions package a bit more, where it's already referenced
remove some unused resources

/cc @harshgMSFT @rynowak

:shipit: from @rynowak

c4fa402


Set session level lock_timeout for pgroll connection

Set the session lock_timeout for the connection used by pgroll to run DDL operations.
The need to set lock_timeout for DDL operations to achieve zero downtime migrations is well documented [1], [2].
When a DDL transaction attempts to take an ACCESS EXCLUSIVE lock on a table while another transaction holds a conflicting lock (such as a long-running SELECT query's ACCESS SHARE lock),  other queries will queue up behind the DDL transaction until it is able to obtain the exclusive lock thus locking out reads from the table and causing downtime. By setting a lock_timeout the DDL transaction will abort if it is unable to acquire the lock before the timeout, freeing any other queries that were queued behind it.
The approach taken here is to set the lock_timeout at the session level. This assumes that pgroll has a direct connection to the Postgres instance rather than going through a connection pooler like PGBouncer. PGBouncer's statement or transaction mode may swap out the connection between transactions/statements meaning that the lock timeout may not be applied correctly. See [3] for a more detailed discussion of PGBouncer's behaviour here.
The new --lock-timeout flag (and PGROLL_LOCK_TIMEOUT env var) is used to control the timeout duration.
Fixes https://github.com/xataio/pgroll/issues/65

LGTM! also needs the docs update

The --lock-timeout flag (and env var) is documented in the new CLI reference docs section: https://github.com/xataio/pgroll/pull/156

sorry I merged this one by mistake, still ✅ so I think it should be fine. I'm thinking we should get the other 2 in and perhaps cut a new release?


no pyrealsense2.pyd after building pyrealsense2 project

Before opening a new issue, we wanted to provide you with some useful suggestions (Click "Preview" above for a better view):

Consider checking out SDK examples.
Have you looked in our documentations?
Is you question a frequently asked one?
Try searching our GitHub Issues (open and closed) for a similar issue.

All users are welcomed to report bugs, ask questions, suggest or request enhancements and generally feel free to open new issue, even if they haven't followed any of the suggestions above :)

Required Info

Camera Model
{ D400 }

Firmware Version
(<IP_ADDRESS>)

Operating System & Version
{Win (10

Platform
PC.

SDK Version
{ legacy / 2.10.1 }

I'm having issues with the python wrapper.
To start off following the setup instructions I ran CMake with the following parameters:

Then I opened the librealsense.snl file that was created in the ..\librealsense-master\build folder. Once open in visual studio I 'built solution' and it build without any errors. Here's a screenshot of the configuration manager: (the only two builds that were unchecked are install and uninstall)

According to the instructions there would be a directory build\x64-Release\Release\  containing the pyd file, which I don't see.
Any help would be highly appreciated!

Thanks for your reply @dorodnic, I did that and found a file named pyrealsense2.cp36-win_amd64.pyd! For some reason I tried searching for the realsense2.pyd specific file. I'm still having some trouble importing the package in python after both adding the .pyd file to the site-packages and adding both the .pyd and .dll files next to my script. Would I have to rename the pyd file to pyrealsense2.pyd?
Here's a screenshot of the build directory:

I think renaming it would help, but I'm not 100% sure why it is generated this way.
We also provide precompiled pyrealsense2.pyd in the installer (just as another fallback if you encounter problems)

Where is this file located?

C:\Program Files (x86)\Intel RealSense SDK 2.0\bin\x64\pyrealsense2.pyd I believe.

This can happen if you are using python3. At the moment we only pre-compile for python2.7 (adding pre-compiled version for python3 is in our backlog)

[Realsense Customer Engineering Team Comment]
@Jowizo, please just rename the pyrealsense2.cp36-win_amd64.pyd to pyrealsense2.pyd, and then copy pyrealsense2.pyd and realsense2.dll to your Python folder (yours should be C:\Programe Files\Python36-64\Lib\site-packages.
After that, just open the command line and type python to get into python environment, then type :

import pyrealsens2 as py

if there is no error, which mean the environment is set correctly, you can then run the example.

Thanks for the help guys, it was a configuration mistake on my end. Working like a charm now!

[Realsense Customer Engineering Team Comment]
great to hear that, close it.


Task #206979: Change menu name my group to discussions

removed from en.json and added in en.properties, hi.properties.


Should set soname and dynamically link libzADC

libzADC should be installed with a soname, into normal %{_libdir} location, with a soname.
Probably a matching soname, of the zlib library that is being mimicked.
genwqe_gzip
genwqe_gunzip
zlib_mt_perf
may not statically link libzADC.

Gabriel, can you have a look how we can fix that, please?

I found that we set the soname, but it points to the fully versioned name. I guess that is not right since it creates dependencies to previous versions and require relink once a new version comes out. I tried to fix that with: https://github.com/ibm-genwqe/genwqe-user/commit/9c7078a5acf1f3d883df045d446c58bfa3b7ad28
Resulting files are:
[haver@tul4eth3 genwqe-user]$ ll /usr/lib64/genwqe /usr/bin/genwqe* /usr/bin/zlib_mt_perf
-rwxr-xr-x. 1 root root  70464 15. Apr 14:49 /usr/bin/genwqe_cksum
-rwxr-xr-x. 1 root root 139176 15. Apr 14:49 /usr/bin/genwqe_echo
-rwxr-xr-x. 1 root root  70080 15. Apr 14:49 /usr/bin/genwqe_ffdc
-rwxr-xr-x. 1 root root 201392 15. Apr 14:49 /usr/bin/genwqe_gunzip
-rwxr-xr-x. 1 root root 201392 15. Apr 14:49 /usr/bin/genwqe_gzip
-rwxr-xr-x. 1 root root 138728 15. Apr 14:49 /usr/bin/genwqe_loadtree
-rwxr-xr-x. 1 root root 139008 15. Apr 14:49 /usr/bin/genwqe_maint
-rwxr-xr-x. 1 root root 139392 15. Apr 14:49 /usr/bin/genwqe_memcopy
-rwxr-xr-x. 1 root root   8362 15. Apr 14:49 /usr/bin/genwqe_mt_perf
-rwxr-xr-x. 1 root root 139112 15. Apr 14:49 /usr/bin/genwqe_peek
-rwxr-xr-x. 1 root root 139096 15. Apr 14:49 /usr/bin/genwqe_poke
-rwxr-xr-x. 1 root root  11608 15. Apr 14:49 /usr/bin/genwqe_test_gz
-rwxr-xr-x. 1 root root  70344 15. Apr 14:49 /usr/bin/genwqe_update
-rwxr-xr-x. 1 root root 206496 15. Apr 14:49 /usr/bin/zlib_mt_perf
/usr/lib64/genwqe:
insgesamt 204
lrwxrwxrwx. 1 root root     22 15. Apr 14:50 gunzip -> /usr/bin/genwqe_gunzip
lrwxrwxrwx. 1 root root     20 15. Apr 14:50 gzip -> /usr/bin/genwqe_gzip
-rwxr-xr-x. 1 root root 206216 15. Apr 14:49 libzADC-4.0.16.so
lrwxrwxrwx. 1 root root     17 15. Apr 14:50 libzADC.4.so -> libzADC-4.0.16.so
lrwxrwxrwx. 1 root root     17 15. Apr 14:50 libzADC.so -> libzADC-4.0.16.so
lrwxrwxrwx. 1 root root     17 15. Apr 14:50 libz.so -> libzADC-4.0.16.so
lrwxrwxrwx. 1 root root     17 15. Apr 14:50 libz.so.1 -> libzADC-4.0.16.so
I removed the lib duplication by fixing up the symlinks too. I hope that is better now.

@xnox @krisman Can we close this?

libzADC.4.so does not look right, should it not be libzADC.so.4 ?! and point to libzADC.so.4.0.16 ?
I haven't used this in a while, so I do need to pull latest master and retest this.

lrwxrwxrwx 1 haver haver      26 Nov 29 12:05 libzADC.so -> libzADC.so.4.0.18-44-g3ff5
lrwxrwxrwx 1 haver haver      26 Nov 29 12:05 libzADC.so.4 -> libzADC.so.4.0.18-44-g3ff5
-rwxrwxr-x 1 haver haver  630230 Nov 29 12:05 libzADC.so.4.0.18-44-g3ff5
The git-id is not used for the distro builds. So I guess it is now as you mentioned libzADC.so.4 pointing to libzADC.so.4.0.18.


Follow Python's "Best of the Best Practices" more closely

I'm not a PEP 8 code-snob, promise! I'm specifically talking about the getter- and setter-methods which are more at home in other languages, which nearly all of your widgets make use of. Especially at what I would consider the beginning of the project, you have a chance to make the Widget code very pythonic without any drawbacks (i.e. breaking backwards-compatibility).
Maybe I am being shortsighted, is there a reason why you are simply not using properties or attributes (when there's no logic involved in setting and/or getting the attribute)?
PS: "Best of the Best Practices"

Agree. I slowly port Remi to better practices and more PEP8 compliant as I change the code. There is much work to do, and I will accept patches for this.

Awesome, sounds great! I'll see about possibly contributing patches in the future :).

What setters / getters do you refer to specifically? the problem with set_xxx_listener is not that it is a setter per se, but rather that it feels foreign in gui frameworks, which would use a connect or bind verb widget.connect('onclick',function).
Are you referring to the widget.attributes dict?
If you can provide some more examples I can advise on which I feel are a the worst offenders.
btw: this is why it is not ready for pypi yet

I agree that the methods that register listeners should definitely stay methods -- possibly renaming them, possibly add_listener would make sense, since set_listener feel very singular, as if it's only possible to register a single listener, i.e. overwriting possibly previously registered listeners.
As for an example where it would make sense to use properties, check out the Button.set_text method, wouldn't it be just as easy to access Button.text? Same goes for TextInput, Label, etc.

Personally I think property setters in python feel to immediate and opaque to me. Take the case of (html) attributes and text on a widget. They are very different things in terms of implementation and of immediacy of API contract. I think having both appear as properties is misleading as it gives them an appearance of similarity. For the defining characteristic of the widget (Button text, Label text) etc I think it is fine to have that an explicit function call.

By opaque you mean that simply setting an attribute on the object might make the API less easily understandable, because it's not immediately clear that doing so will have an effect on the widget's state (as displayed on the website)? I suppose that's possible, and nothing one couldn't change easily if you ever decide otherwise.
I admit that I don't have much experience in API design in general and I'm not sure how convenient using Python's property decorator might be in the long run, I just figured it would make sense to use them, since this would certainly be an opportunity. But I think I get what you mean when you say it makes the code more opaque, possibly more divorced from the functionality and more "magicky" than it has to be. Unless I am misunderstanding?

Nope, you understand my point. The most common application of property getters and setters I see is to fix previously public attributes.
I am wary of using them.

Alright, I would have to agree then.
For something completely different then, regarding the naming of identifiers: You are using underscores in some setter functions, e.g. set_on_focus_listener but then some of your other methods are simply named onfocus -- what's the rationale behind that? (This is just nitpicking at this point, since most of my points have been ruthlessly shut down :P). Also since these methods are just used as internal callbacks that propagate the event to the registered listener, wouldn't it make sense to prefix these with underscores to make them "private", indicating to users that these methods are usually only used internally? I don't see an immediate reason why exposing these methods to the user would make sense.

All the things you point out are on my TODO list and I disagree with none of them.
There is a lot of public API leaking here.

It's good to hear that I'm not only making moot points. As I said previously, I'll try to see if I can possibly contribute patches in the future as well. Thanks for your quick replies!

Hi, I would only say this. Some methods like onfocus have to be as they comes because they are managed with event automation easly, reflecting javascript event names. Take care about that. But however there are a lot of methods and attributes having names improperly defined (because of my mistake) that have to be changed.


Ensure s_client sends SNI data when used with -proxy (1.1.1)

The use of -proxy prevented s_client from correctly sending the target
hostname as an SNI data.
Fixes #17232

This is the 1.1.1 version of #17248

This pull request is ready to merge

Pushed. Thanks.


Good Job

The price is very affordable but the results are satisfying

The price is very affordable but the results are satisfying

Sure

Thanks all


Update CNI to 0.7.5.

See https://github.com/containernetworking/plugins/pull/269.

We should do this for all supported branches.

This has been fixed.


Did Model Evaluation and Hyperparameter Tuning on Loan Status Prediction Model

I have added following features to Loan Status Prediction Model:

Hyperparameter Tuning
Model Evaluation

Hi @Akshat111111 , Please assign labels GSSOC and level 2 to this PR.
Resolves #219.


Create India.php

List of the Public holidays in India!!
Contributing a new country ?
I have contributed India as a new country!
I have created the test file as well.
Thank you

There already are PRs for India + this one lacks tests. Closing for now.


Tip: warn, danger and etc.

Align items with flex.
Usage example https://github.com/taskany-inc/issues/blob/main/src/components/ProjectSettingsPage/ProjectSettingsPage.tsx#L72

Should be consistent across bricks
https://github.com/taskany-inc/bricks/blob/main/src/components/Popup/Popup.tsx#L20


Update decoder dataloader

Fixed a few bugs with the file shard width, improved error handling to catch errors early on and only return good data, and added a readme file for the data loaders so we do not clutter the main readme with irrelevant information.

This is currently blocking the decoder trainer as it relies on these updates to work.


Cannot visualize my gaussian render

Hello! supersplat is very useful and I am so grateful for providing it.
My model can render, but the model cannot be visualized.
Has anyone encountered the same problem and have any suggestions?

The ply file is attached.
point_cloud.zip

Hi @lazyDamon,
Not sure what's going on with this model, will investigate.
Thanks for reporting this issue!

Ahh turns out this model contains NaNs at the beginning of X,Y,Z data and we don't handle this very well.
I'll work on a fix, but it's likely to take a little time since we must patch the engine.
Here it is loading up:


feat: add health for monovertex

fixes https://github.com/numaproj/numaflow/issues/1952

https://localhost:8443/api/v1/namespaces/default/mono-vertices/simple-mono-vertex/health
{
    "data": {
        "resourceHealthStatus": "healthy",
        "dataHealthStatus": "healthy",
        "resourceHealthMessage": "mono vertex \"simple-mono-vertex\" is healthy",
        "dataHealthMessage": "MonoVertex data flow is healthy",
        "resourceHealthCode": "M1",
        "dataHealthCode": "D1"
    },
    "errMsg": null
}

https://localhost:4327/api/v1/status
{
  "status": {
    "status": "healthy",
    "message": "MonoVertex data flow is healthy",
    "code": "D1"
  }
}


Add framework deployment for DDLM, update output text

Updated help and output text and added deployment behavior option for main packages that need to be deployed like frameworks. DDLM package definitions updated to have framework-like deployment.
Updated tests and verified installer tests are successful.

/azp run

LGTM modulo the comments I left. Minor or future things so I'm signing off to unblock completion when you're ready

/azp run


How to transform camera to up_right_depth coordinate ?

Thanks for your great work!
I want to create my own dataset(I have rgbd only), so I turned depth.png into point cloud(x,y,z)， which is in camera coordinate system. But how to turn it in up_right coordinate system?
I found reletive function in sungbrd_utils.py :
def project_upright_depth_to_camera(self, pc): pc2 = np.dot(np.transpose(self.Rtilt), np.transpose(pc[:,0:3])) # (3,n) return flip_axis_to_camera(np.transpose(pc2))
but how to get matrix Rtilt? (what this matrix means?)
Look forward to your reply.

Hi,
you don't actually have to convert the coordinates to upright, as long as you are consistent with the choice of a coordinate system throughout the model input.

@alar0330

you don't actually have to convert the coordinates to upright, as long as you are consistent with the choice of your coordinate system throughout the entire model input.

Hello,
If I use  pointclouds captured from an irregularly moving camera,can it predict the 6Dof infomation?

I think that after you use rgb+depth to calculate the coordinates of the points in the point cloud (in the camera coordinate system), you need to convert these points to the world coordinate system. Here the world coordinate system is the upright-depth coordinate system. As alar0330  said, it should be feasible if it can be consistent in all places (for example, 8 corner coordinates, object center coordinates, etc.)


Getting KeyError 'geometry' when using MLYDownloader. Can we improve the error handling when there's no images in the input area?

mly_downloader = MLYDownloader(mly_api_key)
mly_downloader.download_svi(output_dir, lat = 52.50, lon = 13.42, buffer=10)

I get KeyError 'geometry'. I realized that it's because there are no images in the buffered area. Please improve the error handling and show clearer error messages.

fixed with f05ba0e600a4bef456b542667874f8576cb0bda6


Any way to limit the CPU when it's generating thumbnails

Have just started using this software and it saves a whole lot of time finding things as an artist, just curious if there is a way to limit the CPU usage to around 70 percent when generating thumbnails?

Hi, are you using Windows or Linux ?

I am using Windows, there are also 4 instances of it running, although I installed it about 15 minutes ago

So even without opening a new folder where it 100 percent CPU usage, it's still using a significant amount of the CPU 13% * 3 instances so 39% when doing nothing. Seems very power hungry when it shouldn't be doing much

Update: after a restart it seems to be acting more like it should where the CPU use goes way down after a folder has thumbnails generated. But as mentioned in the topic it would still be good to put a limit on cpu usage when generating the thumbnails for the first time

Hum, did you open multiple file manager or only one ? Can you share a archive containing the file you were generating thumbnails from ?
I will try to reproduce.
Thanks,

Sounds more like a bug to me.

I think you could be right that I opened multiple explorer windows, now it generates them around 20 percent. I guess you can wipe this thread. Looking forward to further developments. Not sure if it's possible but would be amazing for maya ascii support , ztl, and 3dxml

I think you could be right that I opened multiple explorer windows, now it generates them around 20 percent. I guess you can wipe this thread.

I still think there is an issue here, I remember seeing some slowdown sometimes, so identifying it more cleanly is nice, and at least maybe we can do something to avoid using too much CPU and slowing down windows.

Not sure if it's possible but would be amazing for maya ascii support , ztl, and 3dxml

There is a dedicated issue for new file formats, coul you comment on it ?
https://github.com/f3d-app/f3d/issues/38
Thanks !

Not sure how to vote on that but appreciate the link. And there are definitely bugs that need to be ironed out as it's currently using 20 percent CPU with no explorer windows open

Not sure how to vote on that but appreciate the link

You can just comment on the issue and I will add them in my top comment.

Should add, the software started going crazy in terms of CPU usage opening up constant instances in folders with lots of nrrd and dicom files and didn't open them particularly well anyways. Is there a way to stop f3d from doing this as I already removed these formats from the config but it still does the same thing when opening that folder

My final thoughts on this, I tried another software called space-thumbnails which generated correct thumbs for everything including glb files which f3d doesn't support and it was much lighter on the system and had no cpu issues however it supports much fewer formats (needs fbx support) and is not a viewer. Will use it for thumbnails and f3d as a viewer for now until the cpu usage is ironed out. I'm not sure if looking at the code of that app will help but might be worth a look.
Keep up the amazing development, it's the fastest viewer I have found, also would be great to open two models at once and have them open in the same scene as some models are exported into parts, and some obj's do not open, or just show up as random tri's in a rough silhouette, but windows 3d viewer opens them fine just much slower. I'm happy to provide an example obj if needed but I assume you will have some that face this issue

Thanks for the feedback.

including glb files which f3d doesn't support

F3D does support glb files though :)

I'm happy to provide an example obj if needed but I assume you will have some that face this issue

Please do, in another issue preferentially.

Strange, glb's seem to not work completely for me. I will create a thread with 2 samples. And just so I'm not creating too many issue threads since it's still related to thumbnails, I installed space-thumbnails, and then f3d afterwards with the thumbnails option unchecked. However in every folder space-thumbnails didn't process f3d is generating thumbnails again

Here is an interesting part in space-thumbnails: https://github.com/EYHN/space-thumbnails#speed

Rendering thumbnails for 3D models may not be that fast. To keep your explorer smooth and available, we have made some limits here, if the model file size is larger than 300MB or takes longer than 5 seconds to load and render, it will be cancelled and display this image below.

@mwestphal I think we should have something similar in F3D

I do prefer f3d's thumbnails as space-thumbnails seems to pick up strange colours for my stl files, grey shaded ignoring smooth normals is honestly better and more consistent if all 3d files are like that. Although space-thumbnails did load some of my fairly large model files just fine without any high cpu usage

@Meakk : Indeed, I think it was discussed but not implemented. Some investigation needed,

So a nice generic way to fix that would be to have a config file for thumbnail and to add a --max-size option in F3D. If size is bigger than max-size, just do not load it.

Will be adressed by #401

@astandarduser: This has been addressed, file bigger than 100MiB will not get thumbnails, so the experience should be much smoother. If the 100 MiB is too conservative, you can modify it in the new thumbnail specific configuration file.
If you think this is too conservative for all users, let us know, we may consider increasing it in the config file directly if needed.
We will most likely not implement a "max-loading-time" option as it is a bit more complex to do cleanly, will use more CPU than max-size when triggered for a pretty similar result.
I'm closing this, feel free to reopen if needed :)

@astandarduser: This has been addressed, file bigger than 100MiB will not get thumbnails, so the experience should be much smoother. If the 100 MiB is too conservative, you can modify it in the new thumbnail specific configuration file.
If you think this is too conservative for all users, let us know, we may consider increasing it in the config file directly if needed.
We will most likely not implement a "max-loading-time" option as it is a bit more complex to do cleanly, will use more CPU than max-size when triggered for a pretty similar result.
I can provide a binary if you want to be able to test before the next release.
I'm closing this, feel free to reopen if needed :)

Awesome, looking forward to testing. And I'll wait for the release as I've been pretty busy lately


Fix required in README.md

In README.md change
$inventory->total_items; // total items count
to
$inventory->total_inventory_count; // total items count

Fixed. Thanks!


Nightly cargo is broken (2017-03-11)

rustup show:
nightly-i686-pc-windows-msvc (default)
rustc 1.17.0-nightly (e4eb964dd 2017-03-11)

>cargo -vV
thread 'main' panicked at 'called `Option::unwrap()` on a `None` value', src\libcore\option.rs:323
note: Some details are omitted, run with `RUST_BACKTRACE=full` for a verbose backtrace.
stack backtrace:
   0: git_diff_stats_insertions

The same for Linux version: backtrace.

Sorry, duplicate of #3819.


How can I implement this with OpenID on a different port/address?

I'm currently creating an EmberJS application,
So obviously my front end is done in EmberJS, and I've decided to go with Go (Golang) as my API service.
I've gotten the back end authentication working using Steams OpenID service
The problem I'm currently facing is, my API runs on localhost:3000 and my front end runs on localhost:4200.
So how can I make a request to my API service which will require human intervention part way through (to be able to type in the username / password on steams website before redirecting back) from my client side.
Right now
localhost:3000/auth/login is to initiate the OpenID request which redirects to steams website
and then
localhost:3000/auth/return is the callback on returning from steams website
I need to be able to some how use this authentication from the client side via some how to be able to authenticate users, e.g.:
$.get("localhost:3000/auth/login").then(() => {
    // How the hell am I supposed to login on steams website from here
});

any information would be great as this is really stumping me. If you'd like to see any code feel free to ask, I'm not sure what to provide as everything is working as intended, but I just can't figure out how to connect the API to the client and make OpenID work the way I need to. Thanks!

Please use the #e-simple-auth channel on the Ember Community Slack for questions like this and use github for issues only.


Random timeout/deadline exceeded unhandled rejections

Environment details

OS: Cloud Functions environment (Ubuntu 18.04)
Node.js version: NodeJS 16
npm version: Not sure, the one used by Cloud Functions
@google-cloud/spanner version: 6.1.2, but the issue has been happening since versions 5.x

Steps to reproduce
Run a Cloud Function using the Spanner client with an opened database, even without making requests.
Context
I've been using the NodeJS Spanner client for several projects for about a year now, and I've consistently noticed DEADLINE_EXCEEDED and other related errors not directly linked to my requests, usually when the client hasn't been used for several minutes.
What I mean by that is that those appear as unhandled rejections in NodeJS. Cloud Functions makes this more visible as unhandled rejections make the functions framework crash and log the error.
This issue occurs in many of my Cloud Functions performing various unrelated tasks using Spanner. Again, business code is never impacted as the unhandled rejections usually occur when the Cloud Function has been inactive for several minutes (or even several hours). This also means that this bug is much more visible when the minimum number of instances is set to >= 1, as the Cloud Function instances stay idle longer (or even indefinitely).
I see no reason why this wouldn't happen in other environments, but I've mainly been using Cloud Functions lately and can only testify for the behaviour in this context.
All Cloud Functions show fairly low activity (most of the time they are stuck at min_instances: 1 and sometimes reach 5 instances). The Cloud Spanner instance is running with 200 processing units and is underutilised (it never goes above 10% CPU).
The problem here is really about the rejections not being caught by the client. I'm not really worried about the errors themselves as they never seem to occur when running business operations/transactions (or at least they are being caught and properly retried in this case).
My only lead would be the keepAlive mechanism as it uses setInterval and periodically makes requests to Spanner, especially when sessions aren't being used. However after looking at the code I haven't seen anything obvious.
Stack traces
Unfortunately as those are unhandled rejections the stack traces are usually not very helpful, but one of them clearly references the Spanner client. To give you a rough idea of the rate of occurence of the issue, it has happened 33 times in 10 days for around 100 Cloud Functions, most of which have min_instances: 1 set. Out of the 33 errors, 4 are due to CANCELLED, 3 are Total timeout of API..., and the rest are DEADLINE_EXCEEDED.
Unhandled rejection
Error: Total timeout of API google.spanner.v1.Spanner exceeded 60000 milliseconds before any response was received.
    at repeat (/workspace/node_modules/google-gax/build/src/normalCalls/retries.js:66:31)
    at Timeout._onTimeout (/workspace/node_modules/google-gax/build/src/normalCalls/retries.js:101:25)
    at listOnTimeout (node:internal/timers:559:17)
    at processTimers (node:internal/timers:502:7)
Error: Process exited with code 16
    at process.<anonymous> (/workspace/node_modules/@google-cloud/functions-framework/build/src/invoker.js:92:22)
    at process.emit (node:events:527:28)
    at process.emit (node:domain:475:12)
    at process.exit (node:internal/process/per_thread:189:15)
    at sendCrashResponse (/workspace/node_modules/@google-cloud/functions-framework/build/src/logger.js:44:9)
    at process.<anonymous> (/workspace/node_modules/@google-cloud/functions-framework/build/src/invoker.js:88:44)
    at process.emit (node:events:527:28)
    at process.emit (node:domain:475:12)
    at emit (node:internal/process/promises:140:20)
    at processPromiseRejections (node:internal/process/promises:274:27)

Unhandled rejection
Error: 4 DEADLINE_EXCEEDED: Deadline exceeded
    at Object.callErrorFromStatus (/workspace/node_modules/@grpc/grpc-js/build/src/call.js:31:26)
    at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client.js:189:52)
    at /workspace/node_modules/@grpc/grpc-js/build/src/call-stream.js:111:35
    at Object.onReceiveStatus (/workspace/node_modules/grpc-gcp/build/src/index.js:73:29)
    at InterceptingListenerImpl.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/call-stream.js:106:23)
    at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:365:141)
    at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:328:181)
    at /workspace/node_modules/@grpc/grpc-js/build/src/call-stream.js:187:78
    at processTicksAndRejections (node:internal/process/task_queues:78:11)
    at runNextTicks (node:internal/process/task_queues:65:3)
// Same Error: Process exited with code 16 coming from the functions-framework.

Unhandled rejection
Error: 1 CANCELLED: Call cancelled
    at Object.callErrorFromStatus (/workspace/node_modules/@grpc/grpc-js/build/src/call.js:31:26)
    at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client.js:189:52)
    at /workspace/node_modules/@grpc/grpc-js/build/src/call-stream.js:111:35
    at Object.onReceiveStatus (/workspace/node_modules/grpc-gcp/build/src/index.js:73:29)
    at InterceptingListenerImpl.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/call-stream.js:106:23)
    at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:365:141)
    at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:328:181)
    at /workspace/node_modules/@grpc/grpc-js/build/src/call-stream.js:187:78
    at processTicksAndRejections (node:internal/process/task_queues:78:11)
// Same Error: Process exited with code 16 coming from the functions-framework.

Hi @flovouin, you mentioned the keepAlive mechanism in sessions. Do these errors disappear when you configure the session pool to have a lower keepAlive value?

Hi @asthamohta, thank you for your response.
I haven't tried lowering the keepAlive value, I'll do that.
I did however lower the number of sessions to avoid too many unused session. Indeed, each Cloud Functions (V1) instance only handles one request at a time, which in my case is basically one transaction at a time.
I've set { min: 5, max: 20, incStep: 5 } down from 25/100/25. (By the way it looks like the documentation doesn't match the default values.)
I haven't changed the maxIdle: 1 parameter because from what I understand, min will always enforce to keep more sessions anyway.
This might have lowered the number of errors, but it's only speculation for now. I ran this configuration over the past few days and had a single error... 3 days after the last request to the Cloud Function:

I set keepAlive to 15 minutes (down from the default of 30) however it did not improve the situation. It actually looks like it worsened it, which could make sense: decreasing keepAlive means that pings occur more often, which could increase the probability of getting an error during the keep alive request.
Here's an example of what happened last night for a Cloud Function with min_instances: 1. The Cloud Function was deployed and never called. However many hours after deployment the unhandled rejection occurred several times:

It did not happen for any other Cloud Functions (tens of them) around the same time. However, as previously stated, the error does occur for any Cloud Function (at other times) independently of the business logic it implements.
I don't know if these errors are "expected" from time to time from Spanner or not, but the real problem for me is that the rejection is not handled, meaning it creates a lot of noise and errors in our logs.

Okay so I've got a reproducible way to generate unhandled rejections. Create a test instance/database in a GCP project and allow a service account to read from it. Run the following code (it can be run locally with the service account credentials):
import { Spanner } from "@google-cloud/spanner";

async function test() {
  try {
    const database = new Spanner().instance("test").database("test", {
      keepAlive: 0.1,  // Pings the sessions every 6 seconds.
      idlesAfter: 0.01,  // Ensures newly created sessions are pinged.
    });

    await new Promise((resolve) => setTimeout(resolve, 600000));
  } catch (error) {
    console.log(`Caught error: ${error.stack}`);
  }
}

test();

process.on("unhandledRejection", (reason) => {
  console.log("This was not caught anywhere:");
  console.dir(reason, 10);
});

As soon as the code has started, remove the permissions from the service account. It may take up to a minute, but eventually pings on the sessions will fail and this will result in unhandled rejections:
Error: 7 PERMISSION_DENIED: Caller is missing IAM permission spanner.sessions.delete on resource projects/my-project/instances/test/databases/test.
    at Object.callErrorFromStatus (/test-spanner/node_modules/@grpc/grpc-js/build/src/call.js:31:26)
    at Object.onReceiveStatus (/test-spanner/node_modules/@grpc/grpc-js/build/src/client.js:189:52)
    at /test-spanner/node_modules/@grpc/grpc-js/build/src/call-stream.js:111:35
    at Object.onReceiveStatus (/test-spanner/node_modules/grpc-gcp/build/src/index.js:73:29)
    at InterceptingListenerImpl.onReceiveStatus (/test-spanner/node_modules/@grpc/grpc-js/build/src/call-stream.js:106:23)
    at Object.onReceiveStatus (/test-spanner/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:365:141)
    at Object.onReceiveStatus (/test-spanner/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:328:181)
    at /test-spanner/node_modules/@grpc/grpc-js/build/src/call-stream.js:187:78
    at processTicksAndRejections (node:internal/process/task_queues:78:11) {
  code: 7,
  details: 'Caller is missing IAM permission spanner.sessions.delete on resource projects/my-project/instances/test/databases/test.',
  metadata: Metadata {
    internalRepr: Map(1) { 'grpc-server-stats-bin' => [Array] },
    options: {}
  },
  note: 'Exception occurred in retry method that was not classified as transient'
}

Obviously, the error itself is legitimate. However I'd argue that it should be handled in the session pool logic as there's no way to catch it outside the Spanner client. My guess is that something similar occurs with the errors I'm seeing on real use cases.

This makes sense. Give me some time to figure out which part of the code the error should get caught in and I will add code to catch this. I am going to be on vacation for a week but I will look into this when I get back.

Hey @dannnnthemannnn,
No unfortunately I don't have a proper workaround.
I looked a bit at the code for session management / the session pool, and indeed I was thinking I could force the recreation of the sessions before the problem occurs or something like this.
However it looks like there are two problems here:

On my side the errors don't occur on the critical path and the problem is that I can't catch them. They're causing a lot of noise in our logs and alerting policies, and make the Cloud Functions crash.
The fact that those errors occur so frequently, and for you it's even worse as they happen during responses to client. It's a bit suspicious that a service like Spanner would timeout so frequently, but I don't have much heavy production use experience with it. Maybe this is worth a Support ticket?

@flovouin Can you please share the grpc-js version used in your cloud function ?

@surbhigarg92 The issue has been happening for a while now, so probably a lot of versions of grpc-js have been used. Currently I'm using the latest (1.6.8) and the errors still occur. I'm not depending on grpc-js directly though, only through other GCP dependencies like the Spanner client.

Hi @flovouin just trying a couple of ideas here, can you please try increasing the timeout limit in the function details (max time is 540 seconds, default is 60 seconds).
This is how you can do it:
/**
* Set timeout and memory allocation
* In some cases, your functions may have special requirements for a long timeout value or a large * allocation of memory.
*You can set these values either in the Google Cloud Console or in the function source code (Firebase only).
*/
const runtimeOpts = {
  timeoutSeconds: 540, // 9 minutes
  memory: '2GB'
}
/**
 * When a csv file is uploaded in the Storage bucket it is parsed automatically using
 * PapaParse.
 */
exports.covertToJSON = functions
  .runWith(runtimeOpts) // <== apply timeout and memory limit here!
  .storage
  .object()
  .onFinalize( object => {
[...]

For me when this happens it is on a function that usually takes <1sec and now suddenly it times out at 60 seconds consistently until I redeploy the function. I have a log alert setup to notify and I redeploy the function and it works ok, but until I redeploy our app is just broken.

Hi all, just wanted to ping here again. This is completely breaking my cloud functions until I redeploy them. Today I am going to attempt to detect the problem, then close the spanner connections and reopen them again but wanted to see if anyone else had solutions or if a fix might be in the works.

Hey @asthamohta,
Sorry I was only holidays, just seeing this now.
I can change this if you want, but as I was explaining:

business code is never impacted as the unhandled rejections usually occur when the Cloud Function has been inactive for several minutes (or even several hours).

None of my Cloud Functions takes more than 30 seconds to run, so I don't expect changing the timeout to do anything. The Cloud Functions' invocations always complete successfully within the current timeout of 60 seconds.

I see, also what we are suspecting is that the background tasks get killed when the function is completed and when a new call comes and it is restarted, spanner tries to ping the sessions which fails. Can you also try passing your session pool settings as following to check if this might be the case:
{
    idlesAfter: 500000, // This will make sure a session is (almost) never considered idle
    keepAlive: 500000, // This will practically disable the keep-alive calls for sessions
    acquireTimeout: 15000,
    concurrency: 100,
    idlesAfter: 5,
    max: 400,
    min: 25,
    incStep: 25,
    fail: true,
}

I've deployed the Cloud Functions using the Spanner session pool configuration from your message. I only changed min, max, and incStep because Cloud Functions (V1) don't need a high number of sessions as they serve a single request at a time.
I will let you know in the next few days whether this change affects the number of unhandled rejections I'm observing.

Sure let me know :)

Ha, I was just about to write back!
I haven't noticed any error in the past 2 days on the environment where I made the configuration change. I just had to use 30000 minutes instead of 500000 as a "big number", otherwise the duration doesn't fit in a signed 32 bit integer once converted to milliseconds, and setTimeout/setInterval complains (and falls back to a 1 millisecond interval).
I'm not entirely sure what this configuration implies performance-wise. From what I understand, idle sessions older than 1 hour will get deleted anyway, and new ones will be created?
Still taker of a long term solution, though. :-)

Thanks @flovouin, you're correct about the session thing. The long term solution is Cloud Function servers don't completely kill all background activity in case there are no requests. I will check in with my team if any such request is being worked upon currently.

Okay, thanks. I guess this will do the trick for now.
I think it would still be worth looking into unhandled rejections though, as this is not directly linked to Cloud Functions and could happen anywhere. :-)

@asthamohta My situation is slightly different here. My cloud function is running on cloud functions v2 which I think is basically just a long running server. (Its possible it doesnt give it compute resources though while requests are not in flight.). These functions run on cloud run.
For us every once and awhile we make a spanner call and i get a DEADLINE_EXCEEDED error that says Exception occurred in retry method that was not classified as transient. I was thinking it could be due to an unhandled rejection so it eventually times out since the exception wasnt handled anywhere. Would the configuration you mentioned above solve this problem?
THe problem persists until I redeploy the function. Though I now am going to detect the failure, close the spanner connection and reopen it, and also close it once every hour and restart it. Unfortunately I think if we have any requests in flight while I am doing this close/reopen I assume they will fail in the meantime.
Any guidance would be super helpful! For our ~30 functions this happens maybe once or twice a day to one of the functions with no real pattern in which one it happens to.
Unhandled error Error: 4 DEADLINE_EXCEEDED: Deadline exceeded
    at Object.callErrorFromStatus (/workspace/node_modules/@grpc/grpc-js/build/src/call.js:31:19)
    at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client.js:190:52)
    at /workspace/node_modules/@grpc/grpc-js/build/src/call-stream.js:111:35
    at Object.onReceiveStatus (/workspace/node_modules/grpc-gcp/build/src/index.js:73:29)
    at InterceptingListenerImpl.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/call-stream.js:106:23)
    at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:365:141)
    at Object.onReceiveStatus (/workspace/node_modules/@grpc/grpc-js/build/src/client-interceptors.js:328:181)
    at /workspace/node_modules/@grpc/grpc-js/build/src/call-stream.js:187:78
    at processTicksAndRejections (node:internal/process/task_queues:78:11)
for call at
    at ServiceClientImpl.makeUnaryRequest (/workspace/node_modules/@grpc/grpc-js/build/src/client.js:160:30)
    at ServiceClientImpl.<anonymous> (/workspace/node_modules/@grpc/grpc-js/build/src/make-client.js:105:19)
    at /workspace/node_modules/@google-cloud/spanner/build/src/v1/spanner_client.js:214:29
    at /workspace/node_modules/google-gax/build/src/normalCalls/timeout.js:44:16
    at repeat (/workspace/node_modules/google-gax/build/src/normalCalls/retries.js:80:25)
    at /workspace/node_modules/google-gax/build/src/normalCalls/retries.js:118:13
    at OngoingCall.call (/workspace/node_modules/google-gax/build/src/call.js:67:27)
    at NormalApiCaller.call (/workspace/node_modules/google-gax/build/src/normalCalls/normalApiCaller.js:34:19)
    at /workspace/node_modules/google-gax/build/src/createApiCall.js:81:30 {
  code: 4,
  details: 'Deadline exceeded',
  metadata: Metadata { internalRepr: Map(0) {}, options: {} },
  note: 'Exception occurred in retry method that was not classified as transient'
}

For Cloud Run perhaps you can try this configuration to allot resources for things to run in the background: https://cloud.google.com/blog/topics/developers-practitioners/use-cloud-run-always-cpu-allocation-background-work. Can you try if this resolves the issue? What my guess is that when the function restarts, our code tries to ping the session and since the sessions are deleted by now it fails. I think these configurations should solve the issue but before that see if the "always-on" works for you because that would be a better solution

@asthamohta I looked into turning on cpu allocation always allocated but unfortunately it looks like that is difficult to do in cloud functions right now.
Are the settings above good to use in prod moving forward to avoid this error do you think? Or do you have any advice on what the best settings would be? Is there anything that can tell nodejs-spanner to recover when it hits that problem of the session being deleted and stuff just timeing out and getting DEADLINE_EXCEEDED until we redeploy?
For reference: My bug for cloud functions with CPU allocation on https://github.com/firebase/firebase-tools/issues/4933

@dannnnthemannnn To be honest I wouldn't call these parameters production ready. It just consists in setting a parameter that wasn't made for this to an extremely high value. Setting it too high might even have some side effects.
@asthamohta Unfortunately the error has occurred again after a few days. It's not as frequent as before, but it still occurs. Also, because the errors are still unhandled, they still make noise in Error Reporting / Cloud Logging / our alerting system.
The diagnosis (about Cloud Functions killing background activity) makes sense, and I don't really mind that the keep alive mechanism cannot work in this case. But I'd suggest fixing the error handling like we discussed, because that's unfortunately something we cannot work around outside the Spanner client itself.
Also, although I'm aware this is more work, it might be useful to have a proper parameter for disabling the keep alive mechanism when it's expected not to work. Currently it seems that working around it with the existing parameters does not work 100% of the time, and it makes it hard to know whether there is actually something more to look into or if it's just that the existing parameters are not made for this.


roku-card - roku-card-editor clash?

When I try to edit a roku card I get "'CustomElementRegistry': this name has already been used with this registry" and can't.  If I remove roku-card-editor from resources I can edit with no error.
Maybe a separate issue, but when I create a popup-card, the syntax seems to be accepted but the card doesn't appear in lovelace except in edit mode.  No log or browser errors.
This is also in my log, not sure of the culprit:
http://<IP_ADDRESS>:8123/lovelace/10:0:0 Uncaught
resources:
  - type: js
    url: /local/card-tools.js?v=6
  - type: js
    url: /local/popup-card.js?v=6
  - type: module
    url: /local/roku-card-editor.js?v=6
  - type: js
    url: /local/roku-card.js?v=6

card:
  entities:
    - entity: media_player.roku_kitchen
      icon: 'mdi:alpha-r-box-outline'
      name: Kitchen
  type: entities
entity: media_player.roku_kitchen
title: Kitchen Roku
type: 'custom:popup-card'

entity: media_player.roku_kitchen
name: Kitchen Roku
theme: darkcyan
type: 'custom:roku-card'

HA 0.87.1, hassos 2.8

Thanks, I'll check it out

I'm not having any issues on 0.87 with the editor, but can confirm that the popup-card is no longer working with it.
Will update to 0.87.1 later and confirm the editor is still working

@bmorgan99 are you using the custom updater? I don't the the editor is updated when you use that, so perhaps there is a mismatch between versions?

popup card is working for me now, with no changes and no system updates. I can't explain it.

Not using the custom updater.
What/where is the CustomElementRegistry and how do I clear it?
Is there a way to remove all traces of custom cards and start over?

You're not using Firefox by chance, are you?

Chrome


Test names in coverage

Adds the names of the tests to the end of the coverage report, updates bbc-a11y --coverage table so that it does the same, and adds a npm run generate-coverage task to regenerate the markdown at any time.
https://github.com/bbc/bbc-a11y/blob/d5c08409e46bd722ba5dfcd8a799d78d04967502/guides/coverage.md

Happy to amend this if the format can be improved.

Hmmm ... I can see the dilemma. I hadn't thought about the manual tests being listed, and I'm not sure if that is fully necessary as manual test info is not needed for skipping tests via a config.
I had imagined an additional column in the existing table that lists the automated tests. For example:
| Principles | No | No | Yes | All documents must have a W3C recommended doctypeMarkup must validate against doctypeAnchors must have hrefs |
I'm not sure how the semi-automated test would fit with this. It needs to be configured to be part of the automation, so perhaps the 'Yes' could link to some documentation in a footnote or on another page.
Is this feasible with the auto-generation?


[WIP] Introduce LSP mode for TSServer with some initial functionality

First step towards fixing #39459.
This PR targets the feature/lspSession branch, since we will likely want to implement the full LSP mode over the course of several PRs.
Here, we introduce a new command-line flag --useLsp for TSServer that allows it to communicate with a client via the Language Server Protocol.
To do so, we introduce two new projects: one in the src/jsonrpc folder that implements reading and writing of the JSON-RPC protocol over Node streams (based on the implementation of vscode-jsonrpc), and the other in the src/uri folder that implements parsing and formation of standard URIs (based on the implementation of vscode-uri).
Given these new utilities, we are able to implement a new subclass of NodeSession called LSPSession. In contrast with our existing IOSession, which uses our own custom message protocol, LSPSession uses the Language Server Protocol to communicate with a consuming client. When a message is received and its contents parsed into objects of LSP spec types (defined in src/server/lspProtocol.ts), it is handled by the corresponding method handler defined in src/server/lspHandlers.ts.
Note that when messages are received, they are explicitly queued as part of the Node.js poll phase (where I/O is handled), then processed as part of the Node.js check phase (where setImmediate callbacks are invoked). This allows LSP cancellation messages to be received in order to cancel requests that have not yet been handled.
At this stage, we have implemented handlers for the following LSP messages:

initialize
initialized
shutdown
exit
textDocument/didOpen
textDocument/didChange
textDocument/didClose
textDocument/hover
textDocument/signatureHelp

To validate the changes made to the Session class and the implementations of the LSP handlers, we have implemented a TestLspSession class (to be compared with the existing TestSession) that can be used to write unit tests for LSP functionality. Such tests are provided here for the hover and signature help features in the src/testRunner/unittests/tsserver/lsp folder.

To do so, we introduce two new projects: one in the src/jsonrpc folder that implements reading and writing of the JSON-RPC protocol over Node streams (based on the implementation of vscode-jsonrpc), and the other in the src/uri folder that implements parsing and formation of standard URIs (based on the implementation of vscode-uri).

I wonder why it was necessary to re-implement those. Despite the name, those packages are used by most if not all JS/TS-based language servers and are compatible with any editor.

Is there a plan to merge this ?

Ben and I have both been off the team for several years, but I think @jakebailey might be looking into this?

Yes, it's on my list, though I don't think this PR itself will be a part of it directly.

Do you already have PR to follow your work?
I am a Zed user, and typescript lsp is very slow versus tsserver...

No, not yet. But that LSP wrapper is more or less the same as tsserver so not sure why you'd have a performance difference.

This is what this issue seems to think : https://github.com/zed-industries/zed/issues/5166

I think there's probably some crossed wires there - other editors like Helix which do use the LSP wrapper don't seem to have the same massive delay on returning results.
It definitely seems to be a lot more prominent in larger monorepos, which makes me think it's related to an IO issue
Sure, cleaner LSP bindings that are supported directly by the team would be great, but I don't see why there would be such a big disparity compared to tsserver


Error when loading shared libraries libpam.so.0

After I have downloaded the zip to Linux 64 bits (Im in Ubuntu 14.04, 64 bits), I runned:
$ ./gogs web
And got:
./gogs: error while loading shared libraries: libpam.so.0: cannot open shared object file: No such file or directory
Someone can help me about this?

Wrong repo, sorry


⚠ Samsung has degraded performance

In dc2cee2, Samsung (https://samsung.com) experienced degraded performance:

HTTP code: 200
Response time: 2824 ms

Resolved: Samsung performance has improved in e41450a.


Update the Docker file to use latest ubi image

Update the Docker file to use latest ubi image

/retest


Reloading env variables

Hi there, I would like to be able to reload overmind to take into account new env variables without having to completely kill it and restart it. Did you ever think about this use case? Thanks.
PS: I love overmind. I think it's the best but most underknown .env/process manager ever created and I try to share it as much as possible.

Hey! Glad you love Overmind!
Even if I manage to rewrite env variables of the running tmux server (that seems problematic for me), they won't be rewritten for already running processes. And restarting all processes doesn't look different from restarting the whole overmind.

Indeed that's very similar and fine for me, thanks again!


[Enhancement] Add user query setting

Summary
This PR closes #186 where we have included the ability to query incidents by assigned users.
It also includes the following changes:

UI layout of query settings changed where you first filter by team, which influences what users and services can be used
Conditional disabling of react-select lists when users and services are being fetched
Increased pagination limits for users and services in order for quicker fetches during initialisation and updates
Mock user object for unit test coverage
Minor refactors for code consistency
Resolves #156 so that we are asserting on the correct data in the incident table

Screenshots
Incidents with assignment User A1 or B1.

All users under Team A.

Disabled react-select while large number of users are being fetched on initialisation.

Test failure has nothing to do with additional functionality. Merging and closing PR.