How to get the UAA token after deploying to docker

Hello,
I cloned the uaa git project and run the application locally by ./gradlew run..I am able to retrieve the token
Then I have created UAA image in docker by deploying it to Tomcat server. I have set mysql as DB and when the container is started the DB tables are migrated and the data is loaded through flyway. (I have set UAA_CONFIG_PATH environment variable and overriden uaa.yml)
Now I am trying to retrieve the token using the command
curl -s app:appclientsecret@<IP_ADDRESS>:8080/uaa/oauth/token   -d grant_type=client_credentials | jq .
I am getting the following error
parse error: Invalid numeric literal at line 1, column 10
Is there any other configuration change that I need to do to setup the UAA in other environments

I started the uaa docker using the following command and set the environment variables
docker run -p 8080:8080 --name uaadocker -e UAA_CONFIG_PATH=/uaa -e DB_PORT_5432_TCP_ADDR=<IP_ADDRESS> -e DB_PORT_5432_TCP_PORT=3306 -e uaa.url=http://<IP_ADDRESS>:8080/uaa -e LOGIN_URL=http://<IP_ADDRESS>:8080 -e issuer.uri=http://<IP_ADDRESS>:8080/uaa uaaimage
When I give http://<IP_ADDRESS>/uaa in browser, it gives me the cloudfoundry login page
(<IP_ADDRESS>-  ip of docker)
When I do
curl -s app:appclientsecret@<IP_ADDRESS>:8080/uaa/oauth/token   -d grant_type=client_credentials | jq .
The logs show the following
[2016-03-15 18:39:43.519] cloudfoundry-identity-uaa - ???? [http-nio-8080-exec-3] .... DEBUG --- UaaRequestMatcher: [oauthAuthorizeRequestMatcherOld] Checking match of request : '/uaa/oauth/token'; '/oauth/authorize' with parameters={response_type=token, credentials={} and headers {accept=[application/json, application/x-www-form-urlencoded]}
[2016-03-15 18:39:43.519] cloudfoundry-identity-uaa - ???? [http-nio-8080-exec-3] .... DEBUG --- UaaRequestMatcher: [autologinAuthorizeRequestMatcher] Checking match of request : '/uaa/oauth/token'; '/oauth/authorize' with parameters={response_type=code, code=} and headers {}
[2016-03-15 18:39:43.528] cloudfoundry-identity-uaa - ???? [http-nio-8080-exec-3] .... DEBUG --- DisableIdTokenResponseTypeFilter: Processing id_token disable filter
[2016-03-15 18:39:43.528] cloudfoundry-identity-uaa - ???? [http-nio-8080-exec-3] .... DEBUG --- DisableIdTokenResponseTypeFilter: pre id_token disable:false pathinfo:null request_uri:/uaa/oauth/token response_type:null
[2016-03-15 18:39:43.529] cloudfoundry-identity-uaa - ???? [http-nio-8080-exec-3] .... DEBUG --- DisableIdTokenResponseTypeFilter: post id_token disable:false pathinfo:null request_uri:/uaa/oauth/token response_type:null
[2016-03-15 18:39:43.529] cloudfoundry-identity-uaa - ???? [http-nio-8080-exec-3] .... DEBUG --- SecurityFilterChainPostProcessor$HttpsEnforcementFilter: Filter chain 'openIdSecurity' processing request POST /uaa/oauth/token
[2016-03-15 18:39:43.529] cloudfoundry-identity-uaa - ???? [http-nio-8080-exec-3] .... DEBUG --- FixHttpsSchemeRequest: Request X-Forwarded-Proto null

LOGIN_URL should have /uaa to be a full URL


How to show required message after submit?

Hi, I have a formsy-mui form, a text box.
  <FormsyText                 floatingLabelText="Name" required name="Name" style={fieldStyle}                  />
How to I get the text box to show an error if it's a required field thats not been entered?
I can get the regex working (immediately updating) but not submit validation
thanks
Sam

I believe this was fixed by #105, but it hasn't made it to npm yet.

@sambomartin Did you manage to get this to work in any way?
I'm trying to setup some regex to just make the required error appear somehow, but it doesn't seem to be working. Cheers.


Added overloads for const std::string& and const char* arguments

This is primarily a suggestion, wouldn't adding an overload function LoadFromMemory(const char* vsCode, const char* fsCode) be more convenient in the case where we might, for example, want to load a fragment shader from memory with the default vertex shader?
For the sake of consistency, I've also added one for static ::Shader Load(...), to see if it would be equally useful.

Thanks a lot :+1: ... Could apply  to the other ones classes too, but not absolutely needed.


Player height changes when entering/exiting doors

hi, I'm experiencing a bug where my player would become twice as tall sometimes when entering or exiting any doors in bases or vehicles. so sometimes i'll get into my vehicles and my head would be sticking out of the roof, or my head goes into the ceiling in buildings. it usually resets after I enter/exit any door again. Might have something to do with the way the game registers player height when playing seated?

yeah I'm using OVR Advanced settings, not space drag tho. i'll try disabling OVR and see if it still happens, thanks!

It might be unrelated, but on my first test of Subnautica VR (without mods) I had a similar issue, after starting a new game (on creative) the player was very tall when inside the pod, but after exiting through a hatch, the height reset to the correct value.
Maybe it is an underlying Subnautica issue?


[$1000] Empty threads show in the LHN

If you haven’t already, check out our contributing guidelines for onboarding and email<EMAIL_ADDRESS>to request to join our Slack channel!

Action Performed:

Open any group DM.
Hover over or long-press someone else's message, then click the thread button to create a thread. Do not send a message in the thread yet.

Expected Result:
The sender of the root message of the thread you created should not see the empty thread in their LHN. It should only appear for them when you send a message in a thread.
Actual Result:
The sender of the root message of the thread you created sees the empty thread in their LHN before you send a message in it.
Workaround:
Can the user still use Expensify without this being fixed? Have you informed them of the workaround?
Platforms:

Which of our officially supported platforms is this issue occurring on?

[x] Android / native
[x] Android / Chrome
[x] iOS / native
[x] iOS / Safari
[x] MacOS / Chrome / Safari
[x] MacOS / Desktop

Version Number: 1.3.18-2
Reproducible in staging?: y
Reproducible in production?: y
If this was caught during regression testing, add the test name, ID and link from TestRail:
Email or phone of affected tester (no customers):
Logs: https://stackoverflow.com/c/expensify/questions/4856
Notes/Photos/Videos: Any additional supporting documentation
https://github.com/Expensify/App/assets/43996225/bbf1f4ef-e305-4fb7-aab0-eb74942c5312
Expensify/Expensify Issue URL:
Issue reported by: @roryabraham
Slack conversation: https://expensify.slack.com/archives/C049HHMV9SM/p1684878218587529
View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0172f129da778218c2
Upwork Job ID:<PHONE_NUMBER>774986752
Last Price Increase: 2023-05-31

Proposal
Please re-state the problem that we are trying to solve in this issue.
Empty threads show in the LHN
What is the root cause of that problem?
The root cause of this issue is that we don't skip option data for empty thread in method getOptionData
https://github.com/Expensify/App/blob/6f243fe60311bec9eff6976baceb384b56d53687/src/libs/SidebarUtils.js#L179-L185
What changes do you think we should make in order to solve the problem?
To fix this issue, we can return early in method getOptionData here if report is thread and lastMessageTextFromReport is empty. We can add following check to achieve it
// We want to return early if this is an empty thread
if (result.isThread && lastMessageTextFromReport === '') {
    return;
}

Then we won't show the empty thread in LHN, see
https://github.com/Expensify/App/blob/6f243fe60311bec9eff6976baceb384b56d53687/src/components/LHNOptionsList/OptionRowLHN.js#L54-L57
See demo video after fix
https://github.com/Expensify/App/assets/117511920/1241023b-4b64-4bce-9201-92627bd0145e
What alternative solutions did you explore? (Optional)
N/A

not overdue

This issue actually already exists here and is being worked on in this PR. Closing out this issue but feel free to reopen @johncschuster @thesahindia if there is something left to do.


Narrowing discriminated unions with union discriminant properties

TypeScript Version:  3.5.0-dev.20190514
Search Terms: undefined discriminated union discriminant discriminator unions type guard control flow narrowing
Code
// --strictNullChecks

interface Option1 {
	x: true;
}

interface Option2 {
	x: false | undefined;
}

type OptionUnion = Option1 | Option2;

function acceptOption1(x: Option1): void {}

function acceptOption2(x: Option2): void {}

function acceptNever(x: never): void {}

function test(anOption: OptionUnion): void {
	if (anOption.x === true) {
		acceptOption1(anOption);
	} else if (anOption.x === false || anOption.x === undefined) {
		acceptOption2(anOption);
	} else {
		acceptNever(anOption);
	}
}

Expected behavior:
No errors.
Actual behavior:
acceptNever(anOption); has an error: Argument of type 'Option2' is not assignable to parameter of type 'never'. ts(2345)
Note that the code works correctly if the discriminator is not a property:
// --strictNullChecks

type Option1 = true;
type Option2 = false | undefined;
type OptionUnion = Option1 | Option2;

function acceptOption1(x: Option1): void {}

function acceptOption2(x: Option2): void {}

function acceptNever(x: never): void {}

function test(anOption: OptionUnion): void {
	if (anOption === true) {
		acceptOption1(anOption);
	} else if (anOption === false || anOption === undefined) {
		acceptOption2(anOption);
	} else {
		acceptNever(anOption); // Not an error - correctly narrows to `never`
	}
}

Playground Link:
http://www.typescriptlang.org/play/index.html#src=%2F%2F --strictNullChecks

interface Option1 {
	x%3A true%3B
}

interface Option2 {
	x%3A false | undefined%3B
}

type OptionUnion %3D Option1 | Option2%3B

function acceptOption1(x%3A Option1)%3A void {}

function acceptOption2(x%3A Option2)%3A void {}

function acceptNever(x%3A never)%3A void {}

function test(anOption%3A OptionUnion)%3A void {
	if (anOption.x %3D%3D%3D true) {
		acceptOption1(anOption)%3B
	} else if (anOption.x %3D%3D%3D false || anOption.x %3D%3D%3D undefined) {
		acceptOption2(anOption)%3B
	} else {
		acceptNever(anOption)%3B
	}
}

Related Issues:
https://github.com/microsoft/TypeScript/issues/14471 is also using undefined as a discriminant, although the linked issue is restricting itself to talking about mapped types

I think this is a design limitation in discriminant narrowing which is effectively a top-down process, rather than bottom up.
When narrowing for the negation of a discriminant check - so when something like anOption.x === ${THING} is assumed to be false - the checker will try and filter out branches in the declared union (here OptionUnion) that are definitely incompatible at the point of that individual check.
Knowing that anOption.x !== true is sufficient to categorically rule out Option1 from OptionUnion.
Knowing that  anOption.x !== false on its own is not sufficient to rule out Option2 from OptionUnion.
Knowing that  anOption.x !== undefined on its own is not sufficient to rule out Option2 from OptionUnion.
Only using the composition of the two is it possible to rule out Option2, however the checker will not compose multiple property narrowings when discriminant pruning. So by top-down I mean that it will not collect state from composite narrowings of the same property and use them.
For example, the checker knows that x is never in the else branch because it composes the two checks in the ||, but the composed checks are not used for discriminant narrowing.
function test(anOption: OptionUnion): void {
	if (anOption.x === true) {
		acceptOption1(anOption);
	} else if (anOption.x === false || anOption.x === undefined) {
		acceptOption2(anOption);
	} else {
		anOption.x // x is never
		acceptNever(anOption);
	}
}

Ideally you want to identify that any object that has a property of type never must itself be never. Though, as I've learned the hard way, it is easy to introduce massive performance regressions by change discriminant narrowing.
There may be some changes that could be done in the checker to support this; someone on the team would need to look into it. Two workarounds for now:

Separate out the union into three parts.

interface Option1 { x: true; }
interface Option2 { x: false; }
interface Option3 { x: undefined; }
type OptionUnion = Option1 | Option2 | Option3;

Use the property itself as proof of never.

acceptNever(anOption.x); // ok

I have a case that may be more related to https://github.com/microsoft/TypeScript/issues/20863 from a technical standpoint, but since it is specific to undefined, I thought I'd add here.
I'd like to have an interface that conditionally has a set of  additional optional properties based on the truthiness of an optional property.
interface CommonProps {
  a: number;
  b: string;
  c: boolean
}

interface HighPriorityProps {
  neededBy?: DateTime;
  priorityLevel?: number;
}

interface HighPriorityIssueProps  extends HighPriorityProps{
  isHighPriority: true
}

interface RegularPriorityIssueProps {
  isHighPriority?: false
}

type Props = CommonProps & (HighPriorityIssueProps | RegularPriorityIssueProps)

The use case is for a React component where for ~80% of the use cases I don't want to have to pass in isHighPriority={false}. I'd like to be able to use the optional isHighPriority as a discriminant and allow the additional props iff it is present and truthy.
Instead
<Issue priorityLevel={1}/>

does not throw an error, when I expect it to. I can not use the first workaround, because then I would manually have to still include the optional prop as <Issue isHighPriority={undefined} > instead of excluding it, which is what I want users of the API to be able to do. I cannot use the second as this is in a React component and not a function.
Let me know if I should open a separate issue. Since this is close to many open issues, I didn't want to add another to the list!

@j-morone that is a separate issue; I filed it at #41759.

@jack-williams I'm not sure I understand why this is a design limitation. The checker does know how to narrow the discriminant property itself. Couldn't the object's type be narrowed at the same time?


Report all ajax errors to Sentry

This helps us debug errors by including more context about any
failed requests.
cc @gchomatas @jonathanwgoodwin

Decided that I don't actually need this anymore


Enforce exclusion between pred_interactions=True and pred_interactions=True

This piece of code is subtly broken:
https://github.com/dmlc/xgboost/blob/fbbae3386a9b6ff3ed31fe4ef5106a3c4665c6e5/src/learner.cc#L548-L569
The problem here is that multiple_predictions has an incorrect type (bool), so the sum
bool multiple_predictions = static_cast<int>(pred_leaf) +
                            static_cast<int>(pred_interactions) +
                            static_cast<int>(pred_contribs);

gets truncated down to 1. So it is not able to detect whether the user enabled both pred_interactions and pred_contribs.
Enabling both pred_interactions and pred_contribs causes an undefined behavior. Specifically, the snippet
preds = model.predict(dtest, pred_contribs=True, pred_interactions=True)

will cause an error similar to #4276. Here's why:

In the C++ layer, we run PredictContribution(), computing feature contribution SHAP: https://github.com/dmlc/xgboost/blob/b48f895027fcb159961857f1e24ab7a67eda14dd/src/learner.cc#L556-L557

Meanwhile, in the Python layer, we set ngroup = int(chunk_size / ((data.num_col() + 1) * (data.num_col() + 1))). This is way too many groups compared to the output produced by the C++ layer in the previous step.
https://github.com/dmlc/xgboost/blob/b48f895027fcb159961857f1e24ab7a67eda14dd/python-package/xgboost/core.py#L1303-L1314

Fix Simply allow only one kind of prediction at a time.
Fixes #4276

Looks good. Sorry I was away for while recently and didn't get a chance to look it over.


Capture resource usage when HPO experiments are scaled 10x or 100x times

Capture resource usage when HPO experiments are scaled 10x or 100x times

Closing this as PR is merged.


Catch ezdxf structure errors and tell the user parsing failed.

MeerK40t crash log. Version: 0.7.4-beta2 on win32 - 4.1.1 msw (phoenix) wxWidgets 3.1.5
Traceback (most recent call last):
  File "meerk40t\gui\wxmribbon.py", line 189, in <lambda>
  File "meerk40t\kernel.py", line 136, in __call__
  File "meerk40t\kernel.py", line 1822, in console
  File "meerk40t\kernel.py", line 1908, in _console_parse
  File "meerk40t\kernel.py", line 1260, in inner
  File "meerk40t\gui\wxmmain.py", line 320, in load_dialog
  File "meerk40t\gui\wxmmain.py", line 1558, in load
  File "meerk40t\core\elements.py", line 6489, in load
  File "meerk40t\dxf\dxf_io.py", line 66, in load
  File "ezdxf\filemanagement.py", line 149, in readfile
  File "ezdxf\filemanagement.py", line 92, in read
  File "ezdxf\lldxf\tags.py", line 288, in group_tags
ezdxf.lldxf.const.DXFStructureError: Missing required y coordinate near line: 18.

https://github.com/mozman/ezdxf/issues/601
Harden the ezdxf loading and issue correct fail afterwards.

https://ezdxf.readthedocs.io/en/stable/drawing/recover.html

If it helps, I've attached a DXF file where can I send a DXF file that I got an error on trying to import. Version 0.8.0027. I was, however, able to save the project as an SVG and reopen it without issue (so far).

meanwell-uhp-500-hole-template didn't suffer any error requiring hardening.


Add info metrics

Add exporter build info metric.
Add pgbouncer version info metric.
Update Makefile.common.
Fix path to version embedding in promu config.
Make scrape errors non-fatal.

Signed-off-by: Ben Kochie<EMAIL_ADDRESS>

Metric output test:
# HELP pgbouncer_exporter_build_info A metric with a constant '1' value labeled by version, revision, branch, and goversion from which pgbouncer_exporter was built.
pgbouncer_exporter_build_info{branch="bjk/info",goversion="go1.13.5",revision="aea46dfabcad1d7a92cf999a57a53ff580ade050",version="0.1.1-gitlab"} 1
# HELP pgbouncer_version_info The pgbouncer version info
# TYPE pgbouncer_version_info gauge
pgbouncer_version_info{version="PgBouncer 1.12.0"} 1


Typo "Azure Storage explorer"→"Azure Storage Explorer"

https://docs.microsoft.com/en-us/azure/app-service/configure-connect-to-azure-storage?pivots=container-linux

@hyoshioka0128 : Thanks for your contribution! The author(s) have been notified to review your proposed change.


Add utility to replace direct call to pytest.main

This PR replaces the test call to pytest.main
sys.exit(pytest.main([test_file] + sys.argv[1:]))

with a call to a utility function:
#11318

@areusch

thanks @gigiblender this looks great! one request here

@areusch I pushed the requested changes.


Time values are showing line

fix:
.ngx-mat-timepicker .mat-form-field-underline {
	display: none;
}

Hi, Can you let me know whether this issue was fixed please ? Feel free to check the version v2.0.2
I don't manage to reproduce this bug. Can you check and close this issue if needed plz ?
Thanks,

Hi,
This repo is no longer supported, please consider using the repository angular-material-components instead.
npm install --save  @angular-material-components/datetime-picker

Free free to open issue here.
Thank you very much.


Update chart apiVersion

Changes

The Charts.yaml file has he v2 syntax (presence of a dependencies key, source) but is declared as v1. Patch it into v2.

Impact

This fixes charts installs with helm v3
This will force the chart to be only available with helm v3

I've just seen that this is contained in the PR https://github.com/getlago/lago-helm-charts/pull/16, feel free to close this one in favor of that one :)


Developer setup documentation suggestions

As someone new to building and running Mattermost, I just wanted to mention a few minor stumbles I went through. I would have just created a PR but I wasn't sure if these changes would be acceptable or not so I wanted to mention it here first (I'd be happy to submit a PR for any of these).
Specifically referring to this page: https://developers.mattermost.com/contribute/developer-setup/

Install Go.

Above this line mentions doing this in WSL. One thing to notice is once I setup WSL2, I noticed my Ubuntu had Go 1.8 but the server/go.mod file is actually looking for Go 1.21 (or more specifically 1.21.8). When I tried to initially run make this failed because my version of Go was too old.
It might be helpful to mention a minimum version here. I installed Go 1.22.1 and it worked fine.

Install Docker. If you don’t want to use Docker, you can follow this guide.

One fun issue I ran into with WSL2 was attempting to run any docker command inside of WSL2 and having it fail with the following error message:
The command 'docker' could not be found in this WSL 2 distro.
We recommend to activate the WSL integration in Docker Desktop settings.

For details about using Docker Desktop with WSL 2, visit:

https://docs.docker.com/go/wsl2/

The fix for this error message was to open Docker Desktop, open Settings, go to General, uncheck the Use the WSL 2 based engine, let it apply and restart, then go back into that same screen and re-check the Use the WSL 2 based engine box. This seemed to properly install the integration between Docker and WSL 2.
Might be helpful to mention this step.

make run-server

One small issue I ran into here is:
docker compose rm start_dependencies
permission denied while trying to connect to the Docker daemon socket at unix:///var/run/docker.sock: Get "http://%2Fvar%2Frun%2Fdocker.sock/v1.24/containers/json?all=1&filters=%7B%22label%22%3A%7B%22com.docker.compose.config-hash%22%3Atrue%2C%22com.docker.compose.oneoff%3DFalse%22%3Atrue%2C%22com.docker.compose.project%3Dmattermost-server%22%3Atrue%2C%22com.docker.compose.service%3Dstart_dependencies%22%3Atrue%7D%7D": dial unix /var/run/docker.sock: connect: permission denied
make: *** [Makefile:223: start-docker] Error 1

This was with a fresh install of everything. So I checked the group info
ls -lca /var/run/
...
srw-rw----  1 root docker    0 Apr 10 17:46 docker.sock
...

It seems the default permission was set incorrectly? I updated it with sudo chmod 666 /var/run/docker.sock and it ran fine afterward.
I'm not sure if this would necessarily have a place in the documentation or not, however.

Thank you, @KrisSiegel, for raising these issues! Are you open to creating a pull request incorporating your feedback?

Can do, @cwarnermm! I'll toss something together soon.

Thanks, @KrisSiegel!


tf.nn.avg_pool/1d/2d/3d outputs NaN if ksize=0

System information

Have I written custom code (as opposed to using a stock example script provided in TensorFlow): No
OS Platform and Distribution (e.g., Linux Ubuntu 16.04): Linux Ubuntu 18.04
Mobile device (e.g. iPhone 8, Pixel 2, Samsung Galaxy) if the issue happens on mobile device: N/A
TensorFlow installed from (source or binary): binary
TensorFlow version (use command below):2.1.0
Python version:3.7.6
Bazel version (if compiling from source):N/A
GCC/Compiler version (if compiling from source):N/A
CUDA/cuDNN version:N/A
GPU model and memory:N/A:

Describe the current behavior
The following APIs output NaN if ksize=0

tf.nn.avg_pool1d
tf.nn.avg_pool2d
tf.nn.avg_pool3d
tf.nn.avg_pool

Describe the expected behavior
Expect a grace exception message if the input is unexpected(e.g. ksize=0) other than a NaN as output
Standalone code to reproduce the issue
import tensorflow as tf
import numpy as np
tf.nn.avg_pool1d(input=np.ones((1, 1, 1)), ksize=0, strides=1, padding='SAME')
tf.nn.avg_pool2d(input=np.ones((1, 1, 1, 1)), ksize=0, strides=1, padding='SAME')
tf.nn.avg_pool3d(input=np.ones((1, 1, 1, 1, 1)), ksize=0, strides=1, padding='SAME')
tf.nn.avg_pool(input=np.ones((1, 1, 1)), ksize=0, strides=1, padding='SAME')

The output of tf.nn.avg_pool1d
<tf.Tensor: shape=(1, 1, 1), dtype=float64, numpy=array([[[nan]]])>

Was able to reproduce the error with TF v2.3, TF v2.4 and TF-nightly for tf.nn.avg_pool1d, tf.nn.avg_pool2d and tf.nn.avg_pool. Whereas, tf.nn.avg_pool3d throws an error stating NotFoundError: Could not find device for node: {{node AvgPool3D}}
Please find the gist of it here. Thanks!

The associated PR is merged and this should be now fixed with tomorrows tf-nightly version. Thanks!


bug: failure_cases, check, and check_index are not propagated through in check_{input/output}

fixed by #228


allow applications to use SO_REUSEPORT

SO_REUSEPORT allows us to create multiple listeners for a single address / port.
I created a simple script to test what's going on: https://gist.github.com/marten-seemann/42199c0b8462c1a5748c6b1c1aca22c4
It looks like the kernel will deterministically route packets coming from a certain remote address to a single listener. That means that this won't show up as additional reordering (see https://github.com/lucas-clemente/quic-go/issues/2586#issuecomment-641171225).
This means that reuseport could help us improve performance when handling multiple connections. It won't help with single-connection performance, since in that case only a single socket is used. Further benchmarking is needed to evaluate how big the performance gain is for quic-go in specific, but https://blog.cloudflare.com/how-to-receive-a-million-packets/ suggest that this could be worth doing.

FYI: This is needed in order to use the autocert module to automatically provision LetsEncrypt certificates.
https://pkg.go.dev/golang.org/x/crypto/acme/autocert

We need to be very careful here. This might break connection migration, as a client that is migrating would send from a different remote address. As far as I can see, while the kernel makes sure that packets sent from the same remote address end up at the same connection, it doesn't have any concept of QUIC connections, so there's no guarantee that packets will be received by the original connection.
If they end up at another connection, they'll get routed to a different packetHandlerMap, and trigger a Stateless Reset there.

For server scalability this would be important. Artificial benchmark with a high number of clients sending in parallel has horrible results as the packets sent by clients end up fighting for the single kernelspace lock of the socket.
For SO_REUSEPORT there exists SO_ATTACH_REUSEPORT_EBPF (Linux 4.5) which could then be used to consistently direct received packets to the same listener socket based on the connection id in the packet (instead of the flow hash that Linux would otherwise use). I think this would solve the issue with clients doing connection migration.
Also in userspace the server transmission path has a parallelism bottleneck in the form of fdMutex that serializes the writes to the socket. Packets sent to two different clients are not sent in parallel. This could be fixed by Dup()-ing the PacketConn via (*net.UDPConn).File() for every client but with the downside that the process then may reach the maximum number of file descriptors open. Then the kernel locks in transmit path would likely again kill the parallelism so this doesn't really help. This may be worth a separate issue.

For server scalability this would be important. Artificial benchmark with a high number of clients sending in parallel has horrible results as the packets sent by clients end up fighting for the single kernelspace lock of the socket.
For SO_REUSEPORT there exists SO_ATTACH_REUSEPORT_EBPF (Linux 4.5) which could then be used to consistently direct received packets to the same listener socket based on the connection id in the packet (instead of the flow hash that Linux would otherwise use). I think this would solve the issue with clients doing connection migration.
Also in userspace the server transmission path has a parallelism bottleneck in the form of fdMutex that serializes the writes to the socket. Packets sent to two different clients are not sent in parallel. This could be fixed by Dup()-ing the PacketConn via (*net.UDPConn).File() for every client but with the downside that the process then may reach the maximum number of file descriptors open. Then the kernel locks in transmit path would likely again kill the parallelism so this doesn't really help. This may be worth a separate issue.

I implemented a very crude and hacky version of SO_REUSEPORT with SO_ATTACH_REUSEPORT_EBPF. Server scalability improved significantly when large number of clients are generating traffic in parallel. For the case of only one client there was no noticeable performance degradation.
The benchmark is artificial worst case. For only 8 clients perf reports ~3% of overhead from fighting for the kernelspace lock without SO_REUSEPORT. For 16 clients it reports ~8% and for 100 clients ~40% of overhead. The CPU I tested on has only 8 cores. I assume that having more cores would increase the overhead significantly. With SO_REUSEPORT and 8 server sockets the reported overhead was ~0.2% for 100 clients. This was realized as 2.5x throughput.
I modified quic-go to allow the user to call quic.Listen for the same address multiple times. Each time the user would then pass in a different socket but always bound to the same address with SO_REUSEPORT and also give "index" for use of the EBPF program.
I wrote the EBPF program to use the first byte of the destination CID in the packet to route it to the correct socket. Listener and the Sessions it has created would then generate CIDs with the first byte unique to that listener. This unique byte is the "index" passed to quic.Listen. I tested with 8 quic.Listeners so to keep things simple the "index" was just a number from 0 to 7. Then the EBPF program could just use a bitmask to find the correct socket:
socket_index = first_byte_of_dcid & 0b111; // assume 8 sockets
bpf_sk_select_reuseport(reuse_md, &sockets_map, &socket_index, 0 /*flags*/);

The EBPF program understands both long and short header packets. Because clients generate random destination CID for the initial packet it would mean that a Listener matching the random first byte would receive that packet. From that point onwards that Listener is able to generate CIDs so that the client would consistently have it's packets routed to it. For my benchmark I modified the clients to generate the initial destination CIDs so that the load would be equally distributed.
One of the many issues that I didn't solve here is how to route a stateless reset sent by the client. Such packets don't have a real destination CID so with my hacky implementation the wrong packetHandlerMap would end up receiving it.
The downside of SO_ATTACH_REUSEPORT_EBPF is that loading the EBPF program requires CAP_BPF. And it seems to exists only on Linux.
To me my test has proved that this is a worthwhile feature as it fixes the kernelspace bottleneck.
Thank you for coming to my ted talk

That's super interesting! Thank you for digging into this!

The benchmark is artificial worst case. For only 8 clients perf reports ~3% of overhead from fighting for the kernelspace lock without SO_REUSEPORT. For 16 clients it reports ~8% and for 100 clients ~40% of overhead.

Can you share how you do these tests? How do you determine the kernel lock overhead?

The downside of SO_ATTACH_REUSEPORT_EBPF is that loading the EBPF program requires CAP_BPF. And it seems to exists only on Linux.

That this only works on Linux is expected. quic-go is not guaranteed to perform well on any other system anyway ;)
Does CAP_BPF mean that you'd have to run the binary as root?

One of the many issues that I didn't solve here is how to route a stateless reset sent by the client. Such packets don't have a real destination CID so with my hacky implementation the wrong packetHandlerMap would end up receiving it.

Do we need a separate packetHandlerMap per socket? How about using the same one, with multiple listen go routines? Would that create too much mutex contention?

Can you share how you do these tests?

I have a heavily modified version of the benchmark in benchmarks/benchmark_test.go. It's not really respective of the real world as the client and server both run on the same machine but I think it's good enough to test this. The test would spin up multiple clients and wait until they have all finished the handshake. Then the clients would open a stream and send. The benchmark does a lot of unrelated stuff so I don't want to share the code as is.

How do you determine the kernel lock overhead?

I run the benchmark with perf record and then afterwards view the results with perf report. The report shows in the UDP receive path the overhead for native_queued_spin_lock_slowpath. I simply used the reported overhead % for it.

Does CAP_BPF mean that you'd have to run the binary as root?

Yes, or add the CAP_BPF to the binary with sudo setcap cap_bpf+ep quic_binary.

Do we need a separate packetHandlerMap per socket? How about using the same one, with multiple listen go routines? Would that create too much mutex contention?

I think that would then lead to mutex contention when accessing the handlers. Maybe the stateless reset map could be separated from packetHandlerMap and then have the many packetHandlerMaps share it. I think here it's also important what information the EBPF program has to route the packets to the correct socket. In my test it knows that the first byte of the destination CID tells the socket. I think one other way would be to have a EBPF map in the program which maps a CID to a socket. But this would mean map access in the EBPF program which then may be its own bottleneck. Also it would require quic-go to make a syscall to add/remove the generated CIDs to/from that map. This would make handling the initial packets cumbersome as there's no clear time to remove the entries. Also, I'm no expert on EBPF or its internals.
The proper way of how the EBPF program and quic-go share state I have no conclusive idea of. There exists QUIC-LB which I think has useful ideas how this could be done properly. Dedicating the first byte to be the index I think is not the proper way.

Maybe the stateless reset map could be separated from packetHandlerMap and then have the many packetHandlerMaps share it

Currently packetHandlerMap checks every packet in case it's a Stateless Reset before handing it off to a packetHandler. A separate shared map of Stateless Reset handlers would just become the new bottleneck. The obvious fix would be to check if a packet is a Stateless Reset after trying to find a matching packetHandler. But because Stateless Resets don't have a real destination CID they could accidentally match a packetHandler of unrelated Session. Also the ConnectionIDLength could be configured to 0 which would mean that this would happen for every Stateless Reset. To fix that the packetHandler could check if the packet is a Stateless Reset for some other Session if it was not successfully processed.
quic-transport-34 says the following about detecting a Stateless Reset:

This comparison can be performed for every inbound datagram.
Endpoints MAY skip this check if any packet from a datagram is
successfully processed.  However, the comparison MUST be performed
when the first packet in an incoming datagram either cannot be
associated with a connection, or cannot be decrypted.

The proper way of how the EBPF program and quic-go share state I have no conclusive idea of. There exists QUIC-LB which I think has useful ideas how this could be done properly. Dedicating the first byte to be the index I think is not the proper way.

QUIC-LB standardizes a coordination protocol between a load balancer that forwards packets to multiple backend servers. It also makes use of the connection ID to encode information about the server instance.
Given that using SO_ATTACH_REUSEPORT_EBPF is a local operation, we don't need any standardized coordination protocol. Using a part of the connection ID to encode such information seems like a totally reasonable thing to do.

Currently packetHandlerMap checks every packet in case it's a Stateless Reset before handing it off to a packetHandler. A separate shared map of Stateless Reset handlers would just become the new bottleneck. The obvious fix would be to check if a packet is a Stateless Reset after trying to find a matching packetHandler. But because Stateless Resets don't have a real destination CID they could accidentally match a packetHandler of unrelated Session.

I think we can live with that, and we can safely ignore the MUST in the spec ;) The reason is the following: The chance that a stateless reset matches an existing session is quite small, for 4-byte connection IDs it's N in 4 billion, where N is the number of connection IDs currently in use. In practice, this value will be a lot less than 100,000. The chance is thus much smaller than the typical packet loss rates on the public internet.
Therefore, it should be sufficient to only check for a stateless reset if a packet can't be associated with any existing session. Under normal operation, this check should be pretty rare, so we shouldn't create a lot of mutex contention if all the packetHandlerMaps share a single stateless reset table.

QUIC-LB provides quite a bit of insight as it solves a lot of the same problems. It does bring up the issue of linkability. What I have tested with has been equal to the "Plaintext CID Algorithm" so that issue is there. I'm not a security expert or even a novice so I have no real understanding of how relevant the security issues mentioned in QUIC-LB are.

4-byte connection ID

If 1 byte is used for SO_ATTACH_REUSEPORT_EBPF the chance increases somewhat. I would assume that it's still enough to keep the number of unlucky clients low. Also I just now noticed that (*Config).ConnectionIDLength is not validated so it could be configured to 1, 2 or 3 which the API says not to do.
For my test I technically used the lower 3 bits (first_byte_of_dcid & 0b111) to encode the information, not the entire byte. I wonder how many bits actually is needed. It seems that socket per CPU core (or NIC rx-queue?) would be the best idea so that in mind 3 bits might not be enough for servers. If the number of sockets is known before loading the EBPF program then the constant bitmask can be changed to the optimal value and have it compiled as a constant by the BPF JIT.

Therefore, it should be sufficient to only check for a stateless reset if a packet can't be associated with any existing session.

With (*Config).ConnectionIDLength of 0 the stateless reset would always end up being associated with the existing session.
Do you know what the API for quic-go could look like? I think that SO_REUSEPORT has such a great impact on how well multiple cores are utilized that it should be the default and happen automatically.
I looked into things a bit more and concluded that UDP_GRO works just fine with SO_ATTACH_REUSEPORT_EBPF. That's nice.

Digging deeper to the perf report makes me wonder if there's more to do to scale well. With SO_REUSEPORT and 100 clients roughly 14% of overhead comes from ep_poll_callback in the kernel receive path. Is it called for every packet that is received? UDP_GRO I think would help in that case. But here it seems like that there's lock contention as ep_poll_callback locks the epoll instance, if I have understood things correctly the go runtime has only one epoll instance. Although here the overhead might be inflated by my test which has the clients and server run in the same process. When there's only 1 client then that overhead falls down to 1%. I think the fix for epoll would be more epoll instances. Perhaps UDP_GRO would mask the issue.


readme typo

missing a k
Description
Please describe the aim of the pull request and the changes made in the commits.
Purpose

[ ] Bug fix
[ ] New feature
[ ] Other

How was this tested? (if applicable)
Please describe how the proposed changes have been tested, and the outcome of the tests.
Test Platform Details (if applicable)
Operating system: OSX/Windows 10/Ubuntu 20.04/etc.
CLI version:
Hypervisors/Platforms (if applicable): qemu/hyper-v/google cloud platform/vmware workstation/etc
Kernel version (if applicable):
Checklist

[ ] Code is commented
[ ] Unit test coverage encompasses new code
[ ] Existing unit tests pass with these changes
[ ] PR is signed

Can not believe that we've missed that. Thanks.


Compatibility of glfw with the Apple software render in github CI

Github CI has a mac os runner which is headless AFAIK, but it  has a software renderer. However, glfw can't get to it - this can be illustrated by this pull (do not merge) which runs glfwinfo after build:
https://github.com/glfw/glfw/pull/2569
Both OSX OpenGL (the GLUT part) and SDL2 can get at the apple software renderer within github CI, so this is a glfw specific problem. It would be useful to nake this work, to allow glfw to be used within github's own CI workflow for testing.
I came to be here after going down the rabbit hole of trying to look at a mac os specific problem in skia-python (which has CI testing for all three platforms, and been using glut for testing on mac os x for the above reasons, instead of glfw as in the case of linux with Xvfb):
https://github.com/kyamagu/skia-python/issues/214
and downstream https://github.com/FlorianRhiem/pyGLFW/issues/80

That sdl2 and opengl on osx works happily headless can been seen in the CI in https://github.com/FlorianRhiem/pyGLFW/issues/80#issuecomment-2143191281

#2080 is related

For a successful run (with either SDL2 or GLUT) within github CI's macos 14 runner, the GL context reports its vendor/renderer, version, shader version as:
b'Apple Inc.'
b'Apple Software Renderer'
b'4.1 APPLE-21.0.19'
b'4.10'

Glfw itself has an offscreen rendering example : https://github.com/glfw/glfw/blob/master/examples/offscreen.c . It probably should be run post-build to check that it can run!

In my fork's ci branch I have added the two lines from #2080, as well as running both glfwinfo and the offscreen example. Here is the result from github action:
Run ./build-cocoa-static/examples/offscreen
  ./build-cocoa-static/examples/offscreen
  shell: /bin/bash -e {0}
  env:
    CFLAGS: -Werror
    MACOSX_DEPLOYMENT_TARGET: 10.11
    CMAKE_OSX_ARCHITECTURES: x86_64;arm64
0s
Run ./build-cocoa-static/tests/glfwinfo
GLFW header version: 3.5.0
GLFW library version: 3.5.0
GLFW library version string: "3.5.0 Cocoa NSGL Null EGL OSMesa monotonic"
GLFW platform: Cocoa
GLFW supported platforms:
 Cocoa
 Null
OpenGL context version string: "2.1 APPLE-21.0.19"
OpenGL context version parsed by GLFW: 2.1.0
OpenGL context renderer string: "Apple Software Renderer"
OpenGL context vendor string: "Apple Inc."
OpenGL context shading language version: "1.20"
OpenGL framebuffer:
 red: 8 green: 8 blue: 8 alpha: 8 depth: 32 stencil: 8
 samples: 0 sample buffers: 0
 accum red: 0 accum green: 0 accum blue: 0 accum alpha: 0 aux buffers: 0
Vulkan loader: missing

In stock, running the offscreen example post-build gives:
Run ./build-cocoa-static/examples/offscreen
Error: NSGL: Failed to find a suitable pixel format
Error: NSGL: Failed to create OpenGL context
Error: OpenGL version string retrieval is broken
Error: Process completed with exit code 1.


Use a better sample OAS json file for getting started guide

Description:
https://mg.docs.wso2.com/en/latest/getting-started/quick-start-guide/quick-start-guide-binary/
There seems to be an issue with the sample API as it has http, https schemas mentioned in the swagger but only https is working at the backend. But having this two, microgw sends requests to each http/https endpoints alternatively.
Steps to reproduce:
Follow the Quick Start Guide - Binary and use the given Petstore sample open API definition.
https://petstore.swagger.io/v2/swagger.json

Fixed with https://github.com/wso2/docs-mg/pull/74


Improve instrumentation tests

contributes to https://github.com/tonerdo/coverlet/issues/387
@tonerdo @petli with this PR we've a way to test the "reality" of instrumentation and coverage calculation.
What we have:

a new helper class RemoteExecutor.Invoke that allow us to run a "lamda" in remote process to avoid issue with statics and file locks 🚀 🚀 🚀
new possible assertions on line/branches coverage
we can "debug" all process, no more repro local build and reference+Debug.Launch...we can add "case" on test code and reproduce, fix and keep and run on every CI, I think this will improve the quality and keep control on new "compiler versions" crazyness autogencode.
to allow this I added the infrastructure for a DI pattern, I needed only RetryHelper injection for now...but with this in place we can improve testability of all components that will become injectables ❤ ❤ ❤ !

I need to fix post build copy on linux, let me fix

Fail on unix...I'm investigating.

Found the issue, race between RestoreOriginalModules and RestoreOriginalModule on msbuild/console/collector are in same AppDomain on test nope so they race on Copy/Delete on locked files.
I'll fix it.

Bonuns, improved coverage
Pre
 +---------------+--------+--------+--------+
  | Module        | Line   | Branch | Method |
  +---------------+--------+--------+--------+
  | coverlet.core | 76,03% | 67,42% | 83,03% |
  +---------------+--------+--------+--------+

  +---------+--------+--------+--------+
  |         | Line   | Branch | Method |
  +---------+--------+--------+--------+
  | Total   | 76,03% | 67,42% | 83,03% |
  +---------+--------+--------+--------+
  | Average | 76,03% | 67,42% | 83,03% |
  +---------+--------+--------+--------+

Post
  +---------------+--------+--------+--------+
  | Module        | Line   | Branch | Method |
  +---------------+--------+--------+--------+
  | coverlet.core | 80,98% | 71,1%  | 88,82% |
  +---------------+--------+--------+--------+

  +---------+--------+--------+--------+
  |         | Line   | Branch | Method |
  +---------+--------+--------+--------+
  | Total   | 80,98% | 71,1%  | 88,82% |
  +---------+--------+--------+--------+
  | Average | 80,98% | 71,1%  | 88,82% |
  +---------+--------+--------+--------+

@tonerdo we lost codecov report.

@tonerdo  great thank's for WIP!
Ready to review!

@tonerdo can you review this?So we can go on with "core instrumentation" fix and improve test coverage .


Pin pydantic

Checklist

[X] Used a personal fork of the feedstock to propose changes
[X] Bumped the build number (if the version is unchanged)
[ ] Reset the build number to 0 (if the version changed)
[X] Re-rendered with the latest conda-smithy (Use the phrase @conda-forge-admin, please rerender in a comment in this PR for automated rerendering)
[ ] Ensured the license file is being packaged.

@conda-forge-admin, please rerender

pydantic resolves on macos-arm to  version 2


Open in a editable buffer

Is it possible to display the wiki summary in a buffer that can be edited directly?  Even better - automatically put the wiki summary into an org buffer.  Then one could edit the text in org and refile it to the desired location.  I plan on using this not only to look up a wiki summary, but to manipulate the wiki summary and integrate into my notes, which I maintain in org files, for reference and study purposes.  Brilliant mode - thanks so much!

Would you want a new buffer or rather a wiki-summary-insert function?

If I had to choose one over the other, I would take the insert function,
but both options would probably come in handy.
On Sun, Jul 3, 2016 at 12:23 AM, ayman<EMAIL_ADDRESS>wrote:

Would you want a new buffer or rather a wiki-summary-insert function?
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub
https://github.com/jozefg/wiki-summary.el/issues/4#issuecomment-230139728,
or mute the thread
https://github.com/notifications/unsubscribe/ALKp6hPQ1rMS2Kd3BFCwju5t6iC9t_o8ks5qR2NUgaJpZM4HrcGn
.

--
With Love,
Andrew
"A little learning is a dang'rous thing;Drink deep, or taste not the
Pierian spring"

I issued a Pull Request for the insert.


Icon Request

Can you make Sql Server Management, PhpStorm, PyCharm, Unity Hub, FileZilla, Postman, Android Studio icons? Uh.. and can I ask you what you use to make icon?

I'll give it my best shot. I'm a bit busy this week, so I'll take a swing at them whenever I get some spare time. I will update you this weekend with however many I finish and draw up whatever is left over the next week. I hope that's okay with you.
I use Inkscape to draw the icons.

I have finished and added your requested icons in the Google Drive Folder. You can find all of them inside the custom folder, named appropriately. You may download them there.
I have provided previews for your icons below.

With rewired colors:


no superclass method `assert_required_properties_set!' for Opbeat::ExceptionInterface

I got this problem from using Hashie which is a part of the Grape API framework.
NoMethodError at /alive.json

super: no superclass method `assert_required_properties_set!' for #<Opbeat::ExceptionInterface:0x007f8d52060040>

Ruby

/Users/olle/.rbenv/versions/2.0.0-p481/lib/ruby/gems/2.0.0/gems/opbeat-0.5.2/lib/opbeat/interfaces.rb
: in
assert_required_properties_set!

This part of the raven-like ecosystem seems to have solved this problem: https://github.com/getsentry/raven-ruby/pull/191/files

@olleolleolle We stopped using hashie in version 0.9.2 of the Ruby agent - forgot to close this issue back then


download_dsyms does not always find the dsyms when version is set to 'latest'

New Issue Checklist

[x] Updated fastlane to the latest version
[x] I read the Contribution Guidelines
[x] I read docs.fastlane.tools
[x] I searched for existing GitHub issues

Issue Description
download_dsyms does not always find the dsyms when version 'latest' is selected.
I was able to debug this to the API call to Apple. Actually I believe it's a bug on their end, but I do have a suggestion how to fix it.

I used the following command on the same account for two different apps, and it works for one yet it doesn't for the other (which is an app that isn't live yet, maybe thats the difference but thats just a guess).

 download_dsyms(
       app_identifier: "....",
       version: "latest",
       username: "...."
    )

Download dsyms first retrieves the latest build info using the iris/v1/builds API call, and then it does another API call using this found build info for the one build to fetch the download URL. The build I am debugging has a prereleaseversion of 4.0.0 and a build number of 463. Although the build is found in the first API call and all metadata set correctly, the second API call does not return this build. This is the call that doesn't retrieve any builds:

https://appstoreconnect.apple.com/iris/v1/builds?filter%5Bapp%5D=*****&filter%5BpreReleaseVersion.platform%5D=IOS&filter%5BpreReleaseVersion.version%5D=4.0.0&filter%5Bversion%5D=463

I used mitmproxy to see the result from apple, and verified it returned zero results for the second API call. I tried the same API call to see if any results were returned when I removed any of the filters, and it actually returned the result when I removed the prereleaseversion.version filter:

https://appstoreconnect.apple.com/iris/v1/builds?filter%5Bapp%5D=*****&filter%5BpreReleaseVersion.platform%5D=IOS&filter%5Bversion%5D=463

Now any sane developer would think, the prereleaseversion specified must be wrong. I triple checked this, but I don't see anything wrong with it. The returned value of the first API call returns 4.0.0. It is 4.0.0... I'm clueless why this works for one app but doesn't for the other.
How to fix? As I believe a build can be uniquely identified by app id and buildnumber, I think the prereleaseversion is not needed if both app id and build number are present. Hence I would suggest to apply the preReleaseVersion.version filter only when the build number is not present:

        - filter["preReleaseVersion.version"] = version if version
        + filter["preReleaseVersion.version"] = version if version && !build_number

I patched and tested download_dsyms.rb which worked:

[21:09:28]: 🔑  Successfully downloaded dSYM file for 4.0.0 - 463 to 'XXXXXXX-4.0.0-463.dSYM.zip'

From what I understand, there are no more downloadable dsyms for builds submitted with Xcode 14, probably related to bitcode being deprecated.
Here's a thread on the official dev forums: https://developer.apple.com/forums/thread/716826
Apple rep claims dsyms no longer need to be downloaded from Apple, the ones included in the local archive can be used for uploading to Crashlytics immediately after build.

Yes that is correct; if you don't use bitcode you can't (and won't need) to download the DSYMS from Apple anymore because they don't recompile the binary, and thus your own DSYMS can be used directly.
Since probably no one will be using bitcode in the near future I guess this ticket can be closed.


Update Node version from 12 to 16

Updated Node to the most stable version for our current dependencies. Does not require updates to our other dependencies or package-lock.

@garimame It looks like all tests including builds are successful but unit(12.x) I don't see where to update that, would you happen to know how / who could help here?

lgtm


_is_float should return false rather than an error when types are incompatible

Currently a pandas Datetime column can cause an error to be thrown unnecessarily

This is indeed a good catch, the helper function is somewhat helpful but not enough so! I would prefer we catch the types of errors more gracefully. The code should be made more robust so we capture each of these types as they come up instead of just silently ignore.
Could you please amend this to do something like:
In [19]: def _is_float(value):
       :     try:
       :         float(value)
       :     except (TypeError, ValueError):
       :         return False
       :     return True
       :

@aviau UPDATED REQUESTED

@sebito91 I've made the changes you suggested. I'm not quite sure when an exception rather than returning false would be the expected behaviour, but I suppose it's good practice.

Excellent, this looks good! Thanks @BenHewins!
@aviau this is ready to merge!

@BenHewins can you please try to squash into one commit? Thanks!


inpage links: broken in spoilers

ping #572: Found another issue: if you have an header in the beginning a spoiler, you can't close the spoiler anymore (see e.g. exercises on math homepage)

can you provide a link, where this happens? If you meant the collapsible solution of the exercises, they work for me (tested both firefox and chrome)

e.g. de.serlo.localhost:4567/mathe. If you open a solution, you can't close it again. Tested in Safari. If you can't reproduce it, we will look into this on Monday, might be a problem with the new assets.

Can't reproduce that, works fine in my browsers. Does this happen on your Safari in de.serlo.org/mathe as well? Since the inpage-links change is already deployed you might want to check that...

Okay, seems like a problem with my new assets, I'll look into it


SRIOV PF got unbind instead of VF in case of IB link type

Fixing daemon sriov VFs config, where PF pci address got unbind instead of allegedly VF address, in case of using IB link type.
While sriov config is applied for VF devices by SriovNodePolicy, it appears that PF pci address was got unbind insead of VF address. This has caused SRIOV initialization failure.
apiVersion: sriovnetwork.openshift.io/v1
kind: SriovNetworkNodePolicy
metadata:
  name: ib-policy
  namespace: nvidia-network-operator
spec:
  nodeSelector:
    node-role.kubernetes.io/worker: ""
    feature.node.kubernetes.io/network-sriov.capable: "true"
  resourceName: ib_vfs
  priority: 10
  numVfs: 2
  nicSelector:
    rootDevices:
      - '0000:03:00.0'
    vendor: 15b3
  deviceType: netdevice
  eSwitchMode: legacy
  linkType: ib

sriov-config-daemon log snippet:
sriov/sriov.go:487	Unbind(): unbind device driver for device	{"device": "0000:03:00.0"}
2024-10-25T07:32:37.001173398Z	LEVEL(-2)	kernel/kernel.go:116	UnbindDriverByBusAndDevice(): unbind device driver for device	{"bus": "pci", "device": "0000:03:00.0"}
2024-10-25T07:32:37.00122385Z	LEVEL(-2)	kernel/kernel.go:228	getDriverByBusAndDevice(): driver for device	{"bus": "pci", "device": "0000:03:00.0", "driver": "../../../../bus/pci/drivers/mlx5_core"}
2024-10-25T07:32:37.001263521Z	LEVEL(-2)	kernel/kernel.go:236	unbindDriver(): unbind from driver	{"bus": "pci", "device": "0000:03:00.0", "driver": "mlx5_core"}

IB interfaces after mofed container has installed mlx5 drivers: (lshw)
Bus info          Device     Class          Description
=======================================================
pci@0000:01:00.0  eno1       network        I350 Gigabit Network Connection
pci@0000:01:00.1  eno2       network        I350 Gigabit Network Connection
pci@0000:03:00.0  ibp3s0f0   network        MT27800 Family [ConnectX-5]
pci@0000:03:00.1  ibp3s0f1   network        MT27800 Family [ConnectX-5]
pci@0000:81:00.0             network        MT27520 Family [ConnectX-3 Pro]

ibp3s0f0 IB interface is gone post node restart:
Bus info          Device     Class          Description
=======================================================
pci@0000:01:00.0  eno1       network        I350 Gigabit Network Connection
pci@0000:01:00.1  eno2       network        I350 Gigabit Network Connection
pci@0000:03:00.0             network        MT27800 Family [ConnectX-5]
pci@0000:03:00.1  ibp3s0f1   network        MT27800 Family [ConnectX-5]
pci@0000:81:00.0             network        MT27520 Family [ConnectX-3 Pro]

Pull Request Test Coverage Report for Build<PHONE_NUMBER>7
Details

1 of 1 (100.0%)  changed or added relevant line in 1 file are covered.
5 unchanged lines in 1 file lost coverage.
Overall coverage decreased (-0.03%) to 44.976%

Files with Coverage Reduction
New Missed Lines
%

controllers/generic_network_controller.go
5
74.38%

Totals

Change from base Build<PHONE_NUMBER>1:
-0.03%

Covered Lines:
6656

Relevant Lines:
14799

💛  - Coveralls


Bug: Critical: "Remember to equip" shown on equip

Description
The “remember to equip” modal appears after an equip/unequip action has been executed.
Expected: It should only appear if a user has selected an unequipped item is selected for viewing purposes. (edited)
Repro

equip an item
see the model; expected: no modal

Acceptance criteria

[ ] do no show model on equip
[ ] qaed
[ ] merged into develop

@privilegemendes once you migrate frontend/equip-modal-fix it should be linked to this issue


Update requirements.txt

According to https://squidfunk.github.io/mkdocs-material/getting-started/#with-pip

This will automatically install compatible versions of all dependencies: MkDocs, Markdown, Pygments and Python Markdown Extensions. Material for MkDocs always strives to support the latest versions, so there's no need to install those packages separately.

And we can see https://github.com/squidfunk/mkdocs-material/blob/990b24fc8c38168b3b783bcfd8b551deeed6c0cd/requirements.txt#L21-L27 also includes mkdocs-material-extensions

thnx


answers shouldn't be case sensetitve

Fixing the issue with answers being case sensetive.

@DanielCranham , I cannot see where you have 'fixed' the issue of answers being case sensitive. The condition that answers must not have special characters has been lifted off, making answer checks even worse.

Codelegend's pullreq makes this redundant and I realise I made the mistake I made


[Quilt] [1.19.4] Client crashes

Hello, after installing Qu Enchantments on latest Quilt on 1.19.4, my client crashes. Here is the crash log: https://mclo.gs/60ASTCB
It is caused by this mod as removing it makes Minecraft boot correctly

Ok, I see what's wrong. It's technically both my mod and another mod you're using that are both trying to add a shield enchantment target. If you remove the other mod that does it it will work as well.
Do you know what other mod is adding the shield enchanting functionality? I can try to do a couple things to get them to work together.

No idea what other mod is doing it. Maybe IlMusu's Enchantments

I haven't been able to determine which mod you're using that conflicting with mine, but I've made some changes that should fix the conflict. Would you mind testing the latest build here to see if it works?

I haven't been able to determine which mod you're using that conflicting with mine, but I've made some changes that should fix the conflict. Would you mind testing the latest build here to see if it works?

Hi again, the latest release candidate works fine! Feel free to close this issue


[kpm] integrate with KCL tools and APIs

Enhancement
cc @zong-zhe
kpm tools need to integrate with all the existing kcl workflow. ref: #767
known issues:

[ ] #823

I temporarily restored the previous symbolic links to make up for the blockage caused by this bug in PR https://github.com/kcl-lang/kpm/pull/215.
This PR will create a global symbolic link for each downloaded KCL package, which is used to ensure that the doc tool functions properly.
NOTE: This is not a long-term solution, however, and you need to re-download the tripartite library every time you use the doc tool to keep the symbolic links up to date.

I will integrate with KCL tools and APIs next week.


Add chapter on how to obtain the undocumented "client" scope

The whole process is described here https://medium.com/@andrewarrow/how-to-get-slack-api-tokens-with-client-scope-e311856ebe9
Basically it is simple, just 2 steps, but it took me considerable time to find this know-how

Have you tried the obtain a legacy token, which is the standard way of getting a token for the client scope? I checked today and while officially "legacy" and "not  recommended" it still seams to work.
Here is the link: https://api.slack.com/custom-integrations/legacy-tokens

I do not see any need to add this "hack", since its way easier to just use a legacy token which apparently still works. I also removed this info from my answer on Stack Overflow about this API method, since its unnecessary. If you still feel its relevant I would appreciate if you would add your own answer to the question instead of editing the accepted answer.


RFC: @[flat] annotation for names in the extend clause of a structure

Proposal
What?
When working with a structure hierarchy like
structure A where a : Unit
structure B extends A where b : Unit
structure C extends A where c : Unit
structure D extends B, C where

the type of D.mk is asymmetric:
D.mk (toB : B) (c : Unit) : D

More precisely, the representation of D is to embed an entire B structure, but then only take the parts of the C structure that do not overlap with B, namely c : Unit.
I have no doubt that this behavior is useful in some circumstances, but in situations where a symmetric API is more important than performance, this behavior is annoying.
Let's imagine that the symmetric API we want is D.mk (toA : A) (b c : Unit). Right now, there are the following workarounds to achieve that

Write the type of D manually without extends:structure A where a : Unit
structure B extends A where b : Unit
structure C extends A where c : Unit
structure D extends A where
  b : Unit
  c : Unit

-- user has to write this boilerplate
def D.toB (d : D) : B := { toA := d.toA, b := d.b }
def D.toC (d : D) : C := { toA := d.toA, c := d.c }

This boilerplate can be rather a burden, epsecially since the naive := { d with } approach performs unwanted eta-expansion
Use the hack from https://arxiv.org/abs/2306.00617 §4.2, which exploits the 'avoid overlaps' rule to our advantage, asstructure DFlatHack where

structure A where a : Unit
structure B extends DFlaHack , A where b : Unit
structure C extends DFlatHack, A where c : Unit
structure D extends DFlatHack, B, C where

which gives us D.mk (toDFlatHack : DFlatHack) (toA : A) (b c : Unit) : D, where the first argument is vacuous and can always be passed as ⟨⟩.

In Lean 3 we had set_option old_structure_cmd true; but this was a bad design because it did not allow parent structures to selectively be flattened (among other reasons).
The proposal is to remove the need for a hack here, such that the user can write
structure A where a : Unit
structure B extends A where b : Unit
structure C extends A where c : Unit
structure D extends @[flat] B, @[flat] C where

or any other reasonable syntax.
How?
The presence of flat simply means "skip the overlapping fields check, and behave as if the fields overlap"; that is, a check for the syntactic marker would be added to the conditions here:
https://github.com/leanprover/lean4/blob/57e23917b605d1f1e6b6ff70aa022065d55bb60c/src/Lean/Elab/Structure.lean#L423-L428
https://github.com/leanprover/lean4/blob/57e23917b605d1f1e6b6ff70aa022065d55bb60c/src/Lean/Elab/Structure.lean#L479-L483
Why?

Nested structures are involved in frequent peformance issues in mathlib (for example, #2451)
Nested structures break symmetries in unfortunate ways for things like RingHom, which has to pick between MonoidHom and AddMonoidHom as it's "main" parent. This affects the shape of the constructor, the simp lemmas about it, and adds ugly additional angle brackets to anonymous constructors

In both cases, having a @[flat] attribute would make it vastly easier to perform performance and API experiments in mathlib to work out where nested structures help, and where they're a hindrance.
Community Feedback
Mario originally proposed this syntax here.
Impact
Add :+1: to issues you consider important. If others benefit from the changes in this proposal being added, please ask them to add :+1: to it.

Having concrete data on which patterns help where in mathlib would be very helpful.

Some initial data: used on only the HomClass classes (a minimally invasive change), this provides a 2.5% wall clock boost for Mathlib.


fixes for deno compatibility

Just a first draft PR to feed the CI pipeline, because local testing doesn't work on my machine.
Fixes: #385
Warning! -- there are important parts missing/untested!

validateHeaderName and validateHeaderValue are temporary replaced by dummy entries.
This should be better fixed on the deno side (see: https://github.com/denoland/deno/issues/22614).

The worker_thread.unref() case is still uttery unsolved and just temporary removed.

Thanks for working on this. Let's at least land for now, we can always improve later.

Thanks for working on this. Let's at least land for now, we can always improve later.

Yes -- that's a good interim solution, because the merged changes seem to do no harm to already existing use cases and test routines.
I just waited, because I could isolate the non-termination issue as another deno flaw (see:  https://github.com/denoland/deno/issues/22629) and I'm still searching a working solution to reuse the existing mocha tests also for deno unit checks (That's rather tricky, because it's very hard to create working import_map-redirections in mixed node/deno-workflows). But it's perfectly fine for me to send you these additional improvements in new PRs.
Thanks for all your help! It's really a pleasure to collaborate with you!


There is no way to get the voice channels or voice channel voice states

Basically the title. In the in memory cache, there are no methods to get either the voice channel or voice channel voice states.

I have submitted PR #418 which adds InMemoryCache::voice_channel_states, to get the voice states of a voice channel. It's already actually possible to get a voice channel via InMemoryCache::guild_channel.


no full example? where is chartData and chartOptions?

no full example? where is chartData and chartOptions?

+1

I had this problem.
If you download React Developer Tools for Chrome  You can inspect the chart and see its props.

thx

I think it would be very helpful to include those in the example page, and also in the repo (under examples folder).
@peterremote1980 IMO this issue is still open...


feat(client): type safety for useStreaming

adds second overload for constructors with useStreaming and streamingDistance so it is impossible to use useStreaming alone (leading to unwanted behavior)

Just noticed it would be a breaking change to use true instead of boolean for useStreaming parameter


cargo-binstall fallback tries to compile for x86_64-unknown-linux-musl rather than x86_64-unknown-linux-gnu

See this log.
Run taiki-e/install-action@v2
  with:
    tool: bpf-linker
    checksum: true
  env:
    CARGO_TERM_COLOR: always
    CARGO_INCREMENTAL: 0
    CACHE_ON_FAILURE: false
Run bash --noprofile --norc "${GITHUB_ACTION_PATH:?}/main.sh"
  bash --noprofile --norc "${GITHUB_ACTION_PATH:?}/main.sh"
  shell: /usr/bin/bash --noprofile --norc -e -o pipefail {0}
  env:
    CARGO_TERM_COLOR: always
    CARGO_INCREMENTAL: 0
    CACHE_ON_FAILURE: false
    INPUT_TOOL: bpf-linker
    INPUT_CHECKSUM: true
info: host platform: x86_64_linux
info: install-action does not support bpf-linker; fallback to cargo-binstall
info: installing cargo-binstall@latest (1.3.1)
info: downloading https://github.com/cargo-bins/cargo-binstall/releases/download/v1.3.1/cargo-binstall-x86_64-unknown-linux-musl.tgz
info: verifying sha[2](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:2)56 checksum for cargo-binstall-x86_64-unknown-linux-musl.tgz
info: cargo-binstall installed at /home/runner/.cargo/bin/cargo-binstall
+ cargo-binstall binstall -V
1.[3](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:3).1
 WARN Failed to read git credential file /home/runner/.git-credentials err=Os { code: 2, kind: NotFound, message: "No such file or directory" }
 WARN Failed to read git credential file /home/runner/.config/git/credentials err=Os { code: 2, kind: NotFound, message: "No such file or directory" }
 WARN Failed to retrieve token from `gh auth token` err=Custom { kind: Other, error: "process exited with `exit status: 1`" }
 INFO resolve: Resolving package: 'bpf-linker'
 WARN The package bpf-linker v0.9.10 will be installed from source (with cargo)
    Updating crates.io index
 Downloading crates ...
  Downloaded bpf-linker v0.9.10
  Installing bpf-linker v0.9.10
    Updating crates.io index
    Updating crates.io index
 Downloading crates ...
  Downloaded anstyle-parse v0.2.1
  Downloaded clap v[4](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:4).4.4
  Downloaded memchr v2.6.3
  Downloaded ar v0.9.0
  Downloaded camino v1.1.6
  Downloaded aho-corasick v1.0.4
  Downloaded serde_derive v1.0.183
  Downloaded libc v0.2.148
  Downloaded syn v2.0.28
  Downloaded regex-syntax v0.7.[5](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:5)
  Downloaded regex-automata v0.3.8
  Downloaded regex v1.9.5
  Downloaded serde_json v1.0.104
  Downloaded utf8parse v0.2.1
  Downloaded unicode-ident v1.0.11
  Downloaded time-macros v0.2.11
  Downloaded time-core v0.1.1
  Downloaded time v0.3.25
  Downloaded simplelog v0.12.1
  Downloaded serde v1.0.183
  Downloaded semver v1.0.18
  Downloaded ryu v1.0.15
  Downloaded proc-macro2 v1.0.[6](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:6)6
  Downloaded prettyplease v0.2.12
  Downloaded once_cell v1.18.0
  Downloaded log v0.4.20
  Downloaded llvm-sys v1[7](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:7)0.0.0
  Downloaded libloading v0.[8](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:8).0
  Downloaded anyhow v1.0.74
  Downloaded anstream v0.5.0
  Downloaded cargo-platform v0.1.3
  Downloaded anstyle v1.0.1
  Downloaded lazy_static v1.4.0
  Downloaded itoa v1.0.[9](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:10)
  Downloaded cfg-if v1.0.0
  Downloaded anstyle-query v1.0.0
  Downloaded thiserror-impl v1.0.48
  Downloaded thiserror v1.0.48
  Downloaded termcolor v1.1.3
  Downloaded strsim v0.[10](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:11).0
  Downloaded quote v1.0.32
  Downloaded num_threads v0.1.6
  Downloaded llvm-sys v160.1.3
  Downloaded heck v0.4.1
  Downloaded deranged v0.3.7
  Downloaded clap_builder v4.4.4
  Downloaded cc v1.0.82
  Downloaded colorchoice v1.0.0
  Downloaded clap_lex v0.5.0
  Downloaded clap_derive v4.4.2
  Downloaded cargo_metadata v0.18.0
  Downloaded aya-rustc-llvm-proxy v0.9.0
   Compiling serde v1.0.183
   Compiling libc v0.2.148
   Compiling serde_derive v1.0.183
   Compiling proc-macro2 v1.0.66
   Compiling unicode-ident v1.0.[11](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:12)
   Compiling semver v1.0.18
   Compiling memchr v2.6.3
   Compiling quote v1.0.32
   Compiling aho-corasick v1.0.4
   Compiling syn v2.0.28
   Compiling regex-syntax v0.7.5
   Compiling cc v1.0.82
   Compiling regex-automata v0.3.8
   Compiling lazy_static v1.4.0
   Compiling anyhow v1.0.74
   Compiling thiserror v1.0.48
   Compiling thiserror-impl v1.0.48
   Compiling regex v1.9.5
   Compiling camino v1.1.6
   Compiling serde_json v1.0.104
error[E0463]: can't find crate for `core`
  |
  = note: the `x86_64-unknown-linux-musl` target may not be installed
  = help: consider downloading the target with `rustup target add x86_64-unknown-linux-musl`
  = help: consider building the standard library from source with `cargo build -Zbuild-std`

error[E0463]: can't find crate for `compiler_builtins`

error[E0432]: unresolved import `ffi::c_void`
    --> /home/runner/.cargo/registry/src/index.crates.io-6f17d22bba15001f/libc-0.2.[14](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:15)8/src/unix/mod.rs:[16](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:17)04:[17](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:18)
     |
1604 |         pub use ::ffi::c_void;
     |                 ^^^^^^^^^^^^^

Some errors have detailed explanations: E0432, E0463.
For more information about an error, try `rustc --explain E0432`.
error: could not compile `libc` (lib) due to 3 previous errors
warning: build failed, waiting for other jobs to finish...
error: failed to compile `bpf-linker v0.9.10`, intermediate artifacts can be found at `/tmp/cargo-installP3dSHA`.
To reuse those artifacts with a future compilation, set the environment variable `CARGO_TARGET_DIR` to that path.
ERROR Cargo errored! ExitStatus(unix_wait_status([25](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:27)8[56](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:58)))
ERROR Fatal error:
binstall::subprocess

  × subprocess /home/runner/.rustup/toolchains/nightly-x86_[64](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:66)-unknown-linux-
  │ gnu/bin/cargo install bpf-linker --version 0.9.10 --target x86_64-unknown-
  │ linux-musl --force --locked errored with exit status: 101

Error: Process completed with exit code [70](https://github.com/aya-rs/book/actions/runs/6243912879/job/16950047292#step:6:72).

Is the host detection wrong somewhere?

Thanks, it's indeed a bug in binstall.
Can I move this ticket to binstall, or can you create a new ticket there please?

If you could do it, that would be my preference. Thank you!

Hmmm seems like I can't do it.


DatePicker not getting min-value

Hello, I wanted to give a calendar min value like this
<Calendar v-model="selectedDate" initial-focus :min-value="nextWeek" />

But it showing type error and not working.
Type 'Date' is not assignable to type 'DateValue | undefined'.ts-plugin(2322)
Here is my code:
const sevenDaysFromNow = computed(() => {
  const date = new Date();
  return new Date(date.setDate(date.getDate() + 7));
});

How can I fix it?

Are you using @internationalized/date DatePicker or v-calendar DatePicker?
Can you share a demo or reproduction in Stackblitz or Codesandbox
Closing for now will reopen after repro


pull request for e2e test at 02/05/2017 14:45:08

:white_check_mark: Validation status: passed
For more details, please refer to the build report.
Note: If you changed an existing file name or deleted a file, broken links in other files to the deleted or renamed file are listed only in the full build report.


DBZ-1882 Restarting after connection losses in SQL Server

https://issues.redhat.com/browse/DBZ-1882

@Naros LGTM. Code needs reformatting. Have you had a chance to test it manually by using our tutorial and pausing the SQL Server pod to simulate network issues?

Hi @jpechane, I attempted to test it as you suggested but I found that using pause didn't cause any type of network connectivity issue but instead the SQL call would block indefinitely on the streaming thread until the container as unpaused and it would then resume.
That said, after unpausing then stopping the container thereafter I was able to see that the handler was invoked and that `SQLServerException: SQL Server did not return a response.  The connection has been closed." was deemed non-retryable.

@Naros +1 to both suggestions - extedning the retriable exception with the timeout scenario and testing with container delete/start. Then it can be merged

@jpechane @gunnarmorling Added some additional retry errors based on test suggestions.

Nice improvement; thanks, @Naros!

Could you help improve the relevant support for MySQL?

Can you bring your question to the mailing list please (https://groups.google.com/g/debezium/); let's not re-use unrelated, long-closed PRs for this. Thx.


TODO: Reevaluate include-entire-classpath

The point of this is to make generics and type information better.
However it has a major memory cost as it reads ALL the classes in the classpath and parses out their metadata.
A better idea would be to make the metadata system lazy, but that runs into threading and race issues.
So, this is the TODO to look at it... eventually..

but that runs into threading and race issues.

If you use NIO, this shouldn't be an issue.
public static FileSystem openZip(final Path path, final boolean create) throws IOException {
    final URI uri = URI.create("jar:" + path.toUri());
    final Map<String, String> options = new HashMap<>();
    options.put("create", Boolean.toString(create));
    return FileSystems.newFileSystem(uri, options);
}

(https://github.com/CadixDev/Atlas/blob/6f6d28eb53e4b9badff05ca8fcbb9bea0bdb31b9/src/main/java/org/cadixdev/atlas/util/NIOHelper.java#L34-L39)
private FileSystem fs =  NIOHelper.openZip(Paths.get("example.jar"), false);

public byte[] getClass(final String className) throws IOException {
    final Path classPath = this.fs.getPath("/" + className.replace(".", "/") + ".class");
    if (Paths.notExists(classPath)) return null;
    return Files.readAllBytes(classPath);
}

(something like that anyhow, just threw that together on the issue)

I could of sworn last I looked into it NIO's jar FileSystem simply loaded the jar blob into memory while the file system existed. So that doesn't help the memory issue.
As for threading, I'm not worried about reading the data. I'm more worried about FF itself.
Namely it's StructContext and other giant maps of class metadata.

Revamping loading/saving would be nice, NIO could definitely simplify it a lot. But that might have to be scoped to upstream. And no it doesn't load it into a blob iirc, it reads it once and loads the manifest, then opens a new stream for reading each entry, but i could be wrong there. I might look into threading the loading of classes during my decomp threading.

Regarding NIO - For now it may be a good idea to not use it for operating on zips. I ran into some major issues on certain JDKs with it - specifically, writing anything to a Path that points to a zip filesystem using Files.write or similar will corrupt the output jar/zip file on some oracle JDKs, but not on openjdk.


scaleio: fix build error after 4.18 merge forward

Description
This PR...

Types of changes

[ ] Breaking change (fix or feature that would cause existing functionality to change)
[ ] New feature (non-breaking change which adds functionality)
[ ] Bug fix (non-breaking change which fixes an issue)
[ ] Enhancement (improves an existing feature and functionality)
[ ] Cleanup (Code refactoring and cleanup, that may add test cases)

Feature/Enhancement Scale or Bug Severity
Feature/Enhancement Scale

[ ] Major
[ ] Minor

Bug Severity

[ ] BLOCKER
[ ] Critical
[ ] Major
[ ] Minor
[ ] Trivial

Screenshots (if appropriate):
How Has This Been Tested?

@blueorangutan package

@weizhouapache a [SF] Jenkins job has been kicked to build packages. It will be bundled with  KVM, XenServer and VMware SystemVM templates. I'll keep you posted as I make progress.

Packaging result [SF]: :heavy_check_mark: el7 :heavy_check_mark: el8 :heavy_check_mark: el9 :heavy_multiplication_x: debian :heavy_check_mark: suse15. SL-JID 6299

rpm packaging jobs succeeded (the debian packaging are not related), merging


Add support for custom logging by providing a Logback file as a CLI parameter for the standalone jar

This change only impacts the standalone jar, and allows users to specify a logback-config-file CLI parameter to support custom logging.
i.e. java -jar /path/wiremock-jre8-standalone-2.35.1-all.jar --logback-config-file=/path2/logback.xml
Without this parameter, Logback is still used via the Slf4jNotifier, but the logging format is the same as it was before this change.
References

https://github.com/wiremock/wiremock/pull/1109
Specifically this comment from @tomakehurst, was the desired outcome for this change: https://github.com/wiremock/wiremock/pull/1109#issuecomment-500991876 .

Submitter checklist

[x] Recommended: Join WireMock Slack to get any help in #help-contributing or a project-specific channel like #wiremock-java
[ ] Recommended: If you participate in Hacktoberfest 2023, make sure you're signed up there and in the WireMock form
[x] The PR request is well described and justified, including the body and the references
[x] The PR title represents the desired changelog entry
[x] The repository's code style is followed (see the contributing guide)
[x] Test coverage that demonstrates that the change works as expected
[x] For new features, there's necessary documentation in this pull request or in a subsequent PR to wiremock.org

This isn't the design I want to go for here i.e. one that exposes a concrete dependency on a specific logging library.
Now that we've added sub-events I want to make this core to the logging strategy - significant info gets added a sub-events, then we log each event + children on each request and provide some startup options for whether the log is JSON, plain, HTTP line etc. and the level of detail.
More than happy to discuss if you'd like to work on this?

We now have a clearer idea of what we are moving towards with regards to logging.  There are some notes here - https://github.com/wiremock/wiremock/issues/1471#issuecomment-1907783172
As Tom mentioned, we are more than happy to support if you would like to work on this 👍


Mac M1 cannot install modelscope[audio]

Just follow as the step from the office website.
The terminal will show:
ModuleNotFoundError: No module named 'distutils.msvccompiler'

Steps:
conda create -n modelscope python=3.8
conda activate modelscope
pip3 install torch==1.11.0 torchvision torchaudio
pip install "modelscope[audio]" -f https://modelscope.oss-cn-beijing.aliyuncs.com/releases/repo.html

same problem

unfortunately some of the audio models can only be used on linux, as specified on the documentation.


Add canonize function

Summary
This PR resolves #22 by implementing the canonize function, which takes an input Chain and transforms it into the canonical form (also known as Vidal form), where we have a set of Γ and Λ tensors. For now, this function is implemented for Chain with Open boundaries.
Additionally, we added some tests to cover for the new function. Thanks to @starsfordummies for the useful comments!
Example
Let's show how this function works:
julia> qtn = rand(Chain, Open, State; n=5, p = 2, χ=20)
MPS (inputs=0, outputs=5)

julia> canonized = canonize(qtn)
MPS (inputs=0, outputs=5)

julia> length(tensors(canonized)) # 5 tensors + 4 singular values vectors
9

julia> isapprox(contract(transform(TensorNetwork(canonized), Tenet.HyperindConverter())),
                contract(TensorNetwork(qtn)))
true

julia> Γ₃ = select(canonized, :tensor, Site(3))
4×2×4 Tensor{Float64, 3, Array{Float64, 3}}: ...

julia> Λ₄=pop!(TensorNetwork(canonized), select(canonized, :between, Site(3), Site(4)))
4-element Tensor{Float64, 1, Vector{Float64}}:
 0.8303349576858878
 0.4869563863594485
 0.22360345538771664
 0.15303212266448157

julia> sum((i -> i^2).(Λ₄))
1.000000000000001

julia> replace!(TensorNetwork(canonized), Γ₃ => contract(Γ₃, Λ₄; dims=()))
TensorNetwork (#tensors=8, #inds=9)

julia> @test Qrochet.isrightcanonical(canonized, Site(3))
Test Passed

Question for @bsc-quantic/tensor-networks: should we do that the isleftcanonical, isrightcanonical functions already process the singular values?
I think that makes sense that we do not (so like it is currently in the code), and just take the tensor at that site and do the checking. This makes the tests for this function a little bit cumbersome, but do the work. In my opinion, we should add a function that does the contraction of the singular values, since I think this will be necessary for many algorithms.

@mofeing The code now will error due to the Tenet.HyperindConverter thingy. I have tested locally and everything works otherwise.

Okay @mofeing, every test now has passed correctly. I would merge this.


SB-910:  Improve Nuget Proxy Repository performance with count remote packages first [in-progress]

this PR was merged into https://github.com/strongbox/strongbox/pull/361


ACCPARENT vs ACCNAME

When I tab to an interactive element, it seems the AccParent sometimes populates with what I would think should be the AccName. The AccName is not in the list on the right side top by default. The user has to open the settings and select it. I'd suggest that is the most important value to get from the tool and so should be there by default.

The AccParent item in a TreeList displays the AccName property value of the parent element.
Its value often happens to be the same as the AccName property of the child element.
Thank you for your suggestion.
I will change it in the next update.


[BUG] No way to specify tool.setuptools.packages.find in a non-fragile way for flat layouts

setuptools version
setuptools==75.3.0
Python version
Python 3.11
OS
Ubuntu
Additional environment information
No response
Description
When using a flat (non-src-based) layout, it is not possible to configure using pyproject.toml in a way that doesn't immediately break when a new package is added to the project layout.
i.e. I configure using
[tool.setuptools.packages.find]
where = ["."]
include = [
    # ... long, and fragile, list
]

exclude = [
    # This, or similar syntaxes, don't seem to actually work.
    # https://stackoverflow.com/q/75091671/339144
]  # exclude packages matching these glob patterns (empty by default)

but if I add a new directory to my project, I must remember to add it to pyproject.toml.
As here: https://stackoverflow.com/questions/79169280/pyproject-toml-config-using-setuptools-with-correct-packages-automatically
Expected behavior
I expect to have a way that will "just work forever".
How to Reproduce
.
Output
.

Hi @vanschelven please provide a minimal and complete reproducer regarding the BUG you want to report, otherwise we will not be able to consider this issue.
Regarding the given example, please note that values for the patterns used in https://stackoverflow.com/questions/75091671/pyproject-toml-exclude-some-python-sources-py-from-data-directory are conceptually wrong, for the reason that setuptools.packages deals with Python package names (i.e. "dotted" strings) not file paths, so that is the reason why your expression does not match. See details in https://setuptools.pypa.io/en/latest/userguide/package_discovery.html.
If you want to exclude the mypackage/data folder and anything under it, you should provide the following exclude pattern exclude = ["mypackage.data", "mypackage.data.*"][^1].
The pattern mypackage*data*py is implying that you have py as part of the package name, which does not seem to be the case. Also note that packages in Python are collections of modules (i.e. they map into directories, while modules map into files), so you cannot use exclude for files specifically... The original pattern would match something like mypackage/data/py/file.py.

Now regarding the criticism about the methodology not being convenient for your use case, that is a fair comment. But setuptools understands that it is simply impossible to foresee and accommodate ALL the possible scenarios. Instead it offers the ultimate flexibility for all users that have a particular scenario in mind: you can implement your own discovery algorithm by using setup.py (note that you can keep most of your configuration in pyproject.toml and only define setup(packages=[...]) in setup.py.
So, ultimately, you have tree choices

You can choose convention over configuration and adequate your source layout to work with setuptools built-in automatic discovery.
You can use some lightweight configuration in pyproject.toml using include/exclude.
If that still don't work for you then, you can still implement your own algorithm in setup.py.

[^1]: Please also set include-package-data = false for now to avoid problems (see https://github.com/pypa/setuptools/issues/3260).

You can choose convention over configuration and adequate your source layout to work with setuptools built-in automatic discovery.

Are you saying that src-based layouts is the convention that setuptools supports, and that flat layouts are not really supported anymore?
====
Re the exclude syntax/semantics, I now understand that at least 3 things come together here

The above-mentioned confusion about filenames v.s. dotted paths.
My desire to exclude modules rather than packages is not supported. (not mentioned above, still a thing though)
include_package_data must be false for exclude to work at all; this is blocking b/c I need include_package_data to be true in my setup.

My take-away is: I can't really use exclude to avoid the fragility.
I don't remember what pushed me to using a pyproject.toml-based setup in the first place, other than that it was prompted by some message in my toolchain warning about lack of support for a pure setup.py based approach. Given that I am on the pyproject.toml based setup now, what is the way to configure my own finder in that setup? Just putting a callable in setup.py is no longer possible, after all.

Are you saying that src-based layouts is the convention that setuptools supports, and that flat layouts are not really supported anymore?

No. Setuptools supports both src and flat layouts. What is not supported is something more customised (like having Python files in the source three inside valid bavkages, but that need not be considered during packaging).
At the stage that you need something more custom-made and less general, it might be better to implement your own logic (or simply revert to a layout that is already supported, for example for moving the modules that should not be packaged outside of the package tree in a separated directory that can then be excluded).

it was prompted by some message in my toolchain warning about lack of support for a pure setup.py based approach.

Setuptools issues warning prompting the users to not run CLI commands via python setup.py .... The CLI features of setup.py are deprecated. But the file is still a perfectly fine configuration file, and it can be mixed and matched with pyproject.toml (given the dynamic fields in pyproject.toml are configured accordingly with PEP 517).

Given that I am on the pyproject.toml based setup now, what is the way to configure my own finder in that setup? Just putting a callable in setup.py is no longer possible, after all.

You can have both pyproject.toml and setup.py at the same time in the project, and use a call to setuptools.setup(...) to only pass the dynamic bits. But to be honest, moving the Python files outside of the package tree into a different directory is easier.

My path forward is (somewhat) clear; this is not a bug, I'll close