ubootRockPro64/ubootRock64: Combined SD/MMC image and SPI image

Motivation for this change

Install already-built u-boot-rockchip.bin combined SD/MMC U-Boot image for Rock64 and RockPro64, to make flashing easier (one image instead of two).
Make SPI-compatible spi-idbloader.img for RockPro64. When flashed along with uboot-itb, a RockPro64 can boot the unmodified generic NixOS SD image.

Doing the same change for Rock64 didn't work (SPI flash is ignored when booting as though it didn't have the correct block ID header), so I'm just submitting the RockPro64 one for now.

Add RockPro64/Rock64 console kernel command line to Aarch64 SD image, so the image is is usable out of the box on those boards.

I could only get a console if the ttyS2 entry was first.

Remove Rock64 config change that has been upstreamed.

See commit messages for more details and flashing instructions.
Things done
Testing done mostly with cross-compiled U-Boot.

RockPro64: Flashed combined SD/MMC image to an SD card, boots fine.
RockPro64: Flashed SPI image to the board, boots the current unstable latest-kernel Aarch64 generic NixOS SD image: https://hydra.nixos.org/build/158402880

You don't get a console unless you add a console line with ttyS2 to the kernel command line, eg. console=ttyS2,1500000n8.

RockPro64: Built U-Boot on-device (no cross compilation) and flashed resulting SPI images, booted fine.
Rock64: Tested combined SD/MMC image, boots fine.

Built on platform(s)

[x] x86_64-linux (via pkgsCross.aarch64-multiplatform)
[x] aarch64-linux (on a RockPro64)
[ ] x86_64-darwin
[ ] aarch64-darwin

[ ] For non-Linux: Is sandbox = true set in nix.conf? (See Nix manual)
[ ] Tested, as applicable:

NixOS test(s) (look inside nixos/tests)
and/or package tests
or, for functions and "core" functionality, tests in lib/tests or pkgs/test
made sure NixOS tests are linked to the relevant packages

[x] Tested compilation of all packages that depend on this change using nix-shell -p nixpkgs-review --run "nixpkgs-review rev HEAD". Note: all changes have to be committed, also see nixpkgs-review usage
[ ] Tested basic functionality of all binary files (usually in ./result/bin/)
21.11 Release Notes (or backporting 21.05 Release notes)

[ ] (Package updates) Added a release notes entry if the change is major or breaking
[ ] (Module updates) Added a release notes entry if the change is significant
[ ] (Module addition) Added a release notes entry if adding a new NixOS module
[ ] (Release notes changes) Ran nixos/doc/manual/md-to-db.sh to update generated release notes

[x] Fits CONTRIBUTING.md.

Great commit messages!

The SPI image could be pre-processed to be combined too. Maybe it should, even.
Using sf erase is not necessary, and is largely cargo-culted AFAIK. There's also sf update that can be used to reduce unneeded writes to the backing storage. I'm using sf update in the "brick safe~ish" update method here.
Dropping misc notes here:

I wrote about planning for a better NixOS on ARM on the discourse. Nothing that changes what you did here. Just relevant notes.
I am working on making the "distros shouldn't ship a platform firmware" part true with Tow-Boot. This might be relevant to your interests considering you seem to want to use the SPI Flash.
Consider joining the #nixos-on-arm:nixos.org matrix room if you want to get involved more.

The SPI image could be pre-processed to be combined too. Maybe it should, even.
Using sf erase is not necessary, and is largely cargo-culted AFAIK. There's also sf update that can be used to reduce unneeded writes to the backing storage. I'm using sf update in the "brick safe~ish" update method here.

I'll have a look into these. Regarding pre-processing/combining the SPI image, ideally I guess I would submit that upstream, but I have no idea how to do that. For now I'll just add it to our derivation.

I'm writing down these notes so they are recorded somewhere.
I found that upstream U-Boot explicitly dropped creating SPI images for Rockchip devices and put the information on how to do it in the documentation instead:

https://source.denx.de/u-boot/u-boot/-/commit/f6f9affdcea058bec6004895ab427a4ecda775b2
https://source.denx.de/u-boot/u-boot/-/commit/dd397609fc45472d78894256e1effd6902a7c12d

I think when they say

SPI boot image creation is not
straightforward like MMC boot image creation where former
requires to specify tpl, spl in multimage format in mkimage,
and later simply do a concatenate mkimaged-tpl with spl.

they mean that you can't just mkimage the TPL and SPL images separately and concatenate them like so:
./tools/mkimage -n rk3399 -T rkspi -d tpl/u-boot-tpl.bin tpl-spi.img
./tools/mkimage -n rk3399 -T rkspi -d spl/u-boot-spl.bin spl-spi.img
cat tpl-spi.img spl-spi.img > idbloader-spi.img

You have to do what I've currently got:
./tools/mkimage -n rk3399 -T rkspi -d tpl/u-boot-tpl.bin:spl/u-boot-spl.bin idbloader-spi.img

Seems that mkimage (specifically looking in rkcommon.c) treats the first one as the "init" payload and the second one as the "boot" payload, and makes sure the image header has correct sizes and offsets for both payloads, so the boot ROM knows how to fetch them.

I'm going to see if I can do the SPI idbloader.img and the combined SPI image creation in a patch we apply to U-Boot, to take advantage of the pad_cat thing they've got in the Makefile to presumably concatenate images, padding them to specific offsets (which is what the u-boot-rockchip.bin combined SD/MMC image currently does).
Or would it be preferred to just stick the necessary commands in postBuild in the derivation?

I'm going to see if I can do the SPI idbloader.img and the combined SPI image creation in a patch we apply to U-Boot [...]
Or would it be preferred to just stick the necessary commands in postBuild in the derivation?

If it's something that can be upstreamed, it might be preferable to do it right and make it so everyone benefits from straightforward SPI image building.
Making it part of postBuild would be okay if it's hard to do correctly (hard can mean "takes time" too). As long as the build uses the right offsets intrinsically. (AFAIUI it's something the build tooling can do, right?)

Progress update:
I've updated the SPI flash flashing commit message to not need sf erase and use sf update.
On the more complex side, I am going down the rabbit hole of making U-Boot's Rockchip image generation better, to generate full images for both SD/MMC and SPI, and in the process updating the generation to use binman (which seems to be the modern way to package U-Boot images). I'm recording random notes in https://github.com/mirrexagon/nixpkgs/issues/1, and my WIP U-Boot changes are in https://github.com/mirrexagon/u-boot/tree/rockchip-spi.
Once I get to a point where I can boot the RockPro64 from SD/MMC and SPI, and the Rock64 at least from SD/MMC (since I couldn't get SPI boot working before anyway), and once I think I haven't broken other boards, I'll try submitting it upstream.

If you can share here too, I'll take a look and test.
That'll give you a Tested-by for upstreaming.

Apologies for disappearing for a few months. I am finally able to work on this again.
I've sent some RFC patches to U-Boot to generate SD/MMC and SPI images with binman, to get some feedback on this approach: https://lists.denx.de/pipermail/u-boot/2022-April/482378.html
Hopefully I can eventually get them to a point where they are accepted, then we can move forward with this (by either applying the patches here, or upgrading to a release of U-Boot that includes them whenever that comes).
@samueldr I CCed you on the patch emails in case you wanted to follow them.


Smooth Orbit Controls

Description
As a dev using TresJS, I would like to have smooth OrbitControls and TrackballControls
Suggested solution
https://twitter.com/niccolofanton/status/1836727821005139988
https://github.com/niccolofanton/SmoothOrbitControls
Credits @niccolofanton
Alternative
No response
Additional context
No response
Validations

[X] I agree to follow this project's Code of Conduct
[X] Read the Contributing Guidelines.
[X] Read the docs.
[X] Check that there isn't already an issue that reports the same bug to avoid creating a duplicate.

Hi, what is the difference or benefits between CameraControls and smoothOrbitControls?


SoftU2F is not detected as USB device

SoftU2F is not detected as USB device, but in dmesg it is an "USB HID" device.

Ahh okay this actually makes sense and is expected behavior but I had never thought about it.
I use the Linux UHID driver to create a virtual HID device.  You can think of USB HID as a separate protocol only certain USB devices support. Since this UHID devices do not support the full USB protocol, the kernel does not expose them as a USB devices.

Closing as expected behavior.


Drop support for Python 3.8

Python 3.8 EOL is due tomorrow, when 3.13.0 final is released.

https://devguide.python.org/versions/
https://peps.python.org/pep-0569/

I think we're due for a release, I can do it later today.


fix: performance

the performance of RuntimeMeshComponent is worse than ProceduralMeshComponent in the same number of triangles.

Closing as this is for an old version of the RMC at this point, as v4 is now complete.
This was fixed in v4.
Thank you for your support! Feel free to PR in the future!


Update PPP

Update PPP for week 12

Codecov Report
Base: 74.25% // Head: 74.27% // Increases project coverage by +0.01% :tada:

Coverage data is based on head (1370b94) compared to base (1c224eb).
Patch has no changes to coverable lines.

Additional details and impacted files
@@             Coverage Diff              @@
##             master     #237      +/-   ##
============================================
+ Coverage     74.25%   74.27%   +0.01%
- Complexity      666      673       +7
============================================
  Files           100      100
  Lines          2016     2025       +9
  Branches        222      226       +4
============================================
+ Hits           1497     1504       +7
  Misses          444      444
- Partials         75       77       +2

Impacted Files
Coverage Δ

.../main/java/seedu/phu/model/internship/Website.java
63.63% <0.00%> (-6.37%)
:arrow_down:

...va/seedu/phu/commons/core/keyword/KeywordList.java
91.66% <0.00%> (-3.08%)
:arrow_down:

...n/java/seedu/phu/commons/core/keyword/Keyword.java
100.00% <0.00%> (ø)

...java/seedu/phu/logic/parser/FindCommandParser.java
100.00% <0.00%> (ø)

Help us with your feedback. Take ten seconds to tell us how you rate us. Have a feature suggestion? Share it here.

:umbrella: View full report at Codecov.
:loudspeaker: Do you have feedback about the report comment? Let us know in this issue.


Fix issue in concurrent recreate table

WIP, only contains a problematic test case right now
"Test concurrent prepared"


functional net tests: likely prevent local collisions

Closes #1662.
Helping with #1651.

One nitpick; LGTM after that.


Feature request: Export APIGatewayV2RequestAuthorizer & APIGatewayV2RequestContext schemas

Use case
I need to parse the actual structure of an APIGatewayProxyEventV2Schema's requestContext.authorizer.lambda key (for both typing and validation reasons)
Solution/User Experience
Export the APIGatewayV2RequestAuthorizer & APIGatewayV2RequestContext schemas so that APIGatewayV2RequestAuthorizer can be extended with a custom schema for the lambda authorizer, and in turn extend APIGatewayV2RequestContext with that schema (and in turn extend APIGatewayProxyEventV2Schema).
Alternative solutions
No response
Acknowledgment

[x] This feature request meets Powertools for AWS Lambda (TypeScript) Tenets
[x] Should this be considered in other Powertools for AWS Lambda languages? i.e. Python, Java, and .NET

Future readers
Please react with 👍 and your use case to help us understand customer demand.

Hi @codyfrisch, thanks for opening this issue.
I think it makes sense to export them, I'm adding this to the backlog.
If you'd like to open a PR to get it done, I'd be happy to help you merge it. Otherwise we'll get to it before next release in ~2 weeks.

If you'd like to open a PR to get it done, I'd be happy to help you merge it. Otherwise we'll get to it before next release in ~2 weeks.

I'll let you do it. (I'll start contributing eventually). In the meantime, I created duplicates to keep me going until this is released.


Malformed hash values are not caught by the validator

It appears that the grammar would need to be changed.  Not sure it is worth it.

It was in a pattern created by the elevator.  The validator doesn't flag it as being malformed (it doesn't have 64 characters).
file:hashes.'SHA-256' = 'AA76D3AF03B44639148D190785EAB9720471FFC28C71468182B786ED0B0EB'
I can't attach a json file??????
I made it a TXT file
stix-9281.json.txt

Since this is a problem with the pattern validator, I made an issue there: https://github.com/oasis-open/cti-pattern-validator/issues/59
Thanks for bringing this up!


Add initial implementation of CLI tooling

Closes #43
This PR adds a new virtual-display-driver-cli crate (open to other names for it!), which implements lots of different subcommands for adding/editing/removing virtual displays by communicating with virtual-display-driver over its named pipe. As discussed on Discord, I basically started building this out just to get a feel for how the IPC protocol works, but kept adding functionality that I thought would be useful.
Here's the help page:
Usage: virtual-display-driver-cli.exe [OPTIONS] <COMMAND>

Commands:
  list         List currently connected virtual monitors
  add          Add a new virtual monitor
  add-mode
  remove-mode
  enable       Enable a virtual monitor
  disable      Disable one or more virtual monitors
  remove       Remove one or more virtual monitors
  remove-all   Remove all virtual monitors
  help         Print this message or the help of the given subcommand(s)

Options:
  -j, --json  Format output as JSON
  -h, --help  Print help

...and here's more details about each command I've included so far:
list
List currently connected virtual monitors

Usage: virtual-display-driver-cli.exe list

Options:
  -h, --help  Print help

add
Adds a new virtual monitor. Allows adding multiple modes to the new monitor too by specifying multiple width/height pairs. Also allows specificing multiple refresh rates by repeating the -r / --refresh-rate flag more than once (if you add multiple resolutions and multiple refresh rates, all the listed refresh rates will be added to all modes).
(I think using -w / -h flags would be a little cleaner, but -h conflicted with --help, and so I felt the next best alternative was to specify the width and height as plain arguments)
Help page:
Add a new virtual monitor

Usage: virtual-display-driver-cli.exe add [OPTIONS] <WIDTH> <HEIGHT> [MORE_WIDTHS_AND_HEIGHTS]...

Arguments:
  <WIDTH>                       Width of the virtual monitor
  <HEIGHT>                      Height of the virtual monitor
  [MORE_WIDTHS_AND_HEIGHTS]...  More resolutions to add as extra modes for the virtual monitor

Options:
  -r, --refresh-rate <REFRESH_RATE>  Refresh rate of the virtual monitor. Pass multiple times to support multiple refresh rates [default: 60]
      --id <ID>                      Manual ID to set for the monitor. Must not conflict with an existing virtual monitor's ID
      --name <NAME>                  Optional label for the virtual monitor
      --disabled                     Set the virtual monitor to disabled on creation
  -h, --help                         Print help

add-mode
This adds a mode to an existing virtual monitor. I'm not quite sure if the interface with this one makes perfect sense, since this can lead to duplicate EDIDs and probably other weird things.
Help page:
Add a new resolution/refresh rate mode to an existing virtual monitor

Usage: virtual-display-driver-cli.exe add-mode [OPTIONS] <ID> <WIDTH> <HEIGHT>

Arguments:
  <ID>      ID of the virtual monitor to add a mode to
  <WIDTH>   Width of the new mode
  <HEIGHT>  Height of the new mode

Options:
  -r, --refresh-rate <REFRESH_RATE>  Refresh rate for the new mode. Pass multiple times to support multiple refresh rates in this mode [default: 60]
  -h, --help                         Print help

remove-mode
Removes a mode from an existing display. I am not super happy with using the index in the list to remove the mode, but I couldn't think of a better alternative to pick a specific mode.
Help page:
Remove a resolution/refresh rate mode to an existing virtual monitor

Usage: virtual-display-driver-cli.exe remove-mode <ID> <MODE_INDEX>

Arguments:
  <ID>          ID of the virtual monitor to add a mode to
  <MODE_INDEX>  The index of the mode to remove

Options:
  -h, --help  Print help

enable
Enable a virtual monitor

Usage: virtual-display-driver-cli.exe enable <ID>

Arguments:
  <ID>

Options:
  -h, --help  Print help

disable
Disable one or more virtual monitors

Usage: virtual-display-driver-cli.exe disable <ID>

Arguments:
  <ID>

Options:
  -h, --help  Print help

remove
Removes a monitor. Multiple IDs can be passed to remove multiple monitors. Currently, there's no validation here: it just passes the IDs verbatim from the CLI to the driver.
Help page:
Remove one or more virtual monitors

Usage: virtual-display-driver-cli.exe remove [ID]...

Arguments:
  [ID]...

Options:
  -h, --help  Print help

remove-all
Remove all virtual monitors

Usage: virtual-display-driver-cli.exe remove-all

Options:
  -h, --help  Print help

...and a few random notes after implementing this and after the conversation about the implementation on Discord:

All operations currently expect just the monitor ID (not the name). It should be fairly easy to support both with what's here... I just didn't get to it as part of my first pass.
Commands default to colorized human-readable output, and there's a global -j / --json flag to output JSON instead. I thought it would come in handy to be able to script things more directly (random example: using jq to find all disabled monitors, which could then be piped to the remove subcommand). The code to output one or the other is bespoke: I personally think this makes the code simpler and easier to read, but there are definitely other ways to organize the code around this.
There's currently no option to disable color output (well, unless owo-colors does something like look at env vars?). I know it's good practice to have a way to disable color output, so handling that would be a good follow-up.
Instead of a general update command, I added the separate add-mode / remove-mode / enable / disable commands. I'm not sure if that's better per se, but separate commands for each thing feels more intuitive to me.
The add command currently has an --id flag to set an ID. I know it was mentioned on Discord that IDs are meant to be automatically assigned, and I don't feel strongly one way or the other on keeping it, so it probably makes sense to remove this flag.
I originally tried making everything async, but Tokio (and more specifically, the underlying mio library) doesn't work well with Windows named pipes in message mode. I didn't feel it was worth the fight, so I ended up making everything sync instead.
I used eyre for error handling. I felt this gave really good error reporting out-of-the-box with minimal extra work.
It might be nice to have a force-reset command that removes and re-adds the display adapter in case the driver crashes (would probably require admin permission). Trying to add a monitor with a refresh rate of 50000 made things lock up for example, so having an escape hatch would be pretty convenient.
I didn't touch the Cargo Makefile, the installer, or GitHub Actions. I think it would make a lot of sense to add this to $PATH somehow so it's available by default.
I didn't think about it at the time, but I realized I used the term "virtual monitor" for help text and command outputs. The term "virtual display" would probably be better and more consistent.

I have read the CLA Document and I hereby sign the CLA

Thanks for the thorough review! I went through everything and put down a few notes for context for followup issues, and marked them all as resolved. Definitely agree with the points you brought up, but I'd still vote in favor of merging as-is. With this PR as a foundation, I think it'll be easier to iterate on the finer details in smaller, more focused PRs. (Also personally the CLI has been helpful for me even in its current limited form, since I have the driver installed from master and it works as a stopgap while the GUI is being C#-ified!)

recheck


Add Dark Mode Feature to thecodingtrain Website

Dark Mode Feature Proposal
Description:
As a user of thecodingtrain website, I often find myself browsing late at night or in low-light environments where a dark mode would be more comfortable for my eyes. I propose adding a dark mode feature to the website to enhance user experience and accessibility.
Benefits:

Improves user experience, especially in low-light environments.
Provides greater accessibility options for users with sensitivity to bright light.
Aligns with current web design trends and user preferences.

Additional Notes:

This feature could be made toggleable via a button in the website's header or through a settings menu.
browser preferences to enable easy switching between light and dark modes.

Preview:
Dark Mode

Desktop

Small Screen (Mobile/Tablet)

Light Mode

Desktop

Small Screen (Mobile/Tablet)

Feel free to provide any feedback or suggestions for improving this feature.
Once I complete the user preferences part, I will proceed to create a pull request. @shiffman

Hi @Yashasewi thank you for this! This is widely requested and would be wonderful to integrate. @runemadsen this affects the design quite significantly, would you mind offering any feedback or thoughts before we proceed with any implementation?

This will be very cool! I would just make sure that the softness coming from the light grays are transferred to the dark mode layout by using blacks that are not fully black. I would make sure to use CSS variables so this is easy to tweak, and I'll be happy to take a look once the initial PR is in :)

Thank you @runemadsen! It occurred to me that @jasontheillustrator might also want to take a look as dark mode may affect the illustrations and logos on the site as well. Thank you again @Yashasewi!

Thanks Dan! This looks really good. I think the majority of the characters work just fine with dark mode. There's a couple that might be a little tricky depending on the black that is used for the background. This one for example is starting to look a bit weird because the eyes don't have much contrast to the background.

Right now it's probably ok. If the black background is toned down a bit, there will be less contrast with the eyes and mouth. Could we show a "dark mode" version of this character where the colors are tweaked slightly so that they show up better on a dark background? Either that or we just swap out this character for one that works better on light and dark mode.

Ah sorry, I completely missed the previews 😬 I think this is looking really good!
I would consider making the darks a bit lighter. It doesn't have to be much (perhaps closer to what we do on our site so it doesn't come off as contrasted. I think we should find a way to keep the soft red lines on the background, but we can take all of that once there's a PR to check.

Hi everyone!
Thank you for the valuable feedback and suggestions regarding the dark mode feature. I've been working on the implementation,
I try to implement this feature as early as possible. Create an initial pr for feedback.

Hi everyone,
Before proceeding with the pull request, I'd like to discuss the approach I've taken for implementing the dark mode feature.
Implementation Approach:
Instead of using CSS variables, I've implemented dark mode using the CSS filter property, specifically
filter: invert(100%) hue-rotate(180deg);

This approach was inspired by the blog post Implementing dark mode in a handful of lines of CSS with CSS filters.
Advantages:

Simple and lightweight implementation without the need for complex CSS variables or JavaScript manipulation of styles.
Provides a consistent dark mode experience across the entire website, including third-party components and user-generated content.

Potential Drawbacks:

May lead to undesirable effects on certain elements or images, requiring additional CSS rules or exceptions.
Limited control over individual element colors compared to using CSS variables or separate stylesheets.

Implementation Details:
I've included the CSS and JavaScript code snippets for reference. Here's a brief overview:

Please ignore comments.

CSS: The dark mode styles apply the filter property to the body element, effectively inverting the colors. Additional rules are included to handle specific elements like images, SVGs, code blocks, and list item markers.

CSS Code 👇👇
body {
  /* background-color: var(--html-bg-color); */
  filter: var(--filter-bg);
  /* color: var(--gray-dark); */
}

html {
  /* background-color: #000000; */
  background-color: var(--html-bg-color);
  /* background-color: #ffffff; */
}

/* Do not invert media (revert the invert). */
img,
video,
iframe {
  /* filter: invert(100%) hue-rotate(180deg); */
  filter: var(--filter-bg);
  /* filter: none; */
}

svg {
  /* filter: invert(95%) hue-rotate(180deg); */
  filter: var(--svg-filter-bg);
  /* filter: none; */
}

/* Re-enable code block backgrounds. */
pre {
  /* filter: invert(6%); */
  filter: var(--filter-pre-bg);
}

/* Improve contrast on list item markers. */
li::marker {
  /* color: #666; */
  color: var(--color-li-bg);
}

JavaScript: The ThemeProvider component manages the theme state (dark) and provides a toggle function to switch between light and dark modes. It uses useLayoutEffect to apply the theme and persist the user's preference in localStorage.

JavaScript code 👇👇
import React, { useState, useLayoutEffect } from 'react';

/**
 * ThemeContext is a Context that holds the state of the theme and the method to toggle it
 * @type {React.Context<{dark: boolean, toggle: () => void}>}
 * @returns {JSX.Element}
 * @constructor
 * @param {boolean} dark - the current state of the theme
 * @param {() => void} toggle - the method to toggle the theme
 * @returns {JSX.Element}
 *
 */
export const ThemeContext = React.createContext({
  dark: false,
  toggle: () => {}
});

/**
 * ThemeProvider component is a Context Provider that passes down the state and the method to toggle the theme
 * @param children - the child components wrapped by the ThemeProvider
 * @returns {JSX.Element}
 *
 */
export default function ThemeProvider({ children }) {
  const [dark, setDark] = useState(false);

  useLayoutEffect(() => {
    const storedPreference = localStorage.getItem('darkModePreference');
    if (storedPreference !== null) {
      setDark(JSON.parse(storedPreference));
    } else {
      const prefersDarkMode = window.matchMedia(
        '(prefers-color-scheme: dark)'
      ).matches;
      setDark(prefersDarkMode);
    }
  }, []);

  useLayoutEffect(() => {
    applyTheme();
  }, [dark]);

  const applyTheme = () => {
    let theme;
    if (dark) {
      theme = darkTheme;
      localStorage.setItem('darkModePreference', 'true');
    } else {
      theme = lightTheme;
      localStorage.setItem('darkModePreference', 'false');
    }

    const root = document.getElementsByTagName('html')[0];
    root.style.cssText = theme.join(';');
  };

  const toggle = () => {
    const body = document.getElementsByTagName('body')[0];
    body.style.cssText = 'transition: background .5s ease';
    setDark(!dark);
  };

  return (
    <ThemeContext.Provider value={{ dark, toggle }}>
      {children}
    </ThemeContext.Provider>
  );
}
// styles
const lightTheme = [
  '--filter-bg: none',
  // '--red-lightest: #fffcfc',
  '--html-bg-color: #ffffff',
  // '--gray-light: #ededed',
  // '--gray-dark: #3c3c3c'
  '--svg-filter-bg: none',
  '--filter-pre-bg: none',
  '--color-li-bg: inherit'
];

const darkTheme = [
  '--filter-bg: invert(100%) hue-rotate(180deg)',
  // '--red-lightest: #1e1d20',
  // '--html-bg-color: #1e1d20',
  '--html-bg-color: #000000',
  // '--gray-light: #1e1d20',
  // '--gray-dark: #f5f5f5'
  '--svg-filter-bg: invert(100%) hue-rotate(180deg)',
  '--filter-pre-bg: invert(6%)',
  '--color-li-bg: #666'
];

Updated preview 👇👇

Dark Mode Desktop

Next Steps:
While this approach seems promising, I wanted to get your feedback and opinions before proceeding with the pull request. Are there any potential issues or concerns with using CSS filters for dark mode implementation? Is there a better approach that aligns with the project's design principles and ensures a seamless user experience?
I'm open to suggestions and willing to explore alternative implementations if deemed more suitable.
Please let me know your thoughts, and I'll be happy to address any concerns or make adjustments as needed.
Thank you for your valuable input and collaboration!
@shiffman @runemadsen @jasontheillustrator

Thanks for this description @Yashasewi. It's super helpful to understand the approach. Having thought about it for a bit, I would highly recommend to not do the dark mode with CSS filters, as all the brand colors will have random opposites applied without us being able to select those colors. I think a better solution would be to apply a theming class to the body and override the CSS variables that we're already using throughout the site. It won't be much more work, and it would allow us to pick the individual colors, which is much preferred compared to just inverting the entire color scheme.

Thank you, @runemadsen, for your valuable feedback and suggestion. I appreciate you taking the time to review the CSS filter approach and providing your insights.
Based on your recommendation, I have implemented the dark mode feature using CSS variables and theming classes. This approach allows for better control over individual colors and ensures that the branding and design elements retain their intended appearance.
Remaining Issues:
While implementing the dark mode with CSS variables, I encountered a few instances where colors were hard-coded instead of using variables. I have identified and updated most of these instances, but there may still be some areas that need further attention.
If you or the team members notice any inconsistencies or issues with the dark mode implementation, please feel free to point them out, and I'll address them promptly.
Dark Mode Colors:
I have carefully selected the new dark mode colors to ensure a visually appealing and consistent experience. However, I would appreciate your feedback and input from the design team (@runemadsen, @jasontheillustrator) to ensure that the chosen colors align with the project's branding and design principles.
Next Steps:
I plan to create a pull request with the updated dark mode implementation. This will allow the all of you to review the changes, provide feedback, and contribute to further refinements if necessary.
Please let me know if you have any additional suggestions or concerns. I'm happy to make any necessary adjustments to ensure a successful integration of the dark mode feature.
Thank you again for your guidance and collaboration!
@shiffman @runemadsen @jasontheillustrator

That sounds amazing @Yashasewi! It's wonderful that you took the time to make the use of CSS variables even better. Can't wait to review the PR, so let me know when it's ready :)

That sounds amazing @Yashasewi! It's wonderful that you took the time to make the use of CSS variables even better. Can't wait to review the PR, so let me know when it's ready :)

Thank you, @jasontheillustrator! I'm glad you liked CSS variables approach. I'll keep you updated and notify you once ready for review.
Kind of little busy with some things🥲

Hi everyone,
I've completed the implementation of the dark mode feature, and I'm excited to share that I've created a pull request for your review and feedback.
Pull Request: #1554 Dark Mode Implementation
In this pull request, I've addressed the following:

Implemented dark mode using CSS variables
Created a dedicated theme.js component to manage CSS variables for light and dark modes
Updated existing styles to reference the appropriate CSS variables for theming
Addressed instances of hard-coded colors and updated them to use CSS variables

Please take a look at the pull request description for more details on the implementation, potential issues, screenshots, and next steps.
I would greatly appreciate it if you could review the changes and provide your feedback. I'm happy to address any concerns or make further adjustments as needed.
Thank you for your collaboration and support throughout this process. I'm looking forward to your valuable insights and working together to ensure a seamless integration of the dark mode feature.
@shiffman @runemadsen @jasontheillustrator


Using Header authentication

Removing Object.assign since it is unsupported in Internet Explorer

@morganick tests failed here too

@acorncom yeah npm install failed here. Is there a way to re-run the tests?

@morganick if you have time to make that change, let me know and I will cut a release, or i can merge as is and make the change.

released 0.2.1

thanks @morganick


Topology - Aggregating edges between node groups

Solve https://github.com/patternfly/react-topology/issues/17

TODOs:

[X] node <-> group
[X] between groups with same nesting depth
[ ] complex nesting depth cases between different parents

[ ] group <-> subgroup
[ ] subgroup <-> subgroup
[ ] subnode + subgroup <-> group

Closing this as outdated


Feature Request: plex metadata export

export metadata from plex. like posters, create .nfo etc
and import everything back
optional: save inside movie's folders vs pmm-asset-folder
Describe alternatives you've considered
https://github.com/ZeroQI/Lambda.bundle

(found that picture online)
problem here is, that lambda is already outdated with both the cancellation of plex-plugins, aswell as the "sandboxed" version of the new Plex-Agent with no additional 3rd-party-agents.
thanks

This would be huge.  I have a library with a ton of metadata that I manually entered in Plex that I'd like to be able to export as a backup.  As a starting point, how about an option to export metadata in the PMM YAML format, since PMM is already set up to re-import that.  Same goes with scraping custom metadata posters into the pre-defined image asset folder.  Please please please!!

I agree, I've spent a few days trying to find a metadata exporter that just works, and exports the metadata to my medias folder. PMM would be the perfect way to do this

If I may, I'd add another detail to this:
PMM checking each movie/TV in the metadata.yml and cross-checking with TMDB and seeing if it is part of a collection. If it is, automatically filling that out in collections.yml (or whatever you choose) with the collection name, poster, and films inside.
Ideally, it would cross-check other yml files inside the directory to see if they're already there. For example, I have a specific yml for Lord of the Rings and The Hobbit, because they are all encapsulated by "The Middle Earth Collection" which is not present on TMDB. So I wouldn't be interested in PMM adding them to collections.yml, since I already took care of that.
Not sure if this was part of the last update in the develop branch, but I just thought I'd throw it out there if this is in any way doable.
Thanks!

Keep an eye out in the next major release for dynamic collections it'll do what you want

I don't get how dynamic collections addresses this.  The feature request is to write existing library metadata to some sort of files for backup/reimport.

That's was a reply to the above user about tmdb collections this feature was closed because I added the metadata_export library operation


Add nordic currencies

This PR adds SEK (Sweden), NOK (Norway), DKK (Denmark) and ISK (Iceland) currencies.

Thank you!


EntraOps module not working.

Trying to import EntraOps module but getting below error. Please support.
1- Downloaded EntraOps.psd1 & EntraOps.psm1
2- Run PowerShell module "PowerShell 7.4.2".
3-Getting Error:
PS C:\Users\Administrator\Documents\WindowsPowerShell\Modules\EntraOPS> Import-Module ./EntraOps
Install-EntraOpsAllRequiredModules: The term 'Install-EntraOpsAllRequiredModules' is not recognized as a name of a cmdlet, function, script file, or executable program.
Check the spelling of the name, or if a path was included, verify that the path is correct and try again.
Import-Module: The module to process 'EntraOps.psm1', listed in field 'ModuleToProcess/RootModule' of module manifest 'C:\Users\Administrator\Documents\WindowsPowerShell\Modules\EntraOPS\EntraOps.psd1' was not processed because no valid module was found in any module directory.

@iahmed18 : Do you have download the EntraOps folder including all subfolder content (e.g., Public) and imported it in PowerShell Core?

I think you are referring this folder.

Now its working Thanks for your support.


[zh] translate concepts/Node Resource Managers

translate  /docs/concepts/policy/node-resource-managers.md into Chinese.
close #27587

https://deploy-preview-27713--kubernetes-io-master-staging.netlify.app/zh/docs/concepts/policy/node-resource-managers/

/approve

/lgtm


Uhdmovies: Only zip available error

Source information
Uhdmovies 13.17(english)
Source language
En
Steps to reproduce
Open uhdm extension in aniyomi
Select any movie/series
Then open it
Expected behavior
If i open some webseries it should show episode ... or i open movie it should show some option
Actual behavior
None of the movie and series shows any option just show only zip pack available
Aniyomi version
<IP_ADDRESS>
Android version
Android 12
Other details
No matter what shows or movie i open all the content show only zip pack available

Acknowledgements

[X] I have searched the existing issues and this is a new ticket, NOT a duplicate or related to another open or closed issue.
[X] I have written a short but informative title.
[X] I have updated the app to version <IP_ADDRESS>.
[X] I have updated all installed extensions.
[X] I have tried the troubleshooting guide.
[X] If this is an issue with the app itself, I should be opening an issue in the app repository.
[X] I will fill out all of the requested information in this form.

Fixed in #2604.


Kubevirt provider: Use dynamic client from controller-runtime

The main purpose of this change is to get rid of another transient
dependency on a specific client-go version.
What this PR does / why we need it:
Which issue(s) this PR fixes (optional, in fixes #<issue number>(, fixes #<issue_number>, ...) format, will close the issue(s) when PR gets merged):
Fixes #
Special notes for your reviewer:
none

/assign @mrIncompetent

/lgtm
/approve


Track metrics in OpenAI functions

This PR adds metrics to the openai functions.
To test it call this api few times:
curl -X POST "http://localhost:8888/graphql" \
  -H "Content-Type: application/json" \
  -d '{"query": "mutation { data(input: { prompt: \"Hellobello\" }) { prompt } }"}'

Then query for the metrics on these urls. Dont forget to replace the job and vertice id.
curl -X GET "http://localhost:8081/jobs/a20788b06357ca57e6de5d0d8e56fcbe/vertices/d3f21cabc6fe0fdf76c8be915bdb22a2/metrics?get=0.Calc%5B2%5D.com_datasqrl_openai_completions_callCount"

curl -X GET "http://localhost:8081/jobs/a20788b06357ca57e6de5d0d8e56fcbe/vertices/d3f21cabc6fe0fdf76c8be915bdb22a2/metrics?get=0.Calc%5B2%5D.com_datasqrl_openai_completions_errorCount"

curl -X GET "http://localhost:8081/jobs/a20788b06357ca57e6de5d0d8e56fcbe/vertices/d3f21cabc6fe0fdf76c8be915bdb22a2/metrics?get=0.Calc%5B2%5D.com_datasqrl_openai_completions_retryCount"

curl -X GET "http://localhost:8081/jobs/a20788b06357ca57e6de5d0d8e56fcbe/vertices/d3f21cabc6fe0fdf76c8be915bdb22a2/metrics?get=0.Calc%5B2%5D.com_datasqrl_openai_completions_p99"

@mbroecheler I've introduced another helper class because it felt weird to execute through the MetricsTracker. Especially that in good circumstances we could swap out the MetricsTracker to a more robust one. Let me know if it looks good.
Based on our recent discussion, later I can add the vector similarity check to this PR, but if you want to merge as is, I can open a separate PR for that.


Creating AuthRequests with nil RelayState sends empty RelayState URL param

Doing OneLogin::RubySaml::Authrequest.new.create(settings, RelayState: nil) still creates an empty RelayState url param. Ideally nil (or perhaps even falsy) RelayState would cause ruby-saml to not output a param. This caused an issue for a customer integration recently. SimpleSaml (the PHP library) apparently decided that we had an improperly signed request with the empty param.

We should definitely avoid to generate TX with empty RelayState URL parameters.
When we generate the url_string we use the build_query that doesn't add the RelayState parameter if there is no content.
but the issue is after that, at the
params.each_pair do |key, value|
    request_params[key] = value.to_s
end

where params has the RelayState value, so if null set a null value for that parameter to request_params.
Similar issue happens at LogoutRequest and LogoutResponse
@vincentwoo are you able to provide a PR to fix that?

I spent about 2m trying to get a branch going but it looks like your tests are completely broken for me on 2.5.0. If you can fix this situation I can try to make a PR, but I don't have the time to debug your test infrastructure.
Vincents-MacBook-Pro:ruby-saml vwoo$ rake test
/Users/vwoo/.rubies/ruby-2.5.0/bin/ruby -w -I"lib:lib:test" -I"/Users/vwoo/.rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/rake-12.3.0/lib" "/Users/vwoo/.rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/rake-12.3.0/lib/rake/rake_test_loader.rb" "test/idp_metadata_parser_test.rb" "test/logging_test.rb" "test/logoutrequest_test.rb" "test/logoutresponse_test.rb" "test/metadata_test.rb" "test/request_test.rb" "test/response_test.rb" "test/saml_message_test.rb" "test/settings_test.rb" "test/slo_logoutrequest_test.rb" "test/slo_logoutresponse_test.rb" "test/utils_test.rb" "test/xml_security_test.rb"
/Users/vwoo/.gem/ruby/2.5.0/gems/timecop-0.6.0/lib/timecop/time_extensions.rb:67: warning: method redefined; discarding old now
/Users/vwoo/.gem/ruby/2.5.0/gems/timecop-0.6.0/lib/timecop/time_stack_item.rb:158: warning: mismatched indentations at 'end' with 'class' at 1
/Users/vwoo/ruby-saml/lib/onelogin/ruby-saml/saml_message.rb:77: warning: shadowing outer local variable - error
/Users/vwoo/ruby-saml/lib/onelogin/ruby-saml/utils.rb:35: warning: character class has duplicated range: /[\n\r\s]/
/Users/vwoo/ruby-saml/lib/onelogin/ruby-saml/utils.rb:54: warning: character class has duplicated range: /[\n\r\s]/
/Users/vwoo/ruby-saml/lib/onelogin/ruby-saml/utils.rb:143: warning: shadowing outer local variable - status_code
/Users/vwoo/ruby-saml/lib/onelogin/ruby-saml/logoutresponse.rb:243: warning: shadowing outer local variable - idp_cert
/Users/vwoo/ruby-saml/lib/xml_security.rb:213: warning: assigned but unused variable - e
/Users/vwoo/ruby-saml/lib/xml_security.rb:256: warning: assigned but unused variable - e
/Users/vwoo/ruby-saml/lib/xml_security.rb:320: warning: assigned but unused variable - uri
/Users/vwoo/ruby-saml/lib/xml_security.rb:95: warning: method redefined; discarding old uuid
/Users/vwoo/ruby-saml/lib/xml_security.rb:196: warning: method redefined; discarding old signed_element_id
/Users/vwoo/ruby-saml/lib/onelogin/ruby-saml/slo_logoutrequest.rb:297: warning: shadowing outer local variable - idp_cert
/Users/vwoo/ruby-saml/lib/onelogin/ruby-saml/response.rb:169: warning: `+' after local variable or literal is interpreted as binary operator
/Users/vwoo/ruby-saml/lib/onelogin/ruby-saml/response.rb:169: warning: even though it seems like unary operator
/Users/vwoo/ruby-saml/lib/onelogin/ruby-saml/response.rb:218: warning: shadowing outer local variable - node
/Users/vwoo/ruby-saml/lib/onelogin/ruby-saml/response.rb:287: warning: assigned but unused variable - doc
/Users/vwoo/ruby-saml/lib/onelogin/ruby-saml/attribute_service.rb:19: warning: `&' interpreted as argument prefix
/Users/vwoo/ruby-saml/test/logoutrequest_test.rb:17: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/logoutrequest_test.rb:20: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/logoutrequest_test.rb:25: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/logoutrequest_test.rb:28: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/logoutrequest_test.rb:39: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/logoutrequest_test.rb:51: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/logoutrequest_test.rb:58: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/logoutrequest_test.rb:67: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:16: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:25: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:38: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:44: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:48: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:54: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:63: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:69: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:78: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:84: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:92: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:98: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:106: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:112: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:120: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:121: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:126: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:129: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:136: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:145: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:152: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:158: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:159: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:165: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:166: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:173: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:174: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/request_test.rb:180: warning: ambiguous first argument; put parentheses or a space even after `/' operator
/Users/vwoo/ruby-saml/test/response_test.rb:336: warning: assigned but unused variable - error_msg
/Users/vwoo/ruby-saml/test/response_test.rb:381: warning: assigned but unused variable - error_msg
/Users/vwoo/ruby-saml/test/response_test.rb:1021: warning: assigned but unused variable - attrs
/Users/vwoo/ruby-saml/test/response_test.rb:1241: warning: assigned but unused variable - response
/Users/vwoo/ruby-saml/test/response_test.rb:1245: warning: assigned but unused variable - response2
/Users/vwoo/ruby-saml/test/response_test.rb:1263: warning: assigned but unused variable - response
/Users/vwoo/ruby-saml/test/response_test.rb:1357: warning: assigned but unused variable - decrypted
/Users/vwoo/ruby-saml/test/settings_test.rb:164: warning: assigned but unused variable - certificates
/Users/vwoo/ruby-saml/test/slo_logoutrequest_test.rb:174: warning: ambiguous first argument; put parentheses or a space even after `/' operator

File does not exist: timecop

Traceback (most recent call last):
	16: from /Users/vwoo/.gem/ruby/2.5.0/gems/simplecov-0.9.2/lib/simplecov/defaults.rb:54:in `block in <top (required)>'
	15: from /Users/vwoo/.gem/ruby/2.5.0/gems/simplecov-0.9.2/lib/simplecov/configuration.rb:158:in `block in at_exit'
	14: from /Users/vwoo/.gem/ruby/2.5.0/gems/simplecov-0.9.2/lib/simplecov.rb:48:in `result'
	13: from /Users/vwoo/.gem/ruby/2.5.0/gems/simplecov-0.9.2/lib/simplecov/result_merger.rb:73:in `store_result'
	12: from /Users/vwoo/.gem/ruby/2.5.0/gems/simplecov-0.9.2/lib/simplecov/result_merger.rb:73:in `open'
	11: from /Users/vwoo/.gem/ruby/2.5.0/gems/simplecov-0.9.2/lib/simplecov/result_merger.rb:78:in `block in store_result'
	10: from /Users/vwoo/.gem/ruby/2.5.0/gems/simplecov-0.9.2/lib/simplecov/result_merger.rb:78:in `open'
	 9: from /Users/vwoo/.gem/ruby/2.5.0/gems/simplecov-0.9.2/lib/simplecov/result_merger.rb:79:in `block (2 levels) in store_result'
	 8: from /Users/vwoo/.gem/ruby/2.5.0/gems/simplecov-0.9.2/lib/simplecov/json.rb:20:in `dump'
	 7: from /Users/vwoo/.gem/ruby/2.5.0/gems/multi_json-1.13.1/lib/multi_json.rb:139:in `dump'
	 6: from /Users/vwoo/.gem/ruby/2.5.0/gems/multi_json-1.13.1/lib/multi_json.rb:133:in `current_adapter'
	 5: from /Users/vwoo/.gem/ruby/2.5.0/gems/multi_json-1.13.1/lib/multi_json.rb:73:in `adapter'
	 4: from /Users/vwoo/.gem/ruby/2.5.0/gems/multi_json-1.13.1/lib/multi_json.rb:91:in `use'
	 3: from /Users/vwoo/.gem/ruby/2.5.0/gems/multi_json-1.13.1/lib/multi_json.rb:103:in `load_adapter'
	 2: from /Users/vwoo/.gem/ruby/2.5.0/gems/multi_json-1.13.1/lib/multi_json.rb:101:in `load_adapter'
	 1: from /Users/vwoo/.gem/ruby/2.5.0/gems/multi_json-1.13.1/lib/multi_json.rb:157:in `load_adapter_from_string_name'
/Users/vwoo/.gem/ruby/2.5.0/gems/multi_json-1.13.1/lib/multi_json.rb:157:in `require': Did not recognize your adapter specification (cannot load such file -- multi_json/adapters/json_gem). (MultiJson::AdapterError)
rake aborted!
Command failed with status (1): [ruby -w -I"lib:lib:test" -I"/Users/vwoo/.rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/rake-12.3.0/lib" "/Users/vwoo/.rubies/ruby-2.5.0/lib/ruby/gems/2.5.0/gems/rake-12.3.0/lib/rake/rake_test_loader.rb" "test/idp_metadata_parser_test.rb" "test/logging_test.rb" "test/logoutrequest_test.rb" "test/logoutresponse_test.rb" "test/metadata_test.rb" "test/request_test.rb" "test/response_test.rb" "test/saml_message_test.rb" "test/settings_test.rb" "test/slo_logoutrequest_test.rb" "test/slo_logoutresponse_test.rb" "test/utils_test.rb" "test/xml_security_test.rb" ]

Tasks: TOP => test
(See full trace by running task with --trace)

Scratch last comment, got tests working w/ bundle exec


Subprocess.Popen returns text not bytes

related issue https://github.com/databricks/mlflow/issues/8
This PR modifies calls to subprocess.Popen so they return text, not bytes. This makes mlflow compatible with python3.5.3.
Checked tests and linted.

I did not modify the Popen calls at mlflow/sagemaker/container/scoring_server/serve.py because I think is out of the scope of this PR, let me know if you want me to update that files as well.

Awesome this LGTM, thanks @manugarri!


BUILD-284: Mark driver as managed by OCP CSI operator

Adds annotation to CSIDriver yaml that marks this as managed by the OCP CSI operator

/assign @gabemontero


local::tests::invalid_path fails during object store release  verification

Describe the bug
This test fails during verification of the object_store release https://lists.apache.org/thread/x70914oc1np4w20j353p4wn94t99cmox
---- local::tests::invalid_path stdout ----
thread 'local::tests::invalid_path' panicked at src/local.rs:1389:9:
assertion `left == right` failed
  left: [Path { raw: "directory/child.txt" }, Path { raw: "💀" }]
 right: [Path { raw: "💀" }, Path { raw: "directory/child.txt" }]
note: run with `RUST_BACKTRACE=1` environment variable to display a backtrace

failures:
    local::tests::invalid_path

To Reproduce
Run ./dev/release/verify-release-candidate.sh 0.8.0 1
Expected behavior
Should pass
Additional context
The test appears to be non deterministic as it relies on the order of directories entries from the local filesystem

Fixed by @tustvold  in https://github.com/apache/arrow-rs/pull/5026


Using relative paths for imported types

Nice project!
Is there any way of making it use relative paths instead of absolute ones for imported types when using the project option? Absolute paths makes a project mostly unable to collaborate to together with others with different setups.
There doesn't seem to be any disadvantage in using e.g.
@returns {import("./file").File}

over
@returns {import("C:/path/to/file").File}

Hey! Can you share a reproduction where this happens?

static contextmenu=new Contextmenu("guild menu");

gets transformed to
/**
 * @static
 * @default import("C:/path/to/folder/contextmenu").Contextmenu
 */
static contextmenu = new Contextmenu("guild menu");

I'm trying this on MathMan05/JankClient, the above is an example from guild.js after running npx ts-to-jsdoc -p ./tsconfig.json. I'd guess it happens to other projects too though.

Thanks, fixed in 2.1.2!


Update CODEOWNERS

Removing @sklam and @stuartarchibald as default codeowners now that we distributing work via the triage meeting.
I'm setting ownership on core frontend files.

Thanks for making this update @sklam.


running 1.hello faild

steps

scons
adding project files
running editor

output
ERROR: Index p_type =<PHONE_NUMBER> is out of bounds (VARIANT_MAX = 38).
   at: get_member_ptr_keyed_checker (core/variant/variant_setget.cpp:1139)

================================================================
handle_crash: Program crashed with signal 11
Engine version: Godot Engine v4.0.rc.custom_build (e930c8d3838280e40baabc4426bd8236f7ac50a3)
Dumping the backtrace. Please include this when reporting the bug to the project developer.

Also, what does "adding project files" mean? Did you add more files to the Godot project?
Which operating system are you using? I'm using Godot v4.0.beta10.official.d0398f62f in a Linux x86_64 machine

Sorry it works, you just need correct version of JSON and interface files


Weird output from test_select

check_float says there's an error, but at the end it says PASSED. Is this a CTS bug? Is this a driver bug? Is it both?
alyssa@rootfs:~/OpenCL-CTS/build/test_conformance/select$ OCL_ICD_VENDORS=/home/alyssa/ ./test_select select_float_int
Test binary built Jun 22 2022 13:08:30
 Initializing random seed to 0.
Requesting Default device based on command line for platform index 0 and device index 0
Compute Device Name = Mali-G57 (Panfrost), Compute Device Vendor = Arm, Compute Device Version = OpenCL 3.0, CL C Version = OpenCL C 1.2
Device latest conformance version passed: v0000-01-01-00
Supports single precision denormals: NO
sizeof( void*) = 8  (host)
sizeof( void*) = 8  (device)
select_float_int...
Building select_float_int(float, float, int)
Building select_float2_int2(float2, float2, int2)
Building select_float3_int3(float3, float3, int3)
Building select_float4_int4(float4, float4, int4)
Building select_float8_int8(float8, float8, int8)
Building select_float16_int16(float16, float16, int16)
Testing...
(check_float) Error for vector size 1 found at 0x00000000 (of 0x00040000):  *0x8c7f0aac vs 0xffffffff
vec_size:1 indx: 0x0000000000000000
select_float_int passed
PASSED sub-test.
PASSED test.

test-select increments s_test_fail to signal fails, but the test harness checks for gFailCount, which will always be zero for this subtest. So no matter what the driver does, test-select passes.

@alyssarosenzweig thanks for reporting this and doing the initial analysis!  Definitely a CTS bug, I'll create a PR shortly.


Recorder Presets

Upon clicking "8K" 5 times, presets directly taken from OmegaBot 3 pop up. As a developer of OmegaBot, I find this quite flattering, but why exactly does this happen?

Presets for FFmpeg are not considered a violation or plagiarism, as they are simply configurations for open-source software and are not protected by copyright.

These lines were not created by you but by the developers of FFmpeg, making FFmpeg the original author of this code.

I did not once call this plagiarism. I am not filing a copyright complaint. I am simply intrigued by the rather curious naming of the presets, especially since they're hidden behind a "secret" variable.
The FFmpeg creators did not author these lines of code, as it is not code, but rather command line arguments for a program. Neither did you.
I'm mainly saying this as I find you including these presets incredibly funny, especially due to your rather harsh critique of mine and Midget's product.

I did not criticize your product in any way, but obviously those filters and adjustments to the arguments that were made by the developers of ffmpeg were not made by you, including me, and they can be used by absolutely any people, so I do not see something funny here.

In fact your obot and my recorder is a paste of the replay bot by matcool, lol

In fact your obot and my recorder is a paste of the replay bot by matcool, lol

Untrue, OmegaBot 3's renderer is wildly different from ReplayBot.

I did not criticize your product in any way, but obviously those filters and adjustments to the arguments that were made by the developers of ffmpeg were not made by you, including me, and they can be used by absolutely any people, so I do not see something funny here.

You did, just not in this issue. I don't mind though, there are valid points to be made about OmegaBot.
I just find you hiding the exact ssme (1:1) presets, with matching names, behind some sort of "secret" variable hilarious.

I did not criticize your product in any way, but obviously those filters and adjustments to the arguments that were made by the developers of ffmpeg were not made by you, including me, and they can be used by absolutely any people, so I do not see something funny here.

You did, just not in this issue. I don't mind though, there are valid points to be made about OmegaBot. I just find you hiding the exact ssme (1:1) presets, with matching names, behind some sort of "secret" variable hilarious.

Even if I did criticize it, that was a long time ago, back when the drama with the midget was still going on. But I don’t get the nitpicking about the presets. A friend just sent them to me and told me to add them to the Replay Engine Recorder, saying they were pretty good. But the buttons were taking up too much space, so I had to nest them inside another button to show them later.

Even if they are from your bot, so what of it?

You did, just not in this issue. I don't mind though, there are valid points to be made about OmegaBot. I just find you hiding the exact ssme (1:1) presets, with matching names, behind some sort of "secret" variable hilarious.

Do you actually believe what you’re saying? Did the recorder somehow get worse because of this so-called 'theft'?"

You did, just not in this issue. I don't mind though, there are valid points to be made about OmegaBot. I just find you hiding the exact ssme (1:1) presets, with matching names, behind some sort of "secret" variable hilarious.

Do you actually believe what you’re saying? Did the recorder somehow get worse because of this so-called 'theft'?

I don't think you understand basic English; I never said the recorder got worse. Quit whining.

Even if they are from your bot, so what of it?

Nothing! Merely wanted to see how you'd respond.


Fahrschein does not commit empty batches to high-level API

When using the ManagedCursorManager, commiting can fail with
[org.zalando.fahrschein.ManagedCursorManager] Unexpected status code [422] for subscription [ce41ac5c-1c1d-42be-a5db-32f1f976a91b] to event [event] in partition [0] with offset [90458]

Nakadi rquires that

The client must commit at least once every 60 seconds, otherwise Nakadi will consider the client to be gone and will close the connection.

The error above appears if Nakadi closed the stream without the fahrschein-client noticing.
This can be mitigated by commiting even empty batches to the Nakadi high-level API.

Unexpected status code [422]

This can only occur if you haven't registered the ProblemHandlingClientHttpRequestFactory, this would check the status code before and throw an IOProblem.

@lukasniemeier-zalando @alnkpa What would you think about removing the ProblemHandlingClientHttpRequestFactory and instead handling status codes explicitly in the client?

Closing as not a bug, but I'll think about making the problem handling easier to use


Orchestrator: Service Logic for Timeout

When a task reaches its timeout limit it should set into an error state with the errorcode 'Timeout'

In the refinement session we further discussed the details.
Two different kinds of timeout should be checked:

A task remaining in state "Pending" for a specified time should go into state "Error" with error type "Timeout": TaskPendingTimeout
A specified time after reaching its final state ("Success" or "Error") the task should be completely removed from the Orchestrator: TaskRetentationTime

During implementation this problem came up:
In our current API we return just one timeout when reserving several tasks for cleaning.
But each task can have a different timeout, because it is calculated as task.creationTime + taskPendingTimeout.
So I would suggestion moving the timeout down to the task data.
Now I realized in ReDoc the API has already been changed exactly like that:
https://redocly.github.io/redoc/?url=https://raw.githubusercontent.com/eclipse-tractusx/bpdm/docs/api/generic-input/docs/api/orchestrator-proposal.yaml#tag/Cleaning-Steps/paths/~1cleaning-tasks~1reservation/post
So I'll update the implementation.

Ok, seems to be we did not ahere to the OpenAPI spec completely in that regard. Nevertheless we should e careful about introducing breaking changes into the BPDM applications. If the feature will need to be a breaking change the time when we can merge it may increase. A minor version update could be simpler: Just leave the global timeout and add the timeout field for each indiviudal task.
We should plan ahead when we want to introduce the next breaking change to see how much we need to consider this aspect for the feature

Okay, I'll mark the global timeout field as deprecated.
I'm wondering if in the reservation result a timeout even makes sense or if we should remove it completely?
After all it is not only the timeout for posting the result but for completely processing the task.
If a cleaning service posts the cleaning results e.g. 10 secs before the announced timeout this will probably not be enough because the Pool still needs to process the task in the remaining time.
The problem would be exacerbated if there are multiple cleaning steps.
What do you think, @nicoprow ?


Feature: Add createMemoInstruction helper function to help with the required memo extension

Creating a memo to send to satisfy the required memo extension could be easier with the addition of a createMemoInstruction helper function.
What is required right now:
const message = "Hello, Solana"

const transaction = new Transaction().add(
  new TransactionInstruction({
    keys: [{ pubkey: payer.publicKey, isSigner: true, isWritable: true }],
    data: Buffer.from(message, "utf-8"), // Memo message. In this case it is "Hello, Solana"
    programId: new PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"), // Memo program that validates keys and memo message
  }),

  createTransferInstruction(
    ourTokenAccount,
    otherTokenAccount, // Has required memo
    payer.publicKey,
    amountToTransfer,
    undefined,
    TOKEN_2022_PROGRAM_ID
  )
);
await sendAndConfirmTransaction(connection, transaction, [payer]);

Proposed helper function:
function createMemoInstruction(
    payer: PublicKey,
    message: string,
    memoProgramId?: PublicKey
){
    return new TransactionInstruction({
        keys: [{ pubkey: payer, isSigner: true, isWritable: true }],
        data: Buffer.from(message, "utf-8"),
        programId: memoProgramId ?? new PublicKey("MemoSq4gqABAXKb96qnH8TysNcWxMyWCqXgDLGmfcHr"),
    });
}

Added a PR:
https://github.com/solana-labs/solana-program-library/pull/6656

Thanks for your contribution and your idea.
The concept is for people to use the @solana/spl-memo package if they want to create memo instructions: https://github.com/solana-labs/solana-program-library/tree/master/memo/js
You can see how that's done in the spl-token JS tests starting at https://github.com/solana-labs/solana-program-library/blob/5feb1170d7d17bb78247a82c2613468b9788a6c5/token/js/test/e2e-2022/memoTransfer.test.ts#L7
While it is only one function, we've deliberately avoided copying it from the spl-memo package, so we would not accept that contribution unfortunately. Maybe we actually need better documentation to make that intention clear. What do you think?


nbdev_new fails on Windows

Should  nbdev_new be able to create a project template in a new folder?
I'm running this command in on Windows and get Access denied error
> nbdev_new pkg2

Traceback (most recent call last):
  File "d:\anaconda3\lib\runpy.py", line 193, in _run_module_as_main
    "__main__", mod_spec)
  File "d:\anaconda3\lib\runpy.py", line 85, in _run_code
    exec(code, run_globals)
  File "D:\Anaconda3\Scripts\nbdev_new.exe\__main__.py", line 9, in <module>
  File "d:\anaconda3\lib\site-packages\fastscript\core.py", line 73, in _f
    func(**args.__dict__)
  File "d:\anaconda3\lib\site-packages\nbdev\cli.py", line 258, in nbdev_new
    if os.path.isdir(path): shutil.rmtree(path)
  File "d:\anaconda3\lib\shutil.py", line 513, in rmtree
    return _rmtree_unsafe(path, onerror)
  File "d:\anaconda3\lib\shutil.py", line 392, in _rmtree_unsafe
    _rmtree_unsafe(fullname, onerror)
  File "d:\anaconda3\lib\shutil.py", line 392, in _rmtree_unsafe
    _rmtree_unsafe(fullname, onerror)
  File "d:\anaconda3\lib\shutil.py", line 392, in _rmtree_unsafe
    _rmtree_unsafe(fullname, onerror)
  File "d:\anaconda3\lib\shutil.py", line 397, in _rmtree_unsafe
    onerror(os.unlink, fullname, sys.exc_info())
  File "d:\anaconda3\lib\shutil.py", line 395, in _rmtree_unsafe
    os.unlink(fullname)
PermissionError: [WinError 5] Отказано в доступе: 'C:\\Users\\Евгений\\Desktop\\notebooks\\pkg2\\.git\\objects\\pack\\pack-32fff01fcfc3d5824e4097a65e36e8abd1bcd22c.idx'

I have not tried to use nbdev on Windows so I don't know if this command works. It seems like your python process does not have permission to remove a folder, which you could do manually.

Maybe shutil.rmtree cannot remove a hidden file on Windows. Perhaps safer to use
ignore_errors=True below?
https://github.com/fastai/nbdev/blob/master/nbdev/cli.py#L258

In any case, if you fall back to that it's because there has been an error.

I think I have a fix for this: https://github.com/fastai/nbdev/pull/155

Should be fixed by #155


Significant performance degradation after migration from 3.5.3 to 4.26.0

Search first

[X] I searched and no similar issues were found

Description
After liquibase migration from 3.5.3 to 4.26.0 we noticed that the total liquibase update time became very unstable.
First of all overall memory consumption increased and now there are a few spikes that vary from 4 GB to 5 GB per execution (most of them are byte arrays) after which process private memory doesn't shrink. On 3.5.3 we didn't have such a problem.

The second problem is when there is memory pressure and ram utilization is close to the end, the total execution time can be several times longer than when there is enough memory for the execution. Before migration, it was stable for 3 minutes, but now it can last for 7-9 minutes. I'd guess that it's due to the problem mentioned above and probably OS can't dedicate so much memory to the liquibase process.
Steps To Reproduce
Please find the archive attached. You can run a test.ps1 script and monitor performance. There is only one big migration without sensitive data. NB: on the screenshot, you can see the performance overview from JMC of test db creation with the attached transaction included. Unfortunately, I can't attach all migrations due to their sensitivity.
liquibase-test.zip
Expected/Desired Behavior
Predictable average memory consumption. Shrink after spike. Predictable performance (execution time)
Liquibase Version
4.26.0
Database Vendor & Version
SQL Server 13.0.5893.48
Liquibase Integration
CLI
Liquibase Extensions
No response
OS and/or Infrastructure Type/Provider
Windows 10 Enterprise
Additional Context
I tried to look into this problem and found a few migrations after which I usually see some spikes. They are huge bulk inserts.
I moved SQL code from .xml changelog files to .sql and group insert statements into batches, spikes reduced from 4-5 GB to 2.5-3 GB per average execution, but it's still very high.

Sometimes I see strange runs when process memory doesn't exceed 1-2 GB and can't explain it to myself.

Are you willing to submit a PR?

[ ] I'm willing to submit a PR (Thank you!)

Hi @Fedoop1,
I've been trying to reproduce this issue using the below environment:

Liquibase 4.26, 4.27 and 4.28
SQL Server 14.00.3465
Window 10

And having the below heap size:
 size_t MaxHeapSize                              =<PHONE_NUMBER>

I tried executing the changelog you provided ChangeLog.xml just running liquibase udpate and it was executed only spending some seconds. I tried also executing the test.ps1 script and the output and executing time was pretty much the same.
Was your heap size set to 4GB? If not can you tell us what's the memory size you have been using? So I can set mine in the same way and try to reproduce it with similar characteristics.
On the other, I know you mentioned you can share some of the changelogs you are using because it contains sensitive data, but I was wondering if this performance degradation issue was more noticeable with one of those changelogs. If yes, could you please tell us what were the most change types it contains? That way myself or someone from the team can craft a changelog and try with it.
Thanks in advance,
Daniel.

Hi @MalloD12,
Thanks for the feedback!
To avoid confusion: the screenshots I've attached before were from different changelog and liquibase-test.zip is just a changelog with one changeset from our internal changelog for test db creation.
Here is what I get when running test.ps1 locally on a fresh db:

With the heap size size_t MaxHeapSize =<PHONE_NUMBER>
I use the default Java settings.
Dump:
liquibase-2024_05_23T23_33_47_987.zip
Even with this one changeset, it consumes 1.5GB of RAM which is several times bigger than expected. In my case, memory consumption is the key which leads to slow execution due to memory pressure. I'd focus on RAM consumption rather than execution time.
Best regards,
Nikita

Hi @Fedoop1,
If it's not too time-consuming could you please try to see if you are still experiencing the same performance degradation with the latest release?
Thanks,
Daniel.

Hi. I'll check back in a few days and post a reply. Thanks!

Hi @MalloD12,
I've performed multiple tests on the same environment and here are the results.
test db creation from liquibase-test.zip:
v4.26

v4.30

Our internal test db creation:
v4.26

v4.30

Summary:
Overall, I see reduced memory usage and allocations for both tests. This is more clear on the second test with our internal test database.
Due to reduced memory spikes throughput under memory pressure should improve. It's not a perfect result, but it's much better.
Good job guys, keep it up!
Here I attach fresh dumps from liquibase v4.26 and v4.30:
liquibase-4.30.zip
Let me know if there is anything I can do to help you.
WBR,
Nikita

Hi @Fedoop1,
Thanks a lot for taking the time to confirm this and getting back to us so quickly. Glad to see things are getting better, and we hope things get even better soon. I'll discuss it with the team and let you know.
Thanks,
Daniel.


Find info on cursor below text

If the terminal is setup in this way, competing against some opponent is way more visible.

It is actually determined by the terminal emulator, cannot chosen via source code.


Cluster Autoscaler hotfix

Issue #, if available: #253
Description of changes:
According to the helm chart documentation (here and here), couple of things were added/fixed to ensure the addon deploys correctly. Namely:

Adding "ec2:DescribeInstanceTypes" in the IAM Policy
Revising the chart value from autoDiscovery.cluster to autodiscovery.clusterName

Including the above two configuration items addressed the issue upon testing.
By submitting this pull request, I confirm that you can use, modify, copy, and redistribute this contribution, under the terms of your choice.

/do-e2e-tests


Add probe timeout variable to acceptance testing template

What does this PR do?:
Summarize the changes. Are any stacks or samples added or updated?
Adds environment variable required to the acceptance testing OpenShift template which enables the delay on testing to probe the target registry for readiness, a feature added in devfile/api#1086.
This ensures acceptance testing is perform after the staging deployment is ready.
Which issue(s) this PR fixes:
Link to github issue(s)
fixes devfile/api#1095
PR acceptance criteria:

[ ] Contributing guide
Have you read the devfile registry contributing guide and followed its instructions?
[ ] Test automation
Does this repository's tests pass with your changes?
[ ] Documentation
Does any documentation need to be updated with your changes?
[ ] Check Tools Provider
Have you tested the changes with existing tools, i.e. Odo, Che, Console? (See devfile registry contributing guide on how to test changes)

How to test changes / Special notes to the reviewer:

/retest


Added button to rerun pipelines

In my experience when using the gitlab-monitor a frequent use-case is to check for failed pipelines and retry them. Therefore I added a new button to rerun a pipeline completely (by starting a new pipeline run).
The button can be enabled when needed via the option showRerunButton and is disabled per default. To use this option, the provided token needs write access.
Furthermore, I added some slight tweaks:

updated CSS for labels (introduced in #200)
reordered default config to match order in description of configuration options
added link to configuration page to learn about the configuration options
removed unused option fetchCountProjects from description

Let me know what you think.

Thank you very much! Also for the additional chore :smile:

You're welcome. Do you mind deploying the recent changes to your server as well?

@dersvenhesse Done :)


sbt.version in properties file is overly insistent

I can't seem to override the sbt version specified in project/build.properties from the command line.  This is highly suboptimal for me, can it be changed to honor either the version in the launcher of the version which I explicitly indicate somehow, as in the below?
% java -Dsbt.version=0.11.2 -jar /r/sbt-extras/.lib/0.11.2/sbt-launch.jar about
[info] Loading project definition from /s/blueeyes/project
[info] Set current project to blueeyes (in build file:/s/blueeyes/)
[info] This is sbt 0.11.0
[info] The current project is {file:/s/blueeyes/}blueeyes
[info] The current project is built against Scala 2.9.1
[info] Available Plugins: sbtassembly.Plugin, org.sbtidea.SbtIdeaPlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.9.1
[info] All logging output for this session is available at /var/folders/q6/ppzbrppn7z92l3f36ns0kg4c0000gn/T/sbt9219052806552757168.log

% java -jar /r/sbt-extras/.lib/0.11.2/sbt-launch.jar 'set sbtVersion := "0.11.2"' about
[info] Loading project definition from /s/blueeyes/project
[info] Set current project to blueeyes (in build file:/s/blueeyes/)
[info] Reapplying settings...
[info] Set current project to blueeyes (in build file:/s/blueeyes/)
[info] This is sbt 0.11.0
[info] The current project is {file:/s/blueeyes/}blueeyes
[info] The current project is built against Scala 2.9.1
[info] Available Plugins: sbtassembly.Plugin, org.sbtidea.SbtIdeaPlugin
[info] sbt, sbt plugins, and build definitions are using Scala 2.9.1
[info] All logging output for this session is available at /var/folders/q6/ppzbrppn7z92l3f36ns0kg4c0000gn/T/sbt5750426406233083230.log

Ugh, wrong issue tracker.  Sorry.

Thanks for getting in contact, though ;-)

You know what they say: "Call me anything you want, just call me!"


Feature: Host key fingerprint enumeration/gathering

A useful feature to have would be enumerating and grabbing the hostkeys/fingerprints from the remote SSH server and storing them as part of the output.
Something similar to what I did here, maybe? https://github.com/0x27/ssh_keyscanner

I completely agree and this is already planned. Currently, it's implemented for SSH1 (see screenshot in #12), but it's missing some details for SSH2, because it requires successful key-exchange.

@0x27 This feature has been implemented in my v2.0.0 release: https://github.com/jtesta/ssh-audit/releases/tag/v2.0.0


Tester/Program.cs app fails to compile

...with the following error:
Program.cs(18,5): error CS1501: No overload for method 'Random' takes 2 arguments [/mnt/c/Users/sergiym/devel/TorchSharp/Tester/Tester.csproj]

Will send a patch in a minute.

Niklas already fixed this in PR #32

@interesaaat that's quite a change! My plan was to send a quick fix while we are reviewing all other PRs that add new functionality. In general, I htink we should not mix bugfixes and new stuff in one PR

As I mentioned, I made a mistake by not checking in Program.cs with my original PR, and then it went in with a whole bunch of other things.

I've redone #32 so that the conflict is gone.


adding setContextsInterface

Context
This PR adds setContextsInterface method, which allows using the Contexts Interface.
A use case is when using this library in React Native. You can send device and os information along with the error.
Notes

The user has to know about how the Contexts Interface works. Given that not every key is valid.
We don't send this data unless the user uses the method (or access the _globalContext private variable directly)

Media
Before

After

@getsentry/javascript we should talk in person, but I'm +1 on getting an API in for this, but likely under a more friendly interface.
I put 10 seconds of thought into this, but e.g.
Raven.setContext('foo', {})

We'd probably also want to call it set vs add since it'd overwrite that keyname
We probably don't need interface in the function call

Great @dcramer,
I like that interface. One thing to keep in mind is how we handle calling this method with no arguments or with the second argument missing.
But let me know what changes we should do to get this merge.
Thanks!

hey @dcramer any update on this?

@getsentry/js

Welp maybe @getsentry/javascript

@orlando – a couple things:
There is a new React Native plugin in the works that will provide this information automatically.
I find the naming of "contexts" interface confusing. There are already setUserContext, setExtraContext and setTagsContext, not to mention getContext and clearContext. I hate bloating the API further with this.
#2 makes me want to just punt until the new RN client is out.

@benvinegar great!. Thanks for the info.
Thanks again!


[Issue #193] Contract returns no longer coerced into strings

What was wrong?
https://github.com/pipermerriam/web3.py/issues/193
How was it fixed?
Removed coerce_return_to_text decorator from web3.contract.call_contract_function
Add in additional tests checking return values for bytes and byes32 are as expected
Note: I expect style checks might fail. Waiting on reply in this PR on how to run style checks locally
Cute Animal Picture

Glad to have the contributions.  Merging now and will get a release out either tomorrow or early next week.  There are some deprecated APIs that I want to go ahead and remove and now is as good a time as any :P

Happy to help! Trying to get more involved and your list of "easy pickings" was a great place to start.

I'll work on getting more of them added.


Always correct rs cua internal write errors

Symptom: issue #1807 error RS_CUA_INTERNAL_WRITE while pulling an old abapgit repository. Same issue as #562 which is solved by correcting manually the XML of the CUA interfaces (fastidious), or by regenerating the XML (but unfortunately sometimes the abapGit repository is from someone else).
Fix: Automatically fix this before RS_CUA_INTERNAL_WRITE is called. It's useless having this as a configuration option.

I think you should always autocorrect CUA. I just got a report from https://github.com/abapinho/abapinho_dev_tools that had ADM but CUA was still incorrect. Had to manually correct XMLs.

@kgorin8 the repository contains 2 saplink files, not abapgit, what do you mean?

yes, i imported those and tried to transport it to another system with abapgit then. but auto_correct_cua_adm will return if ADM is X. which it was. and CUA will throw.


Update README.md

Added Some ReactJS Interview Questions along with clear Explanation

Your changes doesn't include any explanations


Add libusb_set_auto_detach_kernel_driver support

Enable/disable libusb's automatic kernel driver detachment on linux. When this is enabled libusb will automatically detach the kernel driver on an interface when claiming the interface, and attach it when releasing the interface.
Automatic kernel driver detachment is disabled on newly opened device handles by default.
This is supported only on linux, on other platforms this function does nothing.
See documentation for additional details.
Native method returns only two possible results LIBUSB_SUCCESS or LIBUSB_ERROR_NOT_SUPPORTED. Since native method is called only if Platform.isLinux this method should always succeed making its dart signature to return void.
While libusb_detach_kernel_driver is already available this is not the same since it automatically attaches/detaches device allowing other applications to work safely with devices over kernel driver.
See https://github.com/woodemi/quick_usb/issues/26

Could you rebase on the master branch?

Hello,
Can you publish this change to pub.dev?
Best regards!

Hello,
Can you publish this change to pub.dev?
Best regards!

Done. https://pub.dev/packages/quick_usb/versions/0.3.1


JENKINS-29136 fix NPE in getRetentionTime().

I documented the bug here: https://issues.jenkins-ci.org/browse/JENKINS-29136
this NPE was preventing jenkins workers from being deleted when they should have been.
I added a defaults class that will be used when parent cloud cannot be resolved
due to whatever reason.

looks good, thank you!


Add ci image required to run the CI

Signed-off-by: Romain Arnaud<EMAIL_ADDRESS>

/retest

CI is expected to fail on this PR due to missing image. I shall merge this PR which should enable us to use the CI with the new image "ci-runner"


Hot Reload of Default Color Schemes

Is your feature request related to a problem? Please describe.
As far as I know and can verify, this happens on Gnome. When I use a theme switcher to switch to dark theme DE wide (setting the appropriate variables in the process), most applications react to those changed variables and change their theme as well.
WebCord, however, needs to be restarted for the updated variables to take effect when theme is "Sync with system".
I suspect this is an electron thing in general, since it also happens on Element.
Describe the solution you'd like
WebCord changes it's theme without having to restart the instance of the application. Or there is some API of WebCord callable from the command line which does the same, allowing for automation of this task.
Describe alternatives you've considered
Currently I just kill the instance and launch a new one through a script.

Yeah, this is an Electron bug (with @media implementation), but there's an API in Electron which could be used instead to determine if dark or light theme should be used. I've planned to implement it, given WebCord can tweak localStorage and the website itself to change the color scheme of the Discord theme.
I've also had some plans to integrate WebCord's color scheme with Discord's (so it uses the light or dark theme based on the current theme used for Discord) and I would like to make that to work with the custom CSS feature as well (as long as it seems to be possible and worth it).

Seeing how Electron.js supports the use of prefer-color-scheme, I'm guessing it should be small change? If you can comment on the scope of the change, I might look into and make a PR if I understand stuff 😅

Seeing how Electron.js supports the use of prefer-color-scheme, I'm guessing it should be small change?

Kinda, I would need to move color scheme settings to WebCord, which probably means that the user should not see them in Discord, but WebCord will be able to control them on their own. For auto WebCord will change Discord theme to dark or light based on the Electron API for that purpose. prefer-color-scheme does not really work there…

If you can comment on the scope of the change, I might look into and make a PR if I understand stuff 😅

I'll probably handle that on my own if I'll be able to. Right now I need to prioritise on bugs first and improvements to the existing implementation of some features. I don't like them to be half-done.


Nuxt not auto-reloading server middleware in typescript

Version
v2.9.2
Reproduction link
https://github.com/georgyfarniev/nuxt_bug_reproduction
Steps to reproduce

Clone repository from repro link
npm install
npm run dev
load localhost:3000 in browser, check console output. You will see<PHONE_NUMBER>1111111 in logs
Edit api/sample.ts and replace<PHONE_NUMBER>1111111 with<PHONE_NUMBER>2222222222
Save changes
Reload page on localhost:3000
Check console output and still see<PHONE_NUMBER>1111111 instead of<PHONE_NUMBER>2222222222 despite fact that server was rebuilt by nuxt (with showing progress bar)

What is expected ?
serverMiddleware auto reloaded on save
What is actually happening?
serverMiddleware NOT auto reloaded on save (compare outputs)
Additional comments?
This issue causes significant time efforts to restart server manually and should have high priority as it's not only takes time to reload, but also very confusing, because people have to figure out that this issue actually exists. I wasted a lot of time figuring out why my middleware doesn't work properly, because server restarts on saving serverMiddleware and everything looks good from console.

This bug report is available on Nuxt community (#c9798)

Duplicate of #6232, fixed in v2.10 by #6490


New command: Get a list of retention labels using the SharePoint API

Usage
m365 spo retentionlabel list [options]
Description
Get a list of retention labels that's available on a site.
Options

Option
Description

-u, --webUrl <webUrl>
The url of the web to get retentionlabels for.

Examples
Get a list of retention labels
m365 spo retentionlabel list

Response
[
    {
      "AcceptMessagesOnlyFromSendersOrMembers": false,
      "AccessType": null,
      "AllowAccessFromUnmanagedDevice": null,
      "AutoDelete": true,
      "BlockDelete": true,
      "BlockEdit": true,
      "ComplianceFlags": 5,
      "ContainsSiteLabel": false,
      "DisplayName": "",
      "EncryptionRMSTemplateId": null,
      "HasRetentionAction": true,
      "IsEventTag": false,
      "MultiStageReviewerEmail": null,
      "NextStageComplianceTag": null,
      "Notes": null,
      "RequireSenderAuthenticationEnabled": false,
      "ReviewerEmail": null,
      "SharingCapabilities": null,
      "SuperLock": false,
      "TagDuration": 2555,
      "TagId": "80a43bcd-1024-477e-a624-3c717cb774a2",
      "TagName": "Some  label",
      "TagRetentionBasedOn": "CreationAgeInDays",
      "UnlockedAsDefault": false
    }
]

Additional Info
The following endpoint can be used:
https://contoso.sharepoint.com/sites/sales/_api/SP.CompliancePolicy.SPPolicyStoreProxy.GetAvailableTagsForSite(siteUrl=@a1)?@a1='https://contoso.sharepoint.com/sites/sales'
This endpoint is also used by SharePoint itself to retrieve the options of Dropdown boxes when applying a label to a document in SharePoint library forms:

More information
Why this command?
This API essentially retrieves purview retention labels, just like this related purview command. The shape of the data is different though, and you need SharePoint permissions (Sites.Read is probably enough)
It also can be used with app only permissions, while the graph command from purview currently throws an exception in app only mode.
Text output properties
Properties visible in text output mode should be: TagId, TagName
Beta notice
The endpoint that's used is in prerelease mode according to the Microsoft documentation above, so we should add a beta notice to the docs.

Any feedback @pnp/cli-for-microsoft-365-maintainers?

looks solid 👍
great work @martinlingstuyl

If it's specifically for a site, why not include web in the name to clarify its scope?

Updated the specs 👍


Implement ORC late materialization

What type of PR is this：

[ ] bug
[x] feature
[ ] enhancement
[ ] others

Which issues of this PR fixes ：
#3419
Problem Summary(Required) ：
A short description of orc late materialization

if there are any conjunct of one slot, we take those slots are active read slots. Other slots are lazy read slots.
Read active-read-slots first, build the chunk(A), and run conjuncts, and we get filter(F)
Read lazy-read-slots then, build the chunk(B), use (F) to filter, and we get (C)
assemble (A) and (C) as final chunk.

The cost we may save include:

when we build chunk(B), we can save memcpy using filter(F)
if filter(F) is all zeros, we can avoid reading chunk(B)
we may save the IO at granularity of stripe & row group (that's to say, if any value in row group does not satifsfy conjuncts, we can skip reading this row group. so to the stripe level).

Perf test
Use following queries on tpch_100g
-- l_suppkey is not prefix key, so there are a lot orc read.
-- Q01. for tpch-100g, there are 574 rows.
select l_orderkey, l_partkey, l_suppkey, l_linenumber from lineitem where l_suppkey = 768951;

-- Q02. for tpch-100g, there are 574 rows.
select l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus from lineitem where l_suppkey = 768951;

-- Q03. for tpch-100g, there are 574 rows.
select * from lineitem where l_suppkey = 768951;

-- l_orderkey is prefix key, so orc read is less
-- Q04. for tpch-100g, there are 6 rows.
select l_orderkey, l_partkey, l_suppkey, l_linenumber from lineitem where l_orderkey = 575233123;

-- Q05. for tpch-100g, there are 6 rows.
select l_orderkey, l_partkey, l_suppkey, l_linenumber, l_quantity, l_extendedprice, l_discount, l_tax, l_returnflag, l_linestatus from lineitem where l_orderkey = 575233123;

-- Q06. for tpch-100g, there are 6 rows.
select * from lineitem where l_orderkey = 575233123;

-- Q07
-- disable runtime filter, set runtime_join_filter_push_down_limit = 0;
-- so predicates on lineitem is only l_orderkey > 0, which means have to scan all rows
select * from supplier join lineitem on s_suppkey = l_suppkey where s_name = 'Supplier#000768951' and l_orderkey  > 0;

And here are comparison between disable / enable late materialization

Query
Disable LM
Enable LM

Q01
1694
1171

Q02
4359
2209

Q03
8947
3698

Q04
151
158

Q05
278
258

Q06
426
419

Q07
8996
3919

A stack profile shows that a lot of IO requests are attributed to StringDictionaryColumnReader constructor

In StringDictionaryColumnReader ctor, it tries to read dictionary. We can postpone this action until we really need dictionary. After changing the code, the flame graph is like

By reading all row index in batch, we can save a lot of IoCounter
Before the patch, profile of one instance is like
HDFS_SCAN_NODE (id=0):(Active: 3s442ms[3442389344ns], % non-child: 95.45%)
   - Table: lineitem
   - Predicates: 3: l_suppkey = 768951
   - PredicatesMinMax: 17: l_suppkey <= 768951, 18: l_suppkey >= 768951
   - PredicatesPartition:
   - BytesRead: 1.56 GB
   - ColumnConvertTime: 69.913ms
   - ColumnReadTime: 20s216ms
   - ExprFilterTime: 26.160ms
   - HdfsIO: 0ns
     - TotalBytesRead: 1.674015912B<PHONE_NUMBER>)
     - TotalLocalBytesRead: 0
     - TotalShortCircuitBytesRead: 0
     - TotalZeroCopyBytesRead: 0
   - IoCounter: 2.759K (2759)
   - IoTime: 8s749ms

After the patch, IoCounter has been cut almost a half.
        HDFS_SCAN_NODE (id=0):(Active: 5s181ms[5181434452ns], % non-child: 91.24%)
           - Table: lineitem
           - Predicates: 3: l_suppkey = 768951
           - PredicatesMinMax: 17: l_suppkey <= 768951, 18: l_suppkey >= 768951
           - PredicatesPartition:
           - BytesRead: 1.47 GB
           - ColumnConvertTime: 103.172ms
           - ColumnReadTime: 24s223ms
           - ExprFilterTime: 30.974ms
           - HdfsIO: 0ns
             - TotalBytesRead: 1.5789939B<PHONE_NUMBER>)
             - TotalLocalBytesRead: 0
             - TotalShortCircuitBytesRead: 0
             - TotalZeroCopyBytesRead: 0
           - IoCounter: 1.379K (1379)
           - IoTime: 11s297ms


Auto load dependencies from package.json

Landed in https://github.com/metarhia/impress/commit/7b5fa9e9d1f2dd3367231dfe599df2880d11dc27


chore(codeowners): remove old, add new CODEOWNERS

What does this change?
The CODEOWNERS file was showing errors, fixed some of them in the following ways.

gtrufitt no longer has access, removed from the file.
guardian-frontend-team doesn't seem to exist any more, removed from the file. Added dotcom-platform instead.

Added apps-rendering and dotcom-platform as owners of the format module.
Why?
GitHub was showing three errors in the CODEOWNERS file. I've fixed two of them as described above. There's still a problem with commercial-dev, and I can see a similar error has appeared for the new teams I've added. Perhaps we need to update the repo permissions for this to work?
I've made the format ownership change because I think the Apps-Rendering and Dotcom teams probably own this module and any downstream repos that will be affected by changes to it (DCR, AR, atoms-rendering)? Please let me know if this is an incorrect assumption!
Note: I've assumed dotcom-platform is a valid replacement for the guardian-frontend-team as an owner of the core web vitals module. If this is wrong please let me know!

Coverage remained the same at 100.0% when pulling 03cc87c4bd81f2ba461ae36c00ea625f16ec81f1 on codeowners-remove-old-add-new-format-directory into f348f20a45c8b8c630359b01f40877ca2196007e on main.

I can see a similar error has appeared for the new teams I've added

Apologies for missing this...

A question I have, is why are we the codeowners or this specific piece?

yeah that's a good question. another way of looking at it: if it's only dotcom/ar who need format, should it really live in here?

re src/coreWebVitals, i think i'd rather resolve https://github.com/guardian/libs/issues/350 (and probably not keep coreWebVitals in here)

if it's only dotcom/ar who need format,

That's true at the moment but this could change?
If we did remove it from /libs then are we saying we'd inline it back into AR and DCR?

i've added the teams tot he repo – shall we merge this as is and revisit the questions in different hcanges?

It would be good to merge this so that we can unblock https://github.com/guardian/libs/pull/386 - which is on the critical path for some changes which have a lot of focus at the moment

another way of looking at it: if it's only dotcom/ar who need format, should it really live in here?

Perhaps AR/Dotcom could be considered maintainers, but there's nothing stopping other teams from contributing to and using it? In the same way that CS Infra maintains Source but other teams use and contribute to it? And AR and Dotcom maintain AR and DCR respectively, but other teams use and contribute to those platforms?
In all those cases, you'd probably want the maintainers to be flagged for automatic review, regardless of who opens a PR to make changes. For example, #386 as @oliverlloyd mentions, where Journalism are making a change to Format - we'd have AR and Dotcom review that change.