Unsigned native apps

As @larrysalibra talked about App Mining NIL proposals:

We’ve recently seen a number of native apps for both macOS and Windows. Most of these apps are unsigned by the developer and will not install in default configurations of both operating systems unless the user overrides the security settings to allow installation of software from unknown developers. This is dark pattern behavior we don’t want to encourage because it unsafe for users and unsafe for our reviewers.
Policy: Apps must be installable using the default security settings on a fresh install of the targeted operating system. Apps that require overriding default operating system security settings will be ineligible.

Please help me to understand these:

Why these are safety issues?
Does Blockstack want to play the rule of closed app stores? For example, like Google Play that controls the app identities and how they work or give the app creator what it provides the users? An open and private world with a safe identity to let users choose what they want? Or as we call it here CantBeEvil.
What part of buying a license will help safety or how it is aligned with values of Blockchain, decentralisation or privacy?
Who controls the web safety? We have encryption and SSL, and they are there for Desktop apps too, so why give the OS providers ransom for a sign?

These messages are mostly not a safety issue, and they are primarily a Buy-A-License from OS provider issue.
We have BlackHole, and it has Windows, and Mac clients and both of them have security messages Larry talked about. We did try to solve them before releasing apps as no one wants to give their users an ugly welcome, but some problems prevented us:
Microsoft and Apple will sell you the license if you register the app completely with them. Otherwise, they show you the message even if there is no security flaw with the app.
Take Norton case, they flagged BH without any security reason, and a user asked them, and they removed it quickly.
We had emails from some users that told us about this, and almost all of them knew the situation and just wanted to let us know. As we targeted professional users, that was and still not an issue for us, and the user base is growing beautifully for an app with a need to install, and more people are talking about it, eg today post.
If this wants to go with the proposal, either we should leave our privacy behind and go with OS providers (who are not good famous of privacy or even safety) or leave the native apps behind as there is no control on the web apps.
My thought is that it is an OS issue, not Blockstack or NIL as it is not related to privacy, security, identity, storage or even encryption. I would be happy to know more about how we can solve this and provide a better experience or also there is a way to prevent these messages.
P.S. Please take a look at VirusTotal report for a proper safety check.

Does Blockstack want to play the rule of closed app stores? For example, like Google Play that controls the app identities and how they work or give the app creator what it provides the users? An open and private world with a safe identity to let users choose what they want? Or as we call it here CantBeEvil.

What part of buying a license will help safety or how it is aligned with values of Blockchain, decentralisation or privacy?

Hi @Walterion1 - thank you so much for bringing up these points! I find them very compelling.
I agree with you that centralized certificate authorities aren't aligned with our ethos either. Software developers should not have to ask permission to develop or distribute apps.
I'm prepared to change the policy on unsigned apps until we have a way to distribute apps securely with Blockstack names. For, now we won't apply this policy this month (September).
I'd still like to hear thoughts of others.

Thank you for the open thoughts, Larry. I will be glad to have such a secure way to distribute the apps, and I like to see more native apps integrated with Blockstack.

@jeffdomke Our conclusion on this issue is we will NOT penalize apps for being unsigned. Thanks to @Walterion1 for providing clear reasoning as to why that decision is most clearly aligned with our vision and goals.
This issue can be closed unless anyone else wants to discuss further.


Ingawei/man 956 rewrite activity feed to use supabase

Oh yeah, and improving the latency is a big win for everyone that loads the home page!


UX: RadioTable should show selected row in the table body

See #5230 comments for a discussion on this issue. Right now, we show the selected row in the footer and not in the body. The options are:

show in footer and body (first choice, i think?)
show in breadcrumb header and body
show only in body (a normal radio table)
show only in footer (this is the behavior in master as of this writing)

The proposal is to try out option 1.

I think putting it into the breadcrumb header might become problematic for long context names


Log file rotation

The path you chose for the local log file (/var/log/openvpn-tcp443.log) will not be rotated by logrotate.
It's better to not provide this directive and let syslog do the job
# VPN logfile location
# If you don't specify a location here, logging will be done through
# syslogd and write to /var/log/messages
log-append /var/log/openvpn.log

openvpn now logs to journald (22c5aaf)


messy TOC

In the TOC folders are mixed with markdown headers.
This makes it difficult to orientate.

Agree.  I think the combined approach is too difficult to have distinct styles from, and would benefit from additional hierarchy.
What about this:

The ToC is split into two hierarchies - one for the file/directory structure, the other being the headers for the current file
Search still searches all files & headers

I think that would make it simple to understand!


Apollo fails to drive forward when vehicle starts on top of the stop line

Describe the bug
When the ego vehicle approaches the stop sign, it goes through pre_stop, stop, creep and intersection_cruise stages, and resumes moving after stopping before the stop line.
However, if I initialize the scenario by placing the ego vehicle on top of a stop line, the planning module does not recognize it is in one of the stop sign stages, and never begins moving to complete any routing request.
To Reproduce

Start Dreamview
Modify the parameter passed to send_localization to 0, -1, -2, or -3 in the provided script. (under "Additional Context" section)
Run provided script to send localization to Apollo.
Turn on SimControl, planning, routing.
Send a routing request to make the vehicle go straight, by clicking on a point across the junction, and "Send Routing Request" button.
Observe routing produced trajectory but no planning trajectory, thus vehicles stops indefinitely.
Turn off Sim Control.
Repeat step 2-6, but changing the value in Step 3 to -4 or -5. Observe vehicle completes routing request.

Expected behavior
Although the scenario started with the vehicle on top of the stop line, the vehicle should recognize its current scenario being stop_sign/unprotected/stop, or some other scenario and resume moving forward to complete the routing request.
Screenshots
Expected routing request on Borregas Avenue

Routing will be completed if the vehicle's head was behind the stop line

Routing will not be completed if the vehicle's head has passed the stop line

Dreamview when reproducing the bug.

Additional context
provided_script.zip
Scenario manager is calling reference_line_info.FirstEncounteredOverlaps() to check for stop sign overlap, and reference_line_ starts from the head of the vehicle. So if the head of the vehicle has passed the stop line, Scenario manager will fail to recognize there exists a stop sign overlap.
https://github.com/ApolloAuto/apollo/blob/9367741c57753e07c753bad82e1eac09876b344a/modules/planning/common/reference_line_info.h#L334-L339
From the planning log, I see messages like
E0805 19:05:17.417805 24312 st_bounds_decider.cc:316] No valid st-boundary exists.
E0805 19:05:17.417834 24312 lane_follow_stage.cc:177] Failed to run tasks[ST_BOUNDS_DECIDER], Error message: No valid st-boundary exists.

W0805 19:05:17.418464 24312 speed_profile_generator.cc:41] init_v = 0, init_a = 0
W0805 19:05:17.418471 24312 speed_profile_generator.cc:47] Already stopped! Nothing to do in GenerateFallbackSpeed()

To fix this bug
I believe there are 2 options:

Extend the reference line to include the length of the vehicle. So reference line starts from the back of the vehicle. I am not sure if this is a good idea if other modules are implemented assuming reference line starts from the head of the vehicle.
Modify how overlap is calculated, to consider the length of the vehicle.
https://github.com/ApolloAuto/apollo/blob/9367741c57753e07c753bad82e1eac09876b344a/modules/map/pnc_map/path.cc#L494

Thanks for your advice, we will investigate this bug


Support image lazy-load in Chrome 75

@sorcererxw hi~Is this website now built on this source code? https://sorcererxw.com/zh


Fix broken az feature commands in non latest profiles

Fix: https://github.com/Azure/azure-cli/issues/7259

please compare with 2018-03-01-hybrid and also wait for confirmation from stack team


Fix oiio dependent apps compilation

This could be used to fix the compilation errors when building OCIO 1.1 (while waiting for 2.0) application using OIIO >= 1.8.5. This occured to me lately during a fresh Mac install with brew (brew install opencolorio --with-python trigger a compilation that fails in the end).
Would be glad to have others thoughts.

Thanks, remia for your contribution to the OCIO library, and sorry for the delay without any response to your contribution.

Hi Patrick, no worries !
I think @lgritz said he would submit a patch for this (in OIIO ?), maybe we should wait for his input on this.

Pull request #520 should have fix the issue for master.

Candidate to close since #520 and #601 have been merged.
FWIW, OCIO 1.1 specific changes should be submitted to the RB-1.1 branch. Thanks for the heads up on the homebrew issue though

Agreed, should I close it ?


juicefs gc fails because of timeout at ListAll objects

What happened:
juicefs gc fails after 30 seconds when it times out on ListAll
What you expected to happen:
For it to succeed.
How to reproduce it (as minimally and precisely as possible):
execute: juicefs gc 'mysql://user:pass@(fqdn:3306)/bucket'
Anything else we need to know?
juicefs version 1.1.2+2024-02-04.8dbd89a on MinIO VERSION 2024-05-10T01:41:38Z and Percona XtraDB Ver 8.0.36-28.1 for Linux on x86_64 (Percona XtraDB Cluster (GPL), Release rel28, Revision bfb687f, WSREP version <IP_ADDRESS>)
Looking at the MinIO S3 trace the remote connection disconnects at the 30 second mark before it completes the ListAll. I cannot find a way to set the juicefs timeout for this.

What's the exact error did you get? JuiceFS doesn't force any time out, but if the object storage returns an error, the gc fails as expected.

copec@pleskstorage1:~/build/juicefs$ META_PASSWORD=**** ./juicefs gc mysql://pleskbackup@(pleskstorage1.xmission.com:3306)/jfs_plesk_backup?tls=skip-verify --verbose
2024/06/04 16:26:38.092053 juicefs[8560] <DEBUG>: maxprocs: Leaving GOMAXPROCS=24: CPU quota undefined [maxprocs.go:47]
2024/06/04 16:26:38.096616 juicefs[8560] <DEBUG>: Debug agent listening on <IP_ADDRESS>:6060 [main.go:321]
2024/06/04 16:26:38.096439 juicefs[8560] <INFO>: Meta address: mysql://pleskbackup:****@(pleskstorage1.xmission.com:3306)/jfs_plesk_backup?tls=skip-verify [interface.go:504]
[xorm] [info]  2024/06/04 16:26:38.099644 PING DATABASE mysql
2024/06/04 16:26:38.111544 juicefs[8560] <WARNING>: The latency to database is too high: 12.594193ms [sql.go:311]
2024/06/04 16:26:38.118213 juicefs[8560] <DEBUG>: Creating minio storage at endpoint https://pleskstorage1.xmission.com:9000/pleskbackup?tls=skip-verify [object_storage.go:167]
2024/06/04 16:26:38.121549 juicefs[8560] <INFO>: Data use minio://pleskstorage1.xmission.com:9000/pleskbackup/plesk-backup/ [gc.go:101]
2024/06/04 16:26:54.782544 juicefs[8560] <DEBUG>: Iterating objects from minio://pleskstorage1.xmission.com:9000/pleskbackup/plesk-backup/chunks/ with prefix  start "" [sync.go:81]
2024/06/04 16:26:54.785092 juicefs[8560] <DEBUG>: Listing objects from minio://pleskstorage1.xmission.com:9000/pleskbackup/plesk-backup/chunks/ marker "" [sync.go:110]
2024/06/04 16:28:55.206769 juicefs[8560] <ERROR>: Can't list minio://pleskstorage1.xmission.com:9000/pleskbackup/plesk-backup/chunks/: RequestError: send request failed
caused by: Get "https://pleskstorage1.xmission.com:9000/pleskbackup?encoding-type=url&marker=&max-keys=1000&prefix=plesk-backup%2Fchunks%2F": net/http: timeout awaiting response headers [sync.go:116]
2024/06/04 16:28:55.206936 juicefs[8560] <FATAL>: list all blocks: RequestError: send request failed
caused by: Get "https://pleskstorage1.xmission.com:9000/pleskbackup?encoding-type=url&marker=&max-keys=1000&prefix=plesk-backup%2Fchunks%2F": net/http: timeout awaiting response headers [gc.go:237]

MinIO logs that the client ends the connection at the ~30s mark.

This error means you didn't get response header for 30s after fully writing the request, which usually indicates critical server or network issues. So I suggest checking the MinIO and network configurations first.
If you really want to increase the timeout, try changing this value: https://github.com/juicedata/juicefs/blob/main/pkg/object/restful.go#L42.

Thank you much @SandyXSD for taking time to look at this! I appreciate it!

Thanks for the information! We can leave this issue open to see if anyone else is experiencing similar problems.


Yolov4-tiny calibration error

I  am getting the following error when calibrating a yolov4-tiny model. I can convert it successfully to tensorrt. Any ideas why?

I am getting the following error when calibrating a yolov4-tiny model. I can convert it successfully to tensorrt. Any ideas why?

Please refer to our open source quantization tool ppq, we can help you solve quantization problems
https://github.com/openppl-public/ppq/blob/master/md_doc/deploy_trt_by_OnnxParser.md


Fix PrintProviderField to work with textboxes

With associated test. See issue #363

Hi @geographika,
thanks a lot for your contribution. For me this looks very good.  But I would like to have a second opinion on this. Maybe @weskamm or @marcjansen can have quick look?

his looks good to me, @geographika and @chrismayer. I may have asked earlier, but do we have the CLA from you @geographika?

I wrote him yesterday because of the CLA topic. Answer outstanding.

The signed CLA of @geographika has been sent to the PSC.


jvm_compiler tests got Error: Bad parameters specified: One of the files you specified was not found.  with jdk17

jvm_compiler tests got Error: Bad parameters specified: One of the files you specified was not found.  with jdk17.
10:24:33  	if [ $? -eq 0 ] ; then echo ""; echo "jvm_compiler_1""_PASSED"; echo ""; cd /Users/jenkins/workspace/Test_openjdk17_hs_extended.openjdk_x86-64_mac_testList_2/aqa-tests/TKG/..;  else echo ""; echo "jvm_compiler_1""_FAILED"; echo ""; fi; } 2>&1 | tee -a "/Users/jenkins/workspace/Test_openjdk17_hs_extended.openjdk_x86-64_mac_testList_2/aqa-tests/TKG/../TKG/output_16308518561761/TestTargetResult";
10:24:33  Directory "/Users/jenkins/workspace/Test_openjdk17_hs_extended.openjdk_x86-64_mac_testList_2/aqa-tests/TKG/../TKG/output_16308518561761/jvm_compiler_1/work" not found: creating
10:24:33  Error: Bad parameters specified: One of the files you specified was not found. The error reported was:
10:24:33  /Users/jenkins/workspace/Test_openjdk17_hs_extended.openjdk_x86-64_mac_testList_2/aqa-tests/openjdk/openjdk-jdk/test/hotspot/jtreg/ProblemList-graal.txt (No such file or directory)

https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk17_hs_extended.openjdk_x86-64_mac_testList_2/9/console

Graal was removed from JDK16+. No graal unit tests problem list file available. Will limit that problemlist to jdk11 and jdk16.

Yes, indeed I think we could use the openjdk.mk file to define that parameter and in that way for 17+ it can be blank.


Telnet: Keep track of telnet negotiation options

To prevent endless negotiation loops with the telnet options, we must not
reply to already negotiated options.

Admin, can CI be enabled?

unfortunately, i cannot provide a test case because this is too low level and doesn't fit into the "use a telnet server as test partner" method.

Looks good. Automatic test is too difficult probably, so we dont need to bother with that.
Could we just do this to simplify the code a bit:

if cmd in (telnetlib.DO, telnetlib.DONT, telnetlin.WILL, telnetlib.WONT):
            if (cmd, opt) in self._opt_responses:
                return
            self._opt_responses.add((cmd, opt))

@mwalle, any comments to comment by @jussimalinen? This looks trivial enough to still be included into RF 2.9 alpha 1.

sorry for the late response, i've some private matters atm.
anyway. yes, looks good, i've pushed a new version.

Excellent. I'm including this to alpha1 then after all


Return poll result for all SP sockets, not first socket only.

As in the title, we need to return all poll results from PollSet.poll method.

Thanks!


DoS vector in onMath

<mallory><PHONE_NUMBER>000000000000000000000000000000000000000000/123
<bot> *dies*

The DoS is not quite where I expected.
The bit where the math is evaluated, below, isn't actually taking a significant amount of time with that input:
https://github.com/euank/EuIrcBot/blob/2e4e06e5f02229a8f23b42d637e845fd35324435/modules/onMath/index.js#L8-L10
Rather, it's one of the input filters that blows up:
https://github.com/euank/EuIrcBot/blob/2e4e06e5f02229a8f23b42d637e845fd35324435/modules/onMath/index.js#L86-L88
That ignoreRe is a 'regex-chain' of about 11 different regexes 'or'ed together:
https://github.com/euank/EuIrcBot/blob/2e4e06e5f02229a8f23b42d637e845fd35324435/modules/onMath/index.js#L2
https://github.com/euank/EuIrcBot/blob/2e4e06e5f02229a8f23b42d637e845fd35324435/modules/onMath/index.js#L38-L56
I wonder who wrote this 'regex-chain' module that seems to be blowing up... Oh no, it was me, oh gosh.

The only one of those regexes that seems to grow exponentially is const onlyTime = new RC(/^(:?[0-9]+:?)+$/);.
This doesn't appear to be regex-chain being bad, but rather that regex being bad.


radd etc don't get called if add is also defined

If we make a class like this:
#[pyclass]
#[derive(Debug)]
struct RhsArithmetic {}

#[pymethods]
impl RhsArithmetic {
    #[new]
    fn new() -> RhsArithmetic {
        RhsArithmetic {}
    }
}

#[pyproto]
impl PyNumberProtocol for RhsArithmetic {
    fn __mul__(lhs: PyRef<'p, Self>, rhs: &PyAny) -> PyResult<String> {
        Ok(format!("MUL"))
    }
    fn __rmul__(&self, other: &PyAny) -> PyResult<String> {
        Ok(format!("RMUL"))
    }
}

Then both 1 * rhs and rhs * 1 call the function in the tp_as_number.nb_mul slot. As of #839 this will be our __mul__ implementation above (and never __rmul__).
And specifically it will call it with the arguments in the same order as invoked. So from above, we will have __mul__(1, rhs) and __mul__(rhs, 1).
This is problematic, because __mul__ as defined above will raise a TypeError if the first argument is not Self.
We saw this behaviour reported on Gitter. All three of the below will currently be calling __mul__, which is why the second will TypeError:
>>> rhs * 1.0
'MUL'
>>> 1.0 * rhs # should call __rmul__
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError
>>> rhs * rhs
'MUL'

I am thinking that instead of doing this, if both __mul__ and __rmul__ are defined we should be creating a wrapper function which calls the correct function depending on the type of the first argument.
The implementation of PyNumber_Add suggests that we should return Py_NotImplemented from this wrapper function if there is a type error, so that sq_concat is given a chance to be called also.

Similar logic in PyNumber_Multiply

From a quick search I think the equivalent logic for classes defined in Python is in this macro

This is difficult for our current protocol implementation, but after rewriting it without specialization, I think we can implement this.

I'm nominating this for 0.12.

@kngwyu just a heads up; I'm assigning this to you after the discussion in #1072 so that others don't spend time taking a stab at this while you're working on an implementation :)


Beta 7 release of azure-ai-inference client library

Description

API change check
APIView has identified API level changes in this PR and created following API reviews.
azure-ai-inference


Updated DEV_GUIDE.md to use docker compose up command directly

@vishavsingla please close this PR if we don't need it anymore.


MAINT: Updated f-string format

Used Flynt to updated the f-string method for cleaner and better understanding of the code

Thanks for the change. Overall the change is ok. Could u please:

Sign the CLA, otherwise we can't accept the PR.
Please split the the PR into smaller one (eg one package per PR), otherwise it is hard to review and easily get blocked by merge conflict from other incoming changes.

Thanks for the change. Overall the change is ok. Could u please:

Sign the CLA, otherwise we can't accept the PR.
Please split the the PR into smaller one (eg one package per PR), otherwise it is hard to review and easily get blocked by merge conflict from other incoming changes.

I signed the CLA, even though there is an error stating "missing CLA"!


closing the search pane doesn't "defocus it"

Steps to reproduce:

Open the search pane
Close it
type anything
open the search again

All the input you typed is now in the Find in Files box.
Expected: if you close the search pane, the focus is given back to the window

There seems to be two similar but separate issues here. One is that he search input field doesn't unfocus when the pane is closed with the close button, which might be old but is an easy fix. The other is that it doesn't unfocus the search input field if you click on the editor while the pane is still open. This is a relatively new issue, and I haven't been able to track down the cause yet.


Showing About gives a JavaScript error dialog in 2.7.0

My Setup

Window 10 v1607

Rocket.Chat+ 2.7.0

[x] I have tested with the latest application version

[x] I can simulate the issue easily

Description
Just upgraded to 2.7.0 from 2.6.1
When opening the Rocket.Chat+ -> About menu, I get the following error dialog:

Closing the error message shows a blank about window.
Expected Behavior
Expect to see the about dialog :)

I'm having the same issue on macOS.

Me too.

Looks like this is a duplicate of #427

Closed in favor of  #427


Delete command handle multiple n/, mix of index and n/

Handled by throwing error message in this situation.


Shopping list segmentation fault

Started server on http://<IP_ADDRESS>:9080, serving cook files from /Users/azlekov/Workspace/cookbook.
[1]    24627 segmentation fault  cook server

Steps to reproduce:

cook seed
cook server
Click on Shopping list

Steps to reproduce 2:

cook seed
cook server
Click on recipe and add to shopping list
Click on Shopping list

OS: macOS X 12.2.1
Version of the CLI: 0.1.3

I saw https://github.com/cooklang/CookCLI/issues/44 but any clue when 0.1.4 will be available?

Thanks for submitting the report. Brew package is updated now. The issue fixed in 0.1.4 was related to Linux build only. I was trying to reproduce it on macOS X 12.2.1 and CLI: 0.1.4 but I wasn't able. Was it a specific recipe to add to a shopping list?

Thanks for publishing the new homebrew tap version! Using 0.1.4 looks to be working.


Enable Multi-architecture docker builds in CI and push to Docker Hub

This PR builds both x86_64 and arm64 Docker images for our dev Docker Hub repositories in the CI system.
The CI system tags the images appropriately and pushes them to Docker Hub, meaning that x86_64 systems (ie. a common PC) will get an x86_64 image on pull/run and an arm64 system (like a Raspberry Pi or M1 Mac) will get an arm64 image.
All automatic, no user intervention required.
A bonus is that removing some of the caching speeds things up slightly (by about 11 seconds).
The only bad aspect is that I'm using a self-hosted runner on an arm64 EC2 VM to run these builds. The reason for this is that Github runners don't support arm64... which means the alternative is QEMU, but QEMU slows things down a lot and makes network connectivity flakey. The EC2 machine is on API3's account and doesn't cost much. The Github self-hosted runner auto-updates and has no inbound connections or static IP.
When it comes time to execute a release it'll be possible to retag these images. I'll document this separately.
To test:
On both an arm64 system and an x86_64 system, run as an example: docker run -ti --rm api3/airnode-deployer-dev:2519915b6ec46240fbed8787d62cf3e154388b77
You can also view the manifest: docker manifest inspect api3/airnode-deployer-dev:2519915b6ec46240fbed8787d62cf3e154388b77, which will indicate two architectures.

I'm not so sure about removing the caching. Are you sure it's necessary?

Hey, I've had a bit of a crash course in self hosted Github runners; while Github's self hosted runner agent cleans up the filesystem after itself it doesn't clean up the docker cache. I added docker pruning but that causes a large slow-down. I've since read that a better way of implementing self hosted runners is using ephemeral runners, which are cheaper and start fresh for every job and thus don't require docker pruning.
The ephemeral runner approach scales to 0 when there are no jobs. There's an off-the-shelf Terraform solution for this. I'll try and deploy this tomorrow and revert some of the caching related changes. If it runs acceptably I'll re-request review :)

@aquarat It feels like it's getting way too complicated and you're spending way too much time on it. I don't think this is that important, is it? Wouldn't it be better to put it back to the backlog and come back to it later?

@aquarat It feels like it's getting way too complicated and you're spending way too much time on it. I don't think this is that important, is it? Wouldn't it be better to put it back to the backlog and come back to it later?

Hey, yeah, that had crossed my mind. I think that's a good idea. I'll make a note of my research so far in the Jira issue.


Standalone

This PR lays the foundation for future work but it already supports standalone deployments. Test deployments using dir and zfs storage backends were done manually.

@simondeziel I'd also use the initial PR to setup Github Actions.
We should add two:

Canonical CLA (as it's a github.com/canonical repo)
run_tests

You can find some examples at https://github.com/canonical/dqlite/tree/master/.github/workflows

Per above, I'd add a AUTHORS file alongside LICENSE to just clarify that unless otherwise specified in header, Apache 2.0 applies and that individual author information for all files may be retrieved from git history (see what we have in the lxd repo).


docs(py): document workaround using MR client with newer py versions

Until we will rebase the MR py client on top of MR REST API,
I'm suggesting to expand on documentation as proposed in this PR.
This also follow-up to: https://github.com/kubeflow/model-registry/issues/90#issuecomment-2141063884
Description
Expand on use-case of the Remote-only packaging of MLMD Python lib document, in relation to the MR python client.
How Has This Been Tested?

A notebook project NOT depending on MLMD either directly or indirectly,
using Python > 3.10
connecting to MR

Merge criteria:

[x] The commits and have meaningful messages; the author will squash them after approval or will ask to merge with squash.
[x] Testing instructions have been added in the PR body (for PRs involving changes that are not immediately obvious).
[x] The developer has manually tested the changes and verified that the changes work

/lgtm


Standardize use of 'content' and 'container' classes

container should be used to set widths and margins (centering) of blocks.
content should format the background and padding of content areas.

Completed by commit 0c991df0027468adbc31d626d0730f000fb214b8


Updated Benchmarks

This corrects the benchmarks to use the inplace version of OrdinaryDiffEq.jl (previously referred to as DifferentialEquations.jl, small misnomer) with the patches that have been applied. The runtimes look like this:

This behavior is quite interesting, so I examined it quite closely in profiles. At the small end, OrdinaryDiffEq.jl has an uptick in time because, surprisingly, when the problem size gets that small the "hygiene checks" end up being a non-trivial cost.

  if adaptive
    dt = min(dt,abs(T-t)) # Step to the end
  elseif dtcache == 0 # Use tstops
    dt = abs(T-t)
  else # always try to step with dtcache
    dt = min(dtcache,abs(T-t)) # Step to the end
  end

  if iter > maxiters
    warn("Interrupted. Larger maxiters is needed.")
    @ode_postamble
  end
  if dt == 0
    warn("dt == 0. Aborting")
    @ode_postamble
  end
  if any(isnan,u)
    warn("NaNs detected. Aborting")
    @ode_postamble
  end

  if uType<:AbstractArray && custom_callback
    uidx = eachindex(u)
  end

Many of these are because OrdinaryDiffEq.jl lets the timesteps change (even for fixed timestep methods through tstops) and even lets the size of the ODE change over time. Usually these are trivial, but when the solver takes less than 1e-5 seconds these actually show up in the profile!
On the other end, it seems that the uptick for OrdinaryDiffEq.jl seems to happen because of iterative growth of the timeseries. It uses push! to build the solution instead of a pre-allocated vector (due to the adaptivity and size changes). For very large numbers of timesteps, it seems that this begins to have an impact over simply iteratively adding to a vector.
OrdinaryDiffEq does allocate more. The is mostly due to the way it has to handle copies in order to be compatible with non-traditional arrays like MultiScaleModels.jl. It probably was a lot less in v0.2.0, but it's interesting that what I did see before was that those allocations did not affect performance, which is what we see here.
All in all, I am excited for the geometric integrator to join the common interface. Well done!
(note: the graphs say it's for OrdinaryDiffEq.jl v0.4.0. It's not released, but it's pretty much the same as release. What's different is that the conditional deps are gone (like ODE.jl), which is unrelated to this).

Coverage decreased (-2.6%) to 44.883% when pulling<PHONE_NUMBER>d2ff08deaab6e37c4a12f009f180b7 on ChrisRackauckas:Bench into 90f7bd17b0919dd6f0a81c233f24d730a68e2d8e on DDMGNI:master.

Current coverage is 44.88% (diff: 100%)

Merging #7 into master will decrease coverage by 2.63%

@@             master         #7   diff @@
==========================================
  Files            37         37
  Lines           987        987
  Methods           0          0
  Messages          0          0
  Branches          0          0
==========================================
- Hits            469        443    -26
- Misses          518        544    +26
  Partials          0          0

Powered by Codecov. Last update 90f7bd1...9486054

Thanks a lot! I had another look at the explicit Runge-Kutta integrator. Saving the tableau in an array doesn't really seem to cost a lot. I benchmarked that with generated functions with hard coded coefficients and the array implementation usually seems to win.
However, there was quite a bit unnecessary copying between arrays going on, which I eliminated. Now the two packages are pretty close together, which is what I'd expected.

Yeah, that's about what I'd expect. I was really shocked that when the numbers got small the dt==0 and maxiters checks showed up in the profile, but there's not much you can do about htat!


some hu_HU fixes

fixed the city formats (replaced the first and lastname generation)
company fix (the second letters replaced to lowercase, "association" and "found" words added)

No news for a while, closing.


Docs update

The new 2.0 version of the Node-based Netlify CLI was released today, and is now the target of active development, though Netlify will continue to support netlifyctl.
The new CLI is using the cli.netlify.com URL for a command reference site, which means that the latest binary links listed in this project's README are now managed by redirects in the Node CLI repository.
This PR removes the now-defunct _redirects file (and the site folder containing it) and adds instructions for where to update the redirects in the event of a new release here. It also adds a note and a link to the new CLI to the top of the README.

The deploy preview fails because there's no more site. :)


Not an Issue, but thanks

Thanks for making this. I'm coming from MacOS to Windows 11, and there are a few things I find really annoying; this is one of them.

Hey, thank you! It's a small project with limitations but I'm glad if it can be usefull to people :-)

I also wanted to thank you!
Please consider adding the sponsor or donation option for this project :)
https://github.com/sponsors

Hello, I'm glad its usefull, thanks for your feedback! Until now, I didn't feel the app was robust enough to set up donations, but I will consider.

Yes, Thank you!

this is perfect, i was suffering with the window's app switcher with thumbnails. when switching apps it's impossible to tell which thumbnail belong to which application. now it's all clear. can you add building and contributing information to the README file. I want to get involved. Thank you for this.

Additionally, you might consider enabling GitHub donations, as PayPal is not an option for payment in some countries.

Hey, thank you so much, I'll take some time soon to add those information about contribution. I should not be long to write, main dependency is clang using mingw, otherwise it's just a few handmade python script for building / deploying and vs code (with some plugin for debugging).
About donation, I'll check the GitHub one 🙂

Thanks for this, works great!

Another BIG thanks from me. Been looking for a decent Alt+Tab replacement for quite some time, as the Regedit trick to bring back the classic Alt+Tab stopped working in recent versions like Windows 11 24H2.

@ekinertac I started adding some basic build informations, feel free to reach directly if needed :-)


[authentication] named scanner broke auth factory

The authentication factory expected a fixed string for the scanners, to get to the authentication type.
This was broken by the named scanner (e.g.: zap_anonymous).
This commit fixes that.
Also, while at it, I tidied a little:

moved the factory into its own file
improved the dev documentation for authentication

LGTM


Add users spam detector task

Add users spam detector task
This rake task export a .csv with a list of suspicious users.

bin/rake cdtb:spam:users[org_id]

Examples:
bin/rake cdtb:spam:users[1] --> find users in organization with id=1.
bin/rake cdtb:spam:users --> find all users in all organizations.

@tramuntanal rubocop is failing on the length of the rspec describe. Should I increase this length in the rubocop.yml? what do you think?

rubocop is failing on the length of the rspec describe

ok, increase to 50 for example


Sockets close randomly

Sockets are randomly closed when requesting blocks.
This can be easily seen when connected to only one peer with -connect=node -debug and trying to synchronise from scratch.
2019-07-15 17:25:27 Requesting block 4bdc2147a8449daddff3de58f32da1da7a3477ab9adeeaeb5012cf9e6c9ccedc (3299293) peer=4
2019-07-15 17:25:27 sending: getdata (37 bytes) peer=4
2019-07-15 17:25:27 socket send error Broken pipe (32)

Closing for now as I think this may have been an isolated issue on the test system, please reopen if it happens again


devices/legacy: use pl011 for earlycon in aarch64

Follow up of 5329be7 commit. It is more common to have a PL011 than UART.

Could you please rebase on top of HEAD to fix the tests?


lavalink dropping connection randomly

Describe the bug
Lavalink disconnect with 1006 code
To Reproduce
simply using music module play song from spotify after play song from youtube
Expected behavior
stay connected to the lavalink but not its got disconnect after few day or just few minutes
Screenshots
[If applicable, add screenshots to help explain your problem.]
If possible

NodeJS version:v 16.14.2
Bot version: the lastest

Additional context
lavalink is on my other vps

Try using the latest Lavalink version


fix(musicPlayer): move the upload of example data outside of the initial migration

Moved the example upload outside the initial migration because:

The upload becomes blocking for the account creation flow, making the signup process slower
By uploading the example data in the intial migration we make it an hard dependency for the account creation, which isn't great since file uploads may fail or take a long amount of time in unstable connections.

Please may you have a look why the unrelated playwright tests are failing?

@aeplay
Restarting the test made it pass.
We have some flakiness related to the share flow

Ok, merging then. Please may you create a ticket to investigate the share flakiness? Thank you


MQTT doesn't resubscribe on reconnect

MQTT connections are no longer resubscribing on reconnect. This is a change from previous behaviour and I think can only be a consequence of the MQTT library update.
This is probably the cause of acs-clusters#11.
Perhaps we're requesting a clean session when we didn't before? Is the client library being stricter about enforcing a clean session when it has no session state storage?

This appears to only happen on GSSAPI connections. We are calling .reconnect() in the GSSAPI client code so possibly to do with this?


[Alert] Element is not removed from the page when auto-closed after delay

It looks to me that when an alert is automatically dismissed it gets hidden, but still stays on the page.
The close.te.alert nor closed.te.alert are being invoked in this case. So, there's no way I could do the cleanup myself.
If I dismiss the alert using the dismiss button, the element gets removed from the page as expected.
So, is it a bug? Possible solutions:

invoke the events
remove the element automatically (maybe as an option).

Or am I missing something?

Hi, it works by design, the autohide option only hide element, but we will add a new option for this soon.


JDK9

Any plans to make JDK 9 and later versions (non-LTS)
http://www.oracle.com/technetwork/java/eol-135779.html

PR please. BTW, I have also created https://github.com/hseeberger/docker-sbt which is sbt only and smaller in footprint. There's already support for Java 9 in docker-sbt.

docker-sbt fits my needs, thanks!


Add didUpdateWidget to react to layout changes

I encountered that if you change your device orientation from portrait to landscape or change your web browser size, that my dynamic generated bars aren't updated and cause layout errors (too much or too few bars).
In this package there was only missing to react to updates and get the actual bars from outside.

@thruthesky

@thruthesky

@thruthesky


Hashchange seemingly not getting handled in auth code flow, and thus no access token is requested (Safari)

Core Library
MSAL.js v2 (@azure/msal-browser)
Core Library Version
2.21.0
Wrapper Library
MSAL React (@azure/msal-react)
Wrapper Library Version
1.2.0
Description
Somehow the seamless SSO in Safari does not perform an actual redirect for the auth code flow when using InteractionType.Redirect, but seemingly just adds the hash code directly to the URL.
(I'm not familiar with how seamless SSO works or any specifics of our seamless SSO configuration, so i cannot provide further details related to that.)
msal-browser/msal-react does not react to this hash change, and thus the user is left hanging with #code=XXX in the URL without requesting an access token.
The hacky fix below either reloads the page or creates a new instance when a hashchange containing "#code" is detected. That this works confirms that it is a problem of msal-browser/msal-react not reacting to an auth code provided this way.
Error Message
None
Msal Logs
No response
MSAL Configuration
const msalConfig: Configuration = {
  auth: {
    clientId: config.clientId,
    authority: "https://login.microsoftonline.com/" + config.tenantId,
    redirectUri: window.location.origin,
  },
  cache: {
    cacheLocation: "localStorage",
    storeAuthStateInCookie: false,
  },
};

Relevant Code Snippets
// Including this serves as a temporary fix:

window.addEventListener('hashchange', () => {
  if (window.location.hash.startsWith('#code')) window.location.reload();
});

// The library is used in the following way:

<MsalProvider instance={publicClientApplication}>
  <MsalAuthenticationTemplate
    interactionType={InteractionType.Redirect}
    authenticationRequest={authRequest}
    loadingComponent={LoginLoading}
    errorComponent={LoginError}
  >
    <BrowserRouter>
      <App />
    </BrowserRouter>
  </MsalAuthenticationTemplate>
</MsalProvider>

// It's also possible to fix it without reloading by creating
// a new PublicClientApplication instance like so:

const HackyFix = () => {
  const getNewInstance = () =>
    // Our own custom function
    getMsalPublicClientApplication({
      clientId: environment.CLIENT_ID,
      tenantId: environment.TENANT_ID,
    });

  const [instance, setInstance] = useState(getNewInstance);

  useEffect(() => {
    window.addEventListener('hashchange', () => {
      if (window.location.hash.startsWith('#code')) setInstance(getNewInstance);
    });
  }, []);

  return (
    <MsalProvider instance={instance}>
      <MsalAuthenticationTemplate
        interactionType={InteractionType.Redirect}
        authenticationRequest={authRequest}
        loadingComponent={LoginLoading}
        errorComponent={LoginError}
      >
        <BrowserRouter>
          <App />
        </BrowserRouter>
      </MsalAuthenticationTemplate>
    </MsalProvider>
  );
};

Reproduction Steps

I assume using seamless SSO is needed to reproduce the bug
Clear localStorage or use a private window
Access site in Safari
Be left hanging with #code=XXX in the URL :(

Expected Behavior
The library should request an access token when provided an auth code in the URL
Identity Provider
Azure AD / MSA
Browsers Affected (Select all that apply)
Safari
Regression
No response
Source
External (Customer)

@mikkelmk I believe we have heard about this in #4008 (see this comment). Does this appear like the same issue?
And also curious if manually invoking handleRedirectPromise works as described here.

Yes, that seems to be the exact same issue, also with no requests in the network tab. tcpdump shows activity however, so macOS must be doing some magic in the background.
Manually invoking handleRedirectPromise as below seems to work perfectly:
  if (window.location.hash.startsWith('#code')) {
    publicClientApplication.handleRedirectPromise(window.location.hash);
  }
});```

Notice that window.location.hash must be given as parameter even though the doc states it "defaults to the current value of window.location.hash"

Closed #4444 since it's the same issue.
As far as we can see, it's fixed natively with Safari 15.2, not sure about older versions than 15.1

I have the issue on version 15.2 (176<IP_ADDRESS>.6) of Safari

@mikkelmk @MagnusHJensen Thank you for the information, I'll look to see if we can properly handle this in the library, thanks!

Can you please test this on the latest version of Safari and let us know if you still see the issue @mikkelmk @MagnusHJensen?

I'm still seeing the issue in Safari version 15.4 (176<IP_ADDRESS>.13), with msal-browser v2.23.0 and msal-react v1.3.2.

I solved this by adding a trailing slash to redirectUri. It turns out Safari was stripping the hash because it was not preceeded by a slash.
This works everywhere but safari and for certain users IOS Chrome: https://app.foo.com/auth/return#code=0.AVcAeMaRO0JAkE...
This works everywhere I have tested: https://app.foo.com/auth/return/#code=0.AVcAeMaRO0JAkE...

@davecarlile Interesting, thanks for the information.

I solved this by adding a trailing slash to redirectUri. It turns out Safari was stripping the hash because it was not preceeded by a slash.
This works everywhere but safari and for certain users IOS Chrome: https://app.foo.com/auth/return#code=0.AVcAeMaRO0JAkE... This works everywhere I have tested: https://app.foo.com/auth/return/#code=0.AVcAeMaRO0JAkE...

I know this issue has been closed-- but adding the trailing slash solved the issue for me as well. Redirect was working fine on most browsers and devices except for some iOS Chrome users. Adding the trailing slash in my B2C App Registrant setting fixed it.


i18n(pt-BR): create reference/errors/no-adapter-installed-server-islands.mdx

Description (required)
translate content i18n pt-br/reference/errors/no-adapter-installed-server-islands.mdx

Lunaria Status Overview
🌕 This pull request will trigger status changes.

Learn more
By default, every PR changing files present in the Lunaria configuration's files property will be considered and trigger status changes accordingly.
You can change this by adding one of the keywords present in the ignoreKeywords property in your Lunaria configuration file in the PR's title (ignoring all files) or by including a tracker directive in the merged commit's description.

Tracked Files

File
Note

pt-br/reference/errors/no-adapter-installed-server-islands.mdx
Localization added, will be marked as complete.

Warnings reference

Icon
Description

🔄
The source for this localization has been updated since the creation of this pull request, make sure all changes in the source have been applied.


System.InvalidOperationException: Sequence contains more than one matching element

When generating and running EntityFramework Migrations after changing Model class names, and adding Unique constraint to certain fields in those classes, I get the following error. This happens on other machines too.
System.InvalidOperationException: Sequence contains more than one matching element
   at System.Linq.Enumerable.Single[TSource](IEnumerable`1 source, Func`2 predicate)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.<GetStoreAssociationTypePairs>d__73.MoveNext()
   at System.Linq.Enumerable.<SelectManyIterator>d__23`3.MoveNext()
   at System.Linq.Enumerable.<DistinctIterator>d__64`1.MoveNext()
   at System.Collections.Generic.List`1..ctor(IEnumerable`1 collection)
   at System.Linq.Enumerable.ToList[TSource](IEnumerable`1 source)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.FindAssociationTypePairs(ICollection`1 entityTypePairs)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.Diff(ModelMetadata source, ModelMetadata target, Lazy`1 modificationCommandTreeGenerator, MigrationSqlGenerator migrationSqlGenerator, String sourceModelVersion, String targetModelVersion)
   at System.Data.Entity.Migrations.Infrastructure.EdmModelDiffer.Diff(XDocument sourceModel, XDocument targetModel, Lazy`1 modificationCommandTreeGenerator, MigrationSqlGenerator migrationSqlGenerator, String sourceModelVersion, String targetModelVersion)
   at System.Data.Entity.Migrations.DbMigrator.Scaffold(String migrationName, String namespace, Boolean ignoreChanges)
   at System.Data.Entity.Migrations.Design.MigrationScaffolder.Scaffold(String migrationName, Boolean ignoreChanges)
   at System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.Scaffold(MigrationScaffolder scaffolder)
   at System.Data.Entity.Migrations.Design.ToolingFacade.ScaffoldRunner.RunCore()
   at System.Data.Entity.Migrations.Design.ToolingFacade.BaseRunner.Run()
Sequence contains more than one matching element

Steps to reproduce
Further technical details

Microsoft Visual Studio Community 2017
Version 15.5.2
VisualStudio.15.Release/15.5.2+27130.2010
Microsoft .NET Framework
Version 4.7.02556
Installed Version: Community
Visual Basic 2017   00369-60000-00001-AA319
Microsoft Visual Basic 2017
Visual C# 2017   00369-60000-00001-AA319
Microsoft Visual C# 2017
Visual F# 4.1   00369-60000-00001-AA319
Microsoft Visual F# 4.1
Application Insights Tools for Visual Studio Package   8.10.01106.1
Application Insights Tools for Visual Studio
ASP.NET and Web Tools 2017   15.0.31125.0
ASP.NET and Web Tools 2017
ASP.NET Core Razor Language Services   1.0
Provides languages services for ASP.NET Core Razor.
ASP.NET Web Frameworks and Tools 2017   5.2.51007.0
For additional information, visit https://www.asp.net/
Azure App Service Tools v3.0.0   15.0.31106.0
Azure App Service Tools v3.0.0
Azure Data Lake Node   1.0
This package contains the Data Lake integration nodes for Server Explorer.
Azure Data Lake Tools for Visual Studio   2.2.9000.1
Microsoft Azure Data Lake Tools for Visual Studio
Azure Data Lake Tools for Visual Studio   2.2.9000.1
Microsoft Azure Data Lake Tools for Visual Studio
Common Azure Tools   1.10
Provides common services for use by Azure Mobile Services and Microsoft Azure Tools.
Cookiecutter   3.0.17320.1
Provides tools for finding, instantiating and customizing templates in cookiecutter format.
Entity Framework 6 Power Tools   0.9.1
Preview of useful design-time DbContext features, added to the Visual Studio Solution Explorer context menu.
When right-clicking on a C# project, the following context menu functions are supported:

Reverse Engineer Code First - Generates POCO classes, derived DbContext and Code First mapping for an existing database.
Customize Reverse Engineer Templates - Adds the default reverse engineer T4 templates to your project for editing.

When right-clicking on a file containing a derived DbContext class, the following context menu functions are supported:

View Entity Data Model (Read-only) - Displays a read-only view of the Code First model in the Entity Model Designer.
View Entity Data Model XML - Displays the EDMX XML representing the underlying Code First model.
View Entity Data Model DDL SQL - Displays the DDL SQL corresponding to the SSDL in the underlying EDM Model.
Generate Views - Generates pre-compiled views used by the EF runtime to improve start-up performance. Adds the generated views file to the containing project.

When right-clicking on an Entity Data Model (*.edmx) file, the following context menu function is supported:
Generate Views - Generates pre-compiled views used by the EF runtime to improve start-up performance. Adds the generated views file to the containing project.
Fabric.DiagnosticEvents   1.0
Fabric Diagnostic Events
JavaScript Language Service   2.0
JavaScript Language Service
Microsoft Azure HDInsight Azure Node   2.2.9000.1
HDInsight Node under Azure Node
Microsoft Azure Hive Query Language Service   2.2.9000.1
Language service for Hive query
Microsoft Azure Service Fabric Tools for Visual Studio   1.8
Microsoft Azure Service Fabric Tools for Visual Studio
Microsoft Azure Stream Analytics Language Service   2.2.9000.1
Language service for Azure Stream Analytics
Microsoft Azure Stream Analytics Node   1.0
Azure Stream Analytics Node under Azure Node
Microsoft Azure Tools   2.9
Microsoft Azure Tools for Microsoft Visual Studio 2017 - v2.9.51120.3
Microsoft Continuous Delivery Tools for Visual Studio   0.3
Simplifying the configuration of continuous build integration and continuous build delivery from within the Visual Studio IDE.
Microsoft JVM Debugger   1.0
Provides support for connecting the Visual Studio debugger to JDWP compatible Java Virtual Machines
Microsoft MI-Based Debugger   1.0
Provides support for connecting Visual Studio to MI compatible debuggers
Microsoft Visual Studio Tools for Containers   1.1
Develop, run, validate your ASP.NET Core applications in the target environment. F5 your application directly into a container with debugging, or CTRL + F5 to edit & refresh your app without having to rebuild the container.
NuGet Package Manager   4.5.0
NuGet Package Manager in Visual Studio. For more information about NuGet, visit http://docs.nuget.org/.
Python   3.0.17320.1
Provides IntelliSense, projects, templates, debugging, interactive windows, and other support for Python developers.
Python - Django support   3.0.17320.1
Provides templates and integration for the Django web framework.
Python - IronPython support   3.0.17320.1
Provides templates and integration for IronPython-based projects.
Python - Profiling support   3.0.17320.1
Profiling support for Python projects.
SQL Server Data Tools   15.1.61710.120
Microsoft SQL Server Data Tools
Telerik ASP.NET Core VSExtensions   2<IP_ADDRESS>
Progress® Telerik® UI for ASP.NET Core Visual Studio extensions
Telerik ASP.NET MVC VSExtensions   2018.1.322.3
Progress® Telerik® UI for ASP.NET MVC Visual Studio extensions
Telerik Reporting Tools   <IP_ADDRESS>
Complete .NET Reporting Solution for Web, Mobile and Desktop Applications. For more information please visit http://www.telerik.com/reporting.
ToolWindowHostedEditor   1.0
Hosting json editor into a tool window
TypeScript Tools   15.5.11025.1
TypeScript Tools for Microsoft Visual Studio
Visual Studio Code Debug Adapter Host Package   1.0
Interop layer for hosting Visual Studio Code debug adapters in Visual Studio
WebJobs Tools v1.0.0   15.0.31106.0
WebJobs Tools v1.0.0

EF Team Triage: This issue is lacking enough information for us to be able to effectively triage it. In particular, it is missing the following information requested in the new issue template. Can you please provide this information?

Steps to reproduce

Ideally include a complete code listing that we can run to reproduce the issue.
Alternatively, you can provide a project/solution that we can run.
BTW we're not just doing this to be mean :smile:... we get a lot traffic on this project and it takes time to attempt to reproduce an issue based on fragments of information. In addition, our attempt is often unsuccessful as the exact conditions required to hit the issue are often not explicitly included in the code provided. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we ask that folks give us a self-contained way to reproduce an issue.
For a guide on submitting good bug reports, read Painless Bug Tracking.
BTW this is a canned response and may have info or details that do not directly apply to this particular issue. While we'd like to spend the time to uniquely address every incoming issue, we get a lot traffic on the EF projects and that is not practical. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we use canned responses for common triage decisions.

EF Team Triage: Closing this issue as the requested additional details have not been provided and we have been unable to reproduce it.
BTW this is a canned response and may have info or details that do not directly apply to this particular issue. While we'd like to spend the time to uniquely address every incoming issue, we get a lot traffic on the EF projects and that is not practical. To ensure we maximize the time we have to work on fixing bugs, implementing new features, etc. we use canned responses for common triage decisions.

I've had the similar issue.  Check on your sql statement, ensure that a columns or fields are not repeated in the sql statement.


Errors when authenticating using biometrics

Describe the bug

[ ] Show biometric popup two times when import json -> Refer: https://github.com/Koniverse/SubWallet-Mobile/issues/1013
[x] Show migrate biometric popup again if user doesn't complete yet
[x] Handling case of reset master password in Keychain when reset account

Version test: v1.1.0(215)
Device test: IP 11
Validation passed.


ulauncher does not show installed apps

Describe the bug
Ulauncher fails to display installed apps from NixOS
Steps To Reproduce
Install spotify, notion-app-enhance or minecraft-launcher.
Expected behavior
I should be able to invoke Ulauncher and see any of the above apps, it can read .desktop files from the usual locations
Screenshots
If applicable, add screenshots to help explain your problem.
Additional context
I use an script to symlink what's on /home/jorge/.nix-profile/share/applications to ~/.local/share/applications, take a look:
#!/usr/bin/env sh

set -e +x

export LOCALSHAREAPPS=~/.local/share/applications
export NIXSHAREAPPS=~/.nix-profile/share/applications

find $LOCALSHAREAPPS -iname 'nix-*.desktop' -delete;

for app in $(ls $NIXSHAREAPPS)
do
    ln -s $NIXSHAREAPPS/$app $LOCALSHAREAPPS/nix-$app;
done

update-desktop-database -v $LOCALSHAREAPPS;

Despite this, ulauncher still fails to show these symlinked apps.
Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
❯ nix-shell -p nix-info --run "nix-info -m"
bash: warning: setlocale: LC_ALL: cannot change locale (es_CR.UTF-8)
/nix/store/pj1hnyxhcsw1krmhnbb9rjvqssbzliw8-bash-5.2-p15/bin/bash: warning: setlocale: LC_ALL: cannot change locale (es_CR.UTF-8)
 - system: `"x86_64-linux"`
 - host os: `Linux 6.1.7-arch1-1, EndeavourOS, noversion, 2022.09.10`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.13.2`
 - channels(root): `"nixpkgs"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixpkgs`

I tried setting my XDG_DATA_DIRS as follows and it somehow broke the startup of my session:
if [ -e "$HOME/.nix-profile/share/" ]; then
    export XDG_DATA_DIRS="$HOME/.nix-profile/share:$XDG_DATA_DIRS"
fi

this, however, works if I export on a terminal and run ulauncher or dmenu.

I experienced the same problem, which was because I was running ulauncher through systemd. Systemd sets PATH environment variable to some standard value for the service, as described here.
My solution was to write a small wrapper script to setup the PATH variable before starting ulauncher, as such:
  systemd.user.services.ulauncher = {
    Unit = {
      Description = "Linux Application Launcher";
      Documentation = [ "https://ulauncher.io/" ];
    };

    Service = {
      Type = "Simple";
      Restart = "Always";
      RestartSec = 1;
      ExecStart = pkgs.writeShellScript "ulauncher-env-wrapper.sh" ''
        export PATH="''${XDG_BIN_HOME}:$HOME/.nix-profile/bin:/etc/profiles/per-user/$USER/bin:/nix/var/nix/profiles/default/bin:/run/current-system/sw/bin"
        export GDK_BACKEND=x11
        exec ${pkgs.ulauncher}/bin/ulauncher --hide-window
      '';
    };

    Install = {
      WantedBy = [ "graphical-session.target" ];
    };
  };

After I learned that I can run Ulauncher from the terminal by typing 'ulauncher', I don’t remember where I read that, but it works. I used this to create a shortcut, and it works well, even though the app doesn’t appear with other apps.


Add iso standard types

country
locales
currencies

Closing - not generic enough to adopt as a std in apidoc


Device refactoring and definition

One of the major goals of developing the new framework was to make supporting multiple transport mediums seamless, so we can send messages over ethernet/wireless, USB/UART serial, SPI, I2C, CAN bus, etc using the same API. The current implementation of SerialDevice seems a bit tacked on with regards to its integration with Device, and feels inconsistant with how you interact IP multicast communication. The goal of this issue is to:

Define exactly what a Device is.
Propose a restructuring of the Device internals to better accomodate new transport mediums, protocols, and callbacks.
Do this all in a way that is applicable to other implementations such as C/C++, Arduino.

The following is my suggestion, which may or may not also represent the current implementation.
Device
A "Device" is an entity that allows you to connect to the robocluster "network", and performs basic task management and callbacks triggered by messages incomming on a "Port". The Device would contain a collection of "Ports", a "Router", a callback look-up table, a collection of "Tasks", and local storage for synchronizing data amongst "Tasks". This aligns with the current implementation of a "Device", with the addition of a "Router" and local storage (which is already being developed). My thinking is that a "Device" can be thought of as a "virtual microcontroller", or an RTOS running on a microcontroller, in that it as ports for i/o and tasks can be registerd like interupt subroutines or scheduled to be run periodically. A "Device" would provide an easy interface to manage tasks, and send and recieve data on the network, while all the grunt work would be handled by other classes instanciated within the device.
The advantage of having an analogy like this is it makes it easy to understand conceptually of how robocluster works, making it easier to document and organize development, and should make it easy to port over to a real microcontroller.
Ports and Routers
A "Port" is like a socket in network programming, but also applies to interfaces such as serial, I2C, etc. We also don't have to call them "Ports" if that's confusing with the ports in TCP/UDP. When you want to publish a message to the network, data is writen to the UDP or Multicast port. If you send a message directly to another Device, it is send over the TCP port. If you send a message to a microcontroller connected with serial, it is sent over the serial port. You could also explicitly state which ports you want a message to be sent over, or all of them if you wish. A "Router" is just the thing that handles the distribution of messages to the right place. Though now that I think of it, the Router may not be necessary as its own entity at all. When message is read from a "Port", the event goes through the callback look up table to trigger the correct task. A task can be registered to trigger on an event from any "Port", or a specific set of "Ports", and multiple tasks can be triggered from a single event.
In the case of TCP and serial ports, a Device has one port for each serial device or other Device it wants to talk to, and are referenced by the name of the downstream device. So sending a message to deviceB could look like: deviceA.send(msg, port='deviceA')
Tasks
These are just your standard coroutines/functions. An additional feature that would be useful, is the ability to add or remove tasks easily while the Device is running. Tasks can keep track of persistant state within the Device via a storage mechanism, probably just a AttributeDictionary where you can put what ever you need inside.
Here is an image for an overview of a Device
Message format
Messages look something like this:
msg = {
  'event': 'event_name',
  'data'  : <whatever data>,
  'ports' : [ list of ports or port to send over],
  'sender' : 'device that sent the data'
}

We can just add more things to the message as we need.
When you call publish or send, the Device will automatically add the sender information and could assist in the ports part.
When a port sends the message, it could remove the ports field, as the receiving end doesn't care. In which case the ports field may be completely unneccessary if the Router is not its own entity inside the Device.
Device methods
List of some of the methods Device will implement:

publish(event, data, ports=ALL) Broadcast an event
send(device, data) Sends data directly to a device, connecting via TCP if not done already
on(event, callback, ports=ALL) Register a callback for an event
read(port=Serial) -> data Reads data from a port. Reallly only usefull for Serial device that can't use JSON for what ever reason.
request(device, event) -> data Requests data from another Device, identified with event.
reply(device, data) Sends the data to the device that requested it.

Probably a bunch more asyncio wrappers like sleep and what not, but these should be the main communication ones.
I might be forgetting something, but this is probably enough for discussion.
This is mostly a refactoring of what we already have, just need to solidify the "Ports" concept and figure out what we want to do for the "Router".

Device
The name makes a lot more sense now that we have defined it's purpose and how it works.
We need to keep device local storage around.
We need some kind of way of storing which devices live where and what ports they have exposed. This could be kept track of using some kind of distributed consensus algorithm or some kind of heartbeat based advertise network.
Device methods

publish, I agree that ports should be a kwarg, but we should support collections for this argument.
read, I don't think this should be on the device itself, maybe syntax like this:

device.ports['some-serial'].read()

on, lets try and keep decorator support for this.

Router
This is can probably be a specialized task within the device.
Ports
Ports are a good name for this. I don't think it's confusing for tcp/udp ports either. I ran across multiaddr the other day and it may be a good way to specify ports.
Tasks
We need to figure out a good way to cancel tasks. I have idea on how to go about it, but it's way down in the weeds of asyncio.
Message format
I think a message should have a list of ports associated with it.

Definitely a helpful write up! I find myself being a little confused over the use of the "Port" term however, perhaps due to my limited experience with ports & network sockets. Initially you said that each Device would have a collection of "Ports", and I wasn't sure what was meant by this, as later on in an example you had deviceA send a message to deviceB, and in that expression you defined port='deviceA' .  I guess I'm confused on what exactly these "virtual ports" are, and how they'll be utilized. I think I understand how "ports" are an attribute of each message & that determines where the message will go, but just not how the ports are defined/connected to the Devices themselves, if that makes sense.
Other than that though everything makes sense to me! I agree that if the "router" can be something defined for each Device, that would likely be a lot easier to implement/understand than a standalone entity.

In the case of something like TCP, you would need to specify an IP address to send it to.
What I meant with port='deviceA' was that deviceA what be the "address" you send to. Same with Serial Ports, a device could have multiple serial devices, so you would have to specify which device to send to. I can see why that parameter name is confusing though, maybe dest would be better.

Or the multiaddr thing that Jarrod linked to may be good as well instead of a function parameter.

This refactoring is done. There may be other minor changes in the near future, but things are more or less sorted out.


Move expansion state of ExpansionTile to ExpansionTileController

Is there an existing issue for this?

[X] I have searched the existing issues
[X] I have read the guide to filing a bug

Use case
If we create an ExpansionTile with ExpansionTileController and use the value of ExpansionTileController.isExpanded e.g. directly in the trailing property of ExpansionTile (see Code), we will get the following assertion error.
The following assertion was thrown building MyApp(dirty, state: _MyAppState#7db30):
'package:flutter/src/material/expansion_tile.dart': Failed assertion: line 49 pos 12: '_state != null': is not true.

The current workaround for that is to wrap the trailing Widget with a Builder or store the state of the ExpansionTile inside a variable in a StatefulWidget and update it via the onExpansionChanged.
This is not intuitv and usually this should be the job of the controller. The controller should be the "source of truth".
Like @fischerscode  said

For me, the controller should control the behavior and not delegate the task to an other (maybe unavailable) component.

Code example:
import 'package:flutter/material.dart';

void main() {
  runApp(const MyApp());
}

class MyApp extends StatefulWidget {
  const MyApp({super.key});

  @override
  State<MyApp> createState() => _MyAppState();
}

class _MyAppState extends State<MyApp> {
  final _controller = ExpansionTileController();

  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      home: Scaffold(
        body: Center(
          child: ExpansionTile(
            controller: _controller,
            title: Text('Title'),
            trailing: Icon(
                _controller.isExpanded ? Icons.expand_less : Icons.expand_more),
          ),
        ),
      ),
    );
  }
}

Proposal
Change the ExpansionTileController to a ChangeNotifier, which controls the state of the expansion.

There is already a PR for that. See https://github.com/flutter/flutter/pull/138025

Re-applied same labels as https://github.com/flutter/flutter/issues/137831.
Although this issue doesn't provide any new information or reasons.
If we implement this, you will need to test the performance implications, update documentation, API examples.
cc @fischerscode

A fix was put up in https://github.com/flutter/flutter/pull/138025 and can be picked up to resolve if anyone is interested.


Fix to prevent dialogue overflowing from large reply

What kind of change does this PR introduce?
Max dialogue height and overflow-auto scroll bar on Y axis
Bug fix, feature, docs update, ...
Dialogue overflow on large output
What is the current behavior?
Dialogue overflow on large output
Please link any relevant issues here.
Issue Long replies breaks...
What is the new behavior?
DIalogue has max height and overflow scrollbar
Feel free to include screenshots if it includes visual changes.
Additional context
Add any other context or screenshots.

Great, thanks!


Fix Verdict.directory

This PR does two things:

fixes a bug in Verdict where Verdict.directory is being overwritten
Uses directory globbing on Verdict.directory, so we can define Verdict.directory = "#{Rails.root}/whatever/*/app/experiments"

Thanks to @kirs for pointing out we're overwriting Verdict.directory :)

Unsure why Jruby is breaking. Diving into it right now...

lol it passed, it was indeed flaky. releasing now!

@wvanbergen can you release 0.6.3?

I think @eljojo already did.

yeah i already did, you can do it using shipit https://shipit.shopify.io/shopify/verdict/rubygems


Add automatic configurtion for Solr cores.

It gets the default config and also custom multi core configurations.

This should be part of https://github.com/platformsh/template-builder first


[0.23.0-rc1] Cannot resolve react-native

On mac, npm v.3.8.2, node 5.3.0:
On a fresh install:
npm i --save react react-native@next

The install seems to complete successfully.
npm ls --depth=0
<EMAIL_ADDRESS>/Users/ianvs/code/experiments/rn
├──<EMAIL_ADDRESS>└──<EMAIL_ADDRESS>
But:
npm ls react
<EMAIL_ADDRESS>/Users/ianvs/code/experiments/rn
└──<EMAIL_ADDRESS>
npm ls react-native
<EMAIL_ADDRESS>/Users/ianvs/code/experiments/rn
└── (empty)

npm ERR! code 1

This is causing problems in some third party libraries I use which import RN with var React = require('react-native);`.

I had no trouble with 0.22.2.

Same here. After upgrading to 0.23-rc1, on android, a third party module throws unable to resolve module Subscribable. Everything works on iOS, and works on 0.22.2 and before.

Do you have Hot Reloading Enabled? I had this issue and switching off Hot Reloading "solved" it.

I had the same issue with HMR enabled @rogchap

Surprisingly yes, disabling hot reloading did prevent the redboxes (both Android and iOS).  Is the npm ls behavior a red herring?

cc @martinbigio

Hmm I cannot repro neither on master nor @next. Doesn't make sense that this repro only with HMR enabled. @brentvatne, @IanVS could you guys try reseting the packagers cache?
@satya164, have you seen this issue?

I used npm start -- --clear-cache with no change in behavior.

@IanVS you should run npm start -- --reset-cache (reset-cache instead of clear-cache).

No luck.  I'll try to create a minimal reproduction.

I can reproduce on a clean install with:
react-native init repro
cd repro
npm i --save react-native-vector-icons react-native@next

Add the following to the top of index.ios.js:
import Icon from 'react-native-vector-icons';

Starting it up should work fine, getting the default "Welcome to React Native~" screen.
react-native run-ios

But, if you enable hot reloading, you should see a redbox similar to the one I posted above.

Thanks @IanVS, I can repro following your steps.
The require on the HMR path happens here: https://github.com/facebook/react-native/blob/3a1634ec7b0dfa2b5d8890118565006d845e2039/babel-preset/configs/hmr.js#L28.
Not sure why this broke but changing React for react-native should be equivalent and it works. Will submit PR and publish a new version of the preset soon.

Only happens when you install some other pacakge? Weird.

Should work now that we have released<EMAIL_ADDRESS>You'll have to upgrade from 1.5.4 to 1.5.5


Determine the root package

The current format doesn't have information to determine direct or transitive dependence. In the following example, we can know ansi_term depends on bitflags, but the project may also directly depend on bitflags.
{
  "packages": [
    {
      "name": "ansi_term",
      "version": "0.12.1",
      "source": "crates.io",
      "dependencies": [
        1
      ]
    },
    {
      "name": "bitflags",
      "version": "1.2.1",
      "source": "crates.io",
      "features": [
        "default"
      ]
    }
  }
}

For example, package-lock.json has "" so that we can know direct dependencies.
https://github.com/firebase/functions-samples/blob/3515b7f38a3c598cdb20152a263372e81719ecda/package-lock.json#L7-L17

Oh, I found "source": "local" and it seems to have direct dependencies. Sorry for the noise.
    {
      "name": "exa",
      "version": "0.10.1",
      "source": "local",
      "dependencies": [
        0,
        5,
        8,
        9,
        13,
        14,
        17,
        18,
        20,
        21,
        22,
        27,
        28,
        29,
        34,
        36,
        41
      ],
      "features": [
        "default",
        "git",
        "git2"
      ]
    },

I don't think something installed from crates.io via cargo install would have anything with source: "local".
It's probably possible to find out the root by resolving the dependency tree, but that's a lot of hassle.
Why do you need to resolve the direct dependencies in the first place? If I understand that, perhaps I'll find a better way to accommodate it.

There also may be multiple local packages, e.g if there are path dependencies.

I got it. Thanks.
It is required in Software Bill of Materials (SBOM). For example, CycloneDX can represent a dependency graph.

If a vulnerability is disclosed in unicode-width v0.1.8, we can easily know it is introduced by detetime.

Ah, the dependency tree is already encoded in the format. What isn't encoded is where the root of the tree is, so there is no convenient place to start walking it.
I can add something like root: true to the exa package in your example to make the tree easier to walk. Do you think that's sufficient?

I can add something like root: true to the exa package in your example to make the tree easier to walk. Do you think that's sufficient?

Yes, it works. Thanks.

Great. I'll try to add it later today. I'm happy to hear suggestions for the name of the field in the meanwhile.

root: bool sounds good to me.

root: bool added in git master. It will be omitted if set to false to save space.
The next proper release will probably ship next week. Let me know if you need me to publish a pre-release in the meanwhile.

It occurred to me that the current format allows representing cyclic dependencies, which is undesirable: it may cause infinite loops in any program that tries to walk the tree naively.
I've opened #63 about it and would appreciate your input.

v0.5.0 with this change has shipped.

Cool. Thanks!


F* sent into a weird state

If I do C-c C-RET in the middle of a toplevel definition, I get a Parsing.Parse_error, then it's impossible to recover from it, I have to kill the subprocess and make sure I only ever hit C-c C-RET while I'm right after a toplevel definition.
It seems that there is some magic convention about double-newlines? If so, it would be good to specify it on the README.md page.
Thanks,
Jonathan

Hi Jonathan,
Indeed; there is such a convention; we originally discussed it on the beta thread. The documentation mentions it, but it could be more explicit:
Emacs                 Atom     Action
-------------------------------------------------------------------------------------
C-c C-n               C-S-n    Process the next block (terminated by two empty lines)

The trick is, there are two opposing constraints here:

Make it convenient to process everything up to a point
Auto-detect block boundaries so that it's possible to process just the next block, and so that rewinding after processing a large section does not rewind the entire section

If I map C-c C-RET to "process everything up to this point, extending to the next block boundary", then you loose fine-grained control over what gets sent (unless you use double newlines already)
OOTH, if I map C-c C-RET to "process everything up to this point exactly", then being in the middle of a definition confuses the REPL.
Finally, if I take the first approach but make a single new line the block delimiter, then definitions like
let a =
  blah

and let b =
  bluh

can't be sent to the interpreter...
I'm not sure if we can solve this issue unless there's a clear block delimiter. Until then, I can add a setting for C-c C-RET to only send full blocks (as delimited by a double empty line).

Hmm right. My bad, I should've seen this in the README. I guess I shouldn't be using C-c C-RET unless I'm really sure where my cursor is, then.
What about the fact that F* is sent in a bad state? I assume this is something you have no control over?

Not sure about the bad state :) I'll check this week-end!

The trick about the cursor position is that you probably just want to use C-c C-n most of the time.

Can you give me more details about the weird state; maybe a file that shows this behaviour? I have trouble reproducing it.

I can't reproduce, sorry. I'll re-open if I find a proper testcase.


fixes required "dupe-back-button" from explorer to seeds menu

Currently, when leaving the Address Explorer flow via "back" button to Seeds menu, user passes twice through the script-type selection screen.
This pr solves the above redundant "back-button" clicks which are necessary, without disturbing backwards flow for Exporting Xpubs nor for Address Explorer when coming from the Tools menu.
This was first discussed here and solved here in a large pr by @EverydayBitcoiner that has not since moved forward.

ACK and tested
I do think SeedExportXpubScriptTypeView and SeedExportXpubCustomDerivationView have become a bit of spaghetti code.
Every time we introduce workflows accessible from multiple places (Address Explorer in this case) it makes the navigation related parts of the code messy. I don't have an answer on how to improve at the moment, just commenting on situation.


Edit feature

added edit_transaction functionality
also created helper functions to edit date, cost & category
fixed bugs from previous version

Sure will work on it!

Your branch has merge conflicts. Can you fic then before merging.


get_remote_sender_id returns different identifiers

Tested versions
v4.2.2.stable.official [15073afe3]
System information
Godot v4.2.2.stable - Windows 10.0.22631 - Vulkan (Mobile) - integrated Intel(R) Iris(R) Xe Graphics (Intel Corporation; <IP_ADDRESS>86) - 11th Gen Intel(R) Core(TM) i7-1165G7 @ 2.80GHz (8 Threads)
Issue description
multiplayer.get_remote_sender_id() returns different identifiers for the same multiplayer peer. I have a code example down below.
Steps to reproduce
I am trying to run a basic multiplayer example. I want to send a number to the server and have it print in the console.
func _process(delta):
	if Input.is_action_just_pressed("ui_accept"):
		count += 1;
		_get_packet.rpc_id(1, count);

@rpc("any_peer")
func _get_packet(data):
	print(str(multiplayer.get_unique_id()) + ": Recieved " + str(data) + " from " + str(multiplayer.get_remote_sender_id()))

When I have 1 server and 1 client, the "get_remote_sender_id" returns different values every time "ui_accept" is pressed.
1: Recieved 1 from 732659611
1: Recieved 2 from<PHONE_NUMBER>
1: Recieved 3 from 590123181
1: Recieved 4 from<PHONE_NUMBER>
1: Recieved 5 from<PHONE_NUMBER>

The documentation says this function "Returns the unique peer ID of this MultiplayerAPI's multiplayer_peer."
I would expect the remote sender ID to be the same for the same client. (Using the ENetMultiplayerPeer for both server and client). I think this is a bug.
Minimal reproduction project (MRP)
I think this file should be sufficient, you just need two buttons, one for host and one for join. I can provide the full project if needed.
multiplayer_ui.gd.txt

CC @Faless

Just a single script is likely not enough to test this, please upload a complete MRP

Huh, I tried it out again today and everything works as expected. Feel free to close it.
Here is the project https://github.com/RyanRemer/multiplayer_722.

Closing as per the above, if you have issues with this again please comment here and this can be reopened

Closing as per the above, if you have issues with this again please comment here and this can be reopened

Thanks for looking into it! I'm so confused what changed. I'll reopen if I run into it again.


nixos/zeronsd: init module and package

Description of changes
Zeronsd is a DNS server for Zerotier. It allows to resolve hostnames to addresses in the virtual Zerotier network.
Things done

Built on platform(s)

[x] x86_64-linux
[ ] aarch64-linux
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[ ] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[x] Tested basic functionality of all binary files (usually in ./result/bin/)
23.11 Release Notes (or backporting 23.05 Release notes)

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

[ ] Fits CONTRIBUTING.md.

I would love to see this package get merged. What's the status of this PR? Is it completely abondoned?


force the use jdk21 through Crave

https://issues.apache.org/jira/browse/SOLR-XXXXX

Description
The Solr project is considering the usage of JDK 21 at some point.
We need to control which JDK is used in Crave.
Solution
A crave.yaml file at the top of the source repository is read by Crave to override any Crave defaults.
This change introduces the file, with the image override for JDK 21.
Tests
I ran the following command on my private branch with this file and against the upstream Solr, and saw that the new JDK has been used with this change.
Before change: https://foss.crave.io/app/#/build/info/109405?team=5
javac 11.0.23

After change: https://foss.crave.io/app/#/build/info/109418?team=5
javac 21.0.3

Full log output:
14:15:01 admin@Uv-MacAir:/crave-devspaces/solr/uvatbc$ git checkout main
Switched to branch 'main'
Your branch is up to date with 'origin/main'.
14:20:18 admin@Uv-MacAir:/crave-devspaces/solr/uvatbc$ crave run -- javac --version
Selecting project Solr (id:39)
Picking up local changes (if any)...
Waiting for build id:109405 to start...
Error: Could not start service links, since job is no longer running
Setting up workspace (this could take some time)...
Pulling container image accupara/openjdk:11...
Finished pulling container image accupara/openjdk@sha256:4f56da3bde6640dcff1440d8429ec770d44f3d94985a2eb3d2253ed1885f9933 took 977.339733ms
using branch "main"
setting commitID to 31e85fb6d87d2f70e92501d4df065d0c9ed3a466

javac 11.0.23

------------------------------------------------------------------------
Build Successful

Total time: 18s
------------------------------------------------------------------------
Build logs saved at: https://foss.crave.io/app/#/build/info/109405?team=5
14:23:35 admin@Uv-MacAir:/crave-devspaces/solr/uvatbc$ git checkout crave-jdk-21
Switched to branch 'crave-jdk-21'
15:06:07 admin@Uv-MacAir:/crave-devspaces/solr/uvatbc$ crave run -- javac --version
Selecting project Solr (id:39)
Picking up local changes (if any)...
 1 file changed, 2 insertions(+)
Waiting for build id:109418 to start...
Error: 2024/06/05 15:10:36 client: Connection error: server: access to port <IP_ADDRESS>:7091:3 denied err: <nil>
Error: 2024/06/05 15:10:37 client: Connection error: server: access to port <IP_ADDRESS>:7546:3 denied err: <nil>

Services in this job can be accessed using the following:

Service      Remote  Access URL
---------  --------  ------------------------
ssh              22  ssh://localhost:40279
vscode         5899  vscode://localhost:39035
Setting up workspace (this could take some time)...
Pulling container image accupara/openjdk:21...
Finished pulling container image accupara/openjdk@sha256:903dbc01cdd18791ffd4a8ee710f5a7f499bd664fd9ee85a42f7f548c41aabce took 12.942741237s
Switched to a new branch 'crave-jdk-21'
setting commitID to 31e85fb6d87d2f70e92501d4df065d0c9ed3a466
From /home/admin/.craved/mcduSuBhHKKD-8a8cf14e400f0b9cf5fc12fd7d51bb83ea225229.patch.gz.b64
 * branch                    HEAD       -> FETCH_HEAD
Updating 31e85fb6d87..9fa39c70e56
Fast-forward
 crave.yaml | 2 ++
 1 file changed, 2 insertions(+)
 create mode 100644 crave.yaml

javac 21.0.3

------------------------------------------------------------------------
Build Successful

Total time: 31s
------------------------------------------------------------------------
Build logs saved at: https://foss.crave.io/app/#/build/info/109418?team=5

Checklist
Please review the following and check all that apply:

[x] I have reviewed the guidelines for How to Contribute and my code conforms to the standards described there to the best of my ability.
[ ] I have created a Jira issue and added the issue ID to my pull request title.
[x] I have given Solr maintainers access to contribute to my PR branch. (optional but recommended)
[x] I have developed this patch against the main branch.
[ ] I have run ./gradlew check.
[x] I have added tests for my changes.
[ ] I have added documentation for the Reference Guide

I tried running this for #2497 (https://foss.crave.io/app/#/build/info/109489?team=5)

BUILD SUCCESSFUL in 7m 25s
141 actionable tasks: 114 executed, 27 up-to-date

I wonder If this setting can be added to test-via-crave.yml rather than creating a separate file.

Before this change here, isn't there some existing build image for Solr you @uvatbc worked on ?
@iamsanjay assuming the build starts running on JDK 21 (wherever -- CI / Crave / dev machine, wherever), should it pass in your experience?  There are "flapper"/intermittent failures here & there but does it at least seem sound as-is?  Locally I'm not the best judge on my machine as I have a company provided JDK with some differences.

If crave.yml change the Java version to 21, gradlew check should fail, more specifically the ecj-lint version that we are currently using make sure the Java version should be less than or equal to 19.

Task :solr:api:ecjLintMain FAILED
source level should be in '1.1'...'1.8','9'...'19' (or '5.0'..'19.0'): 21

And, dependancy-analyze task should also fail which we have disabled in #2497 just to make it run.

Task :solr:modules:scripting:analyzeTestClassesDependencies
Dependency analysis found issues.
unusedDeclaredArtifacts

org.apache.solr:test-framework:10.0.0-SNAPSHOT@

If crave.yml change the Java version to 21, gradlew check should fail, more specifically the ecj-lint version that we are currently using make sure the Java version should be less than or equal to 19.

Ok let me check again.

@uvatbc thanks for offering to help further (edit our build) if you wish but I wouldn't want any feedback on these PRs to be implied that it is for you to update our build.  You give us Crave.io build machines for free, which is tremendous!  It's up to one of us committers or a volunteer to make the build Java 21 compliant.

@iamsanjay as this just adds a file, maybe you should simply include it in #2682 as you are touching other CI files there as well so why not.

Oh nevermind; it's already there :-)  I'll close this PR; thanks @uvatbc


为啥执行npx react-native run-android 会报这个错误

FAILURE: Build failed with an exception.

What went wrong:
Execution failed for task ':react-native-gesture-handler:compileDebugJavaWithJavac'.

Compilation failed; see the compiler error output for details.

Try:
Run with --stacktrace option to get the stack trace. Run with --info or --debug option to get more log output. Run with --scan to get full insights.

Get more help at https://help.gradle.org

BUILD FAILED in 2s
25 actionable tasks: 1 executed, 24 up-to-date
Could not install the app on the device, read the error above for details.
Make sure you have an Android emulator running or a device connected and have
set up your Android development environment:
https://facebook.github.io/react-native/docs/getting-started.html

@chenguotao123 不建议用 npx 跑，npx 默认安装最新的工具链(react-native)，最新的工具跑这套环境不一定能跑得起来，建议在项目内安装依赖，即 yarn 之后再重新跑


Add an option to build ASTs for files in the CDB on startup

Currently, clangd builds the AST for a file and its headers when it first opened. This takes a noticeable amount of time in large codebases. It would be great to have an option to have clangd do this on startup along with background indexing for all files in the compilation database.

Prototype patch implementing a --prebuild-asts option: https://reviews.llvm.org/D91509

Yeah, new file latency is the worst. And we don't have big plans to fundamentally reduce it.
Can you explain a bit more about the workflow where you think this will help? e.g. typical TU takes A seconds to build, you expect to mark B TUs in your project as "pre-build" of which you'll end up opening C on average, clangd will typically run for D hours. Do you close inactive files and typically keep E open at once, or does that number grow over time?
The proposed solution seems pretty narrow: it brings benefits when TUs are slow to build, but also has high costs in that case. We may take some latency off the user's critical path, but:

peg the CPU and IO on startup, every time. (unlike background indexing, high priority threads)
lock out real interactive work (worker threads share a semaphore)
not work well with multiple-editor workflows
not work well if the editor is frequently closed/reopered
waste RAM/disk for any unopened files
It requires manual configuration for the user's particular workflow (and maintenance of this over time), so it's unlikely to be used by many people. Accordingly, it's hard to justify the complexity of a more robust implementation (separate thread pools etc).

Had a brief chat with @kadircet @kirillbobyrev, and we had a couple of ideas:

have a persistent preamble cache on disk, rather than considering these files private to the session. This trades latency for disk pretty predictably.
have a more relaxed eviction policy for preambles, so we should only build each preamble once per session. (This doesn't fix the latency, but does more to ensure it's amortized over long sessions)
(Focus on preambles, where the vast majority of AST build time goes and which are serializable. Also on measures that can be controlled with a general policy, rather than configuration of specific files)

There's also a low-tech/short term solution of forcing the relevant files to actually be opened on startup with a script in the editor. Certainly not ideal, but cheap if we can't find a solution that's useful to many people...

peg the CPU and IO on startup, every time. (unlike background indexing, high priority threads)

Surely there's a way to mark the threads doing AST prebuilding as low pri, no?
The rest of the disadvantages are valid, but if we mention these explicitly and make it opt-in, why not give users the choice? There's the additional maintenance cost of course but the implementation is pretty simple and shouldn't have a big maintenance overhead.
I'm all for better solutions like the ones you mentioned but I'm assuming this isn't on the short-term roadmap for the team and unfortunately, I don't have the cycles required to implement a better solution at the moment. I can always keep this around as a patch since it seems like no one's complained before so there might not be a big ask from users for a feature like this.

have a persistent preamble cache on disk, rather than considering these files private to the session. This trades latency for disk pretty predictably.

Seems preamble on disk is not enough. We also need other fields of PreambleData structure (Diags, Includes, etc.) + index update (which happens during preamble build).

I got all the bugs ironed out and this is working as expected. clangd takes about 5 minutes to build index and prebuild ASTs. After that, even when accessing the huge translation units I have almost instant access to the AST.

* have a more relaxed eviction policy for preambles, so we should only build each preamble once per session. (This doesn't fix the latency, but does more to ensure it's amortized over long sessions)

That would be nice. I often close editor tabs just to manage tab clutter, without considering that I'm throwing away ASTs that will need to be rebuilt.

I abandoned the diff after trying it out for a while as it takes clangd too long to start up even with a limited amount of translation units when using it.

@ArcsinX

Seems preamble on disk is not enough. We also need other fields of PreambleData structure (Diags, Includes, etc.) + index update (which happens during preamble build).

This is a really good point, and makes this a much larger project.

diags could be omitted if we treat preambles as stale (they're likely to be) with no diags. Maybe we can live without statcache and a few others for similar reasons.
but many other fields need to be serialized
and index is the killer: code completion won't work without it. And IIRC deserializing a full preamble to index it is the same order of magnitude as building it.

One big solution to this is making the dynamic index persistent too (at least the preamble parts of it): the dynamic index and preamble metadata could both live in a sqlite database (and overlap more with the background index).
@DaanDeMeyer
That's a shame, but not all that surprising as we're not fundamentally able to skip any of the slow work.

@DaanDeMeyer Can you please tell me which project with huge translation units did you test on? Currently, we have a similar problem of generating a  preamble cache in our project.

@DaanDeMeyer Sorry to bother you, but do you have the diff that you abandoned?


Sema: Fix failure to produce diagnostics when 'is' casts are involved [4.0]

Description: Fix a crash-on-invalid where the combination of an 'is' cast inside other invalid code would sometimes cause the type checker to not emit a diagnostic. In a no-assert build this crashes in SILGen, otherwise the AST verifier.

Scope of the issue: Reported a few times externally, people are hitting this with invalid code.

Origination: The issue is present in 3.1 also.

Risk: Very low, this gives more correct behavior to a code path only exercised during diagnostics.

Tested: New test added to ensure a diagnostic is emitted.

Reviewed by: @rudkx

Radar: rdar://problem/32487948

@swift-ci Please test

@rudkx Can you please review?


tests: fix bug in _get_all_example_and_language_ids

Codecov Report

Merging #70 (d24d49e) into master (5505e85) will increase coverage by 0.45%.
The diff coverage is n/a.

@@            Coverage Diff             @@
##           master      #70      +/-   ##
==========================================
+ Coverage   98.87%   99.32%   +0.45%
==========================================
  Files          13       13
  Lines         443      443
  Branches       70       70
==========================================
+ Hits          438      440       +2
+ Partials        5        3       -2

Impacted Files
Coverage Δ

string_to_code/to_algol68.py
100.00% <0.00%> (+3.22%)
:arrow_up:

string_to_code/to_python3.py
100.00% <0.00%> (+3.44%)
:arrow_up:

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.