queue init fails when IORING_SETUP_NO_MMAP is used with IORING_SETUP_CQSIZE

I can't find anything in the docs to suggest IORING_SETUP_CQSIZE is incompatible with IORING_SETUP_NO_MMAP, so seems like a bug.
io_uring_queue_init_mem fails with -14 (-EFAULT). If you remove IORING_SETUP_CQSIZE from flags in the reproducer below, then I don't get this error.
Note, that this seems to only occur if the memory required is greater than 1 page (e.g. if you use 4 entries for SQ ring and 16 for CQ ring in the reproducer below, then I don't get EFAULT).
I have modified the test 'buf-ring-nommap.c' to create a reproducer (see below).
I'm using Ubuntu 23.10 (kernel version 6.5.0-14-generic)
/* SPDX-License-Identifier: MIT */
/*
 * Description: test IOU_PBUF_RING_MMAP with a ring setup with a ring
 *		setup without mmap'ing sq/cq arrays
 *
 */
#include <stdio.h>
#include <stdlib.h>
#include <unistd.h>
#include <fcntl.h>
#include <string.h>
#include <sys/mman.h>

#include "liburing.h"
#include "helpers.h"

static int bgid = 5;
static int bid = 89;

int main(int argc, char *argv[])
{
	struct io_uring_buf_ring *br;
	struct io_uring_sqe *sqe;
	struct io_uring_cqe *cqe;
	struct io_uring ring;
	size_t ring_size;
	int ret, ring_mask, fds[2];
	struct io_uring_buf_reg reg = {
		.ring_entries = 1,
		.bgid = bgid,
		.flags = IOU_PBUF_RING_MMAP,
	};
	struct io_uring_params p = { };
	void *ring_mem;
	char buf[32];
	off_t off;

	if (argc > 1)
		return T_EXIT_SKIP;

	if (posix_memalign(&ring_mem, 16384, 16384))
		return T_EXIT_FAIL;

	p.flags = IORING_SETUP_NO_MMAP | IORING_SETUP_CQSIZE;
	p.cq_entries = 256;

	ret = io_uring_queue_init_mem(64, &ring, &p, ring_mem, 16384);
	if (ret < 0) {
		if (ret == -EINVAL)
			return T_EXIT_SKIP;
		fprintf(stderr, "queue init failed %d\n", ret);
		return T_EXIT_FAIL;
	}

	if (pipe(fds) < 0) {
		perror("pipe");
		return T_EXIT_FAIL;
	}

	ring_size = sizeof(struct io_uring_buf);
	ring_mask = io_uring_buf_ring_mask(1);

	ret = io_uring_register_buf_ring(&ring, &reg, 0);
	if (ret) {
		if (ret == -EINVAL)
			return T_EXIT_SKIP;
		fprintf(stderr, "reg buf ring: %d\n", ret);
		return T_EXIT_FAIL;
	}

	off = IORING_OFF_PBUF_RING |
			(unsigned long long) bgid << IORING_OFF_PBUF_SHIFT;
	br = mmap(NULL, ring_size, PROT_READ | PROT_WRITE,
				MAP_SHARED | MAP_POPULATE, ring.ring_fd, off);
	if (br == MAP_FAILED) {
		perror("mmap");
		return T_EXIT_FAIL;
	}

	io_uring_buf_ring_add(br, buf, sizeof(buf), bid, ring_mask, 0);
	io_uring_buf_ring_advance(br, 1);

	sqe = io_uring_get_sqe(&ring);
	io_uring_prep_read(sqe, fds[0], NULL, 0, 0);
	sqe->flags |= IOSQE_BUFFER_SELECT;
	sqe->buf_group = bgid;

	io_uring_submit(&ring);

	ret = write(fds[1], "Hello", 5);
	if (ret < 0) {
		perror("write");
		return T_EXIT_FAIL;
	} else if (ret != 5) {
		fprintf(stderr, "short write %d\n", ret);
		return T_EXIT_FAIL;
	}

	ret = io_uring_wait_cqe(&ring, &cqe);
	if (ret) {
		fprintf(stderr, "wait %d\n", ret);
		return T_EXIT_FAIL;
	}
	if (cqe->res < 0) {
		fprintf(stderr, "cqe res %d\n", cqe->res);
		return T_EXIT_FAIL;
	}
	if (!(cqe->flags & IORING_CQE_F_BUFFER)) {
		fprintf(stderr, "buffer not selected in cqe\n");
		return T_EXIT_FAIL;
	}
	if ((cqe->flags >> IORING_CQE_BUFFER_SHIFT) != bid) {
		fprintf(stderr, "wrong buffer id returned\n");
		return T_EXIT_FAIL;
	}

	io_uring_cqe_seen(&ring, cqe);

	io_uring_queue_exit(&ring);
	return T_EXIT_PASS;
}

Using posix_memalign() does not guarantee that the pages will be contiguous, which is a requirement. This is why the man page references using a huge page for this, because that will always work. You're at the mercy of how pages are allocated otherwise.

I did try that too, i.e. allocated huge page with mmap, but got same error (EFAULT).
reg-fd-only.c also tests IORING_SETUP_NO_MMAP with huge page. That test also fails for me ("test 512 failed"). EFAULT is also the reason why this test fails.
I can't seem to figure what's causing the EFAULT error code. I've done a fresh install of Fedora Server 39 (kernel: 6.5.6-300.fc39.x86_64) and re-tested to no avail.
I do have huge pages enabled:

sudo grep Huge /proc/meminfo
AnonHugePages:         0 kB
ShmemHugePages:        0 kB
FileHugePages:         0 kB
HugePages_Total:    2048
HugePages_Free:     2048
HugePages_Rsvd:        0
HugePages_Surp:        0
Hugepagesize:       2048 kB
Hugetlb:         4194304 kB

I can allocate and use huge pages within my application as normal, no issues.
also:

ulimit -l
7600000000

Any ideas?

Can you send a reproducer with the huge pages? Funky.

yep, see reproducer below. Both tests in the reproducer fail for me with error EFAULT.
(i compiled/ran it as follows: added new file in liburing/test directory, and then added entry in liburing/test/Makefile, then make command in liburing directory compiles it)
#include <stdio.h>
#include <sys/mman.h>
#include <linux/mman.h>

#include "liburing.h"
#include "helpers.h"

static int test_init1() {
	struct io_uring ring;
	int ret;
	struct io_uring_params p = { };
	void *ring_mem;
	size_t ring_mem_size;

	ring_mem_size = 2u * 1024u * 1024u; // 2MiB
	ring_mem = mmap(NULL,
			ring_mem_size,
			PROT_READ | PROT_WRITE,
			MAP_ANONYMOUS | MAP_SHARED | MAP_HUGETLB,
			-1,
			0);

	if (ring_mem == MAP_FAILED) {
		fprintf(stderr, "huge page allocation failed %d\n", errno);
		return T_EXIT_FAIL;
	}

	p.flags = IORING_SETUP_NO_MMAP;
	ret = io_uring_queue_init_mem(512, &ring, &p, ring_mem, ring_mem_size);
	if (ret < 0) {
		fprintf(stderr, "queue init failed %d\n", ret);
		return T_EXIT_FAIL;
	}

	io_uring_queue_exit(&ring);
	return T_EXIT_PASS;
}

static int test_init2() {
	struct io_uring ring;
	int ret;

	ret = io_uring_queue_init(512, &ring, IORING_SETUP_NO_MMAP);
	if (ret < 0) {
		fprintf(stderr, "queue init failed %d\n", ret);
		return T_EXIT_FAIL;
	}

	io_uring_queue_exit(&ring);
	return T_EXIT_PASS;
}

int main(int argc, char *argv[])
{
	int ret;
	bool failed;

	if (argc > 1)
		return T_EXIT_SKIP;

	ret = test_init1();
	if (ret != T_EXIT_PASS) {
		fprintf(stderr, "test 1 failed\n");
		failed = true;
	}

	ret = test_init2();
	if (ret != T_EXIT_PASS) {
		fprintf(stderr, "test 2 failed\n");
		failed = true;
	}

	if (failed)
		return T_EXIT_FAIL;
	else
		return T_EXIT_PASS;
}

Very odd, works fine for me on both arm64 and x86-64. I'll try 6.5-stable to see if it's related to that somehow.

Yep it's an issue with 6.5. 6.5-stable is no longer being maintained, for some reason ubuntu always sticks with those... So not much I can do, except you could possibly nudge ubuntu to include some patches. I can take a peek and figure out which one(s) we need.

Thanks for checking and confirming.
I will just use a newer kernel for now, so closing this.


Strange error coming when I deploy demo app on android emulator

I tried to use this app in emulator but this is not working. I see errors like this
The project YouTubeDemo needs to be deployed before it can be started. Verify the project is selected to be deployed in the Solution Configuration Manager.
I tried to use 5.0 , 7.1 and 8.0 android but this things not work. I have tried with deploy than debug but still same error.
Any idea,  what can be issue @nishanil
Thanks you your useful repository.

YouTube app must be installed first.


[BUG]Configure alluxio job master jvmOptions and properties does not take effect.

What is your environment(Kubernetes version, Fluid version, etc.)
Fluid version : 0.8.0
Describe the bug
Configure alluxio job master jvmOptions and properties does not take effect.
Maybe this struct is written incorrectly:
https://github.com/fluid-cloudnative/fluid/blob/171b52d092cb36f0741c1a417648edf93f14d116/pkg/ddc/alluxio/types.go#L127
What you expect to happen:
How to reproduce it
Additional Information

@yangyuliufeng Hi, do you have any ideas for this issue?


Write full queries as top-level rules

Motivation

It would be nice to be able to specify queries at the top-level. From what I can tell, this is currently not supported and they must always start with a conditional group and rules nested inside that.
css({ '@media screen and (min-width: 480px)': { color: 'tomato' } })

This would make transitioning from another library like Emotion or Styled Components easier since they support this syntax.

Thank you for the idea! While this is very possible from a technical perspective, it would break static type checking for CSS properties. I’m closing this for now.
Please feel free to fork the project and experiment with it on your own, as I’m too busy to maintain it right now. Also, I started transitioning from CSS-in-JS to Tailwind’s utility classes and they are very convenient to use with no runtime at all. Dynamism is also possible by leveraging CSS custom properties and inline styles.


iOS Link to Bug report page

https://github.com/Deleplace/cool-maze/issues
Accessible from a menu in main view.

Viewing this page on a phone may not be the most confortable way to create a detailed bug report... any way to view it on a desktop browser instead? I wish this existed.

Put as an item in new left menu from #271


Bug: Queue length doesn't seem right

I'm doing a bit of load testing and I'm seeing roughly correct numbers for sent, but the tasks don't reflect in the queue length all the time.  The tasks are short (10s) so maybe this is a queue length polling time issue?

not sure if it's related, but tasks active is also off

I've got a python query I use to find the active tasks, that I'm pretty sure should work

Any ideas on this? Still having this issue.

Celery prefetches 4 messages for each process. Each worker can have multiple processes and you could be running multiple workers. See: https://docs.celeryq.dev/en/stable/userguide/optimizing.html#prefetch-limits

Hello, @danihodovic! First of all, thank you for such fantastic software, it is really awesome.
We've been using this exporter to monitor our Celery deployment and everything works like a charm except for the Queue Length, I will attach an image of how the dashboard looks. I find it difficult to believe that the queue length is always zero and maybe it's related to this issue by @michaelschem. We're using Django + Celery + Redis with the events on and it works perfectly (hence the other data being accurate), it is only that specific queue length metric that is always zero that seems suspicious (to me) given the other values. We're using only one queue named "celery" (which is the default value I assume) and the prefetch-multiplier value for each worker is set to 1 (from the default of 4). I can provide any other detail/info if required :)

Thanks in advance!

Hi Humberto,
Can you confirm the queue length using celery inspect or using redis-cli and then LLEN command directly?

That's my experience in one of the larger projects we use Celery in. We scale between 10-20 workers and the queue length almost always stays at 0. @adinhodovic has more context


Using a navigation property to clear a foreign key fails in 2.0.0

Given the following two (simplified) models, configured with the foreign key as DeleteBehavior.Restrict:
public class Asset
{
    public int Id { get; set; }
}

public class Product
{
    public int Id { get; set; }

    public int? DownloadAssetId { get; set; }
    public Asset DownloadAsset { get; set; }
}

Trying to clear the asset with product.DownloadAsset = null; (after loading the data with .Include(x => x.DownloadAsset)) results in the following error:
The association between entity types 'Asset' and 'Product' has been severed but the foreign key for this relationship cannot be set to null. If the dependent entity should be deleted, then setup the relationship to use cascade deletes.

Clearing with product.DownloadAssetId = null; works as expected.
Obviously I don't want any entities to be deleted in this case; the only action I expect to occur is for the specified DownloadAssetId to be set to null.
It's kind of difficult for me to test it now, but I'm pretty sure this worked as I expected in 1.1.x.
Further technical details
EF Core version: 2.0.0
Database Provider: Microsoft.EntityFrameworkCore.SqlServer
Operating system: Windows 10
IDE: Visual Studio 2017 15.3

@svallis We made some changes to the way DeleteBehaviors work in 2.0. I can't find the announcement for this (@divega--do you know where it is?) but here is the draft I wrote for it in #8923:

New ClientSetNull delete behavior

In previous releases, DeleteBehavior.Restrict had a behavior for entities tracked by the context that more closed matched SetNull semantics. In EF Core 2.0, a new ClientSetNull behavior has been introduced as the default for optional relationships. This behavior has SetNull semantics for tracked entities and Restrict behavior for databases created using EF Core. In our experience, these are the most expected/useful behaviors for tracked entities and the database. DeleteBehavior.Restrict is now honored for tracked entities when set for optional relationships.

So it looks like you need to configure the relationship as DeleteBehavior.ClientSetNull, or just don't configure it at all since this is the default. Question: why were you explicitly configuring Restrict in your 1.1.x code? We were expecting this to be quite rare since it was the default for optional relationships anyway.

@ajcvickers I ended up not creating announcements for many of the changes. Instead this information was added to the documentation, both in the cascade delete topic and on https://docs.microsoft.com/en-us/ef/core/miscellaneous/1x-2x-upgrade.
I am also planning to update that topic with additional information for Visual Studio 2015 and .NET Framework users that I have been adding to the prerequisite section of the announcement blog post. That way we can have a single resource that we can keep up to date and we can point customers too.
Then an announcement pointing to that topic should help. Thought?

Thanks for the responses.

Question: why were you explicitly configuring Restrict in your 1.1.x code?

Bear in mind this code base has been around since pre 1.0.0. Some of the foreign keys were being created in my migrations with ReferentialAction.Cascade, which I didn't want. I added the following in OnModelCreating():
// make referential delete behaviour restrict instead of cascade for everything
foreach (var relationship in builder.Model.GetEntityTypes().SelectMany(x => x.GetForeignKeys()))
{
    relationship.DeleteBehavior = DeleteBehavior.Restrict;
}

Commenting that out in 2.0.0 and generating a new migration is still trying to create ReferentialAction.Cascade relationships in places that I don't want. Switching to the new DeleteBehavior.ClientSetNull is perfect though, many thanks!

@divega Sounds good.

@svallis Thanks for the information. Glad it is working for you now. (FYI: relationships get cascade delete by convention when the FK is not nullable.)

Hi @svallis. We are gathering information on the use of EF Core pre-release builds. You reported this issue shortly after the release of 2.0.0 RTM. It would be really helpful if you could let us know:

Did you consider testing your code against the pre-release builds?
Was there anything blocking you from using pre-release builds?
What do you think could make it easier for you to use pre-release builds in the future?

Thanks in advance for any feedback. Hopefully this will help us to increase the value of pre-release builds going forward.

Did you consider testing your code against the pre-release builds?
No. A day or so after 2.0.0 dropped I just switched. Seat of your pants stuff.
Was there anything blocking you from using pre-release builds?
Time. I know it's probably the excuse everybody gives, but as much as new releases get me excited to move code over, time spent on a pre-release ultimately doesn't feel like time well spent when I have dev work to be getting on with. I realise this isn't necessarily in the spirit of things, but no point me answering unless it's honest!
What do you think could make it easier for you to use pre-release builds in the future?
I don't think there is anything. I plan to continue being an early adopter for new releases, and I am comfortable with the fact that things may be a little hairy until x.x.1 or x.x.2, but getting in on pre-release builds is not on my agenda currently.

@svallis Thanks for the feedback; much appreciated! Curious, how long would you consider it acceptable to wait for the x.x.1 version?

@ajcvickers I don't think there's a fixed time-frame, it'd always scale with how stable the x..x.0 release was, and whether or not any issues directly impacted my projects. If while migrating a new release I hit something that was causing serious problems I'd just shelve the upgrade until such a time as it makes sense to do so. Clients see the value (and will pay) to keep their web applications on the latest version of the framework, but if it doesn't happen for weeks (or even months) after the initial release there's no problem.

Thanks @svallis


V7 merge

Merge pouya-eghbali/meteor-autoform

So I cloned this and built it into my staging environment after locally were no issues. Our staging users reported no issues with it yet, so it seems to be a good fit :+1:
The only issues so far are from my end:

we need to update the documentation
we need to show how to add Bootstrap 4 templates, mainly because the imajus:autoform-bootstrap4 is relying on some Template helpers from the Bootstrap3 templates, and I had to create an own package that fixes the (jkuester:autoform-bootstrap4)
we should at least add some unit tests for functions that don't require templating, puppeteer etc. for now (later we may extend this)
I have tested some of my extensions and they all worked, however the most popular extensions need to be tested, too
The extensions list may be curated in order to remove abandoned packages or get them into the community if they are very popular

I would offer to review the documentation but the @Meteor-Community-Packages/autoforms team may clone this and try it out locally, too.

@jankapunkt sorry I'm really really busy these days with everything going remote, I don't know when I can help, maybe in two weeks, but do tell me if you find any issues. Personally I didn't have any issues on my dev machine, staging and on production so far and I don't have any updates for this PR for now.

The var,indexOf and single char / short names are not my doings, I tried to use const whenever I rewrote any part of this, and if that wasn't possible I used let, I tried my best not to touch the original code but if we're doing a major update we should replace all these and move to >es6.
For the breaking of parameters and formatting, I used prettier with default settings, we can decide on a linter and add a config file to automatically format the code. I used prettier with default settings because that's what I use for all my projects.
All changes I made are somehow documented in the new readme, this was fine for a fork, but we need to move it to the documentation. Regarding the isObject function, do you know a standalone fast implementation?

For isObject the current implementation is
export const isObject = obj => toString.call(obj) == '[object Object]' || Array.isArray(obj) || isFunction(obj)

can't remember the reason behind this, we should check if removing  || Array.isArray(obj) || isFunction(obj) won't break any functionality, or if it does then it should be replaced with an appropriate function call where it breaks.

The var,indexOf and single char / short names are not my doings, I tried to use const whenever I rewrote any part of this, and if that wasn't possible I used let, I tried my best not to touch the original code but if we're doing a major update we should replace all these and move to >es6.
For the breaking of parameters and formatting, I used prettier with default settings, we can decide on a linter and add a config file to automatically format the code. I used prettier with default settings because that's what I use for all my projects.

I see, I was already curious because at some parts there wire mixed var and const. I think prettier is a stable and well established tool and we could go for it. I could setup some github action / ci using it to lint-test any pushes and pull requests (will create a PR for that).
If you give me access to the dev repo I can take over that part with the ES6 and fix all my mentioned things in the review. An alternative would be to merge this into a v7.x branch instead of devel and work from here towards a stable v7. What do you think?

can't remember the reason behind this, we should check if removing || Array.isArray(obj) || isFunction(obj) won't break any functionality, or if it does then it should be replaced with an appropriate function call where it breaks.

I think the function should not be too complicated and fulfill the following requirements:

check if it's not an Array
check if it's not a Function

I checked the polyfill for Array.isArray and would do
export const isObject = obj => Object.prototype.toString.call(obj) === '[object Object]'

which is basically the explicit version of toString.call(obj) == '[object Object]' and in any situation it breaks there should be an extra condition with else if (Array.isArray(obj)) { ... } and/or `else if (typeof obj === 'function') { ... }```

I just want to ask again, do you think it's a good idea to merge this to a v7 branch instead of develop so I can immediately fix the issues that are left and we can soon merge? When I am through I will ask for at least one reviewer from the team and then we should soon be able to merge.

Yeah, let's do that. That sounds like a better idea.

Allright, changed the base branch and will implement the mentioned issues, I hope this will be done this weekend :-)


feat: add Ukrainian language support

I sent you files with the Ukrainian translation already added to your email<EMAIL_ADDRESS>It would be cool if you added it
uk-Ua traslate.zip

Hi 👋 thanks for taking the time to translate it. don’t you want to add them directly via a fork and a pull request?
I can do it too, but currently I’m working on other features


Swift Shader support

Swift Shader is a CPU based implementation of the Vulkan API.
This may be useful to the slang project in several ways

Allow Vulkan testing on CI for targets that don't have GPUs or Vulkan
Provide a more optimized CPU backend (with some caveats)
Provide a way to execute CPU code without dll/shared library/C++ compiler

On the first point, I didn't seem to find anywhere where we can just grab the official binaries. I did find some unofficial places that had binaries, but they seemed rather out of date. This probably means if we want to integrate into CI, we want to build binaries and make available through the slang-binaries. To do this we probably want to have a TC project to build the binaries - although not necessary initially. We need a mechnism in gfx to be able to load the Swift Shader dll.
On the second point - the perceived performance issue is around the CPU code produced via the C++ emit and compilation. For a variety of reasons it is unlikely that especially efficient SIMD code will be produced. One advantage of using Swift Shaders implementation is that it can more straight forwardly, produce superior SIMD optimized code. It remains to be seen if in practice the dividend is significant or at all.
On the third point -  currently if CPU execution of Slang code is wanted C++ code must be compiled via an available C++ compiler. A C++ compiler is a fairly onerous requirement, especially if shipping a product. The compilation is typically somewhat slow as it requires compiling in a separate process. Finally if the code is to be directly executed, currently this is achieved by producing a shared/library dll.
This all seems good - faster compilation, easier /less fragile/esoteric execution, potentially significantly faster execution. Unfortunately the problem is that because the execution requirement is vulkan, the binding is not documented the CPU style.
To make this work for our 'host executable' option therefore is somewhat complicated. What to reflect? How to translate the CPU bindings to Vulkan? Presumably we would use gfx vulkan implementation? Presumably that would be available through having gfx shared libraries available.

Thanks for writing up all this.

To make this work for our 'host executable' option therefore is somewhat complicated.

I think this is an understatement. I would worry that trying to leverage Swift Shader as a system for CPU codegen would end up being more of a detour than a shortcut.
I think Swift Shader integration would be valuable just to get more of our Vulkan tests running under CI. That alone would justify some level of effort. If individual developers want to use that same approach as a way to run their compute shaders on CPU, then that's great. I just don't see anything practical we can do at the level of the Slang implementation/API to support/enable that without tons of compromises.
I'm still bought into the idea that an LLVM-based codegen path (plus a SIMDization pass that goes from Slang IR to Slang IR) is the Right Way forward for our CPU plans.

I agree that the generating SIMD code in our CPU backend is the more appropriate direction here.
As for selecting SwiftShader, we should include a requestSoftwareDevice flag/field in IDevice::Desc to inform the implementation what dll to load.

#1906 enables Vulkan testing on Github CI with swiftshader.


Modular logic for ICS3 Connection handshake protocol

Before relayer forward IBC message to the destination, it is supposed to do checks (commitment proofs checks, business logic checks) equivalent to the checks done on chain by the corresponding ICS message handler.
The idea is to implement these checks, directly in the ibc crate, in a modular manner so that both the IBC modul and the relayer create can use them. As part of this larger task we need to implement the various verification method similar as defined in ClientState: https://github.com/cosmos/cosmos-sdk/blob/55796fb3e73c222eb97c1308d4eee26144e8189f/x/ibc/02-client/exported/exported.go#L17.

Given the addition of domain types (which handle message validation), it's unclear if this issue is still relevant. There is some potential to reuse business logic of processing certain messages, however. So we can investigate this in the context of ICS3 specifically, while implementing #377. The goal would be that relayer-side logic would import and reuse verification functions (not only for clients & proofs).

Cf: https://github.com/informalsystems/ibc-rs/pull/388#discussion_r520455471

Closing as stale.


Network policy "strict" mode allows ingress even if "Egress" is the only policy type defined

Disclaimer: This behavior might very well be intended, but it could be better explained in the docs for NETWORK_POLICY_ENFORCING_MODE.
What happened:
If NETWORK_POLICY_ENFORCING_MODE is configured to strict, if a pod is only targeted with egress-only network policies, ingress is still allowed.
For example, given the following network policy:
apiVersion: networking.k8s.io/v1
kind: NetworkPolicy
metadata:
  name: default-allow-egress
spec:
  podSelector: {}
  egress: {}
  policyTypes:
    - Egress # note that this policy is only egress

if there is a pod for which this is the only network policy, the pod will allow inbound network connectivity.
This might be intended, but my expectation was that the strict mode disallows all traffic that's not explicitly allowed, and the pod isolation would take policyTypes into consideration, so if there is the only policy type in all network policies for a pod is Egress, then ingress should be blocked.
The docs state:

However, in the strict mode, a new pod will be blocked from Egress and Ingress connections till a qualifying Network Policy is applied

However, it was my expectation that a egress-only network policy is not qualifying for ingress traffic purposes. At the same time, the Kubernetes docs consider a pod to not be ingress-isolated if there is no Network Policy with the Ingress policy type defined.
Our use-case:
We would like to disallow ingress by default for all pods without needing to explicitly add a network policy with policy type Ingress. It's funny that, out of the box, strict mode enabled us to do this for pods without network policies, but if we create a network policy that only targets Egress, we accidentally and inadvertently allow ingress to said pod.
Environment:

Kubernetes version: v1.29.8-eks-a737599
CNI Version: v1.18.5-eksbuild.1
OS: Amazon Linux 2
Kernel: 5.10.224-212.876.amzn2.x86_64

bogatuadrian@ We will update our documentation to state this more explicitly. In strict mode when no network policies are applied the default is deny all. Once any kind of network policy is applied (ingress or egress), the default deny is no longer applicable. From here it is as upstream states, no ingress policy means no ingress pod isolation.

PR for doc update is merged https://github.com/aws/amazon-vpc-cni-k8s/pull/3125


Override material properties

We are doing a POC with Project Acoustics on one of our scenes, a office building. Walls and ceiling uses 0.4 absorption to get correct acoustics for that kind of environment. But in the rest rooms we use same wall/ceiling material but a marble floor material. But the 0.4 absorption kills the marble echo effect. I could duplicate wall and ceiling materials and configure them separate for the rest rooms, but that will introduce more draw calls, plus its not a clean workflow.
I suggest you introduce a new component we can put on meshes so we can override material config. Either with an offset value or an absolute value. That way we can design variation.

Actually this could be added to the existing geo-component, the one we use to tag meshes.

Maybe this one is not terrible important, with some fine tuning the result is good for this room. Maybe there is other use cases though when it could be good to override the material

Hi @AndersMalmgren !
I hope you don't mind me chiming in here - I just wanted to mention that we've run into a similar issue, and how our team is currently handling it.
We are using Atlassed materials for pretty much all of the environmental meshes in our game. I'm not an art expert by a long shot, but if I understand correctly, this means that material data is shared between a bunch of different assets, even if they look different, for optimization purposes. For example, we might have a metal barrel, wooden crate, and plastic container all using an Atlas_Environment_01 visual material.
When our map is ready for acoustics geo tagging, we create a duplicate version of the map with an _Audio prefix. For the Atlas_Environment_01 example above, we would then copy and paste that material a few times, and rename the copies e.g. sfx_mat_Atlas_Environment_01_wood, _01_metal and _01_plastic. Then, we simply drag and drop those materials onto the correspond game objects. The process has taken an hour at most for some of our larger maps. We can then set custom absorption values for those assets individually.
I'm sure there's a better way to do this long term, but this is our currently workflow, and we were able to get all of our maps tagged up and ready for submission in a couple of days :) The downside is simply that it's not great for iteration; the maps in our project were close to finalized before we added in PA.
I hope that is helpful :) Have a great day!

Thanks for the tip, yeah a bit of workflow nightmare doing that :P Luckily for us we got it working without the need to have muttliple settings for same material. The marble floor in this case added so much reverb so we could keep the walls the same anyway, they add enough reverb :P


Error: USB read failed

After ~10 or so generated entropy "chunks" I get the USB read failed. Is this a common problem or something that can affect the entropy pool?
When I execute the command a second time it seems to be up and running (as the systemctl status suggest), but generates an error again after some time.
root@host:~# infnoise --debug --no-output
Generated 1048576 bits.  OK to use data.  Estimated entropy per bit: 0.877488, estimated K: 1.837174
num1s:50.563373%, even misfires:0.111168%, odd misfires:0.160576%
Generated 2097152 bits.  OK to use data.  Estimated entropy per bit: 0.875540, estimated K: 1.834695
num1s:50.465626%, even misfires:0.096236%, odd misfires:0.176725%
Generated 3145728 bits.  OK to use data.  Estimated entropy per bit: 0.874526, estimated K: 1.833406
num1s:50.508445%, even misfires:0.094330%, odd misfires:0.165837%
Generated 4194304 bits.  OK to use data.  Estimated entropy per bit: 0.875321, estimated K: 1.834417
num1s:50.586397%, even misfires:0.102284%, odd misfires:0.152080%
Generated 5242880 bits.  OK to use data.  Estimated entropy per bit: 0.875370, estimated K: 1.834479
num1s:50.569753%, even misfires:0.100282%, odd misfires:0.156254%
Generated 6291456 bits.  OK to use data.  Estimated entropy per bit: 0.875522, estimated K: 1.834672
num1s:50.529542%, even misfires:0.112720%, odd misfires:0.151589%
Generated 7340032 bits.  OK to use data.  Estimated entropy per bit: 0.874715, estimated K: 1.833645
num1s:50.593377%, even misfires:0.128267%, odd misfires:0.143259%
Generated 8388608 bits.  OK to use data.  Estimated entropy per bit: 0.875771, estimated K: 1.834988
num1s:50.497163%, even misfires:0.137012%, odd misfires:0.153046%
Generated 9437184 bits.  OK to use data.  Estimated entropy per bit: 0.875672, estimated K: 1.834863
num1s:50.494457%, even misfires:0.110128%, odd misfires:0.167135%
Generated 10485760 bits.  OK to use data.  Estimated entropy per bit: 0.875675, estimated K: 1.834866
num1s:50.545596%, even misfires:0.107083%, odd misfires:0.168273%
Generated 11534336 bits.  OK to use data.  Estimated entropy per bit: 0.875495, estimated K: 1.834637
num1s:50.426698%, even misfires:0.119628%, odd misfires:0.176682%
Error: USB read failed

root@host:~# systemctl status infnoise.service
● infnoise.service - Wayward Geek InfNoise TRNG driver
     Loaded: loaded (/lib/systemd/system/infnoise.service; enabled; preset: enabled)
     Active: active (running) since Sun 2024-02-11 20:04:51 CET; 5min ago
       Docs: man:infnoise.service(8)
    Process: 494226 ExecStart=/usr/sbin/infnoise --dev-random --daemon --pidfile /var/run/infnoise.pid (code=exited, status=0/SUCCESS)
   Main PID: 494227 (infnoise)
      Tasks: 1 (limit: 9302)
     Memory: 596.0K
        CPU: 59ms
     CGroup: /system.slice/infnoise.service
             └─494227 /usr/sbin/infnoise --dev-random --daemon --pidfile /var/run/infnoise.pid

Feb 11 20:04:51 host systemd[1]: Starting infnoise.service - Wayward Geek InfNoise TRNG driver...
Feb 11 20:04:51 host systemd[1]: Started infnoise.service - Wayward Geek InfNoise TRNG driver.

Host is Proxmox 8.1 based on Debian 12. Infnoise installed from Debian bookworm repository.

I am seeing the same errors on a Raspberry Pi. Was wondering the exact same thing.
@TrustExecutor did you find any additional clue since opening this issue?

I'm also seeing the same sort of error running Ubuntu 24.04 on a Raspberry Pi 5. I purchased the TRNG last week.

I am seeing the same errors on a Raspberry Pi 4 running Ubuntu 22.04. Was wondering the exact same thing. @TrustExecutor did you find any additional clue since opening this issue?

No I haven't found any clues. Still getting the USB read failures.

I'm also seeing the same sort of error running Ubuntu 24.04 on a Raspberry Pi 5. I purchased the TRNG last week.

I ordered from leetronics a month ago but haven't received anything. When did you order yours?

@TrustExecutor @wagnercmelo
I think I figured it out! The ReadMe in the software subdirectory says "To run the infnoise application manually, make sure the systemd service is stopped. Otherwise it will restart the daemon and disrupt you."
Once I stopped the service with systemctl stop infnoise I was able to run infnoise --debug --no-output without any problems. I only let it run for a minute or so.

I ordered from leetronics a month ago but haven't received anything. When did you order yours?

I bought mine from Crowd Supply, and I believe Mouser Electronics fulfilled the order based on tracking information.


support cucumber 1.1.5

Cucumber 1.1.5 renames a few things, notably:
source_tag_names
to
source_tags
The patch allows Capybara to handle both versions.
Cheers,
Cezary

The corresponding issue on Cucumber: cucumber/cucumber#227

Cc: @aslakhellesoy
Wait, how come stuff is breaking for us at a patch-level release? Is source_tags not part of Cucumber's public API? Should we be using something different?

My bad, I would have bumped minor if I realised someone else used this API. It didn't occur to me that Capybara would.
This fix is broken though, source_tags returns an Array of Tag, so a #map is needed.

My bad, I would have bumped minor if I realised someone else used this API. It didn't occur to me that Capybara would.

Haha, oh well. :-)
I wonder, perhaps rather than breaking things for users of Capybara 1.1.2 and adding ugly responds_to hackery to Capybara 1.1.3, perhaps it's easier to re-add the source_tag_names (either using .map or using the original implementation) to Cucumber, and push Cucumber 1.1.16 this weekend? Aslak, what are your thoughts?
Thanks for all your hard work on Cucumber, by the way!

By the way, for anyone looking to test Capybara's Cucumber integration: There is a Cucumber feature suite in Capybara to exercise it ("rake cucumber").

I missed this and submitted a not-as-good pull request, which I'll go ahead and close in favor of this one (which is better).

I agree with @joliss, it seems very hack-ish for us to add some kind of workaround for this, any chance cucumber can bring back the source_tag_names method, @aslakhellesoy?

I fixed it: https://github.com/jnicklas/capybara/pull/647
The hack can be removed if Cucumber 1.1.6 renders it unnecessary and 1.1.5 can be marked as a conflict.
But since the damage is already done ...

I've pushed a commit to Cucumber that adds #source_tag_names back, mapping over the tags to return their #name.
I can't work out how to test it (good old gnarly Cucumber codebase!) and only have a few minutes, so I'm flying blind. Can someone please either just sanity check or ideally manually test the patch?
https://github.com/cucumber/cucumber/commit/844fefea2a31bf956610e4d1ee1bca2e14e3fc53

Thanks Matt! I tested it in Capybara like so
diff --git a/Gemfile b/Gemfile
index 07a1f43..32116d9 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,3 +5,6 @@ gemspec

 @dependencies.delete_if {|d| d.name == "xpath" }
 gem 'xpath', :path => 'xpath'
+
<EMAIL_ADDRESS>{ |d| d.name == "cucumber" }
+gem 'cucumber', :path => '~/src/cucumber'

and "rake cucumber" now doesn't choke on source_tags, but instead reports that the driver switching isn't working anymore:
expected: :selenium
     got: :rack_test (using ==)
...
features/capybara.feature:23:in `Then Capybara should use the "selenium" driver'

Hm, too bad. I'm not sure off the top of my head what's going wrong. Perhaps it's the updated Gherkin, even.
I tested b7d7e97 (v1.1.15^) though, and it works fine. May I suggest you revert to b7d7e97 and push v1.1.6 with that?
Then we can re-try adding 4bc5ed6 ("Upgraded to gherkin 2.3.8") with more time to figure out what's going wrong.
Btw, re 844fefea ("Add back Scenario#source_tag_names for #227"), I wonder if source_tag_names really has to be deprecated. Semver says that you shouldn't deprecate API without bumping the minor, but even when you go to 1.2.0, is there any need to deprecate it? Capybara for instance wouldn't be able avoid those deprecations without bumping its Cucumber dependency, so they'll just clutter the terminal and annoy users.

expected: :selenium
got: :rack_test
It probably means istead of a string (tag -> "@selenium") it got a Tag instance (<....::Tag, @name="@selenium">) dump as a string, to it defaulted to :rack_test.
In short, the test is using scenarios.source_tags instead of scenarios.source_tags.map(&:name).
It's strange you are getting this, @joliss. I would have expected you to get the same error as here: https://github.com/cucumber/cucumber/pull/229
P.S. With all the chaos around this, I believe @aslak will never again change anything in Cucumber without deprecation ;) Cucumber is just so cool, that people are using every dark corner of Cucumber for whatever they need. And the noise also points out how crucial Capybara is for everyday life.

On 18 Feb 2012, at 23:52, Jo Liss wrote:

Thanks Matt! I tested it in Capybara like so
diff --git a/Gemfile b/Gemfile
index 07a1f43..32116d9 100644
--- a/Gemfile
+++ b/Gemfile
@@ -5,3 +5,6 @@ gemspec
@dependencies.delete_if {|d| d.name == "xpath" }
gem 'xpath', :path => 'xpath'

<EMAIL_ADDRESS>{ |d| d.name == "cucumber" }
+gem 'cucumber', :path => '~/src/cucumber'
and "rake cucumber" now doesn't choke on source_tags, but instead reports that the driver switching isn't working anymore:
expected: :selenium
got: :rack_test (using ==)
...
features/capybara.feature:23:in `Then Capybara should use the "selenium" driver'
Hm, too bad. I'm not sure off the top of my head what's going wrong. Perhaps it's the updated Gherkin, even.

Thanks @joliss. Could you re-try this with the current HEAD of Cucumber? I just ran Capybara's features against that and they all passed.
There also weren't any deprecation warnings! Perhaps the pixies fixed them?

I tested b7d7e97 (v1.1.15^) though, and it works fine. May I suggest you revert to b7d7e97 and push v1.1.6 with that?
Then we can re-try adding 4bc5ed6 ("Upgraded to gherkin 2.3.8") with more time to figure out what's going wrong.

You're quite right, that's what we should have done in the first place. If we haven't got this straightened out before Monday morning that's what we'll do.

Btw, re 844fefea ("Add back Scenario#source_tag_names for #227"), I wonder if source_tag_names really has to be deprecated. Semver says that you shouldn't deprecate API without bumping the minor, but even when you go to 1.2.0, is there any need to deprecate it? Capybara for instance wouldn't be able avoid those deprecations without bumping its Cucumber dependency, so they'll just clutter the terminal and annoy users.

Hmm yes. My immediate thought is - "but then how do we remove this kind of clutter from Cucumber?" but of course otherwise we're expecting you guys to have to put backwards-compatiblity hacks like #647 in. I don't mind taking the deprecation warnings out - we can just flag that method up as something we remove in the next major release, I suppose.

@mattwynne the missing deprecation in outline_table.rb (my fault!) was added after 1.1.6
So most capybara users won't have deprecation warnings until the next Cucumber version bump.
Also, with such mature and popular "gems" (no pun intended!) as Cucumber and Capybara, it might make sense to have versioned API layers in Cucumber - and deprecate an api version as a whole.
This would make things show warnings on deprecation on startup, while allowing you and @aslak to clean up the api as much as you please - and api users would choose if they want a "stable/versioned api" or "development" api.

Tech first:
Matt wrote:

Thanks @joliss. Could you re-try this with the current HEAD of Cucumber?

Yup, it works great with 1.1.7, and with HEAD 5731b64, it passes but throws deprecation warnings.
I'm not sure that source_tag_names is bad enough to be deprecation-worthy with a minor bump (I'd perhaps wait till version 2.0), but I shall not bike-shed -- it's you guys's call.
@e2 wrote:

In short, the test is using scenarios.source_tags

(In case this still matters: I'm pretty sure I ran the test on a pristine Capybara HEAD, which uses source_tag_names, though I don't know what actually caused the issue.)

Talk second:
@e2 wrote:

P.S. With all the chaos around this, I believe @aslak will never again change anything in Cucumber without deprecation ;)

Haha, yeah -- I'm glad I got to make this experience vicariously. ^_^

Cucumber is just so cool, that people are using every dark corner of Cucumber for whatever they need. And the noise also points out how crucial Capybara is for everyday life.

Yup. Funny how reports about the breakage started coming in within hours of the release.
@mattwynne wrote:

My immediate thought is - "but then how do we remove this kind of clutter from Cucumber?" but of course otherwise we're expecting you guys to have to put backwards-compatiblity hacks like #647 in. I don't mind taking the deprecation warnings out - we can just flag that method up as something we remove in the next major release, I suppose.

I agree -- I guess it's one of these unpleasant facts of open-source library maintenance that you only get to remove clutter something like once a year (at best).
@e2 wrote:

it might make sense to have versioned API layers in Cucumber - and deprecate an api version as a whole.

I'm thinking that might actually be overkill -- I'm personally not that concerned about breaking things (within reason) between majors, dropping compatibility entirely.

What I think this mess demonstrates is this: When we publish libraries, it really pays to be careful about deciding and communicating what is and isn't public API, and when we use other people's libraries, we should read up on the API documentation (or pester the developers) so we don't accidentally use private methods. Just as a general thought.
Anyways, glad we got this sorted out! Thanks for spending your weekend time. :-)

@joliss Actually, I take back what I said about the API.
Capybara is a runtime dependency of cucumber-rails:
https://github.com/cucumber/cucumber-rails/blob/master/cucumber-rails.gemspec
Which means every Cucumber change should be tested against Capybara, to make sure cucumber-rails doesn't end up "broken".
Also, cucumber-rails is a good point to handle version conflict information between Capybara and Cucumber.
I'm not sure cucumber-rails can actually work without Rails itself (runtime), but it may be the best solution to give maintainers more development flexibility, while providing the stability through versioning in cucumber-rails.
Because of that, I was wondering if cucumber-rails could be renamed to cucumber-web to handle things like sinatra, etc.


Enhancement

Hello
I love m00dbot and I would like to add Spanish Translation and add some features.

Hi!
Sure, feel free to open PR.


How to replicate

Hey, I got an interest in your work and I'm trying to replicate the results. What I understood is that I had to run the performance_match.py file in the mnist folder, and setting the initialization_way  to ternary and kesi to 0 I would replicate the ternary weights experiment. After doing this I got a validation accuracy of 43.5%, I also tried with kesi 0.5 and got a similar 44.5%.  How should I properly go to reproduce the results?
Finally, this method seems useful to compress random feedforward networks, do you have any ideas or other resources on how to compress trained networks?
Thanks!

Hi! Sorry for the late reply as I didn't check the comments promptly. I checked our codes and found weight_num_list  in the performance_match.py is narrow. As mentioned in our paper, our work operates in the high-dimensional regime, so weight_num_list should be wide enough. However, when I tried to widen this, the validation accuracy still mismatched to the Figure 3, although it did improve. Honestly, I am unsure what might be wrong with this code. It has been so long that I have forgotten the details about our codes, so I wrote a new code for NTK-LC algorithm to compress fully-connected network, and it works very well. If you are interested, you can give it a try! The new code is in the code/compression/new_MNIST/performance_MNIST.py file.
Regarding your second question, we have recently developed a trainable NTK-LC algorithm that enhances the robustness and performance of the compressed network, and we plan to share our new works as soon as possible. Additionally, there are various methods available for compressing trained networks, like APoT、N2UQ. Hope useful for you!

Hey, I got an interest in your work and I'm trying to replicate the results. What I understood is that I had to run the performance_match.py file in the mnist folder, and setting the initialization_way to ternary and kesi to 0 I would replicate the ternary weights experiment. After doing this I got a validation accuracy of 43.5%, I also tried with kesi 0.5 and got a similar 44.5%. How should I properly go to reproduce the results?
Finally, this method seems useful to compress random feedforward networks, do you have any ideas or other resources on how to compress trained networks?
Thanks!

Hi! Sorry for the late reply as I didn't check the comments promptly. I checked our codes and found weight_num_list in the performance_match.py is narrow. As mentioned in our paper, our work operates in the high-dimensional regime, so weight_num_list should be wide enough. However, when I tried to widen this, the validation accuracy still mismatched to the Figure 3, although it did improve. Honestly, I am unsure what might be wrong with this code. It has been so long that I have forgotten the details about our codes, so I wrote a new code for NTK-LC algorithm to compress fully-connected network, and it works very well. If you are interested, you can give it a try! The new code is in the code/compression/new_MNIST/performance_MNIST.py file.
Regarding your second question, we have recently developed a trainable NTK-LC algorithm that enhances the robustness and performance of the compressed network, and we plan to share our new works as soon as possible. Additionally, there are various methods available for compressing trained networks, like APoT、N2UQ. Hope useful for you!


run tests against php 7.1

Q
A

Bug fix?
no

New feature?
yes

BC breaks?
no

Deprecations?
no

Related tickets
N/A

Documentation
N/A

License
MIT

This add php 7.1 in travis-ci matrix.

Currently, all three listed Symfony versions will be run against every configured PHP versions. Thus, the build matrix does not only get one but three additional jobs. As the Travis CI quota for the number of jobs run in parallel applies to all repositories in the php-http organisation what do you think about reducing the number of jobs here and run tests with different Symfony versions only with one PHP version?

@xabbuh you are correct. I will make a PR with the suggested changes.
@fbourigault Thank you!


fix(#473) add Ajv and node-fetch to the test runtime

In previous PR I added ajv to runtime in scripts. I discovered that node-fetch is missing in tests, so I added this and ajv there too.

shit, let me take a look at fetch again

Thanks @lared !


No instances of MSBuild could be detected.

Title. Tried to run this tool on my .NET 8 WPF project. Additionally, it appears the dotnet CLI has trouble running the tool, because it can't find it after installation, so I can only run it directly, IDK if this has anything to do with the issue at hand.

Apologies for not getting to this quickly.

it appears the dotnet CLI has trouble running the tool, because it can't find it after installation, so I can only run it directly

When it comes to global tools, you sometimes need to restart your console if that's the first global tool installed.

I'm having the same issue. Just installed the tool as a global tool and got the following error:
Unhandled exception: System.InvalidOperationException: No instances of MSBuild could be detected.
Try calling RegisterInstance or RegisterMSBuildPath to manually register one.
   at Microsoft.Build.Locator.MSBuildLocator.RegisterDefaults()
   at DependencyVisualizerTool.Program.GenerateGraph(FileInfo projectFile, String outputFolder, Nullable`1 checkVulnerabilities, Nullable`1 checkDeprecation, Nullable`1 projectsOnly, CancellationToken cancellationToken) in E:\Code\DependencyVisualizer\src\DependencyVisualizerTool\Program.cs:line 0
   at DependencyVisualizerTool.Program.<>c.<<Main>b__2_1>d.MoveNext() in E:\Code\DependencyVisualizer\src\DependencyVisualizerTool\Program.cs:line 67
--- End of stack trace from previous location ---
   at System.CommandLine.Invocation.AnonymousCommandHandler.InvokeAsync(InvocationContext context)
   at System.CommandLine.Invocation.InvocationPipeline.<>c__DisplayClass4_0.<<BuildInvocationChain>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass17_0.<<UseParseErrorReporting>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass12_0.<<UseHelp>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass22_0.<<UseVersionOption>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass19_0.<<UseTypoCorrections>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<UseSuggestDirective>b__18_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass16_0.<<UseParseDirective>b__0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c.<<RegisterWithDotnetSuggest>b__5_0>d.MoveNext()
--- End of stack trace from previous location ---
   at System.CommandLine.Builder.CommandLineBuilderExtensions.<>c__DisplayClass8_0.<<UseExceptionHandler>b__0>d.MoveNext()

Restart did not help. Anything I can do to help find the issue with that?

Which version of the .NET SDK do you have installed?

Below is the requested information. I install all my dotnet stuff via Visual Studio Installer. It should all be correctly registered and such.

dotnet --list-sdks
8.0.204 [C:\Program Files\dotnet\sdk]

dotnet --list-runtimes
Microsoft.AspNetCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 6.0.29 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 7.0.18 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.AspNetCore.App 8.0.4 [C:\Program Files\dotnet\shared\Microsoft.AspNetCore.App]
Microsoft.NETCore.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.29 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 6.0.31 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 7.0.18 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.NETCore.App 8.0.4 [C:\Program Files\dotnet\shared\Microsoft.NETCore.App]
Microsoft.WindowsDesktop.App 5.0.17 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.29 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 6.0.31 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 7.0.18 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]
Microsoft.WindowsDesktop.App 8.0.4 [C:\Program Files\dotnet\shared\Microsoft.WindowsDesktop.App]

I installed SDK 6, and that resolved the issue. The MSBuildLocator doesn't work with the newer SDK?

I think it's supposed to work, but I'm wondering if it's related to the target framework of the tool, since net6.0 seems to work for you.

Unfortunately MSBuildLocator has a limitation. https://github.com/microsoft/MSBuildLocator/issues/195.
In the meantime, I've just multi-targeted the tool.
Fixed by https://github.com/nkolev92/DependencyVisualizer/commit/cdd6466182c534cca185a319bd01db1c41be9de1.
I published a newer version of the tool: https://www.nuget.org/packages/DependencyVisualizerTool/1.0.0-beta.3.


Scripts under create-rcu-schema does not support different namespace, DB sys and schema password and uses scott demo user

Scripts under create-rcu-schema has below issues and will not work in some use-cases as listed below:

Uses namespace “default” which may not work if the user does not have access to it and need to provide specific namespace.
"rcu.yaml" always uses imagePullSecret even if docker-secret is not passed.
Both sys and schema database password is hard coded to “Oradoc_db1” and does not give option  to provide different value.
echo “Oradoc_db1” > pwd.txt
echo “Oradoc_db1" >> pwd.txt
Create and drop rcu schema scripts both uses scott demo user to test the connectivity before proceeding with create or drop schemas which may not be present in fresh install database. Hence need to either use system user.
"rcu.yaml" is directly edited and may not be usable to use the same repo for another scenarios.

I'm assuming the issue is resolved by now, feel free to re-open the issue if I'm incorrect.


Sql task Dzianis Shupenka

https://travis-ci.org/github/dzianisshupenka/db-assignments/builds/714782982

https://travis-ci.org/github/dzianisshupenka/db-assignments/builds/724486964

Looks good. See comments.
I'll mark the PR as "Draft", please click "ready for review" when it will be finished. Thank you!

I fixed all previous comments, what I need to do now?

https://travis-ci.org/github/dzianisshupenka/db-assignments/builds/725497782

accepted


refactor(GroupTheory/GroupAction/Basic): re-organise, rename, and make some variables implicit

Re-organise the namespace and section structure of GroupTheory/GroupAction/Basic.lean.
Remove the namespaces MulAction.Stabilizer and AddAction.Stabilizer, renaming MulAction.Stabilizer.submonoid to MulAction.stabilizerSubmonoid.
Make variables for the monoid/group/set implicit when an element or subset is used in the statement.

The structure of GroupTheory/GroupAction/Basic.lean is now:

namespace MulAction (monoid action)

section Orbit
section FixedPoints
section Stabilizers

a standalone theorem
namespace MulAction (group action)

section Orbit
section Stabilizers

namespace AddAction (additive group action)

The namespaces MulAction.Stabilizer and AddAction.Stabilizer were unnecessary and confusing, as it contained submonoid but not the group-action counterpart stabilizer.
The changes to the other files are caused by variables being made implicit.

Note: I have pushed an update to the lean toolchain because this PR was on a buggy version of the toolchain. WARNING: checking out old commits of this PR using v4.2.0-rc2 or v4.2.0-rc3 can cause lake clean to delete your mathlib folder! If you need to do so, make sure to delete lakefile.olean manually before running any lake commands.

(Reminder to myself: I was afraid this might lead to big conflicts with #6057 but it looks mostly independent from a quick inspection.)


License: Use of files generated by cppwinrt?

Hello everyone,
I would like to ask how the license of cppwinrt applies to the files generated? Can we publish those under the same license? We would like to distribute those with the software we are creating.
One further point: I think that the explicitly-licensed files distributed with windows SDK are too old and have undesireable dependencies that the current version doesn't have. Any comments on this?
That would be really appreciated!
Kind regards

@BenJKuhn / @sotteson1 any thoughts? My impression is that the MIT license applies to everything, but I'm not a lawyer.

I noticed the headers in the Windows SDK are also licensed under MIT so I would assume the same goes for these as they are ultimately the same header files just shipped in the SDK.


Add PowerShell instructions for Windows DNS modifications

Since this can be done with a pair of cmdlet calls, it seemed appropriate to provide that as Microsoft employees. It really is much simpler than using the control panel.
/cc @jeffaco please test.

Also, I did not have write access to your repo; you'd need to add me as an external collaborator if you want me to fast-forward merge.

A pity that this won't work, out of the box, if Hyper-V is installed. I'd think that a fair chunk of people using updatedns are likely running local VMs on their box via Hyper-V, and that sets up a virtual interface:
InterfaceAlias               Interface Address ServerAddresses
                             Index     Family
--------------               --------- ------- ---------------
vEthernet (Intel(R) Ehter...        11 IPv4    {<IP_ADDRESS>, <IP_ADDRESS>}
vEthernet (Intel(R) Ehter...        11 IPv6    {}
Loopback Pseudo-Interface 1          1 IPv4    {}
Loopback Pseudo-Interface 1          1 IPv6    {}
isatap.corp.microsoft.com            4 IPv4    {<IP_ADDRESS>, <IP_ADDRESS>}
isatap.corp.microsoft.com            4 IPv6    {}

I'll commit this with some forward references so you don't need to scroll down so much to find the GUI instructions.

Yeah I'm not sure it's possible to guess which index to use, but that's noted at least.

Agreed. I tested because of the noted instructions. Otherwise, I would have been stuck. Just finishing up changing the file now to have forward references, will commit shortly.

Merged with minor changes, thanks for pull request!


Center first and last focused item at center

Hi again,
I'm trying to achieve this effect, but I need a little assistance from you. So the idea is to center first and last item at center when we have attribute follow scroll on RecyclerView. Is it possible?

it is ok, but i do not add this funcation to TvRecyclerView, you can add in you RecyclerView


The sidebar shows that there are two drive D, in fact there is only one

Describe the bug
The sidebar shows that there are two drive D, in fact there is only one！
To Reproduce
This phenomenon occurs when I open the software for the first time after turning on the computer. After closing the software and opening it again, the display is normal, the position of the second Data D: will become OneDrive.
Expected behavior
Screenshots

Desktop (please complete the following information):

OS Version: Windows 10  20H2
App version: [v<IP_ADDRESS>]

Additional context
Log file
debug.txt
debug_fulltrust.txt

This issue has been fixed.


Remove data/glossary

It is unused. Glossary should be maintained in the glossary page bundle.

/assign @bradtopol


Create LICENSE

Add Open Source MIT LICENSE to project.

Append MIT License to project
This project is open to contributions, feel free to improve it in any way you can by forking it and submitting a PR.