Add the ability to do constraints over trees in constrained-generators

Description
Also fixes some minor issues around list size
Checklist

[x] Commit sequence broadly makes sense and commits have useful messages
[x] New tests are added if needed and existing tests are updated
[x] When applicable, versions are updated in .cabal and CHANGELOG.md files according to the
versioning process.
[x] The version bounds in .cabal files for all affected packages are updated. If you change the bounds in a cabal file, that package itself must have a version increase. (See RELEASING.md)
[x] All visible changes are prepended to the latest section of a CHANGELOG.md for the affected packages. New section is never added with the code changes. (See RELEASING.md)
[x] Code is formatted with fourmolu (use scripts/fourmolize.sh)
[x] Cabal files are formatted (use scripts/cabal-format.sh)
[x] hie.yaml has been updated (use scripts/gen-hie.sh)
[x] Self-reviewed the diff

@lehins I'm having trouble figuring out why CI failed. It says
Tests failed for test:cardano-ledger-shelley-ma-test

but I can't for the life of me find the failing test in the log.

@UlfNorell Here is the reason
This is the flaky test that has been haunting us for the longest time. It is caused by the older trace generation framework that was written back in times of Shelley.
Once we are done with Conway we'll invest some time into fixing it, but for now we are forced to suffer through it. So, feel free to re-run the build.

I don't think I have permissions to restart tests runs. At least I can't find the button where I remember it being.

I don't think I have permissions to restart tests runs.

That is strange. You do have write permission to the repo, so you should be able to restart GithubActions CI (FYI, hydra CI is not required, so there is no need to restart if there are failures)

At least I can't find the button where I remember it being.

It should be right here:

I have restart rights. I decided to force push here because it was faster. The time is dominated by the 8.10.7 build - so waiting for that to finish before doing a restart (you can't restart while things are running) would be slower. However, I guess the best option would have been to cancel the 8.10 job and then re-start both the failed and 8.10 job. Good to remember next time.


bpf: nodeport: fix tracing for handle_nat_fwd()

We currently attempt to suppress tracing when handle_nat_fwd() returns, assuming that the inner function (ie. handle_nat_fwd_ipv*()) was inlined and already raised a trace message.
But there's a number of cases where this falls short:

handle_nat_fwd() can return without even going down the IPv4 / IPv6 paths,
handle_nat_fwd() can return with DROP_MISSED_TAIL_CALL,
the inner function is inlined, encounters an error and sends a drop notification. It returns CTX_ACT_DROP to cil_to_netdev(), which sends a second drop notification.

So just clean up things for good by wiring up an alternative function for the inline config. Don't write trace messages from that function.
Note that the tracing in to-overlay still looks completely confused, but that's a separate issue.
Fixes: 322510d4d9f4 ("bpf: Add missing packet tracing for handle_nat_fwd")
Signed-off-by: Julian Wiedmann<EMAIL_ADDRESS>

/ci-external-workloads

/ci-multicluster

[CI was all green, just needed some no-change pushes to massage the commit description]

Why did external workloads and multicluster workflows require retrying? Retrying tests without tracking root cause is a common way to introduce unreliable tests into the tree. If those tests are already unreliable, please report which issues they are and consider raising attention so we can either solve or quarantine those tests.

Why did external workloads and multicluster workflows require retrying? Retrying tests without tracking root cause is a common way to introduce unreliable tests into the tree. If those tests are already unreliable, please report which issues they are and consider raising attention so we can either solve or quarantine those tests.

GKE failed to bring up clusters earlier today. How would you like us to keep track of such base infrastructure troubles?

LGTM 👍

[rebase to resolve a conflict]

/test

test-1.26-net-next hit ratelimiting on docker.io, restarting.

K8sKafkaPolicyTest Kafka Policy Tests KafkaPolicies still fails with:
429 Too Many Requests - Server message: toomanyrequests: You have reached your pull rate limit.
I give up :).

ci-aks flakes with https://github.com/cilium/cilium/issues/22162:
2022-12-21T09:39:22.0558819Z   [.] Action [client-egress-to-echo-expression-deny/pod-to-pod/curl-0: cilium-test/client-784c67ffc4-th9gd (<IP_ADDRESS>) -> cilium-test/echo-other-node-f7549999-gn9n2 (<IP_ADDRESS>:8080)]
2022-12-21T09:39:22.0559915Z   ❌ command "curl -w %{local_ip}:%{local_port} -> %{remote_ip}:%{remote_port} = %{response_code} --silent --fail --show-error --connect-timeout 5 --output /dev/null http://<IP_ADDRESS>:8080" succeeded while it should have failed:
2022-12-21T09:39:22.0560422Z   ℹ  curl output:
2022-12-21T09:39:22.0560617Z
2022-12-21T09:39:22.0560790Z
2022-12-21T09:39:22.0561078Z   📄 No flows recorded during action curl-0
2022-12-21T09:39:22.0561424Z   📄 No flows recorded during action curl-0


Add info on building & running tests.

It was a little confusing to me on how to get started with development work on this project. I thought that explicitly adding info to the README may be helpful for others.

The CI failure is unrelated to this changed. Merging.


ray.php file not found

Each call to ray() returns a new Ray object. This then calls into the SettingsFactory and causes a directory search for ray.php. The first time this is called, this finds the ray.php file as getcwd returns the correct path. Subsequent calls to ray() and thus getcwd() returns / and doesn't find the ray.php file.
Versions
1.7.0
You can use composer show to get the version numbers of:
spatie/ray                           1.14.0    Debug with Ray to fix problems faster
PHP version:
7.4.12 (MAMP)
To Reproduce
Steps to reproduce the behavior:

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

Expected behavior
I expect ray.php to be honored no matter how many times I call ray()
Screenshots
If applicable, add screenshots to help explain your problem.
Desktop (please complete the following information):

OS: macOS MAMP6

Additional context
code changes made to debug SettingsFactory.php:
    protected function searchConfigFiles(string $configDirectory = null): string
    {
        $configNames = [
            'ray.php',
        ];
error_log('config dir before: '.print_r($configDirectory, true));

        $configDirectory = $configDirectory ?? getcwd();
error_log('config dir after: '.print_r($configDirectory, true));
...

Error log output:
[22-Jan-2021 02:35:55 UTC] config dir before:
[22-Jan-2021 02:35:55 UTC] config dir after: /Users/username/Sites/path/files
[22-Jan-2021 02:35:55 UTC] Array
(
    [enable] =>
    [send_log_calls_to_ray] =>
    [send_dumps_to_ray] =>
    [host] => localhost
    [port] => 23517
)

[22-Jan-2021 02:35:55 UTC] config dir before:
[22-Jan-2021 02:35:55 UTC] config dir after: /
[22-Jan-2021 02:35:55 UTC] config dir before:
[22-Jan-2021 02:35:55 UTC] config dir after: /

code calling ray:
	require_once('../path/to/autoload/vendor/autoload.php');

		// Set an error_log file if none is set.
		//if (empty(ini_get('error_log'))) {
			@ini_set('error_log', __DIR__.'/error_log');
		//}

		// Initialize error reporting

		// Ray tracing
		//ray(getcwd());
        ray()->measure();

		ob_start(function($content) use ($obj) {
        		ray()->notify('processing complete!');

            //
            	ray()->measure();
        		return $content;
    		});

I've done a quick test and getcwd always seems to return the right result.
Do you have an idea why the function would produce a different result for subsequent calls for you?
I'd accept a PR that fixes this problem for you.

I've done a quick test and getcwd always seems to return the right result.
Do you have an idea why the function would produce a different result for subsequent calls for you?
I'd accept a PR that fixes this problem for you.

I thought about this some more, I think it's related to the closure. Need to test some more tonight. Thanks

I thought about this some more, I think it's related to the closure. Need to test some more tonight. Thanks

To update this, I can confirm the behavior of getcwd() in the closure is what is causing the issue. Code:
// Set an error_log file if none is set.
		//if (empty(ini_get('error_log'))) {
			@ini_set('error_log', __DIR__.'/error_log');
		//}

		// Ray tracing
        ray()->measure();

		ray()->measure();
error_log('before closure cwd '.getcwd());
		ob_start(function($content) use ($formsPlus_stacks_in_2) {

			error_log('in closure cwd '.getcwd());

        		ray()->notify('FormsPlus stacks_in_2 processing complete!');

            //
            ray()->measure();
        		return $content;
    		});

Modified SettingsFactory.php:
    protected function searchConfigFiles(string $configDirectory = null): string
    {
        $configNames = [
            'ray.php',
        ];
error_log('config before: '.print_r($configDirectory, true));
        $configDirectory = $configDirectory ?? getcwd();
error_log('config after: '.print_r($configDirectory, true));
...

Error log:
[22-Jan-2021 22:42:28 UTC] config before:
[22-Jan-2021 22:42:28 UTC] config after:  /path/to/src/files
[22-Jan-2021 22:42:28 UTC] config before:
[22-Jan-2021 22:42:28 UTC] config after:  /path/to/src/files
[22-Jan-2021 22:42:28 UTC] before closure cwd /path/to/src/files
[22-Jan-2021 22:42:28 UTC] in closure cwd /
[22-Jan-2021 22:42:28 UTC] config before:
[22-Jan-2021 22:42:28 UTC] config after: /
[22-Jan-2021 22:42:28 UTC] config before:
[22-Jan-2021 22:42:28 UTC] config after: /

To update this, I can confirm the behavior of getcwd() in the closure is what is causing the issue. Code:
// Set an error_log file if none is set.
		//if (empty(ini_get('error_log'))) {
			@ini_set('error_log', __DIR__.'/error_log');
		//}

		// Ray tracing
        ray()->measure();

		ray()->measure();
error_log('before closure cwd '.getcwd());
		ob_start(function($content) use ($formsPlus_stacks_in_2) {

			error_log('in closure cwd '.getcwd());

        		ray()->notify('FormsPlus stacks_in_2 processing complete!');

            //
            ray()->measure();
        		return $content;
    		});

Modified SettingsFactory.php:
    protected function searchConfigFiles(string $configDirectory = null): string
    {
        $configNames = [
            'ray.php',
        ];
error_log('config before: '.print_r($configDirectory, true));
        $configDirectory = $configDirectory ?? getcwd();
error_log('config after: '.print_r($configDirectory, true));
...

Error log:
[22-Jan-2021 22:42:28 UTC] config before:
[22-Jan-2021 22:42:28 UTC] config after:  /path/to/src/files
[22-Jan-2021 22:42:28 UTC] config before:
[22-Jan-2021 22:42:28 UTC] config after:  /path/to/src/files
[22-Jan-2021 22:42:28 UTC] before closure cwd /path/to/src/files
[22-Jan-2021 22:42:28 UTC] in closure cwd /
[22-Jan-2021 22:42:28 UTC] config before:
[22-Jan-2021 22:42:28 UTC] config after: /
[22-Jan-2021 22:42:28 UTC] config before:
[22-Jan-2021 22:42:28 UTC] config after: /

@freekmurze I can think of two ways to possibly tackle this.

add a global in helper.php so there is only 1 Ray object initialized or
add functionality to make a static instance of the Ray object to some base class

I can't think of a way to preserve or switch context from a closure or thread. Unless you have any thoughts here, which would you prefer? Easiest is global but, obviously, pollutes the global namespace.
Thanks

@freekmurze I can think of two ways to possibly tackle this.

add a global in helper.php so there is only 1 Ray object initialized or
add functionality to make a static instance of the Ray object to some base class

I can't think of a way to preserve or switch context from a closure or thread. Unless you have any thoughts here, which would you prefer? Easiest is global but, obviously, pollutes the global namespace.
Thanks

We'll continue this in #238

We'll continue this in #238


Configuration with cmake to build static libs

Hi,
I have been using tinyXML 2 for a while now in our projects and it works great. Recently however, some modifications were made to the CMakeLists to improve inclusion in other cmake projects. That is great but made the cmake configuration of the tiny XML 2 project fail when building static libraries (BUILD_STATIC_LIBS to ON) with the following error :
CMake Error at CMakeLists.txt:94 (target_compile_definitions):
Cannot specify compile definitions for target "tinyxml2" which is not built
by this project.
My system is an Ubuntu 16.04 and I am using cmake 3.8.2. Has anyone experienced this kind of error and would know if there is a way around ?
Thanks

Quick add-on: changing tinyxml2 to tinyxml2_static on line 94 actually solves the problem but since I don't know what exactly this line is doing, if you have any advice I would still be happy to know them
Thanks

Does #566 fix this? (merged to master)

Yes it does ! Thanks, I am closing this issue then


apps/mlearning: tweak libcmsisdsp makefile

only one .c needed for each function group
add -flax-vector-conversions to avoid build error on gcc && M55
remove non-existent items in libcmsisnn
Signed-off-by: Peter Bee<EMAIL_ADDRESS>Summary
Impact
Testing
Successfully compiled on Cortex-M55 platform

@jerpelea could you take a look?


Update virtual-machines-windows-classic-change-drive-letter.md

Fixed typo.

Hi @alexandair, I'm your friendly neighborhood Azure Pull Request Bot (You can call me AZPRBOT). Thanks for your contribution!
You've already signed the contribution license agreement. Thanks!
We will now validate the agreement and then real humans will evaluate your PR.
TTYL, AZPRBOT;

@alexandair : Thanks for your contribution to the Azure documentation! The author, @cynthn, has been notified to review your proposed change.

#sign-off @alexandair thanks for the fix :)  @tysonn this is good to merge


Documentation about headers is wrong

In the documentation, we can see an example of header set for all queries:
api.headers.token = 'secret authentication token'
Actually, it looks like it should be:
api.config.headers.token = 'secret authentication token'

This is correct. The docs are terribly outdated.
Will work on this.

I've created a new issue for this: #27


Reliable deadlock on windows in Smol 0.1.5

Code to reproduce:
https://gist.github.com/nmccarty/0df7130b40a62c380e8d0a3c46f48e86
Smol 0.1.5 seems to have introduced a regression on windows that causes the linked code snippet to run forever without terminating. The same code runs and terminates fine on linux and macos under smol 0.1.5, and under all three operating systems on smol 0.1.4.
In particular, it appears line 88 is triggering the bug, if that line is removed, the code terminates normally on smol 0.1.5.
I apologize for reproduction not being as minimal as it could be, this bug manifested as one of my unit tests not terminating on windows, and this was produced by trimming portions out of that module until there was nothing else obvious to remove.

Using git-bisect using my example as a test reveals that commit 2ff45ece44 seems to have introduced the bug.

Thank you for the report and investigating!
Can you verify whether https://github.com/stjepang/smol/pull/117 resolves the issue?

It resolves the issue for me, both on my "minimal" example as well as in the full test suite it came from.
Thank you!

Published v0.1.6 with the bugfix.


Allow Greek questionmark for semi-colon

See https://twitter.com/mtmthemovie/status/1290018491089563648 in non-strict mode this might make sense as it could easily be used instead of a semi-colon.

Colons would also be a candidate see https://www.unicode.org/Public/security/latest/confusables.txt

Found by accident:
"៖" is the colon equivalent in Khmer script

FYI the Greek question mark ";" does currently not appear in any opening hours, collection times or service_times string on OSM.


Lucene not working correctly with "Cluster:xx" query

OrientDB Version, operating system, or hardware.

v2.2.7[x]

Operating System

[x] Linux
[x] MacOSX
[ ] Windows
[ ] Other Unix
[ ] Other, name?

Expected behavior and actual behavior
i've created an lucene index with following java:
final ODocument metadata = new ODocument();
    metadata.field("default", "org.apache.lucene.analysis.de.GermanAnalyzer");
regionType.createIndex(CLASS_NAME + ".name_de", "FULLTEXT", null, metadata, "LUCENE",
        new String[] { "name_de" });

i insert this test data:
[{"name_de": "nord"},{"name_de":"nördlich"}]
Steps to reproduce the problem
My select query:
select * from Region where [name_de] LUCENE 'nor*'
returns the two rows and this is what i expect.
For the future, i'd like to query two or more classes with one query. i figure out, this is possible via "cluster:". my query is now:
select * from cluster:Region where [name_de] LUCENE 'nor*'
and this returns just one row -> "nord".
Is that a valid behaviour ?
Thanks
Marcel Alburg

@marcelalburg
What do you mean by
For the future, i'd like to query two or more classes with one query.

Hey, sorry maybe i use the wrong expression to describe that.
in the future, i'll use something like this:
select * from cluster:[Region,Abc,Cde] where [name_de] LUCENE 'nor*'
Thanks
Marcel

@marcelalburg
I think it will not work.
Indexes works at class level not cluster level.

Mhh ok, then i will use a manual index for this.
Maybe you could answer me one more question. If i add multiple times the same value to the same vertex (#nn:n) to a manual index. is there any problem about that ?
Thanks for your answer
Marcel

@marcelalburg
no problem. You will get multiple times the same vertex in the results set.
Can you explain a little bit you use case maybe i can help more
Thanks

Hi @maggiolo00 indexes arent supported for Clusters? This would mean that the concept of clustering and distribution is uncomplete?!
When I understand correct then clustering is a mechanism of grouping and the set are still classes.

The same issue is that edges cannot be deleted by a cluster selection.
DELETE EDGE SponoredBy CLUSTER S WHERE ....

Thats a workaround but here you can see that the clustering concept is very uncomplete.
delete edge EdgeClass where @rid in (select @rid from cluster:edge_cluster where .... )

Hello,
i try to explain my usecase:
I've following classes:
Continent
Country
Region
Area
aso.
Every Class has different properties but min. a "name" property.
and i like to create an AutoComplete/Suggest Lucene index on this field and all classes (this works). But i need to query them now.
I hope this explained it a little bit.
Thanks
Marcel

Hello, i found an other solution for my problem.
i create a base Class "Searchable" wich one contains all fields for searching. On this class, i create my fulltext lucene index.
all other classes (see above) extends this "Searchable" class.
Now, it's possible to query just the "Searchable" class with the LUCENE Query.
Thanks
Marcel

Hi  @marcelalburg your solution is no answer to your issue. Its still an issue. Please reopen or I will open a new one because it will address me soon.

@maggiolo00 can you answer my questions? Thanks.

Hi, on the next 2.2.16 version Lucene indexes will contain additional metadata fields _CLUSTER and _CLASS. So a query could be partitioned by cluster:
SELECT FROM Person WHERE name LUCENE '+_CLUSTER:26  OTHER QUERY ' "

Close the issue before it released. Awesome!

What do you mean?

@robfrank the current release is 2.2.15 you closed the issue before we are able to test it.

Can you test  with a snapshot? I mean 2.2.16-SNAPSHOT.

this feature is included in 2.2.16. I close it, feel free to open a new issue relative to the feature as it is implemented.


Automatically detect platform and use appropriate board implementation

Add decision making here:
https://github.com/px3/bulldog/blob/devel/bulldog-core/src/main/java/io/silverspoon/bulldog/core/platform/Platform.java
and here:
https://github.com/px3/bulldog/blob/devel/bulldog-board-raspberrypi/src/main/java/io/silverspoon/bulldog/raspberrypi/RaspberryPiBoardFactory.java
Only reliable way of detecting the target platform is probably decode /dev/mem and parse vendor.

Inspect MemoryMap

Generally speaking, investigate a way how to have 1 universal dependency that will detect the board and pick up just to correct implementation.

Implemented in https://github.com/px3/bulldog/commit/a971487a3c90b7387b8243c2d7cd8c7fe2e0b86e, @pmacik can you please test it on all supported platforms?

Verified, bulldog determines appropriate board implementation based on present HW.


Server nor Modpack won´t load Ender IO

Issue Description:
Server will stop starting & when i try to start the Modpack itself it wont start either but only when i add Ender IO.
What happens:
So i got my own Server from the ATLauncher and i added some Mods to the Modpack Mech&Magic Lite. When i tried to add Ender IO with the Endercore, both for the correct Version which is 1.12.2, the server will stop starting and the Modpack will crash as well when i try to start it. All other mods are working fine.
What you expected to happen:
Server and Modpack starting adn runninf fine with all other mods.
Steps to reproduce:
1.Download ATLauncher
2.Download Modpack Mech&Magic Lite for MC Version 1.12.2
3.Add the following mods which i added afterwards: Atum, buildcraft, Carpenter´s blocks v3.4.0, desertland, endercore, ender IO, huntingdimension, malisisblocks v6.1.0, malisiscore v6.5.1, malisisdoors v7.3.0, minecolonies-universal v0.8.7582, NetherEx, Optifine, RoguelikeDungeons v1.8.0, u_team_core v <IP_ADDRESS>, useful_Backpacks v<IP_ADDRESS>, Xaeros-Minimap, YAMDA v1.0.2
...

Affected Versions (Do not use "latest"):

EnderIO:
EnderCore:
Minecraft:1.12.2
Forge:
SpongeForge? no
Optifine? yes
Single Player and Server

Your most recent log file where the issue was present:
https://pastebin.com/jn1GbPnx

  | LCHIJ | enderio                           | 5.0.25                   | Ender-IO-Mod-1.12.2.jar                            | None
Out of curiosity, where did you download that file?  5.0.25 is nearly 3 months old and had a file name of "EnderIO-1.12.2-5.0.25.jar"
Ender IO is public domain, so it's not illegal to rehost it, but whatever website you got that from is probably not trustworthy.
The 'official' public builds are uploaded to CurseForge, and the current version is 5.0.50.  https://www.curseforge.com/minecraft/mc-mods/ender-io

3 months? You got the wrong year there :P

Whoops.  A year + 3 months ago, so 15 months.  :P

I got it from http://www.9minecraft.net/ender-io-mod/
i will try to download a Version which is more uptodate

Yeah, 9minecraft is one of many illegal rehost sites.  Refer to this list: https://github.com/StopModReposts/Illegal-Mod-Sites/blob/master/SITES.md
By downloading from a rehost site you are:

not supporting the mod author
risking someone slipping in something malicious
Are likely downloading an outdated version.

Most mod authors these days use Curseforge.  That should be your first stop when looking for new mods to add.

Thank you so so much <3


Merge sub-projects to Pegasus main repository

Steps:

sub-project: move main source files to a sub-directory, except files like: .github, .gitignore, .goreleaser.yml, and etc. Some related paths may be updated, make sure all CIs passed, then create a pull request and wait it been merged.
pegasus-project: in a pegasus repository local directory, merge sub-project:

git remote add <sub-project-name> <sub-project-repo-url>
git fetch <sub-project-name>
git checkout -b <sub-project-branch-name> -t <sub-project-name>/<source-branch-in-sub-project>
git checkout master  # suppose master is your branch which track the lastest remote Pegasus repository master branch.
git pull
git checkout -b merge-<sub-project>
git merge <sub-project-branch-name> --allow-unrelated-histories
// Resolve merge conflicts if any.
git commit -m "xxx"  // Suggest to naming the commit title like "merge pegasus-kv/admin-cli repo"

pegasus-project: create a pull request, and wait for the CIs statuses. If any CI failed, try to fix it, and use a new commit, do not merge it with any previous commits. Of course, if you fix CI with multiple commits, better to merge them (but always not merge them with the commit in step 2). It would be nice for reviewers.

There are some TODO works we have to do, see https://github.com/apache/incubator-pegasus/pull/980#issuecomment-1137438280

How to merge XiaoMi/rDSN
Background
rDSN (Robust Distributed System Nucleus), is a framework for quickly
building robust distributed systems, you can see more details about
rDSN on its official site on GitHub[1].
Apache Pegasus uses rDSN as an underlying dependent layer since the
Pegasus project started in 2015 at XiaoMi, we forked the repository
and contributed to the forked repository in Pegasus usage scenarios,
including modifying files, adding files, and deleting files.
Since the forked XiaoMi rDSN repository is so different from the
original Microsoft repository, it's very hard to pick these changes
back, and the original repository is not active for years, it seems
nobody maintains it since 2019. Furthermore, the XiaoMi rDSN
repository is specially modified and only used for Apache Pegasus, to
reduce the maintenance cost of Pegasus, we are planning to merge
XiaoMi rDSN to Apache Pegasus repository for years.
Roadmap
There are several steps we are going to take, and I will list the
indefinite points we can discuss.
@hycdong has listed the license problems we have to resolve[2], now it's
a chance to do it.

[ ] Create a pull request to add license checker in XiaoMi rDSN repository on GitHub

[ ] It will use apache/skywalking-eyes [3] github action
[ ] It will check the files lack of a specified license, here we use it to check the Apache License, Version 2.0 license
[ ] Then it will give a report with a file list which lack of APLv2

[ ] Add/Update license header for the files reported in step 1 in the rDSN project. There are some cases:

[ ] The files lack any license header(e.g. [4]):

[ ] we will add APLv2 license header for them
Q: Is it OK to add the Apache license header to the files which
were originally created by Microsoft ?

[ ] The files have the MIT license header, and copyright is Microsoft
(e.g. [5]):

[ ] we will not modify these license
[ ] we will add rule for the checker action to ignore these files
[ ] we should add their license to LICENSE file in the project root path

[ ] The files has APLv2 license header, and copyright is XiaoMi (the
company who donate Pegasus project to ASF, e.g. [6])

[ ] we will remove the copyright and simplified Apache license header
[ ] then add standard APLv2 header for them

[ ] There are a few files have other type of license or copyright:
// I'm not sure, you guys can check it again

[ ] APLv2 License, copyright Facebook (e.g. [7]): The same to '2.b'
[ ] zlib License, copyright Jeff Preshing (e.g. [8]): The same to '2.b'
[ ] BSD-style license, copyright The Chromium Authors (e.g. [9]):
The same to '2.b'
[ ] APLv2 License, copyright The Abseil Authors (e.g. [10]): The
same to '2.b'
[ ] BSD-style license, copyright Rob Jansen (e.g. [11]): The same to '2.b'
[ ] MIT license, copyright Guillaume Papin (e.g. [12]): The same to '2.b'

[ ] Make sure all license problems are resolved, and there is no
ongoing development work on XiaoMi rDSN repository.

[ ] Add rdsn as subdirectory instead of submodule in the Pegasus project

[ ] As how the other Pegasus client projects did [13]
[ ] Add licenses to LICENSE file in Pegasus

[ ] Reorganize the subdirectories, and also related CMakeList.txt files.

Links:

https://github.com/microsoft/rDSN
https://github.com/apache/incubator-pegasus/issues/823
https://github.com/apache/skywalking-eyes
https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/crc.h
https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/service_api_cpp.h
https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/src/aio/aio_task.cpp
https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/TokenBucket.h
https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/hpc_locks/autoreseteventcondvar.h
https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/src/runtime/build_config.h
https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/include/dsn/utility/absl/base/internal/invoke.h
https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/bin/FindRT.cmake
https://github.com/XiaoMi/rdsn/blob/608c3cef86b8789ef728781470bff45b9bad3a09/scripts/linux/run-clang-format.py
https://github.com/apache/incubator-pegasus/issues/945


fix: fix hover and add variable types on hover

Hover functionality was broken in the language server. Fixed it and also added types when hovering on variables in VS Code

Was this tested? I tested it just now and I'm not getting any info when hovering over a variable.

Yes, it was tested. I'm not sure, but this can be caused by the vscode extension not being updated. We need to make a new release after the renaming of the command that starts the lsp server.


Error when moving swagger.ts to a nested folder

Hi!
I was using the extension and it looks very good so far, thanks for your work Davi!
The problem I'm facing is that everytime I move the swagger.ts file to a directory like src/swagger/swagger.ts, it will always complain about the endpoint file returning not found.
See my structure following the example-swagger-autogen-with-router:

This happens with and without Typescript.

Hi @ncesar! Thank you for opening the issue.
In this case you must declare: const endpointsFiles = ['./src/index.js']. But I'll try to recognize the relative path in this case as well.

Thank you @davibaltar

The version 2.21.8 has fixed this. If the problem persists, let me know.


Background Jobs

Nice project, the docs are beautiful.
I'm wanting to run some background jobs, any suggestions for how to integrate this with Sails?
I'm even interested in running separate processes, that have access to the Sails model/service code. Could you recommend a pragmatic approach to this?
E.g.

Where should the code for these separate processes live?
How to share model code?
How to enforce single instance of a particular process?

Tobin

I'm sorry to be posting on a closed thread again, but i made a worker.js file, any ideas on how to give it access to the sails global object?
I have sails.log and my models set up pretty tightly, it'd be a waste to write all that configuration again.
If you'd like to earn some good stackoverflow karma / points answer here
Thank you! I'm really really stuck at this point!

You can use Sails.load() (as opposed to Sails.lift() ) which gives you a set up version of Sails, without firing up the webserver. useful for worker tasks and the like.

On 6 Aug 2015, at 14:47, Amin Shah Gilani<EMAIL_ADDRESS>wrote:
I'm sorry to be posting on a closed thread again, but i made a worker.js file, any ideas on how to give it access to the sails global object?
I have sails.log and my models set up pretty tightly, it'd be a waste to write all that configuration again.
If you'd like to earn some good stackoverflow karma / points answer here http://stackoverflow.com/questions/31866141/how-do-i-give-my-worker-js-access-to-the-sails-object
Thank you! I'm really really stuck at this point!
—
Reply to this email directly or view it on GitHub https://github.com/balderdashy/sails/issues/866#issuecomment-128518947.


Let's talk exit codes

Hey all. First of all I know the issues are piling up but I plan on addressing them in the coming weeks. I was out for a while where I didn't touch my computer due to bereavement, but now I'm back at my desk hacking away.
Taking a look at the code, I kind of want to do another rewrite... it's a bit messy and has some pretty nasty go anti-patterns, I want to fix these in the next big release.
So speaking of next releases one thing I want to get a feel for is the use of exit codes. Are people happy with the exit codes now? I'm realizing that if leaks are detected we return 1, which is usually used if an application encounters errors.
What are your thoughts?

I'd leave it as it is, I like it, it allows me to know what the result of the run is, I use that in a script that I use to scan multiple repositories.
One option to keep everyone happy would be to provide a flag that allows to steer this behavior.. just not sure if there's a demand for it

I concur with leaving the current exit code intact, but adding another code to depict the occurrence of the actual error event after a failed run is a good idea. There is precedent for this in numerous command-line utilities and it doesn't seem like much of a lift to add in such a return code. I question the utility of anything more than one error exit code, however.
As far as rewrites go, I recall some discussion of switching over to Rust in order to take advantage of faster regex processing?

I agree, more exit codes would be helpful to determine issues with authenticating with git.


Cyclic type array causes Error [RangeError]: Maximum call stack size exceeded

Bug description
A schema with a type similar to:
type TestType {
  name String
  refs    TestType[]
}

causes Error [RangeError]: Maximum call stack size exceeded on db reads.
error - Error [RangeError]: Maximum call stack size exceeded
    at .../node_modules/@prisma/client/runtime/library.js:163:1700
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>)
    at selectionToFields (.../node_modules/@prisma/client/runtime/library.js:163:1192)
    at .../node_modules/@prisma/client/runtime/library.js:163:3469
    at Array.reduce (<anonymous>) {
  digest: undefined
}

How to reproduce
See schema
Expected behavior
No response
Prisma information
generator client {
  provider = "prisma-client-js"
}

datasource db {
  provider = "mongodb"
}

type TestType {
  name String
  refs    TestType[]
}

model TestModel {
  id       String    @id @default(auto()) @map("_id") @db.ObjectId
  test     TestType?
}

await prisma.TestModel.findFirst()

Environment & setup

OS: clear-linux-os
Database: MongoDB
Node.js version: v18.13.0

Prisma Version
4.13.0

Just in case, the following works fine with standard mongodb driver:
import {MongoClient} from 'mongodb'

type TestType = {
    name: String
    refs?: TestType[]
}

type TestModel = {
    test?: TestType
}

const mongo = new MongoClient(...)
const database = mongo.db(...)
const collection = database.collection<TestModel>(...)

await collection.findOne()


Bug: Pass Scarf wont pass damage to adjancent enemies pokemons

Pass scarf is somewhat bugged, it pass the attack from your pokemon to adjacent enemies as intended  but it cause no damage.
Passing attack on enemies:

Passing attack to allies:

Due to a bug with battle data not being changed to allow hitting allies (from enemy -> other enemy), and BattleContexts not being propagated between functions.  Fix in https://github.com/RogueCollab/RogueEssence/commit/5ca39802cb6d3215ea0ef7214e3305412ba9cda6


Error in setting headers

Hey,
I am getting the following error when the request goes for S3.
<?xml version="1.0" encoding="UTF-8"?>
<Error>AccessDenied<Message>Invalid according to Policy: Policy Condition failed: ["starts-with", "$Content-Length", ""]</Message>
<RequestId>12F4B56163EF2740</RequestId>
<HostId>SHiiZPupIS+0JxFHt2Jj2ksgis/X6cJzUIKeriLUOqtjKRBCZ0jx09bN9HUgLa7F</HostId>
</Error>

The code that I am using is as follows.
div(s3-upload bucket="'BUCKET" dynamic-name="field" ng-model="field.value" s3-upload-options="{getOptionsUri: '/s3options', folder: 'images/'}")

On the server I am using a library to generate the policy. Policy Generator
app.get('/s3options', function(req, res) {

        var p = policy({
                secret: 'FhfMGu32+hqnwtIpgT4WSNlE3ieyN9Vn8bAr+k',
                length: 10 * 1024 * 1024,
                bucket: 'tfiapp',
                key: 'AKIAIDFSRY33SEKOFMBA',
                expires: new Date(Date.now() + 60000),
                acl: 'public-read',
                type: ""
        });
p.key = "AKIAIDFSRY33SEKOFMBA"; console.log("Key:" + p.key);
    res.send(p);
});

@jseppi & @khakiout you both saved my day, was breaking my head on this issue with CordovaFileTransfer plugin and node-s3-policy, was getting this error Invalid according to Policy: Policy Condition failed: ["starts-with", "$Content-Length", ""] now from your solution of appending the ('Content-Length', "") to the body really helped me to fix this issue, thanks a ton :)


rethinking rummage

There are a couple things I want to address to make the code base a little more consistent, and possibly performant (even though I think it's fast enough as it is, but if we can optimize for fun why not)
user experience

All commands should take an arbitrary amount of arguments by default.
Commands should have no output unless it's necessary for a user to get feedback on a specific action.
Current implementation of searching uses string.contains(). This doesn't sit right with me.
Easier method of installation. See goreleaser docs for homebrew, scoop and nfpm

dev experience

Tests should live in source package. (e.g. package commands_test -> commands).
Commands should use 1 function to make it easier to test commands directly.

need to do some more thinking obviously...


pcmanfm-qt: no window class name provided to hyprland window manager

Describe the bug
Since https://github.com/NixOS/nixpkgs/pull/305107 pcmanfm-qt doesn't provide a window class name to hyprland anymore. The class  name is "".
Steps To Reproduce

Set programs.hyprland.enable = true; and install lxqt.pcmanfm-qt
Run pcmanfm-qt in a Hyprland session and check for its window classname with hyprctl clients

Expected behavior
Window class name is pcmanfm-qt as before.
Notify maintainers
@romildo

Metadata
Please run nix-shell -p nix-info --run "nix-info -m" and paste the result.
[user@system:~]$ nix-shell -p nix-info --run "nix-info -m"
 - system: `"x86_64-linux"`
 - host os: `Linux 6.8.7, NixOS, 24.05 (Uakari), 24.05pre615148.6143fc5eeb9c`
 - multi-user?: `yes`
 - sandbox: `yes`
 - version: `nix-env (Nix) 2.18.2`
 - channels(root): `"nixos"`
 - nixpkgs: `/nix/var/nix/profiles/per-user/root/channels/nixos`

Add a :+1: reaction to issues you find important.

I am seeing this in labwc too, but with other Qt applications as well.
I have started a discussion about this issue in the LXQt repository.

@Schweber does pcmanfm-qt have a wrapper that might interfere?

We've seen similar issues on Plasma 6 but not consistently and so far most often it is an Application issue or related to Electron.

I tried to build a minimal example
#include <qapplication.h>
#include <qpushbutton.h>

int main(int argc, char *argv[])
{
    QApplication test(argc, argv);
    QPushButton button ("test");
    button.show();

    return test.exec();
}

The app id is shown when build against qt5 but not qt6, it also shown when running under Xwayland regardless of qt version.


Fix multi-byline

This PR aims to allow multiple authors to be rendered on a post, which is currently not possible.

Note:
The original method of applying a "hovered" class is actually better,
because when controlling in js, you can debounce. But that js logic
didn't appear to make the transition to this template in the first
place, so this is a starting point at least.
How:
Fix typo in post.hbs
This typo would force the single byline every time. Now, multiple
bylines are possible to render.
Fix template for byline-multiple.hbs
There were lots of things in here that did not get converted to Ember's
flavor of HBS. I am not aware of a #foreach block, but it seemed
broken, so I replaced one with an #each block and just completely
removed the other one, since it would presumably merely print the
authors' names, which are available on the cards.

I'm merging this even though there is a bit of an issue still, it does seem like the popups aren't working for the hover over on the multiple byline 🤔
I thought for the longest time that the Ghost demo didn't have any posts with multiple authors so we couldn't compare what it should look like but I found one https://demo.ghost.io/the-businessman-the-fisherman/ Let me know if there is anything that I can do to help to get this to work 👍
I added an example of a multiple byline to your PR so we can use it for testing


Add comment to explain how the sentiment pipeline is used to run the …

…reward model in the StackLLaMA example
Fix #415

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

The docs for this PR live here. All of your documentation changes will be reflected on that endpoint.

Sure thing! Happy to take on something else.


Updating the Health Report documentation to include the health report…

… for stuck rebuilds.

Ack

@caminadab : Thanks for your contribution to the Azure documentation! The author, @oanapl, has been notified to review your proposed change.

@oanapl I made the suggested changes and improvements. Thanks for the feedback. :)


[RFC] Fixes a couple of undefined errors

Martin - merged in the anti-jquery branch

Hey man - what does Estro stand for?
Oh no the undefined comment was referring to where it couldn't find the method names, not the requirement of being logged into SP.
Re the return, shouldn't affect anything, but it just stops the SPSite url function (or whatever it's called) returning undefined, good for console logging. It still takes the object oriented approach.

It came from when I tried to start a company called Estro Solutions. It means inspiration and gift.
https://store.office.com/the-estro-collection-PN103980476.aspx?assetid=PN103980476
It still doesn't feel right returning a value on a this that is not a function. As i said, the latest code is untested so you might be right. If this is the case, should it not also return on all the prototypes, such as in listitems.js etc? I get the feeling that its still related to the ''_spPageContextInfo.webAbsoluteUrl'. can you paste that into your console and see if you get a value?


Should users without existing account be bounced to sign up flow?

When you enter an email address that doesn't correspond to an existing use in a sign in flow,  it's not unusual for it to tell you the email doesn't match and to send you to a sign up flow.
For example, here's what Microsoft does (on login.live.com) when you try to sign in with an email it doesn't recognize:

The hosted AuthKit doesn't do this. Instead, it creates the user in WorkOS and completes the login if possible. For instance, if you click social login button on the sign in page, it will create new user and you'll have a successful log in. Obviously you can't directly use email + password (since you don't have a password if there's no user yet), but you can use "Email sign-in code" and use the emailed code to successfully log in.
There are a few reasons why automatically creating the user isn't ideal.

For email + password users (i.e., non-social, non-SSO), this means AuthKit/WorkOS never collects the users first and last name.
Often people (like me, but I see this with our users as well) forget which email they used for their existing account, and they might try a few different login methods while looking for their existing account. In this case, it's better to say something to the effect of "you don't have an existing account with this email, did you mean to create a new account?" so they know they should try a different email to find their existing account. If a new account is automatically created, it's more likely they'll be confused since they got in... but then their workspace does't have their existing work (so maybe they'll think it got deleted, etc).

It would be nice if the hosted AuthKit (which is really easy to use and integrate with our app!) would support the option to not automatically create new accounts during the sign in flow.

Running into this problem too - any comments? @benoitgrelard @PaulAsjes @pmarsceill


AttributeError: 'module' object has no attribute 'fspath'

AttributeError: 'module' object has no attribute 'fspath' exception is thrown when running app = flask.Flask(__name__) for flask v1.13.
Version is Python 2.7 and 3.5. I realize fspath is only available for Python version >= 3.6 but there shouldn't be any breaking changes from Flask 1.1.2 => 1.1.3, so the classifiers here are actually incorrect.

Please note that Python 3.5 is no longer supported by us or Python. Also, 1.1.x, despite being the previous release, is no longer supported due to the magnitude of the 2.x release. I advise you to use a tool like pip-compile to pin your dependencies, and/or begin upgrading to newer Python and Flask versions soon.

fixed by #4049

1.1.4 is available on PyPI


yarn install takes indefinitely

Describe the bug
Currently yarn install hangs at the step linking dependencies...
Steps To Reproduce
Steps to reproduce the behavior:
1.Try to build pgadmin4 on master
2.Wait for linking dependencies...
3. ...
or just run nix build  github:nixos/nixpkgs/71e91c409d1e654808b2621f28a327acfdad8dc2#pgadmin --rebuild
Expected behavior
yarn install should continue with the install process
Additional context
I've noticed this issue on an unrelated small bugfix in pgadmin4 which caused a rebuild, which did not work. (#353092). Ofborg worked just fine, which is why I merged this small fix, but the package never did build on my system. Neither does it currently on hydra (See e.g. https://hydra.nixos.org/build/277185860/nixlog/1)
I'm not sure what changed, since nothing substantially changed on the package. I've also tried to re-run the update script which resulted in exactly the same yarn.lock.
Running strace or lsof did not result in any trace of the issue.
Also, interestingly, running --check on an older nixos-unstable pgadmin4 derivation fails to build at the same step.
Is there anything in the nix builder, which changed sandbox or build behavior which stalled yarn ?
I've looked at https://github.com/NixOS/nix/pull/10312 which changed stuff related to the sandbox and found an old unpatched nix version in 24.05 (which is running nix version 2.18.2 which according to https://github.com/NixOS/nix/security/advisories/GHSA-q82p-44mg-mgh5 hasn't been fixed, yet) and it does compile the current pgadmin4 just fine!
This does not work with a patched nix version (doesn't matter whether its 2.18.4 or newer)
So the patch to fix the build-dir seems to have broken at least pgadmin.
Notify maintainers
@roberth
Metadata

Add a :+1: reaction to issues you find important.

I've had this issue too. It doesn't just hang, in goes into disk sleep.

Yes! Not even sudo kill -9 $PID does help. Only restarting the whole system works. I'm trying to disect, where it actually goes wrong, but I believe it has something to do with the new chroot safety feature from  https://github.com/NixOS/nix/commit/0e4baff868047f065749c9ba73556bf8d90fabf7

I confirmed my suspicion.
I have the following diff on the current 2.24.10 version
diff --git a/src/libstore/unix/build/local-derivation-goal.cc b/src/libstore/unix/build/local-derivation-goal.cc
index 2a09e3dd4..baeae54f8 100644
--- a/src/libstore/unix/build/local-derivation-goal.cc
+++ b/src/libstore/unix/build/local-derivation-goal.cc
@@ -509,11 +509,11 @@ void LocalDerivationGoal::startBuilder()
     /* Create a temporary directory where the build will take
        place. */
     topTmpDir = createTempDir(settings.buildDir.get().value_or(""), "nix-build-" + std::string(drvPath.name()), false, false, 0700);
-#if __APPLE__
+//#if __APPLE__
     if (false) {
-#else
-    if (useChroot) {
-#endif
+//#else
+//    if (useChroot) {
+//#endif
         /* If sandboxing is enabled, put the actual TMPDIR underneath
            an inaccessible root-owned directory, to prevent outside
            access.

which basically reverts https://github.com/NixOS/nix/commit/0e4baff868047f065749c9ba73556bf8d90fabf7
and used this as nix.package in a VM to test the build. I then ran nix build github:nixos/nixpkgs/nixos-unstable#pgadmin4 --rebuild -L and it did work !
Doing this on any newer nix version without the above diff fails. So this is exactly the reason. yarn (for whatever reason) does either not like the subdirectory /build (which is unlikely) or the permission 700.
Not sure how to tackle this problem, though. It is unlikely that pgadmin is the only victim here.  Also, in light of ZHF #352882 a bit of a pressing problem

I haven't seen this before. I'm not much of a darwin expert, but here's my thoughts.
The directory names got longer, and unix sockets have a very restricted length on darwin. Some software does not expect a long(er) TMPDIR and may not handle that correctly, leading to undefined/strange behavior.
Although strace didn't reveal much, it might be worth comparing a hanging run to a successful run, especially if the execution is deterministic, which makes a semi-automated comparison much easier.
Is each node in this chain of directories that makes up TMPDIR readable (+rx) by the sandboxed build process? If not, would it be ok to make it readable only by the build user? This is slightly less secure, but might be ok.
This could probably be fixed on either side, Nix or yarn. Could you open an issue on the https://github.com/NixOS/nix repo for the regression? It'd help to get more eyes on this. (I'd move the issue if it was clearly one or the other, fwiw)
Another practical note: @thufschmitt has changed jobs and isn't contributing actively to the Nix/NixOS ecosystem anymore.

I haven't seen this before. I'm not much of a darwin expert, but here's my thoughts.

I have the same issue on Linux. There is nothing really suspicous in lsof either.
pnpm    191060 nixbld1 cwd       DIR   0,36       40    407492 /build/source (deleted)
pnpm    191060 nixbld1 rtd       DIR  259,2     4096  41432658 /
... lots of /nix/store paths, anon_inode io_uring, pipes ...

As I don't see it explicitly named: I think it is definitely not yarn only (pnpm is shown in the prev. comment). I had observed similar issue, when trying to build stalwart-mail.webadmin when trying to reproduce a recent build failure.
The said package uses npm (same symptoms: never finished, 0 activity, can't kill -9, shutdown blocked).
I was running a maybe 1-2 weeks old nixos-unstable.
Let me know if I should try to reproduce and gather some Infos.

@roberth thanks for chiming in. This is a non  darwin issue. As it is only present when the code is executed on an non APPLE system.
I can build pgadmin just fine on 2.24.9 on aarch64-darwin. My "patch" above just disables the chroot condition for all systems
Also, even worse, when trying to build pgadmin on linux: Due to being unkillable, the system will not reboot nor shutdown! It will hang forever on a watchdog issue and the system needs to be powered down by hand. This can be a huge issue for bare-metal servers

Is each node in this chain of directories that makes up TMPDIR readable (+rx) by the sandboxed build process?

AFAIS, yes.
ls -la /tmp
drwx------  3 root  root     3 Nov  5 06:21 nix-build-pgadmin-8.11.drv-1
sudo ls -la /tmp/nix-build-pgadmin-8.11.drv-1
drwx------  5 nixbld1 nixbld  7 Nov  5 06:21 build
sudo ls -la /tmp/nix-build-pgadmin-8.11.drv-1/build
total 64
drwx------ 5 nixbld1 nixbld     7 Nov  5 06:21 .
drwx------ 3 root    root       3 Nov  5 06:21 ..
drwxr-xr-x 3 nixbld1 nixbld     3 Nov  5 06:21 .cache
-rw------- 1 nixbld1 nixbld 35469 Nov  5 06:21 env-vars
drwxr-xr-x 9 nixbld1 nixbld    19 Nov  5 06:21 source
drwxr-xr-x 3 nixbld1 nixbld     3 Nov  5 06:21 v8-compile-cache-1000
-rw-r--r-- 1 nixbld1 nixbld   160 Nov  5 06:21 .yarnrc
sudo ls -la /tmp/nix-build-pgadmin-8.11.drv-1/build/.cache/yarn/v6
[...]
drwxr-xr-x    3 nixbld1 nixbld    3 Nov  5 06:21 npm-yarn-audit-html-4.0.0-dc04c9cf83e758fd6d9efad8c96df1fc8c4bf30c
drwxr-xr-x    3 nixbld1 nixbld    3 Nov  5 06:21 npm-yauzl-2.10.0-c7eb17c93e112cb1086fa6d8e51fb0667b79a5f9
drwxr-xr-x    3 nixbld1 nixbld    3 Nov  5 06:21 npm-yocto-queue-0.1.0-0294eb3dee05028d31ee1a5fa2c556a6aaf10a1b
drwxr-xr-x    3 nixbld1 nixbld    3 Nov  5 06:21 npm-yocto-queue-1.1.1-fef65ce3ac9f8a32ceac5a634f74e17e5b232110
drwxr-xr-x    3 nixbld1 nixbld    3 Nov  5 06:21 npm-zustand-4.5.4-63abdd81edfb190bc61e0bbae045cc4d52158a05
drwxr-xr-x    2 nixbld1 nixbld    2 Nov  5 06:21 .tmp

This could probably be fixed on either side, Nix or yarn. Could you open an issue on the https://github.com/NixOS/nix repo for the regression?

done

Also seeing this on a x86-64 linux machine running hydra, the command npm ci runs forever and kill -9 does nothing.

@datafoo when was your last known good commit?

I investigated further and I narrowed it down to something between these commits:
broken 4c2fcb090b1f3e5b47eaa7bd33913b574a11e0a0 2024-10-18 1809433
good a3c0b3b21515f74fd2665903d4ce6bc4dc81c77c 2024-10-14 1809364
Tested as the input for a NixOS VM with a fixed nix.package = pkgs.nixVersions.nix_2_24; and always trying to build nix build -L --rebuild github:nixos/nixpkgs/nixos-unstable#pgadmin4
With the broken commit, this stalls. With the good commit this continues on and builds. Since the derivation to build is fixed (and so are all the inputs e.g. yarn or node), this obviously has something to do with the build environment. And this changed between those commits.
I haven't found an easy culprit with git --diff, yet.

On my system, manually (as in: typing it into my terminal) running npm ci in a repo also hangs the npm ci process. The build is not running through nix. The process is un-sigkill-able.

Possibly related:

https://github.com/npm/cli/issues/4028#issuecomment-2441942581

Does downgrading to npm 10.3.0 work for you?

Bun and Deno seem to not be affected.

@Garmelon I think this is an unrelated bug. What I described here is a bug in a build process from nix, which always uses the same node and yarn version and fails or succeeds depending on the host machine's NixOS version. This is why I suspect nix to be involved.
@donovanglover I cannot rule out a random hang on the build process. But as of know it consistently works or consistently fails depending on the commit of the build machine

This is a kernel bug, specifically with io_uring.

This is a kernel bug, specifically with io_uring.
Edit: source: lore.kernel.org/io-uring/2024110620-stretch-custodian-0e7d@gregkh/T#u

I'm using this as a workaround for now:
boot.kernelPackages = pkgs.linuxPackages_latest;

This is a kernel bug, specifically with io_uring.
Edit: source: https://lore.kernel.org/io-uring/2024110620-stretch-custodian-0e7d@gregkh/T/#u

Thanks! I'm bisecting right now (which takes a long time), but since I'm rebuilding the kernel right now, this sounds about right!

Bisect is done:
0e4c64ff9cef5800c6a3f4838c66a918ceb61398 is the first bad commit
commit 0e4c64ff9cef5800c6a3f4838c66a918ceb61398
Author: K900<EMAIL_ADDRESS>Date:   Thu Oct 17 17:12:25 2024 +0300

    linux_6_6: 6.6.56 -> 6.6.57

 pkgs/os-specific/linux/kernel/kernels-org.json | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)

So, yes, this is a kernel bug

@K900 shall we revert this specific commit?

No, a proper fix should be in the next batch of stable kernels.

Ok. I'll keep the issue open until the next batch landed and for everyone looking for a quick fix https://github.com/NixOS/nixpkgs/issues/353709#issuecomment-2458957910 seems like a viable option (or reverting, or not updating)

Do you have a /usr/bin/ldd file in NixOS? This is what determines if yarn uses node's getReport (which is buggy and make the process hang, and not randomly, it's a realiable bug).

It's hardcoded in yarn berry: https://github.com/yarnpkg/berry/blob/f59bbf9f3828865c14b06a3e5cc3ae284a0db78d/packages/yarnpkg-core/sources/nodeUtils.ts#L26
Btw if you are not using yarn berry (which is 95% of the users of yarn) then getReport is not used at all either

What irks me is that this issue mixes up apparent darwin sandboxing issues and linux kernel regressions into one, because they both block the build in a similiar fashion apparently.

What irks me is that this issue mixes up apparent darwin sandboxing issues and linux kernel regressions into one, because they both block the build in a similiar fashion apparently.

Its not darwin sandbox issues, but linux and the linux kernel regression is the root cause. I closed the nix issues as soon as the root cause was known. If you read the comments it should become apparant, but I can add an "edit" to the original post for clarity

For completeness, there's also https://github.com/nodejs/node/issues/55587

This occurs in a pnpm build in modrinth-app.

+1 occurs in jellyfin-web, as reported by @SeamusFD. Haven't tested myself if rolling the kernel back/pushing ahead fixes it, but I can expect it probably does given this drv breaks for the same reasons as everything else here.

6.12.5

As far as I understand, the bug is not present in non-lts kernels, i.e. 6.11 or later.
It should hopefully be fixed in lts kernels 6.1.116 and 6.6.60.

6.12.5

As far as I understand, the bug is not present in non-lts kernels, i.e. 6.11 or later.
It should hopefully be fixed in lts kernels 6.1.116 and 6.6.60.

thanks i added latestet kernel to my config and I have no issues !
boot.kernelPackages = pkgs.linuxPackages_latest;

A comment on this workaround: This only works for non ZFS configs. The zfs config (at least the stable ones) rely on a kernel <= 6.11 so the only workaround here is a revert/rollback until 6.6.60 is released

A comment on this workaround: This only works for non ZFS configs. The zfs config (at least the stable ones) rely on a kernel <= 6.11

Wow thanks for this, I was just fighting with my config trying to make this work.
I see zfs_unstable supports 6.11 now, but when I tried to enable that on a test machine:
  boot.kernelPackages = lib.mkForce pkgs.linuxPackages_6_11;
  boot.zfs.package = lib.mkForce pkgs.zfs_unstable;

# output:
error: Package ‘zfs-kernel-2.2.6-6.11.5’ in /nix/store/wb6agba4kfsxpbnb5hzlq58vkjzvbsk6-source/pkgs/os-specific/linux/zfs/generic.nix:216 is marked as broken, refusing to evaluate.
``

I'm not sure why it's pulling in 2.2.6 when zfs_unstable is 2.3, but anyways that is off-topic here probably.

> .. so the only workaround here is a revert/rollback until 6.6.60 is released

Rolling back to LTS 6.1 isn't an option unfortunately. Do I understand right kernel 6.6.56 is the last-known-good?

What would be the proper way to revert/rollback to 6.6.56?

And of course you can revert your NixOS config to an older generation which worked and wait for the kernel update

This occurs in a pnpm build in modrinth-app.

As said before this is happening with pnpm not just yarn.

Kernel 6.6.60 is merged now with a fix.


Issue with replication

Repro repo: https://github.com/pfrazee/hyper-replication-bug
Something is failing in the replication code causing the program to end prematurely and without any information.
What's happening in the repro repo is that I'm creating a set of "Nodes" which are corestores, a set of cores, and autobases. I'm then randomly connecting and disconnecting them using core.replicate(), and also creating put() or del() operations. There are no reads occurring yet, so the rebased-hypercore index isnt being touched yet (no apply calls).
The failure seems to occur during an oplog append, and I traced it as follows:

head() is calling _getInputNode() on a remote core,
which in turn is calling core.get().
That cache misses,
so it calls out to the replicator which is creating a request.

At that point, you get into the complexities of the request code and I figured it'd be better to pass this off to yall.
Another interesting piece of info: if I connect all of my "nodes" corestores in replication, then the error doesn't occur

Can you reopen this on autobase? I'll comment here for now. This is because append calls heads which wants to replicate the data.

This should error with "block not available" (but haven't landed that yet, which is why it hangs)
Autobase prob should fetch it all for an append
Your test don't replicate writers with eachother, not sure if that's intentional? but that's why it bails.

Moved it over.

Your test don't replicate writers with eachother, not sure if that's intentional? but that's why it bails.

It does but it's intentionally connecting various subsets of the corestores to simulate various network conditions

Closing to keep it tidy here.


Next attempt to make inspector weakly referencing the inspected objects.

Bugger issue: https://github.com/flutter/devtools/issues/3951
Reverts flutter/flutter#128506
Previous failure: https://ci.chromium.org/ui/p/flutter/builders/prod/Mac framework_tests_widgets/11385/overview
Failed line:
final DiagnosticsNode diagnosticsNode = service.toObject(childJson['objectId']! as String)! as DiagnosticsNode;

Changes since previous attempts:

Replaced ...)! as DiagnosticsNode; with ...) as DiagnosticsNode?;
Removed _forceGC

Test commands:
flutter test test/widgets/widget_inspector_test.dart --update-goldens

flutter test --test-randomize-ordering-seed=20230608 --fatal-warnings --track-widget-creation test/widgets/widget_inspector_test.dart --update-goldens


Code improvement and new feature

Hi,
I was wondering if wrapping the translator would be more efficient in some situations. So I tried the following:
import deep_translator

def generate_engines_dict() -> dict:
    base_translator_type = type(deep_translator.parent.BaseTranslator)

    def is_translator(_object: str, __object: object) -> bool:
        # Need consistency in the names and in the code
        # (all translators do not depends on the class BaseTranslator)
        return (
            isinstance(__object, base_translator_type) or
            _object.endswith('Translator') or
            _object == 'DeepL' or
            _object == 'QCRI'
        )

    translation_engines = {}
    for _object in deep_translator.__all__:
        __object = getattr(deep_translator, _object)
        key_name = _object.replace('Translator', '').lower()
        if is_translator(_object, __object):
            translation_engines.update({
                key_name: getattr(deep_translator, _object)
            })
    return translation_engines

translation_engines = generate_engines_dict()

def engine(
    engine_name: str, *args, **kwargs
) -> deep_translator.parent.BaseTranslator:
    try:
        return translation_engines[engine_name.lower()](*args, **kwargs)
    except KeyError:
        keys = '\', \''.join(translation_engines.keys())
        raise(KeyError(f'Please provide a valid engine name (\'{keys}\')'))

text = 'Salut les amis :-)'
print(engine('libre', source='fr', target='en').translate(text))

# translated = GoogleTranslator(
#     source='auto', target='en').translate(text=text)
# print(f"{translated}")

It seems easier to switch from an engine to another, but it also highlights some inconsistencies in the code. All the translators are not all ending with Translator in their name, and the same goes for the inheritance of the BaseTranslator class.

Hi @2010019970909, yes there are indeed some inconsistencies in the code despite my efforts to keep it as consistent as possible when I started coding it. This is because each translator has different requirements and relies on different interfaces. For instance, deep-translator uses API keys or the "official" API for DeepL, on the other hand, it uses web scraping to scrap google translations. Therefore, not all translator classes inherit from BaseTranslator.
BaseTranslator is the parent class of all translators that rely on web scraping. All others that rely on the official API cannot inherit from it (well theoretically they can, but I don't want that since this will mess up the separation logic). Furthermore, there are some special cases. For example, some translators like the PapagoTranslator needs a clientId and an API key to use the official API, therefore, the interface would be also different from DeepL.
I'm open to improvements and new ideas of course. However, we need to keep in mind that not all translators have the same interface. For instance, in your code, you can easily switch the translation engine, but you should also know which parameters you need to provide for the particular translator in order to work with.
We can surely add an "Engine" class that hides these "inconsistencies" as you show in your code example, but users still need to figure out the parameters needed by the translator or rather the API used by the translator in the background. I'm open to suggestions

In #130, I implemented another solution. We register all the non-inherited translators to the base class. It later simplifies the addition of new translation engines. Also, it allows removing the static dictionary used in the CLI (probably easier to maintain in the long term). And finally we initialize an engine function which will return the desired class when called.
Of course, it's not perfect, but we can use dictionaries to correctly initialize any engine.


Create Weather.py

Monitor weather condition with Raspberry Pi and Python

 Here is an overview of what got changed by this pull request:

Issues
======
- Added 14

See the complete overview on Codacy


Inserting in fill_expr (and sometimes default) doesn't work

EdgeDB Version: EdgeDB CLI 1.1.0+8bc2c20
OS Version: Mac OS Monterey version 12.1

Steps to Reproduce:

Updated default.esdl to include new table, Union_labor_name, and put in a link to that table into "Labor_union" table.

Please specify an expression to populate existing objects in order to make link 'union_name' of object type 'default::Labor_union' required:
fill_expr> insert Union_labor_name { name:= "AAA" }
Created ./dbschema/migrations/00004.edgeql, id: m1f2ufyzoqfpfypfweuk5bwp2q7fuhuwgsvgq7rzsyqrdcove3pvlq

I did the following and then tried to edgedb migrate'and got the error:
edgedb migrate
edgedb error: UnsupportedBackendFeatureError: WITH clause containing a data-modifying statement must be at the top level
I tried to just destroy the database and re-run it, but that didn't even work
edgedb instance destroy edgedb
Do you really want to delete instance "edgedb"? (type Yes)
y
edgedb error: Canceled.

Schema:
  abstract type Named {
    required property name -> str {
      delegated constraint exclusive;
    }
  }
  type Labor_union {
    required link union_name -> Union_labor_name;
    link abbrev -> Abbreviation;

  }
  type Union_labor_name extending Named {}

You have to type out Yes to delete the database, not just y.
The first part (lack of support for insert in fill_expr) is still a bug per https://discord.com/channels/841451783728529451/849377751370432573/950859606865870919

This is definitely doable though it will require some restructuring of how we emit code to do conversions.
I think we'll need to do something along the lines of:

Generate a CTE that computes the rows that need to be updated
Compile the fill_expr with that generated external CTE an external_rvar and an iterator_cte, or something like that
Pull the main body of the generated expression out as another CTE
Plumb all of that into the actual code to do the update

On top of the fill_expr problem, this happens with defaults when a new link is added. The unfortunate bit here is that it does work to create a link with a default containing an insert as part of a new type, but not when altering it onto an existing type.
This is because https://github.com/edgedb/edgedb/pull/3750 makes adding a new link with a default use the fill_expr flow to populate the column with the default. (Previously it just incorrectly did not do that.)

Any update on this issue ? There are many PR merged mentioning this issue but issue it self is open.

Yes, we've merged a few PRs but they are about reporting better errors when using mutation in fill_expr or in defaults. This issue is something I'm working on, but I cannot give you an ETA.

@aljazerzen any update/progress here?

It turns out that this is very close in implementation to the upcoming triggers (see RFCs repo), which I why I'm holding back on this.
I can say that this will be done in 3.0 (i.e. second part of February), but maybe I'll get around to it sooner.

In progress in #4873

Fixed by #4873

@msullivan is this published in latest version? Because I am still facing the same issue ? Or can you put it any example for same ?

Yes, this should have gone out in 2.10. Can you give an example of what failed for you?

simple insert query as default. (insert Item { name := 'name' }) in fill_expr .


[BUG] Updating fishstrap doesnt override older version

Acknowledgement of preliminary instructions

[X] I have read the preliminary instructions, and I am certain that my problem has not already been addressed.
[X] I have thoroughly looked through the available Wiki articles and could not find a solution to my problem.
[X] I am using the latest version of Bloxstrap.
[ ] I did not answer truthfully to all the above checkboxes.

Bloxstrap Version
v<IP_ADDRESS>
What problem did you encounter?
when i tried updating fishstrap, it did not override the old version of v2.8.0 while downloading <IP_ADDRESS>.
Bloxstrap Log
N/A

Hi,
I tried replicating the issue on my device. I was able to upgrade from <IP_ADDRESS> to <IP_ADDRESS> without the issue.
Can you check if Fishstrap v<IP_ADDRESS> was installed in %localappdata%\Fishstrap?

Try closing any Bloxstrap/Fishstrap related process from task manager, I had the same issue but closing all processes was what fixed the issue for me, if this doesn't work, I don't have any other ideas.

i did

Can you tell me what happened when you ran the v<IP_ADDRESS> .exe file? Did it prompt you to that you're going to override the old version with a yes or no button, and if you clicked yes what happened after? And how are you launching the new version? Any other information would be helpful.

i pressed yes, clicked off the old one  and it sent me on the new one, but when i when to fishstrap again, it was on the old version.

Try deleting the old shortcut, then closing all processes from task manager, updating again, then in the window that pops up after you finish click "Configure settings" then from there go and create a new desktop shortcut for Fishstrap Settings, then try again and let me know what happened.

o, i deleted fishstrap for it to work so i cant now.


SQLAlchemy Sphinx

Installed https://github.com/conversant/sqlalchemy-sphinx.
Adding database:
SQLAlchemy URI: sphinx://ip:port
IP and port are correct.
Pressing "Test Connection" button gives:
ERROR: Connection failed!
The error message returned was:
'NoneType' object has no attribute 'replace'

What does the superset logs say?

@xrmx nothing

@vladimir-yuldashev strange there should be an interesting backtrace

@xrmx Any ideas?

Seems like a bug in that library, a full stacktrace would help making that clear. Are you able to use SQLAlchemy against that DB with that connection string using that dialect in a simple script?
A step by step approach to debugging this:

clone the sqlalchemy-sphinx repo
install it from source by running python setup.py develop in the root of that repo
write a simple script that creates a SQLAlchemy connection using your connection string
hopefully get a stack trace coming from somewhere in sqlalchemy-sphinx, debug
if no stack trace, look in that library for try: blocks that silence error, add a logging.exception(e) line in the except: block
fix bug
send PR to sqlalchemy-sphinx

@mistercrunch
wrote a simple script:
from sqlalchemy import create_engine, Column, Integer, String, BigInteger, Unicode, Enum
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy.orm import deferred, sessionmaker

engine = create_engine('sphinx://<IP_ADDRESS>:9306')
connection = engine.connect()

result = connection.execute("select count(*) from users")

for row in result:
        print(row)

connection.close()

And it works. So it seems like there is no bug in library.

We'll it's not like you battle tested the entire lib here. Try engine.table_names()

@mistercrunch
Got the error with engine.table_names():
Traceback (most recent call last):
  File "test.py", line 8, in <module>
    engine.table_names()
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/base.py", line 2119, in table_names
    return self.dialect.get_table_names(conn, schema)
  File "<string>", line 2, in get_table_names
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/engine/reflection.py", line 42, in cache
    return fn(self, con, *args, **kw)
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/dialects/mysql/base.py", line 1707, in get_table_names
    self.identifier_preparer.quote_identifier(current_schema))
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/sql/compiler.py", line 2875, in quote_identifier
    self._escape_identifier(value) + \
  File "/usr/local/lib/python2.7/dist-packages/sqlalchemy/dialects/mysql/mysqldb.py", line 78, in _escape_identifier
    value = value.replace(self.escape_quote, self.escape_to_quote)
AttributeError: 'NoneType' object has no attribute 'replace'

@vladimir-yuldashev puzzled on why mysql dialect is used for reflection

@xrmx Yes, it's strange because Sphinx does not have tables.

I'm guessing that Sphinx sqla dialect must inherit or be copied over from the mysql one. I don't know anything about Sphinx but if it doesn't have tables I'm not sure how this is going to work...

Notice: this issue has been closed because it has been inactive for 433 days. Feel free to comment and request for this issue to be reopened.


git "Last push" date incorrect

I have a keybase git repo that appears to be behaving correctly. I can make local changes, git push, and I can clone the repo (using the keybase:// scheme but on the same machine), and everything appears to be working.
However, the keybase client it incorrectly shows "last push 9 days ago", which is when I created the repo. This makes me nervous that something isn't updating correctly. This problem has persisted across a restart. Is there anything else I should be trying to correct it?
I am on Mac OS.

@srsudar please run keybase log send from the device that did the pushes that aren't showing, and post the resulting log ID here.
cc: @patrickxb @mlsteele for the server-side of this.  I'm not aware of any git-remote-keybase changes that would affect it.

Here is the ID:
46c4f6e7df5e363b9fd4dc1c

The command failed the first time with Client.Timeout exceeded while awaiting headers. This makes me realize that perhaps I should add that I have a few hundred photos in the repo, which makes it big and slow to clone. No idea if that matters in this case, but it's the only way I think it is an unusual repo.

Is it possible you did something unusual when creating the repo, like writing it with different cases, or with/without the .git prefix, and then deleted it and recreated it?
I wonder if there's some leftover old repo with the same name in our server-side database that is confusing things.  (The names are encrypted on our side, so I can't check.)

Hmm, maybe. I tried to follow your instructions here on moving an existing repo to keybase. I would believe that I ctrl+c'd somewhere in there, did a step weird or something.
In that case I would be cloning the correct version with my clone on the same machine (assuming it hits the server and isn't clever using the local file system instead) but the timestamp is being taken from the old version?

Yeah that's my best theory.  If the case, we might be able to fix it server-side by clearing out the stale state, or you could just delete the repo, recreate it, and re-push everything to it.  Though that might be painfully slow with a big enough repo.

I tried deleting and re-pushing. I'll monitor it over the next few days and will close if that fixes it.

Huh. I re-created the repo yesterday, and 9 hours or so later did a push. The timestamp didn't update. But I just did a tiny edit and a push, and it now it correctly says "updated a few seconds ago". Confusing...
I'm going to leave this open a bit longer as I continue to monitor it.

Great find!  I just put up a PR that should fix it, and should also fix other issues I noticed around mismatched branch names between the local repo and the server: keybase/kbfs#1882.

Awesome, glad to hear it. Out of curiosity, are there tests somewhere for the git helpers? I only see the implementation on keybase/kbfs#1882.

The git helper has plenty of tests in the kbfs repo, but not specifically for the metadata update messages we send to the servers which contain the timestamps, etc, as that's a multi-component test and much harder to write.  Hopefully some day.

Ah I see.
Where were my pushes to HEAD going, in that case? Was everything working, just the timestamp was failing? Do I have a remote branch named HEAD? The PR mentions something was erroring out--was data not being pushed? From the CLI it looked like everything was fine. If this was more than a cosmetic failure I'd have expected an error message somewhere.

Data was being pushed -- all git functions were working as expected.  It was erroring internally before updating our separate DBs that power the cosmetic timestamp thing.  And because it's cosmetic, we don't surface an error to the user.  There was one in the logs though.

Perfect, glad to understand it. Probably could have gotten that if I'd spent some time on the PR; thanks for walking me through it.
I'll let you close when merging. Thanks for the good work!

Merged!


Combining AWS_IAM auth and Resource Condition on AWS::Serverless::Function results in SAM translate error

Description:
When a condition is defined on Lambda function in conjunction with AWS_IAM authentication SAM (On the API) translation fails and the template can't be deployed
Steps to reproduce the issue:

Run sam validate -t on the below attached SAM template.
Remove the condition from the function --> the translation now works.

Observed result:
The translation fails.
Expected result:
The translation should succeed
SAM Template:
AWSTemplateFormatVersion: 2010-09-09
Transform: AWS::Serverless-2016-10-31
Description: Test API template.

# This was added due to an implicit Stage created by SAM referenced in this GitHub issue:
# https://github.com/awslabs/serverless-application-model/issues/191
Globals:
  Api:
    OpenApiVersion: 3.0.1

Parameters:
  StackEnv:
    Description: The stack environment.
    Type: String
    AllowedValues:
      - dev
      - stg

  Universe:
    Description: The universe that this stack is meant for
    Type: String
    AllowedValues:
      - cn
      - ww

  ReleaseName:
    Description: The git sha/identifying code factor for this commit being deployed.
    Type: String

Conditions:
  IsWorldWideUniverse: !Equals [!Ref Universe, ww]

Resources:
  TestApi:
    Condition: IsWorldWideUniverse
    Type: AWS::Serverless::Api
    Properties:
      Name: MyTestApi
      StageName: !Ref StackEnv
      MethodSettings:
        - LoggingLevel: INFO
          MetricsEnabled: true
          ResourcePath: "/*"
          HttpMethod: "*"
      Auth:
        DefaultAuthorizer: AWS_IAM
        InvokeRole: CALLER_CREDENTIALS

  TestApiMapping:
    Condition: IsWorldWideUniverse
    Type: AWS::ApiGateway::BasePathMapping
    DependsOn: TestApiStage
    Properties:
      DomainName: my-domain.com
      RestApiId: !Ref TestApi
      Stage: !Ref StackEnv
      BasePath: market

  TestLambdaFunction:
    Condition: IsWorldWideUniverse
    Type: AWS::Serverless::Function
    Properties:
      FunctionName: TestLambdaFunction
      Handler: code.entrypoint.handler
      Runtime: python3.7
      Role:
        Fn::ImportValue: !Sub lambda-${Universe}-${StackEnv}-test-role-arn
      MemorySize: 128
      Timeout: 120
      CodeUri: ./
      Events:
        Validate:
          Type: Api
          Properties:
            Method: GET
            RestApiId: !Ref TestApi
            Path: test/api

I found myself stacked on the same issue.
Did you find a work-around?

No, there is none AFAIK.
I ended up splitting my SAM templates because of this issue
On Sat, 16 May 2020 at 13:11 Gonzalo Bandeira<EMAIL_ADDRESS>wrote:

I found myself stacked on the same issue.
Did you find a work-around?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/awslabs/serverless-application-model/issues/1551#issuecomment-629622031,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/AHJP7PQ7VOP7YZRHPJN4CVTRRZRF5ANCNFSM4MAJCJCA
.

--
https://lightricks.com/
https://www.facebook.com/Lightricks/ https://twitter.com/Lightricks
https://www.instagram.com/lightricks/
https://www.youtube.com/channel/UCKWhLS9QMr1oNthZL1fZB4A
https://www.linkedin.com/company/lightricks/
Ohad Benita
Senior Backend Developer ▪ Lightricks
+972-50-8246047<EMAIL_ADDRESS>https://lightricks.com


CR-5778-2

Codecov Report

Merging #41 (340a6bd) into main (417340c) will not change coverage.
The diff coverage is n/a.

@@           Coverage Diff           @@
##             main      #41   +/-   ##
=======================================
  Coverage   25.13%   25.13%
=======================================
  Files           1        1
  Lines         187      187
=======================================
  Hits           47       47
  Misses        134      134
  Partials        6        6

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 417340c...340a6bd. Read the comment docs.


Add page service according to milestone from requirement

Think what service page should show

Menu name is services
Content should list service

the service page should be put on the nav bar according the milestone requirement
for the service contain i will just enter things like that

@idrice24  can you confirm that we need a page service ??  I don t know


Run/Debug device selection toolbar/menu action

Replace old device selection:

With new Device Selection Toolbar and new project menu action.

Add a new toolbar action after the Run and Debug actions.

I use JLabel and menu on click. With combo, I had problems in my other projects,  with adjusting the length of the text vs combo size.

Final design:

The action is displayed in the toolbar only on the Android project nodes

When the Mobile Phone is disconnected, the last selected AVD will be selected/or the first in the list

the setting is independent for each android project

I'm curious if the device chooser could be shown under the configuration dropdown? It shows only "DEFAULT" on my projects or will this be used for something different like build flavour in the future?

I'm not sure I understood what you mean. My English is pretty weak, please write it easier...
I originally wanted to put it into Run and Debug toolbar actions. But it's same for Run and Debug and it would look weird. And I think it's good to see what device you have selected. And I added it to the project menu if someone has the toolbar turned off. On another project type, the toolbar action is hidden. I think this is OK and it won't be annoying. But I can add to the settings option to disable the icon. Of course, in the future, there will be all the things that will be needed..

I have marked the two spots that I mean. I hope this makes it clearer. I think the current implementation is fine but I don't understand what the left spot is used for.

Left is the project profile selector https://github.com/NBANDROIDTEAM/NBANDROID-V2/wiki/Profiles
But I just found out I forgot to implement them in the project settings..
I'll add it there tomorrow...


Focal length has 2 values

Hey, I have a question about cameras.h5. Each camera seems to have 2 focal lengths (shape 2x1). All other entries seem to make sense to me (translation is a 3x1, rotation matrix is a 3x3x1, etc). Which is the right value or is there something I am missing?

Great catch! Apparently our documentation is wrong 😅
They are both right. Often the x and y components of the focal length can differ due to a number of reasons; eg from http://ksimek.github.io/2013/08/13/intrinsic/

Flaws in the digital camera sensor.
The image has been non-uniformly scaled in post-processing.
The camera's lens introduces unintentional distortion.
The camera uses an anamorphic format, where the lens compresses a widescreen scene into a standard-sized sensor.
Errors in camera calibration.

I'll be very thankful if you submit a PR correcting the documentation.


jdk8 sanity.openjdk hung Scheduling node

https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.openjdk_x86-32_windows/403/console
[Pipeline] Start of Pipeline (hide)
[Pipeline] echo
SPEC: win_x86
[Pipeline] echo
LABEL: ci.role.test&&hw.arch.x86&&sw.os.windows
[Pipeline] stage
[Pipeline] { (Queue)
[Pipeline] nodesByLabel
Found a total of 6 nodes with the 'ci.role.test&&hw.arch.x86&&sw.os.windows' label
[Pipeline] node
Still waiting to schedule task
Waiting for next available executor on ‘ci.role.test&&hw.arch.x86&&sw.os.windows’

To broaden the scope, here's the full list of jobs that are hanging that are still in-progress:

https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk11_hs_sanity.openjdk_ppc64_aix/288/console
https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk11_j9_sanity.openjdk_x86-64_mac/423/console
https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk15_hs_sanity.openjdk_ppc64_aix/128/console
https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk15_j9_sanity.openjdk_ppc64_aix/136/console
https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk15_j9_sanity.openjdk_x86-64_windows/115/console
https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk8_hs_sanity.openjdk_ppc64_aix/282/console
https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk8_j9_sanity.openjdk_ppc64_aix/304/console
https://ci.adoptopenjdk.net/job/Test_openjdk8_j9_sanity.openjdk_x86-32_windows/403/console
https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk8_j9_sanity.openjdk_x86-64_mac_xl/421/console

@andrew-m-leonard , ref your ping in slack I haven't ran anything other than one test pipeline I ran yesterday for #2132 (and that was for linux, mac and windows and we have aix hangs here).

https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk8_j9_sanity.openjdk_x86-64_mac_xl/421/console and https://ci.adoptopenjdk.net/view/Test_openjdk/job/Test_openjdk8_hs_sanity.openjdk_ppc64_aix/282/console are starting to run now

The mac and AIX jobs were all correctly wiating on executors. Only the windows ones from the list should be getting scheduled as the machines are free.

Restarting jenkins on Tuesday appears to have resolved this - closing.


Skip execution with amount 0 in _applyFulfillment in FulfillmentApplier

Motivation
_applyFulfillment in FulfillmentApplier can set execution.item.recipient = payable(execution.offerer); if execution.item.amount == 0 to reduce gas on processing zero amount execution
I have submitted this as a Gas Optimization. But it may help solve a major issue
https://twitter.com/z0age/status/1532876361123045378
One more key finding relates to fulfillment aggregation — triggering two errors (aggregation amount overflow followed by aggregating a zero-amount item) bypasses both checks in a "two wrongs make a *very* wrong" situation. The fix involves a small modification to the error check.

It not only reduce gas but also cause the execution item that has zero amount to be skipped. As a result, it may solve aggregating a zero-amount item case which may cause following revert.
    /**
     * @dev Internal pure function to ensure that a given item amount is not
     *      zero.
     *
     * @param amount The amount to check.
     */
    function _assertNonZeroAmount(uint256 amount) internal pure {
        // Revert if the supplied amont is equal to zero.
        if (amount == 0) {
            revert MissingItemAmount();
        }
    }

Fixing this case may not require any modification to the error check but you need to ensure that amount = 0 never get passed to the Executor at first.
If this help fix a serious issue, it would be pleasure if you increase severity of this submission of mine (Chom#1652).
Solution
We can add
        // Set the offerer and receipient to null address if execution
        // amount is zero. This will cause the execution item to be skipped.
        if (execution.item.amount == 0) {
            execution.offerer = address(0);
            execution.item.recipient = payable(0);
        }

Before returning into
      // Reuse execution struct with consideration amount and recipient.
      execution.item.amount = considerationItem.amount;
      execution.item.recipient = considerationItem.recipient;

      // Return the final execution that will be triggered for relevant items.
      return execution; // Execution(considerationItem, offerer, conduitKey);

which result in
      // Reuse execution struct with consideration amount and recipient.
      execution.item.amount = considerationItem.amount;
      execution.item.recipient = considerationItem.recipient;

        // Set the offerer and receipient to null address if execution
        // amount is zero. This will cause the execution item to be skipped.
        if (execution.item.amount == 0) {
            execution.offerer = address(0);
            execution.item.recipient = payable(0);
        }

      // Return the final execution that will be triggered for relevant items.
      return execution; // Execution(considerationItem, offerer, conduitKey);

To let execution with zero amount being skipped in _executeAvailableFulfillments function in OrderCombiner
https://github.com/code-423n4/2022-05-opensea-seaport/blob/4140473b1f85d0df602548ad260b1739ddd734a5/contracts/lib/OrderCombiner.sol#L479-L494
https://github.com/code-423n4/2022-05-opensea-seaport/blob/4140473b1f85d0df602548ad260b1739ddd734a5/contracts/lib/OrderCombiner.sol#L504-L521
              // Derive aggregated execution corresponding with fulfillment.
              Execution memory execution = _aggregateAvailable(
                  advancedOrders,
                  Side.OFFER,
                  components,
                  fulfillerConduitKey
              );

              // If offerer and recipient on the execution are the same...
              if (execution.item.recipient == execution.offerer) {
                  // increment total filtered executions.
                  totalFilteredExecutions += 1;
              } else {
                  // Otherwise, assign the execution to the executions array.
                  executions[i - totalFilteredExecutions] = execution;
              }

Which lead to following optimization path:

execution.item.amount == 0
execution.item.recipient == execution.offerer
totalFilteredExecutions += 1 (skipping) instead of inserting into executions list
Execution skipped
Save a lot of gas on any function that used to execute that execution
amount = 0 not being passed to Executor causing revert to be not triggered. Thus, fixing a serious aggregating a zero-amount item problem.

Testcase passed

So in these cases it is likely better not to skip these, and to throw; otherwise a fulfiller can end up not getting something they expected back from orders that coerce a zero-amount item via a descending amount. Going to confirm with other reviewers before making this adjustment.
Vouching for your contributions though — can you open another PR that just adds you as a contributor?


SH1107 OLED FeatherWing Display Issue with Feather RP2040

When connecting an SH1107 128x64 OLED FeatherWing to a Feather RP2040 via STEMMA QT I2C, the display does not blank on initialization and displays pixelated "noise" when updated.

This does not occur when using an SSD1306 1.3" 128x64 OLED Display connected via STEMMA QT I2C to the same Feather RP2040.  I have also tested the same OLED FeatherWing on a second RP2040 with the same result.  I then tested the same FeatherWing connected to a Feather STM32F405 Express via STEMMA QT I2C and the FeatherWing displayed correctly.  Lastly, I tried two other OLED FeatherWing displays and they both had the same issue with the RP2040.
I am able to reproduce the issue with the following code:
import displayio
import terminalio

from adafruit_display_text import label
import adafruit_displayio_sh1107

displayio.release_displays()
i2c = board.I2C()
display_bus = displayio.I2CDisplay(i2c, device_address=0x3C)
display = adafruit_displayio_sh1107.SH1107(display_bus, width=128, height=64)

WHITE = 0xFFFFFF
INIT_STRING = " " * 21
display_group = displayio.Group(max_size=5)
Line1 = label.Label(terminalio.FONT, text=INIT_STRING, color=WHITE, x=0, y=8)
display_group.append(Line1)
Line2 = label.Label(terminalio.FONT, text=INIT_STRING, color=WHITE, x=0, y=20)
display_group.append(Line2)
Line3 = label.Label(terminalio.FONT, text=INIT_STRING, color=WHITE, x=0, y=32)
display_group.append(Line3)
Line4 = label.Label(terminalio.FONT, text=INIT_STRING, color=WHITE, x=0, y=44)
display_group.append(Line4)
Line5 = label.Label(terminalio.FONT, text=INIT_STRING, color=WHITE, x=0, y=56)
display_group.append(Line5)
display.show(display_group)

Line1.text = f"{'1' * 21}"
Line2.text = f"{'2' * 21}"
Line3.text = f"{'3' * 21}"
Line4.text = f"{'4' * 21}"
Line5.text = f"{'5' * 21}"

while True:
    pass

I have also tried initializing the I2C bus using i2c = busio.I2C(board.SCL, board.SDA) instead of i2c = board.I2C(), but it did not make any difference.  I have tested this using several versions of CP 6.2.0-beta.3 released over the past week, as well as the CircuitPython 6.2.0-beta.4 on 2021-03-18 release.  While the noise seems to be better (fewer noise pixels) with the beta.4 release, the problem is still occurring:

Please let me know if there is any additional information or testing I can provide and thanks for your help.

A quick update:  I took a look at the SH1107 Datasheet to see if I could find anything that stuck out pertaining to the I2C interface and noticed it lists the maximum SCL Clock Frequency as 400 kHz (page 54).
I believe the board.I2C() statement returns a default busio.I2C(board.SCL, board.SDA, frequency=100000) object, so I tried using busio.I2C directly instead of board.I2C to drop the frequency thinking information was being somehow corrupted at 100 kHz... and the noise actually got worse.  I then increased the frequency to 200 kHz and there was less noise, so I bumped the frequency up to 400 kHz and the display updates cleanly!
I am not sure why this seems to only be happening with the Feather RP2040 and not the Feather STM32F405.  I then tried this using a QT Py Haxpress to see if an M0 chip behaves like the RP2040 and it does not with board.I2C working fine on the M0 as well.
So while I have found a viable workaround for making my SH1107 OLED FeatherWing work with the RP2040, there is still the question of why this is happening with the RP2040 but not the M0 or STM32 chips, as well as the issue that the sample code for the SH1107 driver uses board.I2C to initialize the bus so anyone trying this with an RP2040 chip will likely have the same 'noise' issues.

Another one. Just adding for tracking:
https://forums.adafruit.com/viewtopic.php?f=57&t=177219

This appears to be fixed by https://github.com/raspberrypi/pico-sdk/pull/273, which we are adding to CircuitPython as a PR to our fork of the pico-sdk. Thanks to @caternuson for testing.

This appears to be fixed by raspberrypi/pico-sdk#273, which we are adding to CircuitPython as a PR to our fork of the pico-sdk. Thanks to @caternuson for testing.

@dhalbert, I just tested the sda-hold-time-fix.uf2 firmware on my setup described above and it seems to work as well now using i2c = board.I2C() instead of having to use i2c = busio.I2C(board.SCL, board.SDA, frequency=400000).  Thank you!