raft: Actually enable CheckQuorum

A change to enable the CheckQuorum option was merged in September (#1564), but never actually took effect because the config structure where it was set is not used directly.
This fixes the problem to enable it.
The option is useful because it makes a leader realize that quorum is lost and start a new election. Otherwise, the leader will still try to service RPCs, and will succeed when those RPCs don't involve writes. This is confusing.

Let's run the Docker integration tests on this before merging it.

This definitely needs some work on the unit tests. I'm seeing a few tests that are flaky with this option turned on.

This test seems sensitive to leader changes:
--- FAIL: TestRootRotationReconciliationNoChanges (3.05s)
	Error Trace:	server_test.go:1108
	Error:		Not equal: []byte{0xa, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x45, 0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0xa, 0x4d, 0x48, 0x63, 0x43, 0x41, 0x51, 0x45, 0x45, 0x49, 0x4b, 0x58, 0x6b, 0x76, 0x46, 0x66, 0x55, 0x63, 0x56, 0x62, 0x48, 0x39, 0x55, 0x71, 0x78, 0x6b, 0x64, 0x6f, 0x34, 0x4f, 0x62, 0x77, 0x63, 0x33, 0x52, 0x53, 0x4a, 0x66, 0x45, 0x48, 0x32, 0x32, 0x35, 0x34, 0x73, 0x66, 0x71, 0x6b, 0x78, 0x35, 0x30, 0x78, 0x42, 0x6f, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0xa, 0x41, 0x77, 0x45, 0x48, 0x6f, 0x55, 0x51, 0x44, 0x51, 0x67, 0x41, 0x45, 0x65, 0x62, 0x4a, 0x2b, 0x41, 0x55, 0x6b, 0x75, 0x37, 0x33, 0x67, 0x6a, 0x49, 0x39, 0x68, 0x35, 0x69, 0x2f, 0x2b, 0x56, 0x6f, 0x4e, 0x52, 0x37, 0x70, 0x78, 0x64, 0x78, 0x6c, 0x5a, 0x6b, 0x76, 0x72, 0x5a, 0x31, 0x62, 0x65, 0x32, 0x62, 0x72, 0x56, 0x68, 0x51, 0x4e, 0x46, 0x42, 0x76, 0x6e, 0x76, 0x4d, 0x6e, 0x47, 0xa, 0x39, 0x6f, 0x68, 0x34, 0x65, 0x78, 0x33, 0x73, 0x70, 0x62, 0x52, 0x6a, 0x42, 0x41, 0x52, 0x73, 0x35, 0x36, 0x48, 0x5a, 0x43, 0x6a, 0x52, 0x52, 0x70, 0x76, 0x6a, 0x36, 0x6d, 0x42, 0x4f, 0x79, 0x4a, 0x51, 0x3d, 0x3d, 0xa, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x45, 0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0xa} (expected)
			        != []byte{0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x42, 0x45, 0x47, 0x49, 0x4e, 0x20, 0x45, 0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0xa, 0x4d, 0x48, 0x63, 0x43, 0x41, 0x51, 0x45, 0x45, 0x49, 0x50, 0x76, 0x32, 0x71, 0x63, 0x46, 0x6f, 0x4f, 0x79, 0x34, 0x65, 0x6e, 0x4a, 0x59, 0x2b, 0x45, 0x39, 0x7a, 0x62, 0x62, 0x7a, 0x63, 0x4b, 0x72, 0x5a, 0x4d, 0x6c, 0x73, 0x34, 0x43, 0x44, 0x48, 0x77, 0x62, 0x6e, 0x2f, 0x38, 0x49, 0x74, 0x61, 0x63, 0x79, 0x73, 0x6f, 0x41, 0x6f, 0x47, 0x43, 0x43, 0x71, 0x47, 0x53, 0x4d, 0x34, 0x39, 0xa, 0x41, 0x77, 0x45, 0x48, 0x6f, 0x55, 0x51, 0x44, 0x51, 0x67, 0x41, 0x45, 0x48, 0x54, 0x34, 0x63, 0x6e, 0x55, 0x4d, 0x44, 0x58, 0x7a, 0x33, 0x58, 0x6b, 0x68, 0x37, 0x6c, 0x57, 0x68, 0x49, 0x2b, 0x53, 0x47, 0x56, 0x57, 0x36, 0x4b, 0x41, 0x74, 0x6d, 0x7a, 0x64, 0x76, 0x32, 0x6a, 0x42, 0x6d, 0x42, 0x57, 0x6d, 0x5a, 0x52, 0x32, 0x34, 0x4f, 0x44, 0x77, 0x38, 0x4c, 0x6e, 0x35, 0x44, 0x4b, 0xa, 0x48, 0x56, 0x43, 0x5a, 0x32, 0x67, 0x6d, 0x4c, 0x73, 0x36, 0x67, 0x69, 0x4b, 0x48, 0x73, 0x31, 0x69, 0x31, 0x6a, 0x36, 0x56, 0x49, 0x69, 0x55, 0x62, 0x4b, 0x30, 0x49, 0x31, 0x79, 0x55, 0x45, 0x47, 0x77, 0x3d, 0x3d, 0xa, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0x45, 0x4e, 0x44, 0x20, 0x45, 0x43, 0x20, 0x50, 0x52, 0x49, 0x56, 0x41, 0x54, 0x45, 0x20, 0x4b, 0x45, 0x59, 0x2d, 0x2d, 0x2d, 0x2d, 0x2d, 0xa} (actual)

			Diff:
			--- Expected
			+++ Actual
			@@ -1,17 +1,17 @@
			-([]uint8) (len=228 cap=228) {
			- 00000000  0a 2d 2d 2d 2d 2d 42 45  47 49 4e 20 45 43 20 50  |.-----BEGIN EC P|
			- 00000010  52 49 56 41 54 45 20 4b  45 59 2d 2d 2d 2d 2d 0a  |RIVATE KEY-----.|
			- 00000020  4d 48 63 43 41 51 45 45  49 4b 58 6b 76 46 66 55  |MHcCAQEEIKXkvFfU|
			- 00000030  63 56 62 48 39 55 71 78  6b 64 6f 34 4f 62 77 63  |cVbH9Uqxkdo4Obwc|
			- 00000040  33 52 53 4a 66 45 48 32  32 35 34 73 66 71 6b 78  |3RSJfEH2254sfqkx|
			- 00000050  35 30 78 42 6f 41 6f 47  43 43 71 47 53 4d 34 39  |50xBoAoGCCqGSM49|
			- 00000060  0a 41 77 45 48 6f 55 51  44 51 67 41 45 65 62 4a  |.AwEHoUQDQgAEebJ|
			- 00000070  2b 41 55 6b 75 37 33 67  6a 49 39 68 35 69 2f 2b  |+AUku73gjI9h5i/+|
			- 00000080  56 6f 4e 52 37 70 78 64  78 6c 5a 6b 76 72 5a 31  |VoNR7pxdxlZkvrZ1|
			- 00000090  62 65 32 62 72 56 68 51  4e 46 42 76 6e 76 4d 6e  |be2brVhQNFBvnvMn|
			- 000000a0  47 0a 39 6f 68 34 65 78  33 73 70 62 52 6a 42 41  |G.9oh4ex3spbRjBA|
			- 000000b0  52 73 35 36 48 5a 43 6a  52 52 70 76 6a 36 6d 42  |Rs56HZCjRRpvj6mB|
			- 000000c0  4f 79 4a 51 3d 3d 0a 2d  2d 2d 2d 2d 45 4e 44 20  |OyJQ==.-----END |
			- 000000d0  45 43 20 50 52 49 56 41  54 45 20 4b 45 59 2d 2d  |EC PRIVATE KEY--|
			- 000000e0  2d 2d 2d 0a                                       |---.|
			+([]uint8) (len=227 cap=227) {
			+ 00000000  2d 2d 2d 2d 2d 42 45 47  49 4e 20 45 43 20 50 52  |-----BEGIN EC PR|
			+ 00000010  49 56 41 54 45 20 4b 45  59 2d 2d 2d 2d 2d 0a 4d  |IVATE KEY-----.M|
			+ 00000020  48 63 43 41 51 45 45 49  50 76 32 71 63 46 6f 4f  |HcCAQEEIPv2qcFoO|
			+ 00000030  79 34 65 6e 4a 59 2b 45  39 7a 62 62 7a 63 4b 72  |y4enJY+E9zbbzcKr|
			+ 00000040  5a 4d 6c 73 34 43 44 48  77 62 6e 2f 38 49 74 61  |ZMls4CDHwbn/8Ita|
			+ 00000050  63 79 73 6f 41 6f 47 43  43 71 47 53 4d 34 39 0a  |cysoAoGCCqGSM49.|
			+ 00000060  41 77 45 48 6f 55 51 44  51 67 41 45 48 54 34 63  |AwEHoUQDQgAEHT4c|
			+ 00000070  6e 55 4d 44 58 7a 33 58  6b 68 37 6c 57 68 49 2b  |nUMDXz3Xkh7lWhI+|
			+ 00000080  53 47 56 57 36 4b 41 74  6d 7a 64 76 32 6a 42 6d  |SGVW6KAtmzdv2jBm|
			+ 00000090  42 57 6d 5a 52 32 34 4f  44 77 38 4c 6e 35 44 4b  |BWmZR24ODw8Ln5DK|
			+ 000000a0  0a 48 56 43 5a 32 67 6d  4c 73 36 67 69 4b 48 73  |.HVCZ2gmLs6giKHs|
			+ 000000b0  31 69 31 6a 36 56 49 69  55 62 4b 30 49 31 79 55  |1i1j6VIiUbK0I1yU|
			+ 000000c0  45 47 77 3d 3d 0a 2d 2d  2d 2d 2d 45 4e 44 20 45  |EGw==.-----END E|
			+ 000000d0  43 20 50 52 49 56 41 54  45 20 4b 45 59 2d 2d 2d  |C PRIVATE KEY---|
			+ 000000e0  2d 2d 0a                                          |--.|
			 }
	Messages:	Nodes already in rotate state, even if they currently have the correct TLS issuer, will be left in the rotate state even if root rotation is aborted because we don't know if they're already in the process of getting a new cert.  Even if they're issued by a different issuer, they will be left alone because they'll have an interemdiate that chains up to the old issuer.

This test seems sensitive to leader changes:

--- FAIL: TestRootRotationReconciliationNoChanges (3.05s)
...

Strangely, it looks like this test is not using Raft. I see it is based on TestCA, which appears to use a store with MockProposer. So maybe this test is just flaky on its own?

 This seems to be working consistently now. The only failures I found looked like they were unrelated, and I filed bugs for them.
PTAL

Forgot to mention that I also tested it with Docker's integration tests, and except for an issue in one test (https://github.com/moby/moby/pull/32824), everything passed.


HHH-15382 CockroachDB doesn't support value propagation

Minor fix

It's related to all CockroachDB versions


Can't make any get or post calls from notifications.

I am using the latest bosun version using docker and i am trying to make a http request (tried both get and post calls) though notifications. But when i do this, every thing works fine except the http call doesn't happen.
tsdbHost = localhost:4242
stateFile = /data/bosun.state

template test {
	subject = {{.Last.Status}}: {{.Alert.Name}} on {{.Group.host}}
	body = `
Alert: {{.Alert.Name}} triggered on {{.Group.host}}

Computation

		{{range .Computations}}

{{.Text}}	{{.Value}}

		{{end}}

	{{ .Graph .Alert.Vars.metric }}

Relevant Tags

		{{range $k, $v := .Group}}

{{$k}}	{{$v}}

		{{end}}

`
}

notification chat {
    get = http://doors.sokrati.com/smblauncher/client_configuration/get_client_configuration?client_id=15393
}

alert cpu.is.too.high {
	template = test
	$metric = q("sum:rate{counter,,1}:os.cpu{host=fa221ce55ab5}", "1h", "")
	$avgcpu = avg($metric)
	crit = $avgcpu > 0
	warn = $avgcpu > 0
    critNotification = chat
}

Please help me in identifying the issue here.

You will need to check the logs for more details. Assuming you are using the stackexchange/bosun image, and that the container was named bosun when you started it (check this using the docker ps command) you can use the following to display the last 5000 lines in the stderr and stdout log files:
docker exec -it bosun bash -c 'tail -n 5000 /var/log/supervisor/bosun*'
It should show the alert triggering and the notification being sent, or an error message if there were any issues. If you aren't using the stackexchange/bosun image then you can check for the log files in /var/log/bosun or in the syslog.

I am using stackexchange/bosun image.
As for the logs, I have been checking the logs from the beginning and I cant seem to find any error there. Below is the log output.
Starting proxy error or queue error are because I restarted the bosun container. Later you will see that, there are no errors and still the http call is not made.
==> /var/log/supervisor/bosun-stderr---supervisor-5mnO_g.log <==
2015/06/16 05:45:08 could not open syslog: Unix syslog delivery error
2015/06/16 05:45:08 RestoreState
2015/06/16 05:45:08 RestoreState done in 24.930175ms
2015/06/16 05:45:08 starting check
2015/06/16 05:45:08 check alert cpu.is.too.high start
2015/06/16 05:45:08 Post http://localhost:4242/api/query: dial tcp <IP_ADDRESS>:4242: connection refused
2015/06/16 05:45:08 check alert cpu.is.too.high done (1.478921ms): 0 crits, 0 warns, 0 unevaluated, 0 unknown
2015/06/16 05:45:08 bosun web listening on: :8070
2015/06/16 05:45:08 tsdb host: localhost:4242
2015/06/16 05:45:08 check took 1.535013ms
2015/06/16 05:45:09 http: proxy error: dial tcp <IP_ADDRESS>:4242: connection refused
2015/06/16 05:45:09 error: queue.go:103: 500 Internal Server Error
2015/06/16 05:45:09 info: queue.go:124: restored 5, sleeping 5s
2015/06/16 05:45:13 http: proxy error: dial tcp <IP_ADDRESS>:4242: connection refused
2015/06/16 05:45:13 wrote tagk: 19.65KB
2015/06/16 05:45:13 wrote metrictags: 93.92KB
2015/06/16 05:45:13 wrote status: 19.85KB
2015/06/16 05:45:13 wrote metadata: 86.32KB
2015/06/16 05:45:13 wrote metric: 30.59KB
2015/06/16 05:45:13 wrote tagv: 37.43KB
2015/06/16 05:45:13 wrote notifications: 54.00B
2015/06/16 05:45:13 wrote silence: 125.00B
2015/06/16 05:45:13 wrote incidents: 131.00B
2015/06/16 05:45:13 save to db complete
2015/06/16 05:45:14 http: proxy error: dial tcp <IP_ADDRESS>:4242: connection refused
2015/06/16 05:45:14 error: queue.go:103: 500 Internal Server Error
2015/06/16 05:45:14 info: queue.go:124: restored 5, sleeping 5s
2015/06/16 05:45:18 http: proxy error: dial tcp <IP_ADDRESS>:4242: connection refused
2015/06/16 05:45:19 http: proxy error: dial tcp <IP_ADDRESS>:4242: connection refused
2015/06/16 05:45:19 error: queue.go:103: 500 Internal Server Error
2015/06/16 05:45:19 info: queue.go:124: restored 5, sleeping 5s
2015/06/16 05:45:23 http: proxy error: dial tcp <IP_ADDRESS>:4242: connection refused
2015/06/16 05:45:24 http: proxy error: dial tcp <IP_ADDRESS>:4242: connection refused
2015/06/16 05:45:24 error: queue.go:103: 500 Internal Server Error
2015/06/16 05:45:24 info: queue.go:124: restored 42, sleeping 5s
2015/06/16 05:46:11 check alert cpu.is.too.high start
2015/06/16 05:46:11 check alert cpu.is.too.high done (125.727407ms): 1 crits, 0 warns, 0 unevaluated, 0 unknown
2015/06/16 05:46:16 wrote silence: 125.00B
2015/06/16 05:46:16 wrote metadata: 86.32KB
2015/06/16 05:46:16 wrote tagk: 19.95KB
2015/06/16 05:46:16 wrote tagv: 38.37KB
2015/06/16 05:46:16 wrote metrictags: 96.56KB
2015/06/16 05:46:16 wrote notifications: 54.00B
2015/06/16 05:46:16 wrote status: 74.67KB
2015/06/16 05:46:16 wrote incidents: 188.00B
2015/06/16 05:46:16 wrote metric: 31.68KB
2015/06/16 05:46:16 save to db complete
2015/06/16 05:46:21 check alert cpu.is.too.high start
2015/06/16 05:46:21 check alert cpu.is.too.high done (19.703004ms): 1 crits, 0 warns, 0 unevaluated, 0 unknown
2015/06/16 05:46:26 wrote metadata: 86.32KB
2015/06/16 05:46:26 wrote tagk: 19.95KB
2015/06/16 05:46:26 wrote tagv: 38.37KB
2015/06/16 05:46:26 wrote metrictags: 96.56KB
2015/06/16 05:46:26 wrote notifications: 54.00B
2015/06/16 05:46:26 wrote silence: 125.00B
2015/06/16 05:46:26 wrote metric: 31.68KB
2015/06/16 05:46:26 wrote status: 74.67KB
2015/06/16 05:46:26 wrote incidents: 188.00B
2015/06/16 05:46:26 save to db complete
2015/06/16 05:47:13 check alert cpu.is.too.high start
2015/06/16 05:47:13 check alert cpu.is.too.high done (22.675663ms): 1 crits, 0 warns, 0 unevaluated, 0 unknown
2015/06/16 05:47:18 wrote metrictags: 96.56KB
2015/06/16 05:47:18 wrote silence: 125.00B
2015/06/16 05:47:18 wrote incidents: 188.00B
2015/06/16 05:47:18 wrote metric: 31.68KB
2015/06/16 05:47:18 wrote tagv: 38.37KB
2015/06/16 05:47:18 wrote status: 76.90KB
2015/06/16 05:47:18 wrote metadata: 86.32KB
2015/06/16 05:47:18 wrote tagk: 19.95KB
2015/06/16 05:47:18 wrote notifications: 54.00B
2015/06/16 05:47:18 save to db complete
2015/06/16 05:47:35 check alert cpu.is.too.high start
2015/06/16 05:47:35 check alert cpu.is.too.high done (16.761656ms): 1 crits, 0 warns, 0 unevaluated, 0 unknown
2015/06/16 05:47:40 wrote tagk: 19.95KB
2015/06/16 05:47:40 wrote tagv: 38.37KB
2015/06/16 05:47:40 wrote metrictags: 96.56KB
2015/06/16 05:47:40 wrote silence: 125.00B
2015/06/16 05:47:40 wrote metadata: 86.32KB
2015/06/16 05:47:40 wrote incidents: 188.00B
2015/06/16 05:47:40 wrote metric: 31.68KB
2015/06/16 05:47:40 wrote status: 77.43KB
2015/06/16 05:47:40 wrote notifications: 54.00B
2015/06/16 05:47:40 save to db complete

==> /var/log/supervisor/bosun-stdout---supervisor-_oEryJ.log <==

hmm... usually there would be a line where indicates it is relaying the alert to the chat notification. try changing get = http://... to print = true which will just print the alert in the logs.

Actually, is the alert still active or has it toggled from active to inactive and been closed? The notification will only trigger once per each incident, so until it goes inactive and you close the incident on the dashboard it won't re-trigger the notification. See http://bosun.org/usage.html for details about the alert workflow and state.
There is a way to get an alert to always trigger a notification and side step the "incident workflow" by using the log = true keyword as documented at http://bosun.org/configuration.html#alert . We only use log alerts in a few cases where we want the notification to always fire and not follow the standard workflow.

Great thanks. Figured out the issue. My url was malformed.
Thanks @gbrayut for your help.


feat: multi-PWA container build with runtime theme switching

PR Type
[x] Feature
[x] Refactoring (no functional changes, no API changes)
[x] Build-related changes
[x] CI-related changes
[x] Documentation content changes
[x] Application / infrastructure changes
What Is the Current Behavior?
The Intershop PWA only supports building one Angular application in the Docker image and uses runtime theming for switching brands. This way component overrides cannot be used automatically.
What Is the New Behavior?

Build and deploy multiple PWA configurations into the Docker image
PM2 for process management
external stateful Prometheus service instead of stateful SSR process

Does this PR Introduce a Breaking Change?
[x] Yes
[ ] No
Other Information
breaking change notice for squash commit:
  BREAKING CHANGE: build process in docker image was enhanced to enable multiple configurations at runtime.

AB#64624

@jometzner @shauke I rebased upon #630 due to performance test issue that was caused by #624

Thanks. I'm currently deploying that into our INT system. I'll keep you posted


Life as a teacher footer navigation component

Trello card
https://trello.com/c/Jd9HvLCS/6406-phase-5-repurpose-navigation-component-for-life-as-a-teacher-section
Context
Repurpose the navigation component used on the homepage to be used throughout the pages within the Life as a teacher section
Ensure that the component is updatable - eg. It’s the same on all pages and we only have to update it in once place, rather than on each page
Changes proposed in this pull request
Duplicated the directory file used on the homepage and added to the life as a teacher section. updated pages with the component in the section

@jenhadfield-dfe can this PR be closed now?


XSS Vulnerability in /readfile.php

How to reproduce:

Upload poc.html to your disk.
poc.html
<script>alert(1)</script>
Make poc.html public.
Get the link to poc.html, eg.
http://localhost/readfile.php/poc.html?id=1966eed0e8227328b9007838f43185ff694578ad&password=7dced87b7273eb62c3832e0cc07eb857e93f083b
XSS would be triggered once user visit the link above.

You uploaded that html file by yourself...
What it shows is what you uploaded!
If you don't know what is in the file why you still upload it?
Besides, what this function wants to do just making users view files easily,right?


Graphical glitches are often visible on screen

Hyprland Version
 System/Version info
Hyprland, built from branch main at commit d9757b61bfb7dcfaf3d903092435a1aaff52b7ed dirty (xdg: manually schedule initial configures).
Date: Thu Feb 22 18:33:23 2024
Tag: v0.35.0-78-gd9757b61

flags: (if any)

System Information:
System name: Linux
Node name: dell-xps
Release: 6.7.5-zen1-1.1-zen
Version: #1 ZEN SMP PREEMPT_DYNAMIC Sat, 17 Feb 2024 20:06:55 +0000

GPU information:
00:02.0 VGA compatible controller [0300]: Intel Corporation Alder Lake-P GT2 [Iris Xe Graphics] [8086:46a6] (rev 0c) (prog-if 00 [VGA controller])

os-release: NAME="Arch Linux"
PRETTY_NAME="Arch Linux"
ID=arch
BUILD_ID=rolling
ANSI_COLOR="38;2;23;147;209"
HOME_URL="https://archlinux.org/"
DOCUMENTATION_URL="https://wiki.archlinux.org/"
SUPPORT_URL="https://bbs.archlinux.org/"
BUG_REPORT_URL="https://gitlab.archlinux.org/groups/archlinux/-/issues"
PRIVACY_POLICY_URL="https://terms.archlinux.org/docs/privacy-policy/"
LOGO=archlinux-logo

plugins:

Bug or Regression?
Bug
Description
sometimes, when opening or closing a window, weird graphical glitches appear. those glitches usually consist in some formation of randomly placed randomly colored pixels in a selected area (usually rectangles, about ~40% of pixels appear glitched).
This is what this issue looks like, most of the time (similar glitches sometimes appear in smaller parts of the screen). It shows part of the window that was previously open, even though it might not even exist anymore. Also, as can be seen from this video, the opening time of firefox is a lot longer when the glitch appears (it should always be nearly instantaneous).
Although this could be fairly random, only using the laptop's screen seems to generate those glitches more consistently. A glitch that is always seen in that scenario is a weird grey box in the bottom left corner (possibly because of the taller aspect ratio? check the second video)
How to reproduce
Open a window. Close it. Open another window. Sometimes, a glitched version of the old window will be seen before the new one appears
Crash reports, logs, images, videos
All that was done in this session was opening a window, closing it, and repeating a few times (firefox or kitty), then logging out
hyprland.log
Recording one of my 2 external screens (0x0 in a setup with two 1920x1080 displays):
https://github.com/hyprwm/Hyprland/assets/84153269/10d256f5-774f-4e15-aa39-83181726901b
Uncompressed video, yeah, its imgur, sorry, feel free to recommend anything else and I'll repost it using that asap
Recording the laptop's internal screen (0x0 in a single 1920x1200 setup, using my phone as nothing would appear when using obs, except the extremely delayed startup):
https://github.com/hyprwm/Hyprland/assets/84153269/81833132-7356-46f5-af1c-aa1f0dcdf975
Uncompressed video, yeah, its imgur again, sorry

do they go away if you have a non-xray blurred, floating window?

patch69.txt
try this.

patch69.txt
how

should be gone with 8c3613632a6ccebf9fb797ec756ecfce99514eec

should be gone with 8c36136

haven't faced it yet after this commit.


Add new plugin to allow one to disable ZIP generation on a per album basis

Heavily inspired by the .nomedia file, this patch introduces a new plugin called nozip_gallery.
If zip_gallery is enabled, this plugin allows to control on a per album basis if a ZIP file should be generated or not.
It currently uses a .nozip_gallery file (empty or not) to achieve such behavior.
The motivation behind this plugin is:

disable ZIP file generation for my very old photo albums
enable ZIP file generation for my recent photo albums

Note:
Another solution would have been to rely on the album index.md file with a GenerateZIP: true / false setting.
I've chosen to use a .nozip_gallery file like the .nomedia file for consistency.

Hi,
Thanks for the PR, and sorry for the delay. This would indeed be a nice feature to have. Thinking about it, we could maybe move the zip feature to the plugin, that would then take care of adding the zip method to the albums when the plugin is activated and when the special file does not exists. Would you be interested to have a look at this?
Also it will need some unit tests :)

Hi, my turn to take a long time to respond, sorry about that.
I've made some modifications and moved the whole zip generation logic to a zip_gallery plugin.
Is this what you meant / wanted ?
About the unit tests, I'll see if I can find some time to write them. Before going further, I want to be sure that we're on the same page about the zip logic modifications that I've made in fc14de3872a0fdf26e1c366fa7bdf287ea1ad69d

BTW @saimn , just noticed that you're from Lyon. If you want to meet and discuss further in real life next to a beer or so, I'd be glad :wink:

Thanks @riton , I think this is a very nice improvement!
For the test, there is already a test_zip.py file, so the easiest would to add a "nozip" file in some directory in tests/sample/pictures, and check that the zip archive for this directory is not created (in test_zipped_correctly).
And yes, I would be happy to have a beer in Lyon :)

@saimn  I've made some quick modifications following your suggestions. Still no unit tests for now.

@riton - Could you have a look at the test to see why it is failing ?

Hi @riton ,
I have finalized the PR with the tests and a few details, so this is now good to go. Thanks for your work !


Create project-board for prioritization

Good idea 👍

Done, I will start adding the issues https://github.com/EddieHubCommunity/api/projects/1?add_cards_query=is%3Aopen


malformed auth challenge header error

Hello,
When I use curl or wget I can connect to our registry, e.g.,
$ curl -u myuser:mypass -D - https://docker.wyplay.com/v2/
HTTP/1.1 200 OK
Content-Length: 2
Content-Type: application/json; charset=utf-8
Docker-Distribution-Api-Version: registry/2.0
X-Content-Type-Options: nosniff
Date: Fri, 10 Mar 2017 16:16:05 GMT
{}

But when I use reg, I have the following error (with or without -k):
$ reg -d -u myuser -p mypass list
2017/03/10 17:16:03 registry.ping url=https://docker.wyplay.com/v2/
Get https://docker.wyplay.com/v2/: malformed auth challenge header: 'Basic realm="Registry Realm"'
[...]

Do I need to modify something on the server? I am using a registry:2.5.1 image.

Weird what type of auth is on your server
On Fri, Mar 10, 2017, 08:29 Christophe Muller<EMAIL_ADDRESS>wrote:

Hello,
When I use curl or wget I can connect to our registry, e.g.,
$ curl -u myuser:mypass -D - https://docker.wyplay.com/v2/
HTTP/1.1 https://docker.wyplay.com/v2/HTTP/1.1 200 OK
Content-Length: 2
Content-Type: application/json; charset=utf-8
Docker-Distribution-Api-Version: registry/2.0
X-Content-Type-Options: nosniff
Date: Fri, 10 Mar 2017 16:16:05 GMT
{}
But when I use reg, I have the following error (with or without -k):
$ reg -d -u myuser -p mypass list
2017/03/10 17:16:03 registry.ping url=https://docker.wyplay.com/v2/
Get https://docker.wyplay.com/v2/: malformed auth challenge header: 'Basic realm="Registry Realm"'
[...]
Do I need to modify something on the server? I am using a registry:2.5.1
image.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/jessfraz/reg/issues/10, or mute the thread
https://github.com/notifications/unsubscribe-auth/ABYNbCbjoiKDDjJ4_pzyhuY-OkXdDgmrks5rkXpkgaJpZM4MZlio
.

Humm.. I think I followed the doc here: https://docs.docker.com/registry/deploying/#native-basic-auth
so with REGISTRY_AUTH=htpasswd, REGISTRY_AUTH_HTPASSWD_REALM=Registry Realm, and REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd and just an apache-style unique account.

Those environment variables don't carry over here you need to pass via flags
On Fri, Mar 10, 2017, 14:08 Christophe Muller<EMAIL_ADDRESS>wrote:

Humm.. I think I followed the doc here:
https://docs.docker.com/registry/deploying/#native-basic-auth
so with REGISTRY_AUTH=htpasswd, REGISTRY_AUTH_HTPASSWD_REALM=Registry
Realm, and REGISTRY_AUTH_HTPASSWD_PATH=/auth/htpasswd and just an
apache-style unique account.
—
You are receiving this because you commented.
Reply to this email directly, view it on GitHub
https://github.com/jessfraz/reg/issues/10#issuecomment-285756987, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABYNbGEz5sKBkCdtNNYg0rkEMKrodOh5ks5rkZ-ZgaJpZM4MZlio
.

Those variables have been passed with the environment: section of my docker-compose.yml file. Isn't it the same as using the -e flag? Besides, auth is working well for docker login and push/pull commands, but not for reg. Below is my complete docker-compose.yml:
registry-data:
  image: busybox:latest
  volumes:
    - /opt/registry-data:/var/lib/registry
  command: /bin/echo

registry:
  image: registry:2.5.1
  container_name: registry
  restart: always
  environment:
    REGISTRY_HTTP_TLS_CERTIFICATE: /certs/wyplay.crt
    REGISTRY_HTTP_TLS_KEY: /certs/wyplay.key
    REGISTRY_STORAGE_FILESYSTEM_ROOTDIRECTORY: /var/lib/registry
    REGISTRY_AUTH: htpasswd
    REGISTRY_AUTH_HTPASSWD_PATH: /auth/htpasswd
    REGISTRY_AUTH_HTPASSWD_REALM: Registry Realm
  ports:
    - 443:5000
  volumes_from:
    - registry-data
  volumes:
    - /etc/pki/tls/certs:/certs
    - /opt/etc/auth:/auth
    - /opt/etc/config.yml:/etc/docker/registry/config.yml

Wegen you do a docker Login First, is the User/Pass args still required?
I geht the Dame error in Usingen your req docker Container

My docker-compose looks like
`   docker_frontend:
restart: always
image: r.j3ss.co/reg-server
container_name: reg-server
to debug expose ports - otherwise behind nginx
   ports:
      - 8080:8080
   depends_on:
      - docker_registry
   networks:
      - docker
      - proxy
   command: --debug --registry r.nitram.at  --username $REGUSER --password $REGPWD

docker_registry:
    restart: always
    image: registry:2
    container_name: docker_registry
    volumes:
        - ./certs/docker_registry:/certs
        - ./docker_registry/data:/var/lib/registry
        - ./docker_registry/config:/config
    environment:
        - REGISTRY_HTTP_TLS_CERTIFICATE=/certs/fullchain1.pem
        - REGISTRY_HTTP_TLS_KEY=/certs/privkey1.pem
        - REGISTRY_STORAGE_DELETE_ENABLED=True
        - REGISTRY_AUTH=htpasswd
        - REGISTRY_AUTH_HTPASSWD_REALM=r.nitram.at
        - REGISTRY_AUTH_HTPASSWD_PATH=/config/htpasswd
    networks:
        - docker
        - proxy

`
My reg call looks like
docker run -it --rm \ 	    -v ${HOME}/.docker:/root/.docker \ 		r.j3ss.co/reg \         -r r.nitram.at \         ls
When i remove the REGISTRY_AUTH from the registry, both works - the reg-server and the reg command.

@jessfraz  any idea how to debug this?

I wanted to try reg and ran into the same problem.  curl -I on my registry returns:
HTTP/1.1 401 Unauthorized
Content-Type: application/json; charset=utf-8
Docker-Distribution-Api-Version: registry/2.0
Www-Authenticate: Basic realm="Registry"
X-Content-Type-Options: nosniff
Date: Tue, 04 Apr 2017 10:16:15 GMT
Content-Length: 87

and that’s straight from the official Docker registry.
Browsing through the code with my feeble Go skills leads me to believe, that something confuses reg to use tokentransport instead of basictransport?

The official docker registry would not be using basic auth fwiw, that uses
token.
On Apr 4, 2017 3:22 AM, "Hynek Schlawack"<EMAIL_ADDRESS>wrote:

I wanted to try reg and ran into the same problem. curl -I on my registry
returns:
HTTP/1.1 401 Unauthorized
Content-Type: application/json; charset=utf-8
Docker-Distribution-Api-Version: registry/2.0
Www-Authenticate: Basic realm="Registry"
X-Content-Type-Options: nosniff
Date: Tue, 04 Apr 2017 10:16:15 GMT
Content-Length: 87
and that’s straight from the official Docker registry.
Browsing through the code with my feeble Go skills leads me to believe,
that something confuses reg to use tokentransport instead of
basictransport?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jessfraz/reg/issues/10#issuecomment-291458335, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABYNbN_CrMH6BpARop4AP5cVkvNyZnKZks5rshnzgaJpZM4MZlio
.

Also the official docker registry will not let you get the catalog, which
is "list all images" it's only a feature on private registries
On Apr 4, 2017 4:51 AM, "Jessica Frazelle"<EMAIL_ADDRESS>wrote:

The official docker registry would not be using basic auth fwiw, that uses
token.
On Apr 4, 2017 3:22 AM, "Hynek Schlawack"<EMAIL_ADDRESS>wrote:

I wanted to try reg and ran into the same problem. curl -I on my
registry returns:
HTTP/1.1 401 Unauthorized
Content-Type: application/json; charset=utf-8
Docker-Distribution-Api-Version: registry/2.0
Www-Authenticate: Basic realm="Registry"
X-Content-Type-Options: nosniff
Date: Tue, 04 Apr 2017 10:16:15 GMT
Content-Length: 87
and that’s straight from the official Docker registry.
Browsing through the code with my feeble Go skills leads me to believe,
that something confuses reg to use tokentransport instead of
basictransport?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jessfraz/reg/issues/10#issuecomment-291458335, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABYNbN_CrMH6BpARop4AP5cVkvNyZnKZks5rshnzgaJpZM4MZlio
.

Sorry I was unclear!  I didn’t mean Docker.com’s registry, I meant the official docker registry container.   Auth is configured as:
auth:
  htpasswd:
    realm: Registry
    path: /etc/docker/registry/htpasswd

which results in basic auth.

Ah gotcha yeah there must be something wrong with the transports
unfortunately my registry is not basic, but I'll try to spin one up to try
On Apr 4, 2017 5:16 AM, "Hynek Schlawack"<EMAIL_ADDRESS>wrote:

Sorry I was unclear! I didn’t mean Docker.com’s registry, I meant the
official docker registry container https://hub.docker.com/_/registry/.
Auth is configured as:
auth:
htpasswd:
realm: Registry
path: /etc/docker/registry/htpasswd
which results in basic auth.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jessfraz/reg/issues/10#issuecomment-291481754, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABYNbLI7jaiJKQFVc54kxD-XBDpow5kMks5rsjSVgaJpZM4MZlio
.

Ah gotcha yeah there must be something wrong with the transports
unfortunately my registry is not basic, but I'll try to spin one up to try

Cool!   Let me know if you need something.

I had to use the full uri to get the reg-server working with my basic auth registry not only the fqdn

Great workaround @mabunixda ! Thanks a lot.
reg -u ... -p ... list -> malformed auth challenge header
but:
reg --registry https://docker.wyplay.com -u ... -p ... list -> works!
Thanks :+1:

Then that's not a work around... It just seems the input was incorrect
On Apr 6, 2017 07:06, "Christophe Muller"<EMAIL_ADDRESS>wrote:

Great workaround @mabunixda https://github.com/mabunixda ! Thanks a lot.
reg -u ... -p ... list -> malformed auth challenge header
but:
reg --registry https://docker.wyplay.com -u ... -p ... list -> works!
Thanks 👍
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jessfraz/reg/issues/10#issuecomment-292140883, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABYNbO41gY52ScEIwEAmhJ0wPYkwjU5bks5rtMclgaJpZM4MZlio
.

Oh so it is mandatory to use the --registry/-r option? my mistake then, sorry about that.
It happens to find its way probably using the login credentials (in .docker/config.json).
Is it ok for @hynek as well? If so I can close this issue.

If you have multiple registries then you need to designate which one you
mean otherwise it will try the first one which was probably docker hub
On Apr 6, 2017 07:35, "Christophe Muller"<EMAIL_ADDRESS>wrote:
Oh so it is mandatory to use the --registry/-r option? my mistake then,
sorry about that.
It happens to find its way probably using the login credentials (in
.docker/config.json).
Is it ok for @hynek https://github.com/hynek as well? If so I can close
this issue.
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jessfraz/reg/issues/10#issuecomment-292146831, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABYNbPT1q4vIqJljSeX8hX0z9gtgKW7mks5rtM4WgaJpZM4MZlio
.

Yes it works for me.  I didn’t want to spam so I just pressed 👍 on the comment.  I was under the impression that the https:// prefix gets regularly normalized away. 🤔

So it was just that I forgot the --registry option and you forgot the protocol in the uri. :)
I close this bug. Sorry about the time spent @jessfraz and thanks for the tool :smiley:

I may be missing something but the README uses $ reg -r r.j3ss.co ls as an example, so it seems totally reasonable to me to leave out the https:// prefix?  ISTM that something should be fixed, or am I misunderstanding something completely?

It depends how your config says your registry
On Apr 18, 2017 04:40, "Hynek Schlawack"<EMAIL_ADDRESS>wrote:

I may be missing something but the README uses $ reg -r r.j3ss.co ls as
an example, so it seems totally reasonable to me to leave out the https://
prefix? ISTM that something should be fixed, or am I misunderstanding
something completely?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jessfraz/reg/issues/10#issuecomment-294731373, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABYNbA8gzVMMh-ZespIsEmzaw530Z50Eks5rxHbigaJpZM4MZlio
.

Do you mean ~/.docker/config.json → "auths"?
Because I have both versions there (once with https:// prefix and once without):
{
	"auths": {
		"docker.vm.ag": {
			"auth": "[redacted]"
		},
                "https://docker.vm.ag/": {
			"auth": "[redacted]"
		}
	},
	"HttpHeaders": {
		"User-Agent": "Docker-Client/1.13.1 (darwin)"
	}
}

and that gives me the behavior I mentioned before:
reg -r https://docker.vm.ag/ -d ls works
2017/04/18 14:59:49 registry.ping url=https://docker.vm.ag/v2/
2017/04/18 14:59:49 registry.catalog url=https://docker.vm.ag/v2/_catalog
Repositories for https://docker.vm.ag/
[contents]

reg -r docker.vm.ag -d ls gives me
2017/04/18 14:58:12 registry.ping url=https://docker.vm.ag/v2/
Get https://docker.vm.ag/v2/: malformed auth challenge header: 'Basic realm="Registry"'

NAME:
   reg - Docker registry v2 client.
[usage]

So from your comment I take both should work (and therefore this bug should be re-opened)?

want to fix it? I unfortunately don't have time? seems to be a reading
config issue.
On Tue, Apr 18, 2017 at 9:02 AM, Hynek Schlawack<EMAIL_ADDRESS>wrote:

Do you mean ~/.docker/config.json → "auths"?
Because I have both versions there (once with https:// prefix and once
without):
{
"auths": {
"docker.vm.ag": {
"auth": "[redacted]"
},
"https://docker.vm.ag/": {
"auth": "[redacted]"
}
},
"HttpHeaders": {
"User-Agent": "Docker-Client/1.13.1 (darwin)"
}
}
and that gives me the behavior I mentioned before:
reg -r https://docker.vm.ag/ -d ls works
2017/04/18 14:59:49 registry.ping url=https://docker.vm.ag/v2/
2017/04/18 https://docker.vm.ag/v2/2017/04/18 14:59:49 registry.catalog url=https://docker.vm.ag/v2/_catalog
Repositories for https://docker.vm.ag/
[contents]
reg -r docker.vm.ag -d ls gives me
2017/04/18 14:58:12 registry.ping url=https://docker.vm.ag/v2/
Get https://docker.vm.ag/v2/: malformed auth challenge header: 'Basic realm="Registry"'
NAME:
reg - Docker registry v2 client.
[usage]
So from your comment I take both should work (and therefore this bug
should be re-opened)?
—
You are receiving this because you were mentioned.
Reply to this email directly, view it on GitHub
https://github.com/jessfraz/reg/issues/10#issuecomment-294833535, or mute
the thread
https://github.com/notifications/unsubscribe-auth/ABYNbK1SfGz0j2W6GODpWBoFK0hCeDTqks5rxLRugaJpZM4MZlio
.

--
Jessie Frazelle
4096R / D4C4 DD60 0D66 F65A 8EFC  511E 18F3 685C 0022 BFF3
pgp.mit.edu http://pgp.mit.edu/pks/lookup?op=get&search=0x18F3685C0022BFF3


Remove echo and change hardcoded names to use config #14

Fixes #14.
So you don't get spammed

I think you should create an issue first. But we don't have a guide for contributors so watever.

Changes made @LowWeiLin

@dariusf please decide the fate of this PR, since you are already working on it.

I'm working on generalising the config (getting it from a .hubturbot file from the repo). First commit is fine though, don't need it to test any more :+1:


Switch to using ci-helpers for CI

Coverage decreased (-27.4%) to 72.65% when pulling e61e083e039ae6d0cee63e21fd2226e26dc745e5 on use-ci-helpers into 8e653a2d3d7f8792870fa3150423a739363a860b on master.


Prevent inspect on PsCredential from printing out plain text password

See the following use of a DSC resource -- note that it dumps out the password (which itself was not obvious in the code because an environment variable was used to obtain it). On failure (failure was expected in this case), the password, in this case '\sea-adamed1', is displayed on the screen.
    Resource Declaration:
    ---------------------
    # In C:\test\chefdsc\ps5dscuser.rb

      4: dsc_resource 'Create Test User' do
      5:   resource :user
      6:   #  property :username, 'testuserps5'
      7:   property :username, 'testuserps5__\\'
      8:   property :password, ps_credential(ENV['COMPUTERNAME'])
      9:   property :ensure, 'Present'
     10: end
     11:

    Compiled Resource:
    ------------------
    # Declared in C:\test\chefdsc\ps5dscuser.rb:4:in `run_chef_recipe'

    dsc_resource("Create Test User") do
      action [:run]
      retries 0
      retry_delay 2
      default_guard_interpreter :default
      properties {:username=>"testuserps5__\\", :password=>#<Chef::Util::Powershell::PSCredential:0x75c5088 @username="placeholder", @password="SEA-ADAMED1">, :ensure=>"Present"}
      resource :user
      declared_type :dsc_resource
      cookbook_name "(chef-apply cookbook)"
      recipe_name "(chef-apply recipe)"
    end

With this change:
    Resource Declaration:
    ---------------------
    # In .\foo.rb

      1: dsc_resource 'Create Test User' do
      2:   resource :user
      3:   property :username, 'testuserps5__\\'
      4:   property :password, ps_credential(ENV['COMPUTERNAME'])
      5:   property :ensure, 'Present'
      6: end

    Compiled Resource:
    ------------------
    # Declared in .\foo.rb:1:in `run_chef_recipe'

    dsc_resource("Create Test User") do
      action [:run]
      retries 0
      retry_delay 2
      default_guard_interpreter :default
      properties {:username=>"testuserps5__\\", :password=>New-Object System.Management.Automation.PSCredential('placeholder',('01000000d08c9ddf0115d1118c7a00c04fc297eb010000006083790c2fc2a24c946799335d38282b0400000002000000000010660000000100002000000086b05f5a3d8ba25dcf328f5cce1bab8343b4ebc981947f186ebb0f215bba0e1b000000000e800000000200002000000060624c80a246a5e8374fb5e9d9aa87129d16a5afd65eab7ca10942a68a4d8b9f3000000082ae38decc68a5f8ee03914b5a4b7cb72683c7ab31be65443e932646b99f82639ae112d90b81cdeaa11edc81cccc73e84000000025cc0420658c4c9e72a355a0262a2b1e9dbac9ccbaedfd2e1d87e9ab27e73950261ffc4d2dd350d27b51e14adc2afc9e8a78935ec4d83c12112916f8353840b7' | ConvertTo-SecureString)), :ensure=>"Present"}
      resource :user
      reboot_action :nothing
      declared_type :dsc_resource
      cookbook_name "(chef-apply cookbook)"
      recipe_name "(chef-apply recipe)"
    end

cc @adamedx @chef/client-windows

Do we care about to_text? (read: can this end up as something displayed from a resource?)

@coderanger there wont be any calls to to_text on this object as it is not a resource. However, this change comes about because this object can be owned by a resource. Being that this describes a password (or has one), we shouldn't let people print it out. Basically, it implicitly marks the field on the resource as sensitive. I'll add a better description... see if I described what you were looking for

Is there a specific case where #inspect is being called, such as debugging output?  In this case, ps credential is used on dsc_resource and dsc_script, so if either of those were provided a ps_credential and not marked as sensitive, they would print the password in plain text. I think this is one of those cases where we know the contents are sensitive, so we should treat it as such regardless of if the user marked their resource as sensitive.

:+1:

:+1:

@jaym My point was do we want to define to_text or inspect. Either would fix the Resource#to_text output to be redacted. Overriding inspect to be unlike most other objects seems worse but I'm not sure what case we are trying to protect.


Volume attachment doesn't work with examples/k8s/deploy/linstor-csi-1.16.yaml

Steps to reproduce

Apply fix from #39
kubectl apply -f linstor-csi-1.16.yaml
kubectl apply -f storage-class.yaml

apiVersion: storage.k8s.io/v1
kind: StorageClass
metadata:
  name: linstor-r1
parameters:
  autoPlace: "1"
  storagePool: linstor-pool
provisioner: linstor.csi.linbit.com

kubectl apply -f busybox.yaml

apiVersion: apps/v1
kind: StatefulSet
metadata:
  name: busybox
spec:
  selector:
    matchLabels:
      app: "busybox"
  serviceName: "default"
  replicas: 2
  template:
    metadata:
      labels:
        app: "busybox"
    spec:
      containers:
      - name: debian
        image: debian:9-slim
        command: ["/bin/sleep"]
        args: [ "3600" ]
        volumeMounts:
        - name: vol
          mountPath: /mnt
  volumeClaimTemplates:
  - metadata:
      name: vol
    spec:
      accessModes: ["ReadWriteOnce"]
      storageClassName: "linstor-r1"
      resources:
        requests:
          storage: 100Gi

kubectl describe pod busybox-0

Events:
  Type     Reason                  Age                  From                     Message
  ----     ------                  ----                 ----                     -------
  Warning  FailedMount             58m (x294 over 14h)  kubelet, es-101          Unable to attach or mount volumes: unmounted volumes=[vol], unattached volumes=[vol default-token-gfq6q]: timed out waiting for the condition
  Warning  FailedAttachVolume      58m (x210 over 14h)  attachdetach-controller  AttachVolume.Attach failed for volume "pvc-fea159a6-a8cd-4810-b15e-920bd421b180" : attachment timeout for volume pvc-fea159a6-a8cd-4810-b15e-920bd421b180
  Warning  FailedMount             54m (x77 over 14h)   kubelet, es-101          Unable to attach or mount volumes: unmounted volumes=[vol], unattached volumes=[default-token-gfq6q vol]: timed out waiting for the condition

kubectl logs linstor-csi-controller-0 csi-attacher -n kube-system

I1013 10:56:39.080950       1 csi_handler.go:412] Saving attach error to "csi-65c63822999778b93d5bf243cdb998d49d5c91dce9ad0b99c0e22e2f33c56769"
I1013 10:56:39.083240       1 csi_handler.go:123] Failed to save attach error to "csi-65c63822999778b93d5bf243cdb998d49d5c91dce9ad0b99c0e22e2f33c56769": volumeattachments.storage.k8s.io "csi-65c63822999778b93d5bf243cdb998d49d5c91dce9ad0b99c0e22e2f33c56769" is forbidden: User "system:serviceaccount:kube-system:linstor-csi-controller-sa" cannot patch resource "volumeattachments" in API group "storage.k8s.io" at the cluster scope
I1013 10:56:39.083266       1 csi_handler.go:99] Error processing "csi-65c63822999778b93d5bf243cdb998d49d5c91dce9ad0b99c0e22e2f33c56769": failed to attach: could not add PersistentVolume finalizer: persistentvolumes "pvc-fea159a6-a8cd-4810-b15e-920bd421b180" is forbidden: User "system:serviceaccount:kube-system:linstor-csi-controller-sa" cannot patch resource "persistentvolumes" in API group "" at the cluster scope

How to fix
Add patch permission for linstor-csi-attacher-role on persistentvolumes and  volumeattachments in linstor-csi-1.16.yaml like that:
kind: ClusterRole
apiVersion: rbac.authorization.k8s.io/v1
metadata:
  name: linstor-csi-attacher-role
rules:
  - apiGroups: [""]
    resources: ["persistentvolumes"]
    verbs: ["get", "list", "watch", "update", "patch"]
  - apiGroups: [""]
    resources: ["nodes"]
    verbs: ["get", "list", "watch"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["csinodes"]
    verbs: ["get", "list", "watch"]
  - apiGroups: ["storage.k8s.io"]
    resources: ["volumeattachments"]
    verbs: ["get", "list", "watch", "update", "patch"]

Hi @Settler I'm using 1.16 and I have no this issue, could you provide output of these two commands please:
kubectl version | grep Server

kubectl describe pod/linstor-csi-controller-0 -n kube-system | grep Image:

Hi @kvaps,
Unfortunately I finished my tests several weeks ago and I don't have this environment right now :(


Add support for subtractions contenting references as right hand side operands

Add support for subtractions contenting references as right hand side operands
Description
Right now, only additions are supported inside let expressions. Since the compiler simplifies the expression whenever it can, there would be no problem in let expressions which only use constants or even variables defined with the let keyword. However, when we use variables defined with the local keyword this is not the case anymore because in doing so we are introducing the use of references. Since references can only be resolved at running, the expression can't be simplified to a constant. Thus, only supporting additions would make expressiones like this one: 17 - [fp] to equivalent to 17 + [fp] because the sign of the reference is never taken into account.
This PR introduces a little refactor to allow subtractions with references as the rhs operand. It does it by saving the sign with which the reference is defined.
Checklist

[X] Linked to Github Issue
[X] Unit tests added
[ ] Integration tests added.
[ ] This change requires new documentation.

[ ] Documentation has been added/updated.
[X] CHANGELOG has been updated.

I think this is OK as it's a simple and fast fix, but we should create an issue to tackle the underlying problem later on: supporting arbitrary expressions like cairo-lang does. I think we would eventually need to define an AST for the expression.

Since the compiler simplifies the expression whenever it can, there would be no problem in let expressions which only use constants or even variables defined with the let keyword. However, when we use variables defined with the local keyword this is not the case anymore because in doing so we are introducing the use of references.

PR looks good but the description could be rephrased, I think it's not clear what's the issue. It can be simplified to something like:

The VM reads let expressions as c - tmp as an addition instead of a subtraction, where c is a constant and tmp is a local variable.

Then it can describe why this happens.
Also:

Thus, only supporting additions would make expressiones like this one: 17 - [fp] to equivalent to 17 + [fp] because the sign of the reference is never taken into account.

Is [fp] interpreted as a local variable?


Feature Request:  Emit 'end' event

Just a simple request to emit an 'end' event when using it in a script.
b.on('end', function(){
  // do something after browserify is done
});

thanks for responding! Those 2 options are both very viable.  I ended up finding a solution right after I posted.
I wanted an end event so I can use Promises and I ended up doing something like this below.  I was already writing using fs.createWriteStream and I know that returns a stream with events so I was using that.  Not sure if this is the best way but it works so :man_shrugging:
var b = browserify(options);

var mainFile = fs.createWriteStream('./myScript.js', 'utf8');

b.transform(babelify, {presets: ["es2015"]})
  .bundle()
  .pipe(mainFile);

return new Promise(function (resolve, reject){
    mainFile.on('finish', function(){
      resolve();
    });
    b.on('error', function(err) { reject(err); });
    mainFile.on('error', function(err){
      reject(err);
    });
  });

IMO using the 'end' event on the bundle() stream is the way to go here, but happy to have a PR that also emits it on the browserify instance if someone disagrees.


Namespace 'global.Express' has no exported member 'SessionData' with TypeScript build

Note: In addition to stopping my own project from building w/o an override, this seems to be the nature of the problem Yoshi is flagging at #245.
By inspection, it appears the SessionData interface was moved from Express to a more narrowly scoped namespace in the express-session middleware, quite some time ago. I THINK this is therefore a relatively trivial fix (change Express.SessionData to expressSession.SessionData on these lines):
https://github.com/googleapis/nodejs-datastore-session/blob/7f0a56193bb1aead7f4448887064e0e4d04033a3/src/index.ts#L58
and
https://github.com/googleapis/nodejs-datastore-session/blob/7f0a56193bb1aead7f4448887064e0e4d04033a3/src/index.ts#L99
After a bit of code anthropology, however, I'm wondering about backward compatibility. In particular, what's not yet clear to me is why this is (apparently) a new issue, although it is clearly a recently prolific one (not unique to this module - see also https://stackoverflow.com/questions/64845125/namespace-express-has-no-exported-member-sessiondata), and I also anticipate this commit to be very relevant:
https://github.com/DefinitelyTyped/DefinitelyTyped/commit/d1259ee31e6b17c31a5a86e27a0d12f3ec7c5a19#comments
Despite the DefintelyTyped changes above, I never found a definitive point around that time at which the SessionData interface was removed from the global Express namespace. If I can figure that out, and by chance I still have a valid contributor agreement w/Google, and I can quickly figure out how to run the build and tests, and no one else beats me to it, I'll dig in and hopefully then submit a PR to follow, but that's sure a lot of 'ifs' so no promises.
Environment details

OS: local: macOS Big Sur 11.0.1
Node.js version: v12.13.1
npm version: 6.14.5
TypeScript tsc version: 4.0.5
@google-cloud/connect-datastore version: 5.0.1

Steps to reproduce
As this appears to be a TypeScript compile issue, so most of these steps are setup.
Generate a minimal TypeScript Express app, using this module for the express connect session store.

npm init (then use an arbitrary package name, version, description, entry point, etc.)
npm install --save express @types/express express-session @types/express-session @google-cloud/datastore @google-cloud/connect-datastore
Make a couple of common subdirectories - mkdir src dist
Save the attached tsconfig.json in the root.
Save the attached index.ts file under src.
Run the typescript compiler using tsc -p .

Actual output:
node_modules/@google-cloud/connect-datastore/build/src/index.d.ts:14:72 - error TS2694: Namespace 'global.Express' has no exported member 'SessionData'.
14     get: (sid: string, callback: (err: Error | null, session?: Express.SessionData | null | undefined) => void) => void;
~~~~~~~~~~~
node_modules/@google-cloud/connect-datastore/build/src/index.d.ts:15:38 - error TS2694: Namespace 'global.Express' has no exported member 'SessionData'.
15     set: (sid: string, sess: Express.SessionData, callback?: ((err: Error | null) => void) | undefined) => void;
~~~~~~~~~~~
Found 2 errors.
tsconfig.json:
{
  "compilerOptions": {
      "module": "commonjs",
      "lib": ["ES2018"],
      "esModuleInterop": true,
      "allowSyntheticDefaultImports": true,
      "target": "es6",
      "noImplicitAny": true,
      "moduleResolution": "node",
      "sourceMap": true,
      "outDir": "dist",
      "baseUrl": ".",
      "paths": {
          "*": [
              "node_modules/*",
              "src/types/*"
          ]
      }
  },
  "include": [
    "src/**/*"
  ],
  "exclude": [
    "src/public"
  ]
}

src/index.ts:
'use strict';

import { default as express, Request, Response, NextFunction } from "express";
import { Datastore } from "@google-cloud/datastore";
import { DatastoreStore } from "@google-cloud/connect-datastore";
import { default as session } from "express-session";

declare var process : {
  env: {
    PORT: number,
  }
}

const app = express();
const port = process.env.PORT || 8080;

const datastore = new Datastore();

const datastorestore = new DatastoreStore({
  dataset: datastore
});

const sessionMiddleware = session({
  cookie: {
    httpOnly: true,
    secure: true,
  },
  name: 'not-a-real-session-cookie-name',
  resave: false,
  saveUninitialized: false,
  store: datastorestore,
  secret: 'not-a-real-session-secret'
});

app.set('trust proxy', 1); // trust first proxy (required because app engine terminates TLS before us)

app.use(sessionMiddleware);

app.get('/', async (req: Request, res: Response, next: NextFunction) => {
  try {
    res.sendStatus(200);
  } catch(error) {
    next(error);
  }
});

// Start the server
app.listen(port, () => {
  console.log(`App listening on port ${port}`);
  console.log('Press Ctrl+C to quit.');
});

Follow-up: It appears the SessionData interface was removed from the global Express namespace, at the former line 24 on October 13 -
https://github.com/HoldYourWaffle/DefinitelyTyped/commit/0cec4865fe7fd873952fc6901553a96648a7c889#diff-c38f30a0fdd238f104a7392ff3881fa97d8b4497d75e9617163ac1b5fceb75bf
Lots of discussion here - https://github.com/DefinitelyTyped/DefinitelyTyped/pull/46576
Two remaining concerns - not sure what Ravi was getting at with regard to the similar Mongo scenario and backward compatibility or circular dependency there, so I need to parse that further, and it's not quite clear to me yet if the new parameter type to get and set should best be SessionData or a Session.

@TimJohns I believe this is fixed on the main branch, if you want to try it out. We're in code freeze until after American Thanksgiving.

Confirmed works for me without overrides or workarounds at 33028da. Thanks!


[Accessibility] Take out redundant URL label from semantic heading in pull request description page

Type: Bug
CC @meganrogge   @alexr00
Reproducible Steps

Checkout any pull request in any repo

Run "GitHub Pull Requests: View Pull Request Description"

In this pull request description page, each comment is marked up with semantic heading tag, which is great! However, noisy GitHub uri is presented before each user name.
Please take a look at what it looks/sounds like to screen reader users.

Expected Behavior
Only user name needds to be included in the semantic heading without the noisy GitHub uri.

Seems like this is intentionally done by screen readers: https://github.com/microsoft/vscode-pull-request-github/issues/6220#issuecomment-2393185263
But we also need to include the url in the title: https://github.com/microsoft/vscode-pull-request-github/issues/6220#issuecomment-2393350020
I don't see a good way to fix this given that NVDA is intentionally doing it.


[bug] Window does not always restore previous dimensions when exiting fullscreen mode

Describe the bug
When entering and exiting fullscreen mode on windows, using the js 'window' api, Tauri does not always recall the previous window location or dimensions. Instead the window is scaled to fill the whole screen (butted right up against the edges of the monitor and passing under the taskbar).
It is noteworthy that if you enter fullscreen from a maximized window and then exit fullscreen, the window correctly returns to it's previous maximized state. However, if you enter fullscreen from a non-maximized (or 'unmaximized') window, this bug will sometimes occur.
Before entering Fullscreen:

In Fullscreen:

After exiting Fullscreen:

Reproduction
The repro project includes a page with buttons to enter and exit fullscreen mode, as well as an F11 keyboard shortcut to trigger fullscreen as well.
The bug does not occur on every attempt, so it make take a few tries to trigger it. It may be related to speed of repetition, I have more success with the keyboard shortcut. If I learn how to cause this more consistently, I will update with better steps.
Update: Minutes after I submitted this I discovered that the bug always occurs if you call appWindow.setFullscreen(true); when already in fullscreen mode. If this is called twice before calling appWindow.setFullscreen(false); that causes the previous dimensions of the window to be lost.
Perhaps it isn't correctly short circuiting the true call when fullscreen is already active?
https://github.com/siliconcosmos/tauri-fullscreen-repro
Expected behavior
When exiting Fullscreen mode, the previous window dimensions should be recalled and restored.
Platform and versions
[✔] Environment
    - OS: Windows 10.0.22621 X64
    ✔ WebView2: 120.0.2210.61
    ✔ MSVC: Visual Studio Build Tools 2019
    ✔ rustc: 1.74.1 (a28077b28 2023-12-04)
    ✔ cargo: 1.74.1 (ecb9851af 2023-10-18)
    ✔ rustup: 1.26.0 (5af9b9484 2023-04-05)
    ✔ Rust toolchain: stable-x86_64-pc-windows-msvc (default)
    - node: 18.17.0
    - npm: 9.8.1

[-] Packages
    - tauri [RUST]: 1.5.3
    - tauri-build [RUST]: 1.5.0
    - wry [RUST]: 0.24.6
    - tao [RUST]: 0.16.5
    - @tauri-apps/api [NPM]: 1.5.1 (outdated, latest: 1.5.2)
    - @tauri-apps/cli [NPM]: 1.5.7

[-] App
    - build-type: bundle
    - CSP: unset
    - distDir: ../dist
    - devPath: http://localhost:4200/
    - framework: Angular
    - bundler: Webpack

Stack trace
No response
Additional context
As an additional aside, it looks like v1.5.2 of @tauri-apps/api is missing the typescript definitions, so it doesn't work correctly with an angular project. I had to explicitly downgrade to v1.5.1 to generate the reproduction repo.

/upsteam tauri-apps/tao

/upstream tauri-apps/tao

A fix will be available in the next release.

That's awesome! Thanks! I've already worked around it in my app, but I look forward to it hitting the stable build 😊


updated version of the project without the drag and drop

@alexander16108,
Great work so far. Kindly, fix the linter errors.


Update changing-your-github-username.md

I tried using a repository name that existed on the previous username owner and got the below message which leads me to believe that this isn't possible anymore.

Since the previous username owner has actually deleted the repository I wasn't able to confirm if the redirection still works.

@dewantawsif Thanks so much for opening a PR! I'll get this triaged for review ✨

@dewantawsif Thank you for your patience while our SME team reviewed! They explained the following -

We are unable to accept this change. The part being removed is still accurate.
If the new owner of the username creates a repo with a name that the old user used, it will mask the redirect, as the docs say. Yes, we now remove the redirect, but that is still functionality equivalent to "masking" it.
This user may be making assumptions about the redirect behavior based on their inability to actually create a repo with a previously used name, but that restriction is based on how used the previous repo was, which is an entirely orthogonal concern.
So, no they can't create a repo with the name they want, but if they could (based on the previous repo having little to no activity) the statement about the redirect would still hold.

For this reason, we will be closing this PR 💛
Thank you very much for your willingness to contribute to GitHub Docs! If you're looking other issues to pick up, take a look at our help wanted section to find open issues you can work on 🙇


Image Uploaded But not Inserting

I am trying to upload image with php ( codeigniter ). Image upload works but after that model doesn't close and images doesn't get inserted in editor. I am getting success response
{"message":"uploadSuccess","file":"\/iwillgetit\/assets\/906873.jpg"}
Here is my code:
$('#text-editor').trumbowyg({
		btnsDef: {
			// Customizables dropdowns
			image: {
				dropdown: ['insertImage', 'upload'],
				ico: 'insertImage'
			}
		},
		btns: [
			['viewHTML'],
			['undo', 'redo'],
			['formatting'],
			['strong', 'em', 'del'],
			['superscript', 'subscript'],
			['link'],
			['image','noembed'],
			['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'],
			['unorderedList', 'orderedList'],
			['horizontalRule'],
			['removeformat'],
			//['emoji'],
			['fullscreen']
		],
		autogrow: true,
		//imageWidthModalEdit: true,
		plugins: {
			upload: {
				// Some upload plugin options, see details below
				serverPath: '<?php echo base_url(); ?>imageUpload.php',
				fileFieldName: 'storyimage',
				urlPropertyName: 'file',
				success: function (data, trumbowyg, $modal, values) {
					console.log(data);
					alert();
				}
			}
		}
	});

The image is not inserted because of this code
success: function (data, trumbowyg, $modal, values) {
					console.log(data);
					alert();
				}

remove this and the image should be inserted into the editor

Read the docs: https://alex-d.github.io/Trumbowyg/documentation/plugins/#plugin-upload
You should also have a success property with a boolean for the sucess/error status. Not a message (which you can keep if you want, but add a sucess boolean property).

Solved: Problem was the json status i was returning it should be success and url not message and file.

@imkrunal Trying to get this to work. Having same issue. What was the final code you used for the success? Thanks

i was able to figure it out, for non programmers that might be struggling since the demo code doesn't work as is. Need to update the trumbowyg.upload.php and return a success.
        $data = array(             'message' => 'uploadSuccess',             'file'    => $file,             'success' => true,         );

Hello, I have the same issue. The image is uploaded, but not inserted although the json format is correct.
Here's the code:
$('#description').trumbowyg({
            btnsDef: {
                // Create a new dropdown
                image: {
                    dropdown: ['insertImage', 'upload'],
                    ico: 'insertImage'
                }
            },
            btns: [
                ['viewHTML'],
                ['undo', 'redo'], // Only supported in Blink browsers
                ['formatting'],
                ['strong', 'em', 'del'],
                ['superscript', 'subscript'],
                ['link'],
                //['insertImage'],
                ['image'],
                ['justifyLeft', 'justifyCenter', 'justifyRight', 'justifyFull'],
                ['unorderedList', 'orderedList'],
                ['horizontalRule'],
                ['removeformat'],
                ['fullscreen']
            ],
            autogrow: true,
            plugins: {
                // Add imagur parameters to upload plugin for demo purposes
                upload: {
                    serverPath: 'http://localhost/web/receive-image.php',
                    fileFieldName: 'imagewyg',
                    /*
                    headers: {
                        'Authorization': 'Client-ID xxxxxxxxxxxx'
                    },
                    */
                    urlPropertyName: 'data.link',
                    success: function (data, trumbowyg, $modal, values) {
                        alert(data);
                    },
                    error: function (data) {
                        alert(data);
                    }
                }
            }
        });

###########
<?php

error_reporting(-1);

// cek 1
if (preg_match('/^image\/p?jpeg$/i', $_FILES['imagewyg']['type']) or
preg_match('/^image\/gif$/i', $_FILES['imagewyg']['type']) or
preg_match('/^image\/jpg$/i', $_FILES['imagewyg']['type']) or
preg_match('/^image\/(x-)?png$/i', $_FILES['imagewyg']['type'])) {

    $pictureName = time(). rand(0,999999999) . "_" . str_replace(" ", "_", $_FILES['imagewyg']['name']);

    $tpFile = htmlspecialchars($_FILES['imagewyg']['tmp_name'], ENT_QUOTES, 'UTF-8');
    $pictureName = htmlspecialchars($pictureName, ENT_QUOTES, 'UTF-8');

} else {

    $updErr = 'Please upload a JPEG, GIF, or PNG image file';
    exit;

}

// cek 2
$type = array("jpg","jpeg","gif","png");

$ext = explode(".", $_FILES['imagewyg']['name']);
$ext = strtolower(end($ext));

if (!in_array($ext, $type)){
    $updErr = 'Please upload a JPEG, GIF, or PNG image file';
    exit;
}

// upload
if (!is_uploaded_file($_FILES['imagewyg']['tmp_name']) ) {

    $updErr = 'Please upload a JPEG, GIF, or PNG image file';

} else {

    move_uploaded_file($tpFile, "upload/".$pictureName);

}

$file = "http://localhost/web/upload/" . $pictureName;

$data['success'] = true;
$data['url'] = $file;

header('Content-type:application/json;charset=utf-8');
echo json_encode( $data );

?>

Anyone can help? Thank you in advance.

<?phperror_reporting(0);// cek 1if (preg_match('/^image\/p?jpeg$/i', $_FILES['imagewyg']['type']) orpreg_match('/^image\/gif$/i', $_FILES['imagewyg']['type']) orpreg_match('/^image\/jpg$/i', $_FILES['imagewyg']['type']) orpreg_match('/^image\/(x-)?png$/i', $_FILES['imagewyg']['type'])) {    $pictureName = time(). rand(0,999999999) . "_" . str_replace(" ", "_", $_FILES['imagewyg']['name']);    $tpFile = htmlspecialchars($_FILES['imagewyg']['tmp_name'], ENT_QUOTES, 'UTF-8');    $pictureName = htmlspecialchars($pictureName, ENT_QUOTES, 'UTF-8');} else {    $updErr = 'Please upload a JPEG, GIF, or PNG image file';    exit;}// cek 2$type = array("jpg","jpeg","gif","png");$ext = explode(".", $_FILES['imagewyg']['name']);$ext = strtolower(end($ext));if (!in_array($ext, $type)){    $updErr = 'Please upload a JPEG, GIF, or PNG image file';    exit;}// uploadif (!is_uploaded_file($_FILES['imagewyg']['tmp_name']) ) {    $updErr = 'Please upload a JPEG, GIF, or PNG image file';} else {    move_uploaded_file($tpFile, "upload/".$pictureName);}$file = "http://localhost/web/upload/" . $pictureName;$data['success'] = true;$data['url'] = $file;header('Content-type:application/json;charset=utf-8');echo json_encode( $data );?>

urlPropertyName: 'data.link',

vs

$data['url'] = $file;

You should not override urlPropertyName since his default value is url.
Please read the Upload plugin documentation here for more details: https://alex-d.github.io/Trumbowyg/documentation/plugins/#plugin-upload

Sorry, I just copy the above code and did not notice this answer:

The image is not inserted because of this code
success: function (data, trumbowyg, $modal, values) {
					console.log(data);
					alert();
				}

remove this and the image should be inserted into the editor

So, when I replace "data.link" with "url", it still returns error.
Now it's solved after I replace "data.link" with "url" and removed the additional code:
success: function (data, trumbowyg, $modal, values) {
                        alert(data);
                    },
                    error: function (data) {
                        alert(data);
                    }

Thank you!

Hi, I have the same issue. The image is uploaded, but not inserted although the json format.
Would you please show me the data codes that I could check my code format is correct.
By the way. The codes I generated use "response.write" by classic ASP as following.
{url: 'https://www.sample.com.tw/upload_images/img_20230311012514.png', success: true}
Thank you.

Please read the doc of the Upload plugin:
https://alex-d.github.io/Trumbowyg/documentation/plugins/#plugin-upload--server-side
{
    success: true, // Must be false if upload fails
    file: 'https://example.com/myimage.jpg'
}

I have fixed my codes as following, but still the same issue.
By the way. The codes I generated use "response.write" by classic ASP.
{success: true, file: 'https://example.com/upload_images/img_20230312104931_coak4h3mm5sg9058l5s3702oq9p4c4.png'}


Chrome 61 now supports ES6 Modules by default

When Chrome 61 sees a <script type="module"...> tag, it will interpret is as an ES6 module.  Is there any way to detect this at run-time to prevent Traceur doing transpilation when we don't need it to?

I learned about nomodule, which is going to work for me.  However, I am now noticing that the browsers match import paths differently than Traceur:
lib/foo.js:
import { Bar } from 'bar.js';
Traceur looks for the import at /bar.js.
Chrome looks for the import at /lib/bar.js.
If I could configure WebPageTranscoder with a base URL, this would probably fix things...

Neither is right. For import statements you need to do './bar.js'.
For the other issue, checking for a noModule property descriptor on the HTMLScriptElement.prototype seems like the right approach. Care to send a PR?


Basic update handler support.

Implementation for some of the ddoc query server call, enabling to write update handlers in python. I'm very new to CouchDB so this might be incomplete, but it works for me so far. I might keep adding support as me need evolve.

kof kof Okay, I'll fix this first.

Thanks for working on this! Much appreciated.
Please also add some design notes, plus at least one or two tests. I would highly appreciate it if you could split your commit up in separate parts that do only refactoring/renaming/moving code around, and then adding actual functionality in a separate commit; this makes it much easier to review.


Page- and title extensions not copied properly when duplicating pages

Duplicate a page that has a page extension using the cms tree copy function
Notice that the duplicated page seems to have copied the page extension as expected
Delete the duplicated page
Notice that the source page has lost its page extension, too.

I suppose it's because the extension copy mechanism was originally written to publish pages which works perfectly well. However, when I followed the duplication in the database I noticed that the duplicated page gets the 'published' entry of the extension, where as the source page keeps the 'unpublished' entry of the extension. Since the latter has a foreign key to the published extension, it is deleted as a consequence of the default 'cascade' behavior once the duplicated page is deleted.

In which django CMS version?

3.0.12

I can confirm that this is a bit of a mess right now. And that the blocker tag is necessary. =)

Fixed by #4019


SFTP.DownloadFiles - New feature IncludeSubdirectories

#195
[2.10.0] - 2024-03-06
Added

[Breaking] Added new parameter Source.IncludeSubdirectories which enables source file search from subdirectories.

Detect Errors is failing  because of KeyHostAlgorithm class which is implementing IDisposable but the Task can't use using statement with them.


VS Code has high CPU usage after April 2020 Update

Issue Type: Performance Issue
All extensions have been disabled. But the CPU usage is still extremely high. This issue started after installing the April 2020 Update. Attached are some details from running code --status at different points of running my application.
All extensions disabled.txt
All extensions disabled 1.txt
All extensions disabled 2.txt
VS Code version: Code 1.45.1 (5763d909d5f12fe19f215cbfdd29a91c0fa9208a, 2020-05-14T08:27:35.169Z)
OS version: Windows_NT x64 10.0.17134

System Info

Item
Value

CPUs
Intel(R) Core(TM) i5-6300U CPU @ 2.40GHz (4 x 2496)

GPU Status
2d_canvas: enabledflash_3d: enabledflash_stage3d: enabledflash_stage3d_baseline: enabledgpu_compositing: enabledmultiple_raster_threads: enabled_onoop_rasterization: disabled_offprotected_video_decode: unavailable_offrasterization: enabledskia_renderer: disabled_off_okvideo_decode: enabledviz_display_compositor: enabled_onviz_hit_test_surface_layer: disabled_off_okwebgl: enabledwebgl2: enabled

Load (avg)
undefined

Memory (System)
15.85GB (9.59GB free)

Process Argv

Screen Reader
no

VM
0%

Process Info
CPU %	Mem MB	   PID	Process
    0	    72	 20840	code main
    0	    26	  9972	   utility
    4	   191	 12476	   gpu-process
    3	   189	 17300	   window (ChooseMailingModal.js - FishbowlONE - Visual Studio Code)
    0	    62	  9404	     extensionHost
    6	   133	  4316	       electron_node tsserver.js
    0	    44	 19096	         electron_node typingsInstaller.js typesMap.js
    1	    26	 21324	         electron_node watchGuard.js
    0	    51	 22464	       electron_node tsserver.js
    0	    11	 19544	     watcherService
    0	    10	 13532	       console-window-host (Windows internal process)
    0	     6	 21652	     winpty-process
    0	     9	 10144	       console-window-host (Windows internal process)
    0	    61	 16316	       C:\WINDOWS\System32\WindowsPowerShell\v1.0\powershell.exe
   21	    71	 20376	   shared-process
    0	    65	 20896	   window (Issue Reporter)
    0	    14	 21868	   electron-crash-reporter

Workspace Info
|  Window (ChooseMailingModal.js - FishbowlONE - Visual Studio Code)
|    Folder (FishbowlONE): 1695 files
|      File types: cs(834) js(284) cshtml(71) config(56) png(37) svg(36)
|                  jpg(23) csproj(20) sass(18) txt(13)
|      Conf files: csproj(20) sln(2) jsconfig.json(1) package.json(1)
|                  webpack.config.js(1);

Extensions: none

[All extensions enabled.txt](https://github.com/microsoft/vscode/files/4659385/All.extensions.enabled.txt)

In the first attachment, the typings installer is active. This may happen when you open a JS folder and the typings are not yet cached. This calms down after a brief moment. In the other two attachments, I see that you using npm run watch and npm run dev causes CPU load on your system.

/needsMoreInfo

Unfortunately, I've been getting this issue as well on the latest update.  On Ubuntu, if that helps.
1.45.1
5763d909d5f12fe19f215cbfdd29a91c0fa9208a
x64

@poteat unfortunately this does not help. please file a separate issue with your findings when you follow this guide https://github.com/microsoft/vscode/wiki/Performance-Issues


Add google-scholar social icon

From https://github.com/xdanaux/moderncv/issues/92

So it seems having moderncv and not ./moderncv breaks the build. It's obvious when you think about it, but the errors were sooo cryptic...

Ahhh. Thanks for the PR :+1:


Generate small and large logos at 4x resolution

To support High-DPI displays, generate the logos at 4 times their displayed resolution, which should be enough to support all current devices according to https://material.io/devices/.
This works because the CSS of Semantic UI and the img-* classes downscale the images to correct CSS dimensions. The base dimensions of 220px and 30px of the images were chosen based on Semantic UI's .logo and .ui.mini.image dimensions.
Samples of the header image from my screen which is roughly 2 dppx, before and after:

LGTM

LGTM


Site Header ::before ::after position

I noticed after upgrading the theme together with ghost 1.5.2 that the black overlay on the front page cover, covers the top portion of the top post, like 10% or so.
The z-index of the content in site-header inner is also behind the black overlay.
Thought I'd let you guys know ;)

Looks like a duplicate of #349

Oh sorry about that! I'll close this one ;)


Planned batch support?

First off, congrats on the initial release! I'm really excited to start giving this a try - it includes a very robust feature set out of the gate which is amazing!
The docs mention features coming very soon:

Proper support for perform_all_later, improvements to logging and instrumentation, a better CLI tool, a way to run within an existing process in "async" mode, unique jobs and recurring, cron-like tasks are coming very soon.

Have you had any internal discussions or thoughts on batch support? By batch support I mean like GoodJob batches (https://github.com/bensheldon/good_job?tab=readme-ov-file#batches) and Sidekiq Batches (https://github.com/sidekiq/sidekiq/wiki/Batches). They're a huge benefit for job coordination.
I'd be very interested in contributing something like this, if there were no plans for it!

Thanks for your kind words, @jpcamara! I really appreciate it 😊
We have batch support in our list of possible features to add, but it's not in the immediate plans because it's a bit at odds with the simplicity we're aiming for with Solid Queue. If you'd like to try implementing it, you're, of course, welcome to do so! 😊 I'm not quite sure yet how it could look like, in a way that maintains the overall simplicity of the gem, so I'm all open to ideas!
Thanks again!

Would be amazing to have this feature implemented in solid queue. Keeping my fingers crossed for it 🤞

This is one of the features which makes us rely on sidekiq currently. I would also like to see this being implemented in solidqueue.

@jpcamara You could take a look at https://github.com/cdale77/active_job_status. It's fairly simple, if it doesn't work with SolidQueue, it shouldn't be too hard to update it to work with SolidQueue as well.

I've been working on https://github.com/inkstak/activejob-status/pull/32 and I just noticed https://github.com/basecamp/solid_queue/commit/5ad872727251c32c282a7eb44df1e24068a3fdaa landed in main.
It could be a relatively simple way to approach batches - a batch could just be a collection of a job statuses - with different combinations of statuses adding up to different final batch statuses.
Here's my idea - The batch status can be queued, failed, completed or working.

The batch is considered queued if all of the jobs are queued
The batch is considered failed if one of the jobs is failed
The batch is considered completed if all of the jobs are completed
The batch is considered working in all other circumstances

On one hand, I dislike the solution we're currently using (with https://github.com/inkstak/activejob-status), because it relies on the cache for functionality - without the job status being stored in the cache, the application would simply break.

On the other hand, SolidQueue::Job#status is implementation specific, and like @rosa said, it's
This is prone to race conditions and stale reads, and it's just intended
for use in Mission Control or other reporting tools, not for regular
operation.

Even though using the collection of job statuses is a simple and effective approach, I'm still not sure what would be the ideal way forward here.

Hi @rosa! I've open a draft PR to introduce how I think batches could be implemented in SolidQueue: https://github.com/basecamp/solid_queue/pull/142
Looking forward to feedback on whether it's the right direction or not, when you get some time!

Following this issue as well as #142, and just wanted to throw another vote on here that batches would be awesome to support natively.
In case it's helpful to know use cases:
We currently do a lot of heavy orchestration using Doximity's Simplekiq gem, which piggybacks Sidekiq Pro's batches. It has been awesome for handling race conditions and other orchestration headaches that arise from doing ~100+ API calls and post processing when users run detailed reports in our system.
Example orchestration might be "fetch 20 API calls, now do an aggregate analysis across that batch but only once all items in the batch are completed". Repeat that across 5-10 different data types that go into a report.
Before batches we had a pattern where all 20 API calls would report up to the parent who would check the ~batch for completion and it was a giant mess of race conditions when the last couple API calls would repeat.


Symfony 3.2

Hi.
I would like to use your bundle, but is really necessary to upgrade Symfony to 3.3?

First of all thank you for your interest in our project!
It was a conscious decision on our end to target only actively maintained Symfony versions. Having said that, we did look into lowering the minimum requirements as far as we could, but came to the conclusion this would mean a lot of changes as we're actively using the new Symfony 3.3 DI container features. Changes we were not keen on making just to support an end of life version, and we also do not deem necessary as we have not had any real trouble at all upgrading any of our own applications to 3.3 from 3.x thanks to Symfony's BC promise.
Summarizing: yes, the upgrade is necessary, but likely painless on your end.
As a sidenote, while you're welcome to use the bundle already, you should be aware that we're still doing initial development in master, as noted in the README. Therefore the bundle is not fit for production use right now. We do plan on releasing a 0.1 version soon-ish as we do feel comfortable with the current public API.

I've been hard at work to stabilize the API, feel free to have a look and provide feedback on things you'd like to see or think we did wrong   😄

Took somewhat longer than expected to refactor, but we're stable   :)


WMS ID: 11416 - oke-virtual-nodes initial version for ocw2023

WMS ID: 11416
General requirements

Information in the workshop is adequate and updated
Code is correct and working
Links are correct
Make sure you enter the help email link in your manifest.json
Please make sure WMS URLs are updated as needed after your PR is approved

Checklist - Refer to the QA document for the complete list
Please confirm that the following is completed before submitting your PR

[x] All filenames are lower case (including folders, images, files, etc.)
[x] Filenames are descriptive
[x] Your workshop folder structure should be similar to the one used in the sample workshop (https://github.com/oracle-livelabs/common/tree/main/sample-livelabs-templates/sample-workshop)
[x] Are you using multiple versions (desktop/, sandbox/, tenancy/)? Make sure that each of them contains a manifest.json and an index.html
[x] Image references in markdown contain an alternate text

@junior - Just checking for an update on this PR.

@junior - This is a friendly reminder that the pull request (PR) has been open for over a week. Please make the requested changes and update the PR by the end of today, as we'll be closing it tomorrow. Thank you for your understanding and cooperation.

@junior - This is a friendly reminder that the pull request (PR) has been open for over a week. Please make the requested changes and update the PR by the end of today, as we'll be closing it tomorrow. Thank you for your understanding and cooperation.

@anooshapilli, Self-QA complete

@junior - Please make these changes to approve the PR

Remove Lab from Estimated Lab Time in labs 1,2,3
Indent the instructions and screenshots with 4 spaces from the beginning of the line for Lab 3 Task 1 and Lab 4 Task 3

Done


[Change Request] Dropdown limit height

Description
The dropdown menus can get pretty length if all organizations and/or collaborations are shown. There should be a maximum height of the dropdowns and a scroll bar.
Ideally, there should also be submenu's when we show multiple categories of resources, such as filtering by either organization or collaboration in the task table.
Requested by @anjavangestel

I have not implemented foldable submenu's in the dropdowns as this is a lot of work which does not have priority at present. What I did do, was change the order from organization/collaboration to collaboration/organization in the task table as it makes more sense to filter on collaboration there.


GRPC metrics middleware implemented as a Tower Layer

Is your feature request related to a problem? Please describe.
Recently, the public RPC fell into a degraded state as someone made too many requests to it. In this case, we identified the cause via an accidental backchannel. However, had that not happened we would have been totally unable to determine what the cause was, what kind of requests we were getting, and what was happening to them, because we only have metrics on the requests we already had a reason to care about.
Instead, we need to have generic GRPC metrics that work with any GRPC method.
Describe the solution you'd like
Scope and implement a tower Layer that we can apply to our GRPC services. The trace middleware is probably a good reference implementation to study.
We should identify a few relevant metrics and then emit them with the GRPC method name as a metrics key. That would allow us to take cross-sections of each metric by rpc method and identify performance culprits.
Suggestions to get started:

Request count (allows computing rates)
Request latency (will require inspecting the request, this is ~easy using Tower)

Ideas for later:

Some way to attribute load to the request
Bandwidth (related to above)

We should implement this specifically as a Tower Layer rather than spending time adding additional specific metrics; it will be a bit more work upfront but will have much better results long term.

Haven't made progress on this lately, but did sit down with @cratelyn a few weeks ago for a pairing session, and documented the state of play in a branch: https://github.com/penumbra-zone/penumbra/tree/tonic-metrics-spike I still view this work as must-have, but in the immediate near-term, I'm going to prioritize testing (https://github.com/penumbra-zone/penumbra/issues/4323) and release (https://github.com/penumbra-zone/penumbra/issues/4325).


Recreating a deleted room with the same name fails

We should check whether this issue got replicated in the new UI or not.


Exception calling "DownloadString" with "1" argument(s): "The remote server returned an error: (404) Not Found." At line:1 char:1

Exception calling "DownloadString" with "1" argument(s): "The remote server returned an error: (404) Not Found."
At line:1 char:1

iex ((New-Object System.Net.WebClient).DownloadString('https://git.io ...

  + CategoryInfo          : NotSpecified: (:) [], MethodInvocationException
  + FullyQualifiedErrorId : WebException

At which point in time does this happen?

Get the error when run the commando in powershell

What command are you running?

What command are you running?

I do not remember exactly now but it was earlier where you would copy and paste into Powershell. It was not that you should download a zip file as you should do now. I'll try it and I'll be back

Try downloading the raw .ps1 file off GitHub, it should be included in the .zip.

How's it going?

How's it going?

think you can help me too?


Fixes for default builds

This patches are fixed a clean build on any system.

As I see, official docker images contain a static linked executables. But, on default builds, all libraries are compiled as dynamicaly linked library. Default build - with "cmake -DCMAKE_INSTALL_PREFIX="/usr/" -DUSE_SYSTEM_BOOST=true -DCMAKE_CXX_FLAGS="-fPIC"" options only).
Fix optional build test on MPL2 library.
Fix Annealer class definition - "undefined vtable" error.

This should get reviewed on Monday

About static/shared library.
Into all CMakeLists.txt don't exists section to install a shared library, if build it. That is, this type of build will be produced without installing all the dependencies and the program will not be able to run.
This section exists only on submodule for OpenSTA:

install(TARGETS OpenSTA DESTINATION lib)

But, it's correct only for 32-bit systems - on 64 bit systems, we need to install binaries to "lib64" directory:

set_property(LIB64 GLOBAL PROPERTY FIND_LIBRARY_USE_LIB64_PATHS)
if ("${LIB64}" STREQUAL "TRUE")
set(LIBSUFFIX 64)
else()
set(LIBSUFFIX "")
endif()
set(INSTALL_LIB_DIR lib${LIBSUFFIX} CACHE PATH "Installation directory for libraries")
mark_as_advanced(INSTALL_LIB_DIR)

and then using INSTALL_LIB_DIR everywhere it is needed.
But as I noticed, this library is also built statically, so this can be omitted.

I don't know why you see dynamic libraries in a 'default' build.  I never see them.   From the cmake docs:
If no type is given explicitly the type is STATIC or SHARED based on whether the current value of the variable [BUILD_SHARED_LIBS](https://cmake.org/cmake/help/latest/variable/BUILD_SHARED_LIBS.html#variable:BUILD_SHARED_LIBS) is ON.

We don't set BUILD_SHARED_LIBS so you should be getting STATIC.

Would you expand on "Fix Annealer class definition - "undefined vtable" error.".  What file generates this error?  The nightly CI does no have this issue.  Perhaps it relates to using shared libs?

I don't know why you see dynamic libraries in a 'default' build. I never see them. From the cmake docs:
If no type is given explicitly the type is STATIC or SHARED based on whether the current value of the variable [BUILD_SHARED_LIBS](https://cmake.org/cmake/help/latest/variable/BUILD_SHARED_LIBS.html#variable:BUILD_SHARED_LIBS) is ON.

We don't set BUILD_SHARED_LIBS so you should be getting STATIC.

  This sounds more like a gentoo issue than an OR one.  I am not inclined to accept this solution.  If you want to work on making shared libraries work I'm open to that.


optimized code

Functionality Encapsulation: Created get_computer_choice() to handle the computer's choice logic, making it clearer and more modular.
Winner Determination: Simplified determine_winner() to handle all win/lose conditions with fewer checks.
Input Handling: Added a space before %c in scanf to ignore any leading whitespace or newline characters.
Variable Names: Made variable names more descriptive, such as player_choice and computer_choice, for better readability.
This should keep the functionality intact while improving clarity and efficiency!

this is a valid pull request


remove CrateTransportCountAction calls from testCountRouting

for empty strings the routing isn't set anymore (because it
is set to null in the indexRequest routing() setter)
so for this test it is random on which shard the empty string value will land
and therefore the CrateTransportCountAction requests aren't deterministic
anymore.

ack


Crafty.map.search revision

May I suggest a few usability changes to Crafty.map.search?

Allow negative width/height. Canvas allows it as well, and it goes nicely with implementing a standard RTS multiple unit selection rectangle.
The function uses both _x and x, but it's not well documented which one is for what. Can there be only x?
Would it be sensible to change the function signature to x, y, w, h, filter?
More documentation needed on crafty's website for the whole Crafty.map namespace.

I'm going to go ahead and close this, since the assumption that we're dealing with an object with _x, _y, _w and _h is pretty pervasive throughout the map code.
I could imagine rewriting the whole thing to take arguments in a different way, but that would only make sense in the face of some other large changes.
The documentation thing is still a problem, but that's already tracked in our bugs for revamping the docs.  :)


Some elements not correctly styled with the Black theme

Within the new app v 1.4.1, some screens and elements aren't correctly styled for the black theme.

+1

Hopefully part of #388

Correct! The release is out now that fixes these issues.


Standardise report structure using a Report class

Create a Report class, rather than having scripts build their own,
ad hoc reports

I've rebased from master, but also mocked the requirement of a GH_TOKEN env. var. in the specs, so this need re-reviewing.


Adding support for rel=nofollow in links

This PR adds support for automatically adding rel=nofollow to HTML links - this in many times is desired (if not necessary) especially when allowing content that is not necessarily trusted to be published.

FWIW, I did contemplate adding this on the parsers layer, but (1) this seems too HTML specific and (2) change to the renderes would still be required.

Thanks!
Though, I'm wondering if this extension is really "usable" :sweat_smile: : as It applies this change to all links into a markdown document, even inter-document links within a website would be tagged as nofollow right? Couldn't it be annoying?
Why not using generic attributes on dedicated links that you really don't want to follow like this?
This is a [nofollow link](http://boo){rel="nofollow"}

Think user content scenarios. I'm moving to using markdig in my blog, and while I want to support markdown in user comments and also auto-link URLs, I prefer they would be nofollow ones - and I don't have control of the markdown they will type.

Think user content scenarios. I'm moving to using markdig in my blog, and while I want to support markdown in user comments and also auto-link URLs, I prefer they would be nofollow ones - and I don't have control of the markdown they will type.

I see, it makes sense now, thanks.

Also could you add the associated UseNotRefLinks() method extension to MarkdownExtension.cs (don't forget also the Configure method that should accept a string like noreflinks)
Sorry to bump into these details, once I will have written the doc, that should be easier.
Thanks again, this is the first community extension! :+1:

Done. A bit too much ceremony instead of just using MEF or calling by convention - my 2c :)

Done. A bit too much ceremony instead of just using MEF or calling by convention - my 2c :)

For MEF, I don't want to rely on an external library. Plus I dislike a lot MEF as it is inefficient at scanning assemblies. I'm also not sure about what would be the syntax... but usually, when you have a simple XXXBuilder design pattern you don't want to overdesign it with a composition framework...
For the calling convention, you mean by using generic? I thought about this, but I'm also annoyed by the discrepancies that it would introduce. If the extension doesn't have any parameters, a generic Use<TExt> could be used, but whenever you have parameters, you would have to introduce specific methods and it would make the API less consistent...
While it is a bit cumbersome for the library writer, I believe it is a bit more friendly for a end-user...

Though one grip with the current design is that MarkdownExtension.Configure is not extensible outside of markdig.


Problem with iterate function

Hi, I’m using uproot to read some root files and I have some problem when I use uproot.iterate function. I wrote this script to explain you the problem.
from math import *
import numpy
import uproot
import sys
import argparse

parser=argparse.ArgumentParser(prog='PROG', description='inspect root files')
parser.add_argument("--fin", action="store",
            dest="fin", default="", help="Input ROOT file")
parser.add_argument("--branch", action="store",
            dest="branch", default="Events", help="Input ROOT file branch (default Events)")
parser.add_argument("--branches", action="store",
            dest="branches", default=[], help="Comma separated list of branches to read (default all)")
parser.add_argument("--fout", action="store",
            dest="fout", default="", help="Output file name to write")
args = parser.parse_args()
list_branches = args.branches.split(',') if args.branches else []

outputfile = open(args.fout, "w")
iterator = uproot.iterate(args.fin, args.branch, 1000,
     branches=list_branches, outputtype=dict)
for block in iterator:
    outputfile.write("%s \n" %block)
outputfile.close()

If I run this
python try_uproot.py --fin /afs/cern.ch/work/b/bonacor/public/double.root --fout output --branches event
I can see that the last two blocks of the iterator are empty and the filling stops in the 16th iteration (so it seems that there are less than 16000 events). This is not correct because the root file contain 18000 events for branch “event”. If I change the root file and I run this
python try_uproot.py --fin=/afs/cern.ch/work/b/bonacor/public/small10kevts.root --fout=output --branch events --branches=evtNo
the output file shows that the elements in the branch evtNo are 7981 but in the root file we can see that they are 10000. There is something wrong in uproot? This happens of course even if I select different branches.
On the contrary if I run
python try_uproot.py --fin /afs/cern.ch/user/v/valya/public/nano-RelValTTBar.root --fout output --branches event
that is similar to the root file of the first example but with less events, that are 9000 (I obtained double.root copying nano-RelValTTBar.root two times, so it has 18000 events), the output file shows that all the events are read with iterate function.
So, there is maybe a problem of full allocated memory when I run iterate function? Because when I try to read big root file (also bigger than those of the previous examples), it stops inexplicably in reading.
Thank you
Luca
@vkuznet

I'm comfortable enough with the recover() function that it is now called automatically on affected branches: https://github.com/scikit-hep/uproot/releases/tag/2.6.1. This function had never been publicized, but now that it's redundant, it has been renamed to _recover() (and you'll probably never call it directly).


Split Logic in different Script, Re-Add files with to reflect Chris's Repo

As promised, I've taken another look at the Code and realised, that the implementation of Install-WinUtilProgramWinget is a bit annoying because it expects a List containing an Object (or Dictionary) with the "winget" key containing the app id.
I think this function has a lot of potential to be optimized in the future to work better and become easier to use
Because the text conversion from the tweaks section with the containing text conversion proved to be a bit inflexible to work with, I opted (like for OOSU) to use a separate function for the logic and only reference the logic from the tweaks file. (In my opinnion this is also way easier to work with and maintain in the future, but this may also be just preference)
I also added logic to undo the change if the user desired to. This required the use of the targetTerminalName instead of the targetTerminalSource which is not optimal, but I was a bit lazy to be fully honest and didn't want to modify the logic any more than necessary.
I'd also re-add the winutil.ps1 and inputTweaks.xaml to reflect the last state in the Repo of Chris because like this, your PR will only show the files you actually changed and won't contain 10000+ deleted lines in the auto-generated files.
This is how I would implement the feature. If this is to your liking, just approve the PR and the PR in the official Repo should be automatically updated as well. If not, maybe this at least gives you an idea how to work with Install-WinUtilProgramWinget :D

Alright Thanks for the Help. I accidently delete the Branch lol