Allow "profiles" with different options for each category, with power detection

An option to create a profile that has a set fan curve, boost, and all the other settings.
Option to automatically switch plans based on whether on battery or A/C

I'm actually working on that right now : ). The next feature is the grayed out menu item "Plans" which is exactly this.

Alright, I just made another release with auto updates and g14control plans. It's possible it will be a bit buggy, but at least you won't have to keep checking for updates if it does end up breaking haha : ) @LavaTiger99 https://github.com/aredden/electron-G14Control/releases/tag/v0.1.27

Awesome! Trying it out now.

Seems to work great!

the last applied plan should automatically apply again on startup, because windows and asus may set things on boot, there may need to be a slight delay before applying the plan.

allowing power switching depending whether battery or A/C power is used.

Current plan should show at the top of the Status page. If any one element is change outside a plan it should switch to "No Plan" or "Custom" or something like that.

Ability to edit a plan after creating it.

deleting all the plans crashes the program

Getting some error when applying a plan, does not appear that the ryzen settings are applying

[RyzenADJ - ERROR] - Error setting ryzenadj settings: {"err":{"killed":false,"code":4294967295,"signal":null,"cmd":"cmd /c \"C:\\Users\\Carver Haines\\Documents\\dev\\electron-G14Control\\electron\\ryzenadj\\ryzenadj.exe\" --fast-limit 40 --slow-limit 35 --stapm-limit 25 --stapm-time 200 --slow-time 2 --tctl-temp 85 "},"stderr":""}

Yeah the plans page is still a work in progress. A lot of the things you mentioned are things that I plan to add. I think that I fixed some of the issues in version 0.1.28 such as crashing, although my testing was not thorough at all. The biggest thing I want to focus on right now is the auto-updates, since they are actually not working, although since it takes two full updates to actually test the updates (upload functioning version, then updating again), I will also work on these issues.
The cpu tuning stuff does occasionally fail (RyzenADJ). It's just the way it is. I don't know why, but sometimes it'll take as many as 4 attempts to get it to apply.


KILL/TERM

The "docker stop" help section mentions that it performs a SIGTERM, waits a predefined amount of time, and then sends a SIGKILL to the process if it hasn't died in that amount of time.
Let's assume that we're running MySQL in a container. "docker stop CONTAINER_ID" sends a SIGTERM, and MySQL starts cleaning up, flushing everything to disk and making sure everything's neat and tidy. The system is running slow, so it's taking a while, but MySQL is doing the job it was told to do. Suddenly, the grace period elapses and docker sends a SIGKILL, which it can't catch. MySQL dies without completing the clean up. When the container is bought back up, we suddenly have corrupt tables and administrators are running around and people are getting fired.
Maybe dramatised a bit, but I was wondering if this could be rethought? If a container doesn't die properly, we shouldn't be breaking out the howitzers to make sure it does. We should be emitting a warning message if the container is taking too long to die, giving the user the option to SIGKILL if they want, with a warning that they may be corrupting data.
Just because everyone in the industry seems to think SIGKILLing is okay to do by default, doesn't mean we should be.
For "docker kill", we should change the default signal to TERM. This mirrors more closely the default option for for the shell built-in "kill" in Linux, as opposed to the more deadly KILL (which requires passing an option [-9] to kill).

@cpuguy83 do you know what the solution would be here? can we triage

Summary: docker stop sends SIGKILL after a timeout period which could be disastrous to many applications.
 I'm pretty sure actuall quite few people (compared to the mass of people using Docker) know about this.
A log would at least push users to find this issue, and the workaround (or pass a bigger -t, anyway). Until some weeks ago, I wasn't even aware of the SIGKILL my containers were receiving. So I wasn't even worrying.
Cheers

Btw, could/shouldn't a label like "needs-attention" or something more important be put on this issue?
In fact, as stated above, this behaviour can be disastrous to the data, so I wonder if this could deserve more attention.
Thanks

I think this issue #12315 I created is related to this one. I give an example where you actually lose data.

I recently found out about a fairly disastrous issue with SIGTERM and PID 1 that is fairly relevant to this discussion. The kernel automatically installs a SIG_IGN handler for PID 1 for a whole bunch of signals (including SIGTERM). So really, docker stop will only trigger clean up operations for services that don't explicitly define a SIGTERM handler.

Closing this since as stated before, docker kill -s TERM will send only SIGTERM to the container. Additionally you can use this to define your own workflow for how to deal with something not exiting on TERM.
I don't see the docker stop API changing since you can just use kill


check ldap user if exist

thanks for your great job, really!
there is one question for me. does the portal check if user are gone from ldap and purge them from mysql database and give free the ip/config what was created?
for example i have 10000 users synced successfully. but after time serveral users are leaving and were deleted from our active directory permamently.
do i need check/delete manually or is there some routin that doing this? if not this would be a very important and helpful "enterprise" feature.
keep it up & br
ff

wg-portal checks if the user is missing or disabled (via ldap filter LDAP_SYNC_FILTER) in ldap, if so, the portal user will be disabled as well which means that all associated peers for the user get disabled (not deleted)

How often are the checks preformed? I'm looking at the same thing

@nightincode the sync interval is one minute


Add active parts metric

What does this PR do?
This adds the PartsActive metric to the integration
Motivation
Active parts are a useful metric when monitoring Clickhouse and its health.
Review checklist (to be filled by reviewers)

[ ] Feature or bugfix MUST have appropriate tests (unit, integration, e2e)
[ ] PR title must be written as a CHANGELOG entry (see why)
[ ] Files changes must correspond to the primary purpose of the PR as described in the title (small unrelated changes should have their own PR)
[ ] PR must have changelog/ and integration/ labels attached

I updated the tests and the docs.
Also this metric was added in a newer version. I added this new version and updated the tests accordingly.


refactor: use css logical properties

Related issue
Close #15
Scope of work
▪ rewrite styles of components - use CSS logical properties and flex-gap,
▪ add use-logical mixin, which transforms conventional CSS physical value to CSS logical properties.
▪ add docs page, stories and decorator for use-logical mixin
▪ rename popover class from ui-popover--has-left-arrow to ui-popover--has-start-arrow
▪ remove resize observer from UiNavigation
▪ add pointer-area mixin - which adds a pseudo-element that increases the clickable area
Easy way for RTL support
Logical properties respond automatically to text direction and writing mode. This means that left and right will automatically reverse for RTL layouts.
It won't be needed anymore 👇
  margin: 0 var(--space-4) 0 var(--space-8);

  [dir="rtl"] & {
    margin: 0 var(--space-8) 0 var(--space-4);
  }

use-logical mixin
Arguments:

element: component name,
property: margin, padding, border, border-width, border-style, border-color, inset,
value: default LTR CSS value for property (top right bottom left) e.g. 20px 40px 35px 15px

Example

ok, this PR is soo huge XD. I think a lot of things work fine. Amazing job @ArkadiuszKrzymienski :thank_you:


Job for k3s.service failed because a fatal signal was delivered causing the control process to dump core.

Environmental Info:

K3s Version:  when you run k3s -v it states "illegal instruction" but the version from the install output reports "v1.21.7+k3s1"
Node(s) CPU architecture, OS, and Version:

Linux raspberrypi 5.10.63+ #1488 Thu Nov 18 16:14:04 GMT 2021 armv6l GNU/Linux
Cluster Configuration:

Couldn't get install to complete successfully
Describe the bug:

Install fails with: "Job for k3s.service failed because a fatal signal was delivered causing the control process to dump core."
Steps To Reproduce:

tried to install via: curl -sfL https://get.k3s.io | sh -

Installed K3s:
none

Expected behavior:

Install expected to complete successfully
Actual behavior:

Install finished but produces:
"Job for k3s.service failed because a fatal signal was delivered causing the control process to dump core."
Any running of k3s binaries produces: "Illegal instruction"
Additional context / logs:

$ systemctl status k3s.service
k3s.service - Lightweight Kubernetes
Loaded: loaded (/etc/systemd/system/k3s.service; enabled; vendor preset: enabled)
Active: activating (auto-restart) (Result: core-dump) since Sun 2021-12-05 20:04:09 GMT; 3s ago
Docs: https://k3s.io
Process: 1941 ExecStartPre=/bin/sh -xc ! /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service (code=exited, status=0/SUCCESS)
Process: 1943 ExecStartPre=/sbin/modprobe br_netfilter (code=exited, status=0/SUCCESS)
Process: 1944 ExecStartPre=/sbin/modprobe overlay (code=exited, status=0/SUCCESS)
Process: 1945 ExecStart=/usr/local/bin/k3s server (code=dumped, signal=ILL)
Main PID: 1945 (code=dumped, signal=ILL)

$ journalctl -xe
Dec 05 20:05:47 raspberrypi systemd[1]: Starting Lightweight Kubernetes...
-- Subject: A start job for unit k3s.service has begun execution
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- A start job for unit k3s.service has begun execution.
--
-- The job identifier is 12727.
Dec 05 20:05:47 raspberrypi sh[2034]: + /usr/bin/systemctl is-enabled --quiet nm-cloud-setup.service
Dec 05 20:05:47 raspberrypi sh[2034]: Failed to get unit file state for nm-cloud-setup.service: No such file or directory
Dec 05 20:05:48 raspberrypi systemd[1]: k3s.service: Main process exited, code=dumped, status=4/ILL
-- Subject: Unit process exited
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- An ExecStart= process belonging to unit k3s.service has exited.
--
-- The process' exit code is 'dumped' and its exit status is 4.
Dec 05 20:05:48 raspberrypi systemd[1]: k3s.service: Failed with result 'core-dump'.
-- Subject: Unit failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- The unit k3s.service has entered the 'failed' state with result 'core-dump'.
Dec 05 20:05:48 raspberrypi systemd[1]: Failed to start Lightweight Kubernetes.
-- Subject: A start job for unit k3s.service has failed
-- Defined-By: systemd
-- Support: https://www.debian.org/support
--
-- A start job for unit k3s.service has finished with a failure.
--
-- The job identifier is 12727 and the job result is failed.

Backporting

[ ] Needs backporting to older releases

I wonder if this is armv7 specific.
$ curl -sfL https://get.k3s.io | sh -
[INFO]  Finding release for channel stable
[INFO]  Using v1.21.7+k3s1 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v1.21.7+k3s1/sha256sum-arm64.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v1.21.7+k3s1/k3s-arm64
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Skipping installation of SELinux RPM
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Skipping /usr/local/bin/ctr symlink to k3s, command exists in PATH at /usr/bin/ctr
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s
$ uname -a
Linux mammatus-Cloud 4.9.253-tegra #1 SMP PREEMPT Mon Jul 26 12:13:06 PDT 2021 aarch64 aarch64 aarch64 GNU/Linux
Everything running as expected here. :/

pi@raspberrypi:~ $ sudo k3s server Illegal instruction pi@raspberrypi:~ $
I also tried apt updating everything.
And looked around for some dumped cores since the installer reported it but nada.
🤷♀

pi@raspberrypi:~ $ curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v0.9.1 sh -
[INFO]  Using v0.9.1 as release
[INFO]  Downloading hash https://github.com/k3s-io/k3s/releases/download/v0.9.1/sha256sum-arm.txt
[INFO]  Downloading binary https://github.com/k3s-io/k3s/releases/download/v0.9.1/k3s-armhf
[INFO]  Verifying binary download
[INFO]  Installing k3s to /usr/local/bin/k3s
[INFO]  Skipping installation of SELinux RPM
[INFO]  Creating /usr/local/bin/kubectl symlink to k3s
[INFO]  Creating /usr/local/bin/crictl symlink to k3s
[INFO]  Creating /usr/local/bin/ctr symlink to k3s
[INFO]  Creating killall script /usr/local/bin/k3s-killall.sh
[INFO]  Creating uninstall script /usr/local/bin/k3s-uninstall.sh
[INFO]  env: Creating environment file /etc/systemd/system/k3s.service.env
[INFO]  systemd: Creating service file /etc/systemd/system/k3s.service
[INFO]  systemd: Enabling k3s unit
Created symlink /etc/systemd/system/multi-user.target.wants/k3s.service → /etc/systemd/system/k3s.service.
[INFO]  systemd: Starting k3s

Version 0.9.1 installs so that's something, but...
pi@raspberrypi:~ $ vmstat 1 5
procs -----------memory---------- ---swap-- -----io---- -system-- ------cpu-----
 r  b   swpd   free   buff  cache   si   so    bi    bo   in   cs us sy id wa st
13  0 102356  39204   6080 111716    5   13    98   113  192  357 13  8 78  1  0
13  0 102356  37536   6400 111732    0    0<PHONE_NUMBER> 2619 57 43  0  0  0
14  0 102396  37140   6204 111392    0   36<PHONE_NUMBER> 3312 53 47  0  0  0
18  0 102396  38760   6088 111312    0    0<PHONE_NUMBER> 3414 33 67  0  0  0
16  0 102396  40260   5916 108612    0   28   672    28 1545 4163 39 61  0  0  0
pi@raspberrypi:~ $

Maybe I'll try back a release release or two...

Is this a 3b+ pi or one of the newer pi 4’s? I have a 3b+ i can try and report back.

Yes, K3s requires at least arm v7.
https://github.com/k3s-io/k3s/blob/a8f7e9f7e8ca884b3e2ae608a356417b4f451c41/scripts/build#L68

Welp, that must be it.
It's a PiZeroW.
I saw that some folks had it working on 0.9.1 and it did work on mine yesterday via:
curl -sfL https://get.k3s.io | INSTALL_K3S_VERSION=v0.9.1 sh -
so I figured it wouldn't be that, especially with IoT intentions of k3s.
ARMv6 isn't IoT-ish any longer?
I went through several of the pages of the releases to see if support was dropped or modified at some point but couldn't find anything, but it was sort of needle in the haystack searching.
Is there a release notes or thread that discusses the change?
Appreciate all the help.

We had only ever intended to support armv7; we'd been setting GOARM=7 since v0.1.0-rc3 but for various reasons is wasn't being honored. That was fixed in https://github.com/k3s-io/k3s/commit/10474638d78def323a657ee7e58761e385acee43 which was released in the 1.20 branch.

Thanks.
I'll probably get in line for a PiZeroW2 (I use my setup for a light travel server) and go from there.
Again, thanks for the input and feedback.


[eas-cli] Add message about concurrency add-on

Why
Let people know that they can add more concurrencies easily
How
Make the message more clear
Test Plan

/changelog-entry chore Let folks know about the new concurrency add-on

/changelog-entry chore Let folks know about the new concurrency add-on


⚠ Bofrost.at has degraded performance

In b882a09, Bofrost.at (https://www.bofrost.at) experienced degraded performance:

HTTP code: 200
Response time: 830 ms

Resolved: Bofrost.at performance has improved in 8a25248.


#261 260 bug filter does not work by date and data

Fix 261 and 260 bugs.

Check Travis build

You have 1 Checkstyle violation.
[ERROR] src/main/java/greencity/repository/options/UserFilter.java:[64] (javadoc) SummaryJavadoc: First sentence of Javadoc is missing an ending period.

Please? try to build project before every pull request.


eliminate warning for unused method during testing

What's the problem ?
Running cargo test generated the following warning:
warning: static `INIT` is never used
 --> tests/integration_util/mod.rs:6:8
  |
6 | static INIT: Once = Once::new();
  |        ^^^^
  |
  = note: `#[warn(dead_code)]` on by default

warning: function `init_logging` is never used
 --> tests/integration_util/mod.rs:8:15
  |
8 | pub(crate) fn init_logging() {
  |               ^^^^^^^^^^^^

warning: `didethresolver` (test "integration_test") generated 2 warnings

Why does that happen ?
We currently have no integration tests implemented. In fact, we have a single stub called test_resolve_did that have a single like of code :
todo!()

As a result of that, the init_logging and the INIT aren't being used.
Solution
Modify the test_resolve_did() implementation, and add a call to init_logging. This would eliminate the warning, as the method would be called.

Codecov Report
All modified and coverable lines are covered by tests :white_check_mark:

Comparison is base (ed3cedb) 91.37% compared to head (9caa4e8) 91.37%.

:exclamation: Your organization needs to install the Codecov GitHub app to enable full functionality.
Additional details and impacted files
@@           Coverage Diff           @@
##             main      #19   +/-   ##
=======================================
  Coverage   91.37%   91.37%
=======================================
  Files           5        5
  Lines          58       58
=======================================
  Hits           53       53
  Misses          5        5

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


Card is showing RBR for suspicious transaction, when no suspicious transaction occurred or is shown in the inbox

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

Reproducible in staging?: Y
Reproducible in production?: Y
Email or phone of affected tester (no customers<EMAIL_ADDRESS>Issue reported by: @kevinksullivan
Slack conversation: https://expensify.slack.com/archives/C05DWUDHVK7/p1703037018018159
Action Performed:
No real action performed, I just have an active physical card with no suspicious transactions flagged
Expected Result:
No RBR in card settings in NewDot suggesting I have a suspicious transaction
Actual Result:
There is a RBR in NewDot suggesting I have a suspicious transaction, but there is no transaction highlighted in the OldDot inbox.
Screenshots/Videos

View all open jobs on GitHub
Upwork Automation - Do Not Edit

Upwork Job URL: https://www.upwork.com/jobs/~0113138aebf1dfe448
Upwork Job ID:<PHONE_NUMBER>180258816
Last Price Increase: 2024-01-10

Issue OwnerCurrent Issue Owner: @grgia

@grgia I see you got assigned here, does that mean it needs the internal label?

I am experiencing the same issue

There's a handful of internal employees that are affected by a bug where closed cards were never marked as closed in the cards table. We will need to check these against marqeta and update the cards table

goal:
we need to find all the Expensify cards where a user has a card in the db that is incorrectly set to state active (3) but is suspended in Marqeta. We can start with internal employees

We are discussing here https://expensify.slack.com/archives/C03TQ48KC/p1704929399918409

@grgia Do we have any updates on this one? I don't have access to the slack thread.

going to close this out until we see a real user experiencing this. What we've seen is these sorts of issues only pop up for internal folks with older cards (like me).


working on downwload button , removing icons from menu , adding anima…

…te on scroll feature [skip ci]

Can you keep your PRs atomic please - just do the button change in one PR so that I can review just that functionality and merge it.
Please dont work on the animation stuff right now - focus on search rather (see #35 )

Can you keep your PRs atomic please - just do the button change in one PR so that I can review just that functionality and merge it.
Please dont work on the animation stuff right now - focus on search rather (see #35 )

ok sure . lemme redo with , and send a PR

Can you keep your PRs atomic please - just do the button change in one PR so that I can review just that functionality and merge it.
Please dont work on the animation stuff right now - focus on search rather (see #35 )
OK


Game crashes when playing with the fps unlocker

When I am using the fps unlocker at some point the game just freezes, I get a window not responding and it closes itself. It most usually happens in the abyss

Ill assume you are playing on a laptop and if so the first thing you want to check is your temperature. Because my temp is really high as well doing abyss since the FPS is 200+.  There have been no report in years that this unlocker causes any kind of crashes other than temperature and stress to your component/

I've been getting some Freezes the past couple days and when I try to close Genshin in Task Manager it says not accessable even when I run in Administrator, not sure what's causing it.
Going to try putting GenshinUnlockfps on the same hard drive as the game.

Didn't work, reinstalling Genshin didn't work either. I don't know how to close the process in task manager without resetting the PC as it's still access denied even if I open in Administrator.

Unfortunately I have the same problem, it was not an issue 5 months ago and I did not change any part of my setup beside updating the game and the unlocker.

I'm getting a Crash every day almost, it always requires a restart and it takes a long time to reload my Chrome every time I restart.

I tested reinstalling my Nvidia Drivers from scratch Uninstalling using DDU in Safe mode reinstalling all drivers manually. No Dice it still after a while crashes and I can't open a new game without restarting.

Nice thread hijacking. To answer your question, there are no known report that this FPS unlocker cause any kind of crashes except 4.2 BETA. Have you tried other game and rule out any hardware fault?

AMD cards don't thermal throttle. No other games crash. And it crashed on both my old Hardware and my New hardware. Current hardware sits at 69 Degrees (AMD cards throttle at 110). It wasn't CPU load that maxed, it was memory % in Task Manager and I have 64GB of Ram. It takes a while to crash I'd have to have my monitoring software open to catch it.

I started using the fps unlocker last week, and everyday it is crashing. Just reporting here, it seems to be a problem. My computer almost never crashes on any games. And before the fps unlocker it was working fine.

Can also confirm that using mods doesn't crash the game--however the game crashes with FPS Unlocker on and worse with mods! Might want to look at CPU and GPU usage to potentially find the culprit.

Just a reminder https://github.com/34736384/genshin-fps-unlock/issues/104#issuecomment-1342992315

Does anyone find a solution about this crash?


Support encryption and compression in disk store

This PR fixes https://github.com/NVIDIA/spark-rapids/issues/9398. It is to support encryption and compression in disk store.
For compression part, it introduces two separated configurations to turn on/off compression behavior.
For encryption part, it leverages Spark existing IO encryption from its serializerManager.
PR is tested by newly added UTs locally.

build

build

build

On performance tests I think we need to see our regular NDS @ 3TB and also a spill-prone case (we have some test queries we can run internally that would help show several TBs of spill). We'd compare before/after your change.

On performance tests I think we need to see our regular NDS @ 3TB and also a spill-prone case (we have some test queries we can run internally that would help show several TBs of spill). We'd compare before/after your change.

Got it. Will check with you in slack about spill-prone case.

build

On performance tests I think we need to see our regular NDS @ 3TB and also a spill-prone case (we have some test queries we can run internally that would help show several TBs of spill). We'd compare before/after your change.

For spill-prone case, with compression on, it's slightly better than compression off case.

Iteration ID
With Compression
Without Compression

1
210
216

2
216
210

3
222
210

4
210
222

5
210
216

Geomean Time (in sec)
213.5467282
214.7532837

Average
213.6
214.8

On performance tests I think we need to see our regular NDS @ 3TB and also a spill-prone case (we have some test queries we can run internally that would help show several TBs of spill). We'd compare before/after your change.

For spill-prone case, with compression on, it's slightly better than compression off case.
Iteration ID	With Compression	Without Compression
1	210	216
2	216	210
3	222	210
4	210	222
5	210	216
Geomean Time (in sec)<PHONE_NUMBER><PHONE_NUMBER>
Average 	213.6	214.8

It may be nice to add here the spill sizes, how much did we spill to host and disk.

I think we are still waiting for NDS tests to be run with this patch and UCX tests.

For NDS tests, I verified it on spark cluster. It shows slightly better (6% - 7%) in power run. For UCX tests, any particular tests we want to conduct? Or NDS should be fine?

It may be nice to add here the spill sizes, how much did we spill to host and disk.

Take a further look here. Currently spilled data from Rapids disk store is not counted in disk spill Spark metric. I will clean up this in issue 9496 as well.

It may be nice to add here the spill sizes, how much did we spill to host and disk.

Take a further look here. Currently spilled data from Rapids disk store is not counted in disk spill Spark metric. I will clean up this in issue 9496 as well.

Please take a look at RapidsHostMemoryStore.trySpillToMaximumSize (https://github.com/NVIDIA/spark-rapids/blob/branch-23.12/sql-plugin/src/main/scala/com/nvidia/spark/rapids/RapidsHostMemoryStore.scala#L86). In this function we update the disk bytes spilled metric. This is the trigger for the host->disk spill, and the metric is shown in the spark UI per stage. If you are not seeing spill bytes here that would be a bug. I'd expect with compression that your spill-prone test would show a difference in the amount of bytes spilled to disk compressed vs not compressed.

I think we are still waiting for NDS tests to be run with this patch and UCX tests.

For NDS tests, I verified it on spark cluster. It shows slightly better (6% - 7%) in power run. For UCX tests, any particular tests we want to conduct? Or NDS should be fine?

As discussed, lets document this fully (what configs) once you have the runs with some of our automation that produces the regression report. The setting to alter the amount of GPU memory we make available to spark-rapids is spark.rapids.memory.gpu.allocSize and this can be set fairly low (2GB seems like it would guarantee some spill to occur). I'd monitor the spill metrics in the stage (memory/disk) to see if we are spilling. Additionally, we output a couple of accumulators (as you found) so those will show the amount of time tasks were blocked while spilling, and the amount of time they were blocked while reading spilled data.

build

@abellina can you take a further look at this? Thanks!

For spill heavy query, it shows some difference in both size and execution time. Note: stage 3 is most spill heavy stage for this query.

| With Spill Compression | Without Spill compression
-- | -- | --
Total Job Exec Time | 4.5 min | 4.2 min
Stage 2 Execution Time | 1.2 min | 1.3 min
Stage 2 Spill (Memory) | 215.5 GB | 251.6 GB
Stage 2 Spill (Disk) | 66.4 GB | 94.8 GB

Thanks @winningsix. As discussed, we didn't think there was a performance change with this patch for NDS @ 3TB, since it doesn't spill. I will run some tests on my own today, including a UCX test.

@winningsix I ran a special case of NDS where every buffer was spilled to disk (documented here https://github.com/NVIDIA/spark-rapids/issues/9596). I also ran this patch with UCX and verified that UCX buffers are not going through the new path, and the smoke tests pass.
For the amount spilled in my NDS example:  compression was 12TB, without compression we spilled 25TB. This is great as this is our benchmark data, and this shows we can reduce our disk usage by 50% with this patch. Nice!!!
 I say that because this is our performance cluster and it has great IO bandwidth, so any work we do (compression) is overhead. There are other issues I documented in #9596 that we can tackle later where we could make our spill code smarter. As of today, with this patch, we could be 50% slower in a scenario where IO is really great. That means we should at least run tests in the cloud, perhaps with the same patch, to find out if we do way better there (with worse IO and smaller host memory), and these experiments would inform our auto tuner for recommendations where for some history files we may recommend disabling compression.
Name = benchmark
Means = 3802000.0, 7187000.0
Time diff = -3385000.0
Speedup = 0.5290107137887853
T-Test (test statistic, p value, df) = -27.525783960660327, 0.02311795793190776, 1.0
T-Test Confidence Interval = -4947553.244415962, -1822446.7555840379
ALERT: significant change has been detected (p-value < 0.05)
ALERT: regression in performance has been observed

build


Changing the Slow threshhold query capture

We have changed the Slow query threshold to 5000 ms on 400 servers however it is still capturing data greator than 1000ms.
Is there a time delay or do I need to disable persist before making changes?

Any changes made to the config will require a restart of the service to pick up the changes.

yeap we have done that one 3 times lol still capturing under 5 milliseconds

Do you have the Persist XE Sessions checked?  If this option is checked, the event session doesn't get dropped/re-created.  This allows you to apply any custom filtering you want to the event session but it will also mean that any changes to the slow query threshold setting won't be applied (unless the session is dropped manually).

Hey David,
Please feel free to close this issue as the update has now been propagated across all servers. However, we have identified a bug in the latest SQL Server 2016 where the Extended Events (XE) are growing to enormous sizes. This issue appears to be related to the memory leak problem documented in SQL Server 2012, which is described in the following link: https://support.microsoft.com/en-us/topic/kb2965758-fix-memory-leak-occurs-when-you-start-and-stop-an-xevent-session-repeatedly-in-sql-server-2012-f8fe67e2-c5fc-a279-7296-da8349b0c6ea.
There does not seem to be a fix available in any of the latest cumulative updates (CU) for SQL Server 2016.
Thank you.

I had slow query capture disabled in my lab on my SQL 2016 SP3 instance.  I've re-enabled it and will see if the memory clerk grows in size.  I might not see anything though as I don't really have a lot of activity in my lab.  DBA Dash does start/stop the event session as a way to flush the captured events so they don't need to be re-processed on the next collection.
Mainstream support ended for SQL 2016 in 2021 so if the bug exists in the latest version it's unlikely to get patched.  It's still under extended support but this is just for security patches if you have a subscription.  If you can it might be worth planning an upgrade to SQL 2022 which has mainstream support until 2028.  Mainstream support for 2019 ends early next year.
There are a variety of reasons people are stuck on older versions of SQL Server.  I plan to support old versions in DBA Dash as long as it remains practical and the effort is relatively low. SQL 2005 is the oldest version that works with DBA Dash.


XTZ dzn't work

Only XTZ will not appear. Any idea?
Edit: OXT too😕
{
module: "MMM-Coinbase",
position: "top_center",
header: "Coinbase",
config: {
apiKey: "MY CORRECT KEY",
apiSecret: "MY CORRECT API SECRET KEY",
wallet: ["NU", "XTZ", "FIL", "COMP", "OXT",],
icons: true,
label: false
}
}

Hello ^^ I don't quite understand the problem. On the screenshot, OXT seem to appear, right?

Hi, I personally have no worries, as the screenshot shows. Can you give me your versions, from MagicMirror, MMM-Coinbase and NodeJS. Thanks 🙂

Here's my config.js:
{
	module: "MMM-Coinbase",
	position: "top_left",
	header: "Coinbase",
	config: {
		apiKey: "MY_API_KEY",
		apiSecret: "MY_API_SECRET",
		wallet: ["BTC", "LTC", "OXT", "XTZ", "NU", "FIL"],
		icons: true,
		label: false
	}
}

Nodejs v10.23.0
MM 2.13.0
Mmm-Coinbase 1.0.0 (the last one?)
Raspbian 10 (buster)

Try to update to NodeJS 12

Try to update to NodeJS 12

Yep, you're in an old version of Node. As you can see on the official website https://nodejs.org/en/, the actual version of Node is the v14.x.x
For an update to a recent version, I suggest you to read this comment on an other issue, it may help you https://github.com/mlbonniec/MMM-Coinbase/issues/13#issuecomment-748901066

Happy New Year!
New year old problems. I have made all new. XTZ still not appear.
Node 15
What can I do, any idea?

Happy New Year!
New year old problems. I have made all new. XTZ still not appear.
Node 15
What can I do, any idea?

And I have the solution! Look this picture below.

And I have the solution! Look this picture below.

Can you explain ? Because i think no major part of people read the langage of your screen

Can you explain ? Because i think no major part of people read the langage of your screen


IndexError for last batch of last epoch

I got this error while training a full model yesterday:
Traceback (most recent call last):
  File "train.py", line 526, in <module>
    train_gan_d(train_data[random.randint(0, niter)])
IndexError: list index out of range

This happened for the last batch of the last epoch.
The relevant code block:
# train gan ----------------------------------
        for k in range(niter_gan):

            # train discriminator/critic
            for i in range(args.niters_gan_d):
                # feed a seen sample within this epoch; good for early training
                errD, errD_real, errD_fake = \
                    train_gan_d(train_data[random.randint(0, niter)])

It is possible that train_data can be populated with less elements than niter in the batchifyfunction?
The argument list I had was pretty minimal: python train.py --data_path /path/to/billion-word-data --cuda --no_earlystopping

i experimented with just random indices -- it worked just fine. Let me push a commit on this real quick

@thvasilo I pushed the update. Please let me know if you have any further question!


build: remove staticcheck action

The staticcheck GitHub Action is not allowed in this repository.
Fixes https://github.com/googleapis/go-sql-spanner/actions/runs/11879520599

@olavloite Is there a reason it's disallowed? Or is it that just the action part is not allowed?
I see that there are other projects that do run the linter https://github.com/search?q=org%3Agoogleapis staticcheck&type=code. They do not use the action, however they setup a custom environment and then try to run it. e.g. https://github.com/googleapis/google-cloud-go/blob/5af186e08315f8e51c9945f737efa1ed7a4b5f7b/.github/workflows/vet.sh#L83

@egonelbre It is (AFAICT) specifically the third-party action that is disallowed.

I made it use go install and running the binary https://github.com/googleapis/go-sql-spanner/pull/326


Update index.html

1ères adaptations du code pour la formation DL, notamment la traduction de certains termes.
Make sure these boxes are checked before submitting your Pull Request, thank you!

[ ] I have read and complied with the Pull Request Contributing Guidelines.
[ ] I checked if an an issue is necessary for my Pull Request and made sure it exists.
[ ] I have created a topic branch.
[ ] I have used the Search Tool to make sure there are no open Pull Requests fixing the same thing.

1ère adaptation correctement réalisée.


conformance: add request header modifier test

What type of PR is this?
/area conformance
What this PR does / why we need it:
Adds a request header modifier test.
Which issue(s) this PR fixes:

Updates #1103.
Does this PR introduce a user-facing change?:

NONE

Looks pretty comprehensive to me. A case insensitivity check could be a good addition?

:+1: added the case-insensitivity test case.

It looks like there's a conflict here, so tests will fail initially, but hopefully this helps post rebase.
/ok-to-test

Thanks @robscott, conflict fixed

If possible, it'd be nice to get this merged before the v0.5.0 release.

@skriss this LGTM but agree with @markmc's suggestions above, specifically the adjustments to types and adding a check that covers case insensitive matching.

and adding a check that covers case insensitive matching.

I added this in https://github.com/kubernetes-sigs/gateway-api/pull/1163/commits/d2990dd01d5634f54f9d42bac623b497acc30e94

@robscott just a nudge here, the feedback has been addressed and would be great to have this included in v0.5.0 if possible, thanks!

Sorry it took me so long to get back to this one! Took the time to verify that these tests pass locally for me.
/lgtm
/approve

Looks like this conflicts with https://github.com/kubernetes-sigs/gateway-api/pull/1228. Will LGTM again once this is rebased.

Rebased and fixed conflict, thanks @robscott!

/lgtm

Seems like the first one didn't work...
/lgtm


Ensure the SEO-Key being parsed lower-case

@sveneberth That's correct. However as we made the seo-keys case-IN-sensitive there would be no way to handle entities with mixed cases (eg afaik there could be"test" and "Test" as separate entities) . So the current solution would "correctly" index both - but only the all-lowercase key will be accessible


Fix typo in CHANGELOG.md

Fix a typo in CHANGELOG.md file.

[x] Make sure you are opening from a topic/feature/bugfix branch (right side) and not your main branch!
[x] Ensure that the pull request title represents the desired changelog entry
[x] Please describe what you did
[ ] Link to relevant issues in GitHub or Jira
[ ] Link to relevant pull requests, esp. upstream and downstream changes
[ ] Ensure you have provided tests - that demonstrates feature works or fixes the issue

Note that this should become obsolete with #74.


Can't find any asset

https://pastebin.com/vzdz0GQk
my about.md looks like this

layout: page
title: About
permalink: /about/
{% asset mycss.css %}
My folderstructure looks like this https://pastebin.com/vQvXHNyq . So what's wrong, why can't he find any assets?

Hello, this is a PEBKAC issue, see https://github.com/envygeeks/jekyll-assets#configuration, look at the "sources" section for how the structure should be setup.  Past that I do not provide support for people's personal sites.
Thanks!


CVE-2020-8558

Just a quick question about this CVE. Will this be addressed in v2.4.6?  In the meantime, what's the best approach to mitigation if running v2.4.4 or v2.4.5?
Thanks

@travis-sobeck We are currently investigating the impact of the CVE on Rancher. Should have a mitigation plan / path forward soon.

Sounds good, thanks.

We are working to update Rancher to address the following CVE:

CVE - 2020-8558: Node setting allows for neighboring hosts to bypass localhost boundary

CVE-2020-8558 was patched in the following versions of Kubernetes: v1.18.4+, v1.17.7+, v1.16.11+
To ensure you have the latest stable version of Kubernetes, for Rancher v2.4.5, the following k8s versions will be made available using KDM:

v1.18.5-rancher1-1
v1.17.8-rancher1-1
v1.16.12-rancher1-1

For Rancher v2.3.8, the following k8s versions will be made available using KDM

v1.17.8-rancher1-1
v1.16.12-rancher1-1

KDM?

@travis-sobeck it's updating our Kontainer-driver-metadata, which will automatically update and installed 2.4.5 and 2.3.8 Rancher version. However we are currently running into a technically issue with the latest patches. So there might be a delay in delivering this.

Blocker issue with the latest k8s patches: https://github.com/rancher/rancher/issues/27652

Ah, ok.  I thought maybe it was some CLI tool that I need to run against my cluster instead of helm upgrade.

Currently we are still investigating a blocker issue caused by the latest patches. In the meantime, users can use the following information to mitigate the vulnerability. See the original issue created by the Kubernetes team here: https://github.com/kubernetes/kubernetes/issues/92315
Am I vulnerable?

You are running a vulnerable version

Kubernetes v1.18.0 - v1.18.3
Kubernetes v1.17.0 - v1.17.6
Kubernetes <= v1.16.10

Your cluster nodes run in an environment where untrusted hosts share the same layer 2 domain (i.e. same LAN) as nodes

To be decided by the user

Your cluster allows untrusted pods to run containers with CAP_NET_RAW (the Kubernetes default is to allow this capability).

This is not possible when using the restricted PodSecurityPolicy
If you are not using the restricted PodSecurityPolicy, you can disallow the use of this capability

See https://rancher.com/docs/rancher/v2.x/en/admin-settings/pod-security-policies/ for more information about configuring PodSecurityPolicy

Your nodes (or hostnetwork pods) run any localhost-only services which do not require any further authentication. To list services that are potentially affected, run the following commands on nodes:

lsof +c 15 -P -n<EMAIL_ADDRESS>-sTCP:LISTEN
lsof +c 15 -P -n<EMAIL_ADDRESS>
On a master node, an lsof entry like this indicates that the API server may be listening with an insecure port:

COMMAND        PID  USER FD   TYPE DEVICE SIZE/OFF NODE NAME
kube-apiserver 123  root  7u  IPv4  26799      0t0  TCP <IP_ADDRESS>:8080 (LISTEN)

How do I mitigate this vulnerability?
Prior to upgrading, this vulnerability can be mitigated by manually adding an iptables rule on nodes. This rule will reject traffic to <IP_ADDRESS> which does not originate on the node.
 iptables -I INPUT --dst <IP_ADDRESS>/8 ! --src <IP_ADDRESS>/8 -m conntrack ! --ctstate RELATED,ESTABLISHED,DNAT -j DROP

Additionally, if your cluster does not already have the API Server insecure port disabled, we strongly suggest that you disable it.
The configuration parameter for kube-apiserver to disable the insecure port is --insecure-port=0 . This is the default for all currently released Kubernetes versions in v2.4.5. This can be verified using the following command (requires jq to be installed):
docker inspect kube-apiserver | jq -e '.[0].Args[] | match("--insecure-port=0").string'

This should result in the output, confirming the configuration parameter is present:
"--insecure-port=0"

If you need to manually apply this configuration, please follow the documentation as described on https://rancher.com/docs/rancher/v2.x/en/cluster-provisioning/rke-clusters/options/#cluster-config-file using the following configuration:
services:
  kube-api:
    insecure-port: "0"

Tracking all pending CVEs here: https://github.com/rancher/rancher/issues/27950


Load related data with includes

Is it possible to specify additional includes when calling load?
https://embermap.github.io/ember-data-storefront/docs/api/mixins/loadable-model#load
Eg post.load('comments,comments.author'); or post.load('comments', {include: 'author'});

Yup! Take a look at reloadWith, it's made for includes.
post.reloadWith('comments,comments.author').then(post => {
  post.hasMany('comments').value() // <= the comments
});

Thanks. I had seen that but it doesn’t match up with exactly what I’m looking for. reloadWith requires reloading the base record whereas load can fetch just the associated data.

On 11 Oct 2018, at 11:32, Ryan T<EMAIL_ADDRESS>wrote:
Yup! Take a look at reloadWith, it's made for includes.
post.reloadWith('comments,comments.author').then(post => {
post.hasMany('comments').value() // <= the comments
});
—
You are receiving this because you authored the thread.
Reply to this email directly, view it on GitHub, or mute the thread.

I see. It sounds like you want to take the url that .load('comments') would normally use and append an ?include=author onto it, so the comments load with their authors? Is that right?
If so, storefront doesn't support this and I don't think it will for the foreseeable future. The reasoning here is it's just too easy for us to get this of thing wrong and introduce a bad abstraction. I'm confident that we can't solve this with a general solution right now, so we're going to avoid it. I know that puts more burden on you as an application developer, but I don't want to introduce an API that ends up causing problems for you down the road.
If you're uncomfortable with reloadWith because it reloads the base record I totally understand. That's the best answer I have if you want to use storefront, but if it doesn't work then the next best answer is to dive into Ember Data.
I'd start with the JSON:API adapter and override the methods that build the hasMany url. I'd probably begin somewhere around here: https://www.emberjs.com/api/ember-data/3.4/classes/DS.JSONAPIAdapter/methods/urlForFindHasMany?anchor=urlForFindHasMany

@john-griffin what are you expecting post.load('comments,comments.author') to do? What GET request or requests would you expect to be triggered?

Hey @samselikoff!
We were trying to figure out if there was a way to load just the relationships without having to reload the parent model. Basically what ember-data-has-many-query does, but without using that add-on in addition to storefront.
Then I saw your comment here (https://github.com/embermap/ember-data-storefront/issues/33#issuecomment-370535908) about using sync relationships, which makes sense. using reloadWith forces us to make an unnecessary request for the parent record since it's loaded in a parent route, but the added complexity of introducing async relationships may not be worth it just to avoid an extra request.
The thread where you left that comment led me to believe there was a way to do it, but looking at the associated PR, that's not the case.

Thanks for the breakdown and pointers. I appreciate you not wanting to introduce bad abstractions. This is a super common case in our apps so I'd be interested to know why you don't think this can be solved generally?
Ideally post.load('comments,comments.author'); or post.load('comments', {include: 'author'}); would make a single request to /posts/1/relationships/comments?include=author.

@beerlington what's up man! Good to see you around 🍻. reloadWith shouldn't be an unnecessary request – just extra data for the single request (since the parent data will be loaded along with the includes). Does that make sense? (Btw this is typically what we do, and in our opinion it's fine to reload the parent. I guess there are situations where the parent has tons of data and you wouldn't want it in the subsequent payload?)
@john-griffin The main thing is that Ember Data has no API for this. So my question for you is, given that this is very common for you all, how are you doing this today?

@samselikoff we are using ember-data-has-many-query in our other apps to get the same effect. storefront seems much more well thought out and dabbles in the same areas so I was hoping it might cover this use case.

I'd be interested to know why you don't think this can be solved generally?

Yup, absolutely. With storefront one of the goals is to delegate as much work to ED as possible. ED has years of development and escape hatches for those extra tricky situations. We want to leverage as much as that as possible.
An example of this is how we're using the references API to load these relationships under the hood. References treats the relationship it backs as a single state and there's not a blessed way for us to customize the reference based off query params. I want to follow EDs lead here. Stepping outside of references and doing our own relationship fetching feels like something we'll get wrong.
Which version of data are you on? Prior to ED 3.4, there was no way to get options through references into the adapter. In 3.4 it looks like references can now be pass options that will make it through to the adapter. If you're on 3.4 you might want to try accessing the reference directly and see if you can get enough information over to the the adapter to build a custom query. This test might provide some color.
If you want to go down this road ping me on slack, totally happy to help!

Another way to say what @ryanto said is that Storefront is intended to "round out" Ember Data. In our opinion the way findRecord and findAll work out of the box is confusing in certain cases, which lead to the Storefront APIs loadRecord and loadAll. They don't necessarily do "more" than Ember Data does, they just slightly alter the behavior.
In the case of model.load(), it really is just meant to be sugar over model.hasMany(relationship).load(), while also being cache-aware to the extent that Ember Data is. And as Ryan said, Ember Data's Reference classes don't currently offer APIs on querying relationships (though it seems like they may soon).
I don't think there should necessarily be a problem using ember-data-has-many-query alongside Storefront, although I would not expect the has-many queries to respect Storefront's cache.
Feel free to report back with any more findings.

Thanks you both for the insight here. We are on 3.4 so will take look at passing options to the adapter and if not fallback to ember-data-has-many-query.


Predicate join operation

Main purpose: joining data on operations other than equals

the name predicateJoin might actually be a bit long and cumbersome, especially if expanded like innerPredicateJoin. Maybe it could be shortened like joinWhere or even better, be combined with join:
campaigns.innerJoin(visits).where {
    right.date in startDate..endDate
}

or in the join dsl:
campaigns.innerJoin(visits) {
    where { right.date in startDate..endDate }
}

the name predicateJoin might actually be a bit long and cumbersome, especially if expanded like innerPredicateJoin. Maybe it could be shortened like joinWhere or even better, be combined with join:
campaigns.innerJoin(visits).where {
    right.date in startDate..endDate
}

or in the join dsl:
campaigns.innerJoin(visits) {
    where { right.date in startDate..endDate }
    // or
    withPredicate {}
}

I agree that predicateInnerJoin is too long. I'd prefer to have original join renamed to joinBy and have this to be named join. Another option i can suggest is joinWith. Combining this operation with column join is a stretch in my opinion. Columnar join has default join statement (columns with the same names from both dataframes). So, those 2 samples will have very different meaning
 campaigns.innerJoin(visits).where {
     right.date in startDate..endDate
 }

 campaigns.innerJoin(visits)

Thank you!


crowbar-testbuild: add a trailing slash to URL

needed after c6264f478fb32a401f615b410b303bd65a95ea73
to prevent wget from traversing all test-updates

Looks good, but a comment would be very good, to explain why the trailing slash is needed. Otherwise it will be optimized out during next refactoring :)

:+1:


possible to change from go-chi to gofiber?

https://github.com/smallnest/go-web-framework-benchmark
fiber is more popular now
https://github.com/gofiber/fiber

Thank you for your suggestion.
Unfortunately we can not just change and jump to a different lib just because it's shinny, new and popular :)
Chi solves all our problems right now. I'm keeping an eye on that benchmark repo.
However, the fastest framework might not be the best choice for Corteza. Although performance of the HTTP request handling is important it only adds a tiny tax to the overall request handling time.
I might reconsider the framework choice next time we're doing a big refactoring in that area: we need to (properly) support OpenAPI definitions and generate our handlers from that.
Hope this answers your question.


NIFI-11686 upgrade Elasticsearch low-level REST client to 8.13.3

Summary
NIFI-11686 upgrade Elasticsearch low-level REST client to 8.13.3
Tracking
Please complete the following tracking steps prior to pull request creation.
Issue Tracking

[x] Apache NiFi Jira issue created

Pull Request Tracking

[x] Pull Request title starts with Apache NiFi Jira issue number, such as NIFI-00000
[x] Pull Request commit message starts with Apache NiFi Jira issue number, as such NIFI-00000

Pull Request Formatting

[x] Pull Request based on current revision of the main branch
[x] Pull Request refers to a feature branch with one commit containing changes

Verification
Please indicate the verification steps performed prior to pull request creation.
Build

[x] Build completed using mvn clean install -P contrib-check

[x] JDK 21

UI Contributions

[ ] NiFi is modernizing its UI. Any contributions that update the current UI also need to be implemented in the new UI

Licensing

[x] New dependencies are compatible with the Apache License 2.0 according to the License Policy
[ ] New dependencies are documented in applicable LICENSE and NOTICE files

Documentation

[ ] Documentation formatting appears as expected in rendered files

Tested against (Docker based) Elasticsearch instances.
If I get a chance (or someone else does), it would be worth testing against an AWS OpenSearch instance to see whether the existing NiFi components are compatible when using the upgraded Elastic-provided dependencies.

@ChrisSamo632 pulling down locally and will run the full build with CI bits as well.  thanks

I managed to create an AWS OpenSearch Domain and successfully tested against that using BASIC Auth through the NiFi components 👍
I spotted that Point in Time searches aren't possible in OpenSearch (they're an Elastic XPack feature, so fair enough) - so I updated the processor docs to indicate that.
Notes added to the Jira ticket.
There's plenty more that could be done for OpenSearch, e.g.

allow AWS Auth (hopefully with the existing NiFi AWS Controller Services)
use the AWS OpenSearch client libraries instead (there might be additional functionality that NiFi could better use)
but they can be the subject of future tickets as/when people need them

awesome turnaround thanks.  merged.
full clean build w contrib check + CI/integration tests.


[GEP 1651]: Routability Conformance

This PR depends on the following PRs merging

https://github.com/kubernetes-sigs/gateway-api/pull/2157
https://github.com/kubernetes-sigs/gateway-api/pull/2144

View just the commit with the conformance test here - https://github.com/kubernetes-sigs/gateway-api/pull/2171/commits/4298344aa7a2f4659a3c310b4c7ab43c15c2972b

What type of PR is this?
/kind feature
/kind gep
/kind test
/area conformance
What this PR does / why we need it:
This adds conformance tests for the Routability feature
Which issue(s) this PR fixes:

Part of https://github.com/kubernetes-sigs/gateway-api/issues/1651
Does this PR introduce a user-facing change?:

Add conformance tests for Gateway Routability

/cc

I added a few comments.  Looks good, almost like a first step towards support for load balancing.

Thanks @dprotaso! This will need to be rebased once #2144 and #2157 merge, but everything LGTM.

@robscott rebased

Thanks @dprotaso!
/lgtm


Skip checking tenant id, everytime, attaching tenant Id to natively to user object

Hi, in the context where the tennats are sharing the same database, I was going through this and I had a concern, if the source is tampered where the tenant Id was edited, would the other tenants data be corrupted/exposed.
Would it be possible to natively extended/integrate the user object to include the tenant Id, where we can transparently continue the operations on the serverside, without have to check the tenant every-time before a save or edit?
Thanks

If you want true isolation, use a separate database per tenant.
Otherwise, if you're using Entity Framework, you could hook into the EF lifecycle to set the tenant ID before your objects are saved. I don't have exact details on this - just google EF Lifecycle handler and if it supports DI, you should be golden.


Port integration tests from Travis CI setup to Github actions

Followup to #118, the current tests are defined in travis.yaml (or whatever that file is called).

@flokli - beep

@tazjin boop!


make title of page containing preamble configurable

The text between the title and the first second level heading (the preamble) is put onto a separate page who's title is a hard-coded "arc42".
This PR allows users to override the page title for each input document.

Thanx for this PR!


[#169646263] Get documents endpoint

This PR aims to create an endpoint to download the documents of an organization.

Affected stories

🌟 #169646263: Creazione endpoint per la lettura dei documenti di registrazione di un ente.

New dependencies added: @types/mock-fs and mock-fs.
@types/mock-fs
Author: Unknown
Description: TypeScript definitions for mock-fs
Homepage: http://npmjs.com/package/@types/mock-fs

Createdover 3 years agoLast Updated6 days agoLicenseMITMaintainers1Releases13Direct Dependencies@types/node

README
Installation

npm install --save @types/mock-fs

Summary
This package contains type definitions for mock-fs (https://github.com/tschaub/mock-fs).
Details
Files were exported from https://github.com/DefinitelyTyped/DefinitelyTyped/tree/master/types/mock-fs
Additional Details

Last updated: Tue, 22 Oct 2019 22:09:25 GMT
Dependencies: @types/node
Global values: none

Credits
These definitions were written by Wim Looman https://github.com/Nemo157, Qubo https://github.com/tkqubo, and Porama Ruengrairatanaroj https://github.com/Seally.

mock-fs
Author: Tim Schaub
Description: A configurable mock file system.  You know, for testing.
Homepage: https://github.com/tschaub/mock-fs

Createdalmost 6 years agoLast Updated8 days agoLicenseMITMaintainers1Releases61Keywordsmock, fs, test, fixtures, file system and memory

This README is too long to show.

  Generated by :no_entry_sign: dangerJS against 5e827e8ebf232116a06096044933e784a74104d7


Update readme to have correct Getting started steps

Getting started section should have details on how to setup the project with docker

I'll get started on this #5 https://github.com/webdevcody/code-racer/issues/5#issuecomment-1627552460


Only getting back Version information when trying to execute any luckperms command in the console (Fabric)

Description

Only getting back version information When trying to execute any luckperms command in the console (Fabric)
Reproduction steps

Install the Fabric Loader, API and Luckperms.
Start the Server
Try to give a User luckperms.* by executing lp user Paul_42812 permission set luckperms.* true in the Console.
Get [LP] Running LuckPerms v5.2.91. back.

Expected behaviour

Permissions are not updated and [LP] Running LuckPerms v5.2.91. is returned.
Environment details

Linux manjaro 5.9.16-1-MANJARO #1 SMP PREEMPT Mon Dec 21 22:00:46 UTC 2020 x86_64 GNU/Linux
Fabric API 0.29.4
LuckPerms v5.2.91
openjdk version "15.0.1" 2020-10-20

Any other relevant details

Same issue here on bukkit.

Same issue here on bukkit.

Thanks for reporting, should be sorted :)

Thanks for reporting, should be sorted :)


Registry update for latest snapshots

The automated update is a little more inflexible with comments. It's also done a bit of a number on ContainerTypes -- thoughts?
This is automatically generated from the generateApiData task in vanilla, so any comments on this PR will be used to update the generator, with changes applied on the next snapshot.

https://github.com/SpongePowered/SpongeAPI/commit/d4f7831a9a944c57eea0cf6d9cc085431f2d50fa


Add banner to README.md

Thank you for doing this. Just a small note, let's not forget to also change this banner in the DEAL homepage repository. I can take care of it!


LP-290 add html validation for partnership name

JIRA link
https://companieshouse.atlassian.net/browse/LP-290
Change description
Add html and javascript validation for partnership name:

Cannot start or end with a space
Needs to be at least 2 characters
Name plus name suffix cannot be greater than 160 characters

Work checklist

[ ] Tests added where applicable
[ ] UI changes look good on mobile
[ ] UI changes meet accessibility criteria

Merge instructions
We are committed to keeping commit history clean, consistent and linear.  A BREAKING CHANGE can be part of commits of any type,
types other than fix: and feat: are allowed, for example build:, chore:, ci:, docs:, style:, refactor:, perf:, test:, and others,
footers other than BREAKING CHANGE: <description> may be provided.

CI: No security warnings found

Change looks fine but that LP-290 sub-task references AC9 which is about trimming data before storing in Mongo. Is that going to be a separate PR?

CI: No security warnings found

CI: No security warnings found

CI: No security warnings found

Change looks fine but that LP-290 sub-task references AC9 which is about trimming data before storing in Mongo. Is that going to be a separate PR?

I misread the requirement, originally used a regex as native html validation but changed it to trim on submit.


[LTER / IM] Write DataBits Article about Conventional Commits

Summary
Stevan Earl let me know about "Conventional Commits" and I've loved it as a scaffold for improving my own Git commit strategy. Marty suggested that I could write a short DataBits article about this to help spread the good news and that seems like a great idea
Starting Tasks

[x] Invite Stevan to collaborate on the article
[x] Draft structure of article

[x] Workshop with Stevan

[x] Flesh outline out into full draft

[x] Revise with Stevan

[x] Submit article to Marina Frants (mfrants [at] ucsd.edu)

[x] Revise with Marina
[ ] Revise with Gabe de la Rosa (final reviewer)

Useful links

Article draft Google Doc
Conventional Commits' own documentation
Nick's Conventional Commit summary page

Sitrep
I migrated this from GitHub Enterprise so need to give some quick updates on how we got to where we are. Stevan is interested in co-authoring this article with me so we've begun work on a big-picture outline together which can inform the full text of the article as we develop it.

First Draft (Mostly) Complete
Just finished most of the first draft of the article. Definitely a little rough around the edges but it's something to revise from at the least so not a total loss. Also need to work in some example GitHub repositories that use this approach to demonstrate the benefits. Also need to integrate some conversation about GitHub issues so that I can segue from that into the repo Stevan shared with me that uses issue numbers in commit messages so that they explicitly link together tasks and commits

Stevan Reviewing
Stevan saw my activity in the doc and reached out to let me know he'll review/revise the draft text this week or next! Moving this issue to pending on my end so that I don't step on his toes during that process

Submitted!
Got Angel to review (thanks Angel!) and after that Stevan and I agreed it was submission-ready. Went ahead and emailed Marina with the article GoogleDoc so we'll see what she has to say / what the next steps of submission process look like.

Marina Reviewing
Marina is looking at the draft and has promised to look it over by the end of this week. Hope it goes smoothly! 🤞

Marina Approved
Marina approved the draft with some light grammar edits. Stevan signed off on those edits too so we're off to the next stage of the process to get published through DataBits

More Feedback Received
Hillary Krumbholz [sic?] gave some more minor feedback on the article (exclusively syntax/phrasing stuff) so I replied to one of them confirming that I'm okay with those changes being made


Figure out how to use maps_generator

Figure out how to use maps_generator to generate at least one mwm file for testing.

DOne


Use lf endings

When running prettier on the project, all files show as changed since they use crlf endings, so it would be better if all files just used lf, so this problem didn't exist

They don't use CRLF endings. Maybe your git is configured incorrectly and converted line endings automatically.

(last two commands from https://stackoverflow.com/questions/73833/how-do-you-search-for-files-containing-dos-line-endings-crlf-with-grep-on-linu)


Updating a certificate does not update services using that certificate

From #2736: Renewing an existing certificate using kontena certificate request does not update services that are using that certificate:
$ curl -v https://test.<IP_ADDRESS>.nip.io/ > /dev/null
* 	 server certificate verification OK
* 	 server certificate status verification SKIPPED
* 	 common name: test.<IP_ADDRESS>.nip.io (matched)
* 	 server certificate expiration date OK
* 	 server certificate activation date OK
* 	 certificate public key: RSA
* 	 certificate version: #3
* 	 subject: CN=test.<IP_ADDRESS>.nip.io
* 	 start date: Thu, 14 Sep 2017 09:35:00 GMT
* 	 expire date: Wed, 13 Dec 2017 09:35:00 GMT
* 	 issuer: C=US,O=Let's Encrypt,CN=Let's Encrypt Authority X3
* 	 compression: NULL

$ bundle exec bin/kontena certificate request test.<IP_ADDRESS>.nip.io
 [done] Requesting certificate for test.<IP_ADDRESS>.nip.io
$ bundle exec bin/kontena service deploy ingress-lb/lb
 [done] Deploying service ingress-lb/lb
⊛ Deployed instance development/ingress-lb/lb-1 to node core-01
$ curl -v https://test.<IP_ADDRESS>.nip.io/ > /dev/null
* 	 start date: Thu, 14 Sep 2017 09:35:00 GMT
* 	 expire date: Wed, 13 Dec 2017 09:35:00 GMT

This is because the GridService.updated_at timestamp has not changed, so the agent does not re-create the container on the deploy.
The existing GridCertificates::GetCertificate mutation uses the GridSecrets::Update/Create mutations, and those trigger refresh_grid_services to update any services that are using those certificate secrets.
Workaround is to kontena service deploy --force:
$ kontena service deploy --force ingress-lb/lb
 [done] Deploying service ingress-lb/lb
⊛ Deployed instance development/ingress-lb/lb-1 to node core-01
$ curl -v https://test.<IP_ADDRESS>.nip.io/ > /dev/null
* 	 start date: Thu, 14 Sep 2017 09:42:00 GMT
* 	 expire date: Wed, 13 Dec 2017 09:42:00 GMT

I think the "natural" fix is to trigger similar refresh_grid_services for all the services using a given cert when it's updated.


return in parenthesis inconsistency

return (
boop
)
return (
boop
);

becomes
return (
    boop
)
return (
    boop
    );

Not sure if intentional.
Relevant for JSX, with markup within parenthesis, though formatting seems to be done by esformatter core.

this definitely needs to be fixed, should not be hard for this specific case.
this is handled by getIndentEdges inside https://github.com/millermedeiros/esformatter/blob/master/lib/hooks/ReturnStatement.js
maybe the parenthesis check is wrong, or maybe it should not return the parentheses.closing as the endToken.
I'm not going to have time to work on esformatter this week, PRs are highly appreciated! Thanks for reporting the bug.
see also #298 (which is way harder to fix, but somehow related)

Indeed, this is still an issue. Any updates?

@glesage been busy with my day job, newborn daughter and mountain biking.. only had time to fix this today. will try to release a new version soon including the fix :D
pull requests are highly appreciated!


ICommunicationsClient ProcessNotificationAsync returns invalidRequest: Unexpected empty message

When I call:
Client.ProcessNotificationAsync(requestMessage)
where Client is ICommunicationsClient I#m getting a response of:
microsoft.graph.communications.core.exceptions.error
invalidRequest: Unexpected empty message
"{"@odata.type":"#microsoft.graph.communications.core.exceptions.serviceException","error":{"@odata.type":"#microsoft.graph.communications.core.exceptions.error","code":"invalidRequest","message":"Unexpected empty message content"},"statusCode":400,"message":"Code: invalidRequest\r\nMessage: Unexpected empty message content\r\n","data":{},"targetSite":{"Name":"ExtractNotifications","AssemblyName":"Microsoft.Graph.Communications.Core, Version=<IP_ADDRESS>6, Culture=neutral, PublicKeyToken=31bf3856ad364e35","ClassName":"Microsoft.Graph.Communications.Core.Notifications.NotificationProcessor","Signature":"Microsoft.Graph.CommsNotifications ExtractNotifications(System.String, Newtonsoft.Json.JsonSerializerSettings)","Signature2":"Microsoft.Graph.CommsNotifications ExtractNotifications(System.String, Newtonsoft.Json.JsonSerializerSettings)","MemberType":8,"GenericArguments":null},"stackTrace":"   at Microsoft.Graph.Communications.Core.Notifications.NotificationProcessor.ExtractNotifications(String content, JsonSerializerSettings serializerSettings)\r\n   at Microsoft.Graph.CommunicationsClientExtensions.d__1.MoveNext()","source":"Microsoft.Graph.Communications.Core","hResult":-2146233088}"
I though this call should in affect start the process of to fire the events that are registered:
this.Client = builder.Build();
this.Client.Calls().OnIncoming += this.CallsOnIncoming;
this.Client.Calls().OnUpdated += this.CallsOnUpdated;
I'm just trying to find a bit more clarity over whats going on around this stage, I've got the notification from teams that a call is comming in, to /callback/calling on my app, from here im calling Client.ProcessNotificationAsync, with a url of callback/notification set in the builder. At this stage i though it was going to call off to MS graph and respond back on callback/notification? which then fires the OnIncoming / OnUpdated on the client object?
Is the graph comms SDK open source? I couldn't find it anywhere, as I wan'ted to see exactly what goes on in ProcessNotificationAsync on implementations of ICommunicationsClient
Thanks

Hello,
You are correct in thinking that this function call triggers the notifications, but it needs to be a request that is passed in by the service.  There is no need to have a separate controller for your initial callback then for the notifications, we deserialize and disambiguate all notifications the same way.  That being said, you can do so if you wish for your own purposes.
The flow is as follows:
Service ---- Incoming Call ---> client.ProcessNotificationAsync ---> client.Calls().OnIncoming
Service <---    Answer     ---- call.AnswerAsync()
Service ----    updates    ---> client.ProcessNotificationAsync ---> call.OnUpdated

The exception is telling me that the request that is received is empty, are you sure that you are passing in the correct request to the client?  If you can provide me with a http payload (headers and body) i can verify whether it is correct or not.  Please redact all private information (tokens, names, emails, phone numbers, etc...).
Cheers,
Kamil

Hi Kamil,
Just found my issue, I had a parameter on the http post tagged for FromBody - this doesn't just copy the body data into it, it moves it there and stips it from the request object...
https://stackoverflow.com/questions/13226817/getting-raw-post-data-from-web-api-method

I needed something similar but for strings, and ensuring there was no parameter in the POST method ended up being essential to using the equivalent ReadAsStringAsync, it was empty otherwise. – Grant H. Jul 8 '14 at 23:40


Fix misspelling in title

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

@property 0
On Sun, May 31, 2020 at 10:50 PM PRMerger18<EMAIL_ADDRESS>wrote:

@alanlima https://github.com/alanlima : Thanks for your contribution!
The author(s) have been notified to review your proposed change.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
https://github.com/MicrosoftDocs/azure-docs/pull/56061#issuecomment-636584842,
or unsubscribe
https://github.com/notifications/unsubscribe-auth/APKSOEMETFRBAQH54WFJIFTRUMJPNANCNFSM4NPOLHBA
.


Allow getSymbolsByUDA if type has private members.

Previously, getSymbolsByUDA would fail if given a type that had any
private members (even if they weren't marked with an attribute).
This patch prevents getSymbolsByUDA from checking inaccesible members.
This means private symbols with the desired UDA will not be included.
Resolves #15335.
I'm actually not sure if this is the way to go. On one hand, its nice to not totally fail just because some unrelated member is private. On the other hand, having private members silently excluded might be more suprising than a compilation failure.
Thoughts?

Oh, and I wasn't sure where to put a test for this. It can't go in std.traits, because it the symbol would have to be inaccesible from that module.

Another approach:
/**
 * Gets the names of members of `symbol` that have the given user-defined attribute.
 * This is not recursive; it will not search for symbols within symbols such as
 * nested structs or unions.
 */
template getMembersByUDA(alias symbol, alias attribute)
{
    import std.meta : Filter;

    // use mixin instead of getMember to avoid compile errors on private members
    enum hasSpecificUDA(string name) =
        mixin("hasUDA!(symbol."~name~", attribute)");

    alias getMembersByUDA =
        Filter!(hasSpecificUDA, __traits(allMembers, symbol));
}

This avoids the privacy issue but returns strings instead of symbols (meaning the user would have to use getMember on their end).

Some insignificant typos but LGTM!

Twas a bad day for spelling and grammar. Fixed both, thanks!

The code looks good, but this needs a test. As you already stated, I'm not sure how to go about that.

Other than stuffing it into a random module? :)
I wonder if we should have separate dedicated test module for things like this, though it breaks the convenience of inline unittests.
Ideally I'd love to have a way to make a unittest pretend to be in another module, but that's a whole different discussion.

Actually, my test could import a std type from another module that has private members

Alternately, we could have a 'testtypes' module that unittests in other modules could import individually.

Alternately, we could have a 'testtypes' module that unittests in other modules could import individually.

Not a bad idea actually. Perhaps put it inside of std/internal.

Not a bad idea actually. Perhaps put it inside of std/internal

Looks like there was a precedent for that: std/internal/test/dummyrange.d

@rcorre not really the same thing, dummy range is a utility used in modules for testing range based code where as you want to put the test for a function inside another module. However, putting it inside std/internal/test/ sounds like the best option here.

True, just realized that its actually part of the main (non-unittest) functionality. I guess it means 'test' in the sense of 'test a condition' rather than 'unittest'.
Just had a slightly different idea that may allow returning private members as symbols:
template getMembersByUDA(T, alias attribute) {
  import std.string : format;
  import std.meta : Filter;

  template toSymbols(names...) {
    static if (names.length == 1)
      mixin("alias toSymbols = AliasSeq!(T.%s);".format(names[0]));
    else
      mixin("alias toSymbols = AliasSeq!(toSymbols!(names[1..$]), %s);".format(names[0]));
  }

  enum hasSpecificUDA(string name) = mixin("hasUDA!(T."~name~", attribute)");
  alias membersWithAttribute = Filter!(hasSpecificUDA, __traits(allMembers, T));
  alias getMembersByUDA = toSymbols!(membersWithAttribute);
}

Don't have time to test thoroughly right now.

second attempt at #3827 allows getSymbolsByUDA to retrieve private member

If #3827 is meant to replace this request, close this one and we'll review the other one.


Opportunities in currency other than org default not auto-closing

In organizations with multicurrency enabled (not advanced currency management), opportunities are not being automatically closed when currency conversion is causing total payments to be slightly different from the opportunity amount due to rounding.
Working: I have an opportunity for USD100 in a stage of Prospecting. I mark the corresponding payment as paid and give it a date. The stage on the opportunity automatically changes to Closed Won.
Not working: I have an opportunity for CAD100 in a stage of Prospecting. I mark the corresponding payment as paid and give it a date. The stage on the opportunity doesn't change.
Setup
Multicurrency is enabled. CAD is set up with a rate of 1.290000.

Tests that demonstrate the problem https://gist.github.com/lmeerkatz/273db30a77ee46afa8abf55fc1ddbf18 (These need to be cleaned up to be production ready)
Source of bug
https://github.com/SalesforceFoundation/Cumulus/blob/master/src/classes/PMT_PaymentCreator.cls#L401
A possible solution
Round the currency amounts to the number of decimals specified before comparing them.
private static Boolean isEqualWhenRounded(Decimal amount1, Decimal amount2, Integer decimalPlaces) {
    Decimal amount1Rounded = amount1.setScale(decimalPlaces);
    Decimal amount2Rounded = amount2.setScale(decimalPlaces);
    return (amount1Rounded == amount2Rounded);
}

String oppCurrency = (String)newOpp.get(CurrencyIsoCode);
Integer decimalPlaces = UTIL_CurrencyCache.getCurrDecimalPlaces(oppCurrency);

Boolean amountEqualPaymentReceived = isEqualWhenRounded(newOpp.Amount,  totalPaymentAmount, decimalPlaces);

**lurch: add

Tracking W-028941


No output data; probably no model runs were done because cache=TRUE error

Clean up a few things, and address question from @leeyap in Slack. This PR

Changes the minimum number of runs, used when running under CI, from 100 to 2 * number of parameters. This is way faster
Fix slice_sample so that it functions correctly with these numbers
Fix a few other minor things

🤔 it's working on my machine, does it run all the way through locally for you?

Yes

Hm, okay. I'll investigate tomorrow and figure it out!


Documentation for scene construction helpers

Need a simple doc to present how to use createDefaultCameraOrLighting and createDefaultSkybox
https://www.babylonjs-playground.com/#SIB60G#4

@deltakosh I could have a go at this.
Let me know if there's any other doc priorities, especially English review/rewrite stuff.

Any issue here is important so feel free to pick this one

Thanks a lot btw

I can't seem to assign myself, or do you need to do that?

I can't either as you did not create the issue. But consider it yours!

OK.

I'm a little confused about the difference between createDefaultCamera() & createDefaultCameraOrLight() - in the Class API docs they seem to have the same method parameters, but only the latter method is in the source code, so I'm assuming it's a temporary doc generation glitch?
Do you want these docs in 101, how to or features section? And with createDefaultCameraOrLight() most other documentation like this that I see is subcategorised under "light" or "camera" - it can't be tagged both as far as I can see. So unclear where exactly it should go.
I'll stop bothering you when I more familiar with the doc structure. It's just because I'm new ...

Sorry I see createDefaultCamera() in 3.2.0-beta.1 and I understand the intent there, so disregard that question.
But question of where docs should ideally go still stands.

New section helpers it is. Thanks @deltakosh and @BabylonJSGuide
Will aim to get it done within the next week.

Much appreciated

Good plan

Issue #1101 was a re-statement of this and has now been dealt with.


Typo on doc: mechanisim should be mechanism

Page: /guides/user/kubernetes-v2/run-job-manifest/
Feedback:
I think there is a typo on "Artifacts are a mechanisim within Spinnaker that enables pipelines to reference resources stored in external systems". Mechanisim should be mechanism.

Fixed in #1740


drop group name unqiue index, add per_course_group_name unique index

Coverage increased (+0.04%) to 96.685% when pulling 000f9c9e536a570c6b56186a12fc304295fc620e on cyy-group-index into 652db164b0b120b084933439cb85bf4ecaf3c868 on master.


Auto delete of PUSH notification

As a user
I want notifications for deleted comments to also delete
so that I don't have notifications for comments that no longer exist

Assumptions & Scope

This builds on previous user story #906
Auto deletion applies to all PUSH notifications, no difference between different events that trigger the PUSH notification (parent comment, reply, reply to reply, tagged)

What is IN scope?
Auto deletion of the PUSH notification when the originating comment is deleted
What is NOT in scope?
Acceptance Criteria
Scenario 1: Auto delete notification when comment is deleted

GIVEN a user has posted a comment on a request that triggered a PUSH notification
WHEN that user deletes the comment they authored
THEN the notification sent to any other user will automatically be deleted
AND the notification will no longer appear in the notifications log

Dependencies? What is the impact of this dependency? (If so, link dependency in the ticket, make it visible in a team´s backlog)
#906 needs to be completed prior to this user story
Validation Rules? (If yes, list here)
Design
@xxx - please link the Design here
Definition of Ready

[ ] Is there a well articulated User Story?
[ ] Is there Acceptance Criteria that covers all scenarios (happy/sad paths)?
[ ] If there is a user interface, is there a design?
[ ] Does the user story need user research/validation?
[ ] Does this User Story needs stakeholder approval?
[ ] Design / Solution accepted by Product Owner
[ ] Is this user story small enough to be completed in a Sprint? Should it be split?
[ ] Are the dependencies known/ understood? (technical, business, regulatory/policy)
[ ] Has the story been estimated?

Definition of Done

[ ] Passes developer unit tests
[ ] Passes peer code review
[ ] If there's a user interface, passes UX assurance
[ ] Passes QA of Acceptance Criteria with verification in Dev and Test
[ ] Confirm Test cases built and succeeding
[ ] No regression test failures
[ ] Test coverage acceptable by Product Owner
[ ] Ticket ready to be merged to master or story branch
[ ] Developer to list Config changes/ Update documents and designs
[ ] Can be demoed in Sprint Review
[ ] Tagged as part of a Release
[ ] Feature flagged if required
[ ] Change Management activities done?

Tested AC as both Ministry user, and IAO user (roles reversed in both cases)
No issues, works beautifully - nice job!


OOP school library: add basic UI

Created app.rb file that will serve as console app entry-point. It has the following h methods
List all books.
List all people.
Create a person (teacher or student, not a plain Person).
Create a book.
Create a rental.
List all rentals for a given person id.
Created main.rb define the entry point,  This  file has a method that  does the following:
Present the user with a list of options to perform.
Lets users choose an option.
If needed, ask for parameters for the option.
quit the app.

corrected teacher's attributes


Update manual.adoc

The sigular is intended there. It's "project loading" as a process.

Yeah, the grammar is fine here. Thanks for the PR, but I'll close it.


Developer Exception Page swallows exception, which adds non-obvious registration order complexity

Our use case is a organization-wide default middleware for enriching exceptions with diagnostic information.
Being organization-wide defaults, it only makes sense that we apply registrations of these early from the entry point (we do it in first step after instantiation of WebHostBuilder), so that the purpose-specific code can be packed into the Startup class called later and it can discover and customize the behavior.
Registering it first also makes sense due to the importance of adding the diagnostic details to absolutely all exceptions, including ones thrown from any middlewares.
Unfortunately the return behavior in DeveloperExceptionPageMiddleware makes the exceptions never reach that outer middleware on development deployments, unless we change the order so that the exception pages are registered first. The whole behavior is rather not easily to be aware of.
Would you consider changing it, so that after serving the diagnostic content, you just rethrow the exception? This would make these helpful diagnostic pages truly 'impact free' to apply, like any non-production code really should.
NB: If you choose to do that, you probably should also remove the logging of exception to avoid logging twice. Although having to do that may look like an unnecessary backfire, I'd argue that would actually improve the design, as it will make the class have 'single responsibility' and logging of unhandled exceptions will be DRYied, by making it only happen in host.
Thanks for your hard work on the product and thanks in advance for considering!

Re-throwing the exception would cause the underlying server to abort the request/connection without sending the chunked terminator. In the browser you'd get an error about an incomplete response and it may or may not display the exception page.

Wow! Thanks for responding so quickly!
I see that there is an implementation problem. I wonder what you think of the report itself. Would you agree that the problem is real (even if no one complained yet :) ) and the suggested behavior makes sense otherwise? If so, perhaps this would call for a slight framework redesign.
Or, I don't know the in-outs, but would it not be possible to have the Developer Exception Page explicitly flush the buffers and send the terminator? It is, after all, just a non-production component. Making slightly unorthodox things there in exchange for allowing designs that minimize chances to break things seems justified.

There's not currently a mechanic to allow pre-emptively closing the response. We've been hesitant to add one as it only applies to some types of response (e.g. Chunked), and it's not clear how intermediate components like the response cache should act.
The general advice is that order sensitive components should be under developer control in Startup.Configure. E.g. your component should be listed in Configure after the DeveloperExceptionPage. Note you'll have the same problem with the ExceptionHandler middleware used in production scenarios.

I see, so I take it that Response.Body.Close() won't work.
Maybe an alternative could be to accompany the rethrown exception with information for the host to say that the response body actually contains a properly rendered error page, so it should not erase but send it. Could either be a property on the Response (the old TrySkipIisCustomErrors comes to mind, which I feel was essentially used for the same thing), or maybe a special Exception.Data[] value (but would need to consider also looking into InnerExceptions).
As to the general advice, yes. I feel I understand it, and one can certainly apply it for apps developed individually from scratch and with total freedom. But for organizations that need to minimize time spent on infrastructural boilerplate, the requirement of the dev pages being the outermost proves particularly inconvenient, even if they use just a Startup class. These exception pages are merely optional (they're even missing from the UseExceptionHandler sample), but still, they would need to be mentioned in real production middleware's docs as a caveat to their how-to-use, akin to 'please never place above DeveloperExceptionPage' (which you can pretty much assume someone will miss).

Correct, Response.Body.Close() no-ops.
These ordering concerns are not specific to these exception handlers, many of the ASP.NET Core components listed in Startup.Configure are order sensitive. This is an intentional design decision as it provides the most control to the end developer.
A different approach for managing the order would be to include the DeveloperExceptionPage and ExceptionHandler from your middleware so you'd control the order and your developers wouldn't need to worry about it.

Yes, thanks. Bundling the exception page with enrichment for logging could be an option, although it would really be best to keep the shared library's responsibility to only the crucial functionality. But it's something me might have to consider.
On a second thought, if there is even slightest change to use the heavier guns of changing the hosting API, like I started to suggest, I now rather think that the cleanest solution would be to introduce an interface for 'rendering of error response from exception' (e.g. IErrorResponseFromExceptionRenderer) as a customization point to what the host is currently producing. Then, UseDeveloperExceptionPage(), instead of adding a middleware, would simply override the one used by host. This would keep it clear of interfering with middlewares and, as extra benefit, also make it free of unrelated concern like logging and corner case flow controls like this one, since this what host could do in one place.
Even out of curiosity. Are there big dragons in attempting to suggest such redesign in the web-app host API?

The interface/service approach is interesting. That could be added to the server or hosting layers. It would give you a known ordering and replaceability via registering multiple services, but you'd have a similar registration order issue where the last one wins.
It would not change the HasStarted check you linked to. Any implementation would need a similar check to avoid corrupting a partial response.

@Eilon, isn't this somethin you've been looking into already?

Thanks for considering!
@Tratcher - 'last wins' is perfectly fine, as this is even ideal to represent conventional defaults - avoid boilerplate where following conventional behavior, but still allow the purpose-specific code to change it.

Last wins is what's hurting you now. The dev exception page handles the exception because it was the last one registered. I thought you wanted the first one to win.

Well, technically yes, but the root of the evil was coarse graininess of intentions.
When the dev page is a middleware, it clashes with other middlewares of various purpose, even those that just deal with exceptions or logging.
Creating a dedicated point for extension just steers this devel-time functionality away from the area conflicts.
The 'last one wins' is desired here, but it needs sufficiently fine-grained responsibility.

Oh, so moving the developer exception page to a hosting service fixes your ordering issue because your component will still use middleware rather than the new service?

Yep, we need to still keep our functionality as middleware, because the diagnostic information needs to be available for anything in next() (_loger.Info(...)).


[1.6.0a10] CLI Unable to rename files

I have had a couple of examples where I am able to pull data down and save the cr info in CBZ, but when I run a command to rename the file via CLI.   If I use the GUI, the rename works fine.
Command I am using:
comictagger.exe --rename -t cr 'comic.cbz'
Using Windows "ComicTagger-1.6.0a10-win-AMD64.exe.zip" version with my script.

Please provide the logs at '%APPDATA%\ComicTagger\logs'

My ComicTagger.log file in that location hasn't been written to since 10/15/2023.   I am not seeing an option in --help to allow debug logging.   Is there something I can enable?  Also while looking for a debug flag to enable, I see you have --template.  Do I need to specify a template?

That's odd. You can also add -vv and that will give you all of the logs.
It will also start with lines like this telling you where it is logging to:
2024-01-20T10:29:37 | comictagger | INFO | ComicTagger Version: 1.6.0a11.dev3 running on: Darwin PyInstaller: No
2024-01-20T10:29:37 | comictagger | DEBUG | user_data_dir: /Users/timmy/Library/Application Support/ComicTagger
2024-01-20T10:29:37 | comictagger | DEBUG | user_config_dir: /Users/timmy/Library/Application Support/ComicTagger
2024-01-20T10:29:37 | comictagger | DEBUG | user_cache_dir: /Users/timmy/Library/Caches/ComicTagger
2024-01-20T10:29:37 | comictagger | DEBUG | user_state_dir: /Users/timmy/Library/Application Support/ComicTagger
2024-01-20T10:29:37 | comictagger | DEBUG | user_log_dir: /Users/timmy/Library/Logs/ComicTagger

Ah... I see.   It is in "%UserProfile%\AppData\Local\ComicTagger\ComicTagger\Logs"   If you use %AppData% that puts you into AppData\Roaming...
Let me run a quick rename test and I will post it.

Here is the command I used:
comictagger.exe --rename -t cr '.\Wolverine 041 (2024) (digital) (Marika-Empire).cbz' -vv
Here is what is in my CommicTagger.log
`2024-01-20T13:34:01 | comictagger | INFO | ComicTagger Version: 1.6.0a10 running on: Windows PyInstaller: Yes
2024-01-20T13:34:01 | comictagger | DEBUG | user_data_dir: C:\Users\jay\AppData\Local\ComicTagger\ComicTagger
2024-01-20T13:34:01 | comictagger | DEBUG | user_config_dir: C:\Users\jay\AppData\Local\ComicTagger\ComicTagger
2024-01-20T13:34:01 | comictagger | DEBUG | user_cache_dir: C:\Users\jay\AppData\Local\ComicTagger\ComicTagger\Cache
2024-01-20T13:34:01 | comictagger | DEBUG | user_state_dir: C:\Users\jay\AppData\Local\ComicTagger\ComicTagger
2024-01-20T13:34:01 | comictagger | DEBUG | user_log_dir: C:\Users\jay\AppData\Local\ComicTagger\ComicTagger\Logs
2024-01-20T13:34:01 | comictagger | DEBUG | Installed Packages
2024-01-20T13:34:01 | comictagger | DEBUG | comicinfoxml	0.1.2
2024-01-20T13:34:01 | comictagger | DEBUG | comictagger	1.6.0a10
2024-01-20T13:34:01 | comictagger | DEBUG | importlib-metadata	7.0.1
2024-01-20T13:34:01 | comictagger | DEBUG | metron_talker	0.1.4
2024-01-20T13:34:01 | comictaggerlib.cli | INFO |
2024-01-20T13:34:01 | comictaggerlib.cli | INFO | --------- Comic Rack tags ---------
2024-01-20T13:34:01 | comictaggerlib.cli | INFO | series:      Wolverine
issue:       41
issue_count: 41
title:       Sabretooth War: Part 1
publisher:   Marvel
year:        2024
month:       3
day:         1
web_link:    https://comicvine.gamespot.com/wolverine-41-sabretooth-war-part-1/4000-1039590/
story_arcs:  ['Fall of X', 'Sabretooth War']
characters:  Northstar, Black Tom Cassidy, Sage, Quentin Quire, Aurora, Sabretooth, Daken, Domino, Wolverine
teams:       X-Force
locations:   North Pole, The Greenhouse, The Grove, Krakoa, Arctic
description: SABRETOOTH WAR BEGINS HERE!
THE MOST VIOLENT WOLVERINE STORY EVER TOLD!
Get ready for the showdown to end all showdowns - WOLVERINE VS. SABRETOOTH!
It's been years since these heavy hitters have crossed paths in the Marvel Universe, but as Krakoa falls, so rises SABRETOOTH - and he's out for revenge! They threw VICTOR CREED in the PIT, but he's free and, wielding an army of Sabretooths, will prove once and for all why he is LOGAN's ultimate nemesis.
Co-written by literary powerhouses Benjamin Percy (WOLVERINE, GHOST RIDER) and Victor LaValle (The Changeling, SABRETOOTH) and drawn by artistic dynamos Cory Smith (CONAN, GHOST RIDER) and Geoff Shaw (WEAPONS OF VENGEANCE, WOLVERINE: PATCH), don't miss the inaugural issue in this multi-shipping saga leading up to the landmark issue #50!
notes:       Tagged with ComicTagger 1.6.0a10 using info from Comic Vine on 2024-01-19 22:16:02. [Issue ID 1039590]
credit:      Writer: Benjamin Percy
credit:      Writer: Victor LaValle
credit:      Penciller: Cory Smith
credit:      Penciller: Geoff Shaw
credit:      Inker: Geoff Shaw
credit:      Inker: Oren Junior
credit:      Colorist: Alex Sinclair
credit:      Letterer: Cory Petit
credit:      Cover: Clayton Crain
credit:      Cover: Greg Capullo
credit:      Cover: Guru-eFX
credit:      Cover: Leinil Francis Yu
credit:      Cover: Mark Bagley
credit:      Cover: Romulo Fajardo Jr.
credit:      Cover: Salvador Larroca
credit:      Editor: C.B. Cebulski
credit:      Editor: Drew Baumgartner
credit:      Editor: Jordan D. White
credit:      Editor: Mark Basso
`
This pretty much matches the output of what I see in Windows Terminal, but if you want that output too, I can provide as well.

So turns out I accidentally made -r, --rename the same as -p, --print. That will be fixed later today

This was fixed in bb1a83b. It will be in the next release


Want to work together?

Hello. We have a similar project well in the works over at https://github.com/RoundtableHold/roundtablehold.github.io
Our site is https://roundtablehold.net if you want to check it out.
I was wondering if you wanted to come collaborate on our project in order to avoid duplicating work? We're trying to build a huge community driven site for Elden Ring and would love to work with you.

Hello. Thanks but I am too busy to work on your project as well. While our projects are similar, I think we are both trying to provide different things. Good luck with your project though!

Though I want to preface this as, this website is not supposed to be the same as that website. I'm not going to be making a game guide like that website does where it tells you where to go in your play through to collect everything.
Quote

I think that @Gobluebro is trying to just have the checklist and not a full guide that explains everything, like your site?

We have both guides for those who want that, and checklists for just completionism. But I understand, these things take up a lot of time. I wish you luck.


Add Vulnerability scanning report to the summaryDetails section

As discussed in #1601, the json output format is missing the scan image results for a --scan-images execution.
This PR includes a new vulnerabilities section in the report's summaryDetails.  The vulnerabilities data follows the same format already defined by the convertToImageScanSummary function in prettyprinter

Since the summaryDetail struct needs to be modified, a follow-up PR will be sent with the changes in the opa-utils repository.

The resulting summary should look like this
"summaryDetails": {
      "controls": {
	}
       "status": "failed",
       "frameworks": [
        ],
	"resourcesSeverityCounters"
	"controlsSeverityCounters"
	"ResourceCounters"
	"vulnerabilities": {
           "MapsSeverityToSummary": {
              "Critical": {
              "NumberOfCVEs": 15,
              "NumberOfFixableCVEs": 6
           },
          "High": {
              "NumberOfCVEs": 128,
              "NumberOfFixableCVEs": 48
           },
           "Low": {
              "NumberOfCVEs": 18,
              "NumberOfFixableCVEs": 8
            },
            "Medium": {
               "NumberOfCVEs": 156,
               "NumberOfFixableCVEs": 77
            },
           "Negligible": {
               "NumberOfCVEs": 159,
               "NumberOfFixableCVEs": 1
           },
           "Unknown": {
               "NumberOfCVEs": 7,
               "NumberOfFixableCVEs": 3
            }
         },
         CVEs:
         PackageScores:
         Images:
}

@agarcia-oss Thank you for your contribution!
Please bump the opa-utils version and run go mod tidy (you would need to bump in the base directory and in the httphandler directory)

@agarcia-oss Thank you for your contribution! Please bump the opa-utils version and run go mod tidy (you would need to bump in the base directory and in the httphandler directory)

Opa-utils dependencies updated!