This is the error in seeing my logs for the add on

    This is the error in seeing my logs for the add on

Originally posted by @halfcab1981 in https://github.com/fuatakgun/eufy_security/issues/579#issuecomment-1360213771

I receive the same error log. I tried eufy and also other words as the trusted device name, but it doesn't work.

Same error here:

I have the same issue. Looks like this might have something to do with the recent privacy issues Eufy/Anker have been accused of:
https://community.security.eufy.com/t/to-our-eufy-security-customers-and-partners/3568215

Is an update of the addon possible ?

Same issue - assuming this issue is responsible for error in the integrations page

Looks like i also have this issue.
error stack:
• index.js:118
node_modules/got/dist/source/as-promise/index.js:118:42
• task_queues:96 processTicksAndRejections
node:internal/process/task_queues:96:5
2022-12-21 15:46:47.444  INFO  No devices found.
2022-12-21 15:56:48.225  ERROR EufyError - Code: undefined Message: undefined (HTTP Code: 403) - requestUrl: https://security-app-eu.eufylife.com/v1/house/station_list
2022-12-21 15:56:48.228  ERROR Stations - Generic Error:
EufyError  Code: undefined Message: undefined (HTTP Code: 403)

Same issue - assuming this issue is responsible for error in the integrations page

i think adding "eufy" to trusted device might fix your issue

Same issue - assuming this issue is responsible for error in the integrations page

i think adding "eufy" to trusted device might fix your issue

Nah - I did that a few days back (discussed on the other issue) - this is a new issue

The problem is due to recent changes on the eufy side and should effect all of us sooner or later. See some recent posts:
https://github.com/bropat/eufy-security-ws/issues/168
https://github.com/bropat/eufy-security-client/issues/283
Some contributors are already on the way for a potential solution.
As soon as this will be approved we will probably also see an add-on update solving the issue.

Same problem here just after a reboot of HA, before it was working fine.

+1 got the same error today. Was working fine yesterday! Look forward to the solution

The problem is due to recent changes on the eufy side and should effect all of us sooner or later. See some recent posts: bropat/eufy-security-ws#168 bropat/eufy-security-client#283
Some contributors are already on the way for a potential solution. As soon as this will be approved we will probably also see an add-on update solving the issue.

I suspected this could be the case, great to see people are across it. Happy to assist if testing is required etc

1+ 👆

+1

Same error here, no more clue for now

+1

+1

+1

+1

+1

+1

My logs show something somewhat different, but same result, can't connect to the EUFY cloud :

Does it matter which country you put in the config ?
I live in Belgium (BE), but all my settings are in English, so (US or UK)
double authentication is off for this account (obviously)
Does it have something to do with the fact that I still have an old instance of this add-on in HACS add-ons that I somehow cannot delete ?

+1

+1

+1

Everyone, please uninstall previous version of addon, install the new version 1.3.0. It is very important to uninstall it because we need to get rid of previous login data which is not compatible anymore.
After installing and starting the add-on with new version, enable the integration. I jave confirmed that p2p, rtsp, motion detection are working fine.
This is about to fix login issues but not about missing thumbnails, so please set your expectations

Works great! Thanks.

Works great. Just had to sure reload the integration after reinstalling the add-on.

install the new version 1.3.0

For rookies like me, just a pointer... in order to pickup 1.3.0 rather than my existing 1.1.0 version, I had to remove the repository from the add-on store and re-add it.
Thanks.

Worked perfect for me! Was so happy, thanks Fuatakgun & team!
Make sure you delete integration, reboot and add the integration back again! Super! 👌👌👌👌

thanks Fuatakgun, works great again!

Great Christmas present for the community!
Thanks!

Hello, It works for me too, it’s a great job you did, very reactive. Thx a lot and have a merry Xmas ! Cheers ! @fuatakgun

@fuatakgun really good work! Everything runs again!! Merry Xmas and thank you sooo much! :)

Unfortunately, the camera stream stopped working. Strange enough, it was working while the add-on was not working.

Logger: homeassistant.components.alarm_control_panel
Source: custom_components/eufy_security/alarm_control_panel.py:240
Integration: Панель сигнализации (documentation, issues)
First occurred: 14:55:11 (6 occurrences)
Last logged: 15:09:11

Error adding entities for domain alarm_control_panel with platform eufy_security
Error while setting up eufy_security platform for alarm_control_panel
Traceback (most recent call last):
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 428, in async_add_entities
    await asyncio.gather(*tasks)
  File "/usr/src/homeassistant/homeassistant/helpers/entity_platform.py", line 692, in _async_add_entity
    await entity.add_to_platform_finish()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 789, in add_to_platform_finish
    self.async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 545, in async_write_ha_state
    self._async_write_ha_state()
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 583, in _async_write_ha_state
    state = self._stringify_state(available)
  File "/usr/src/homeassistant/homeassistant/helpers/entity.py", line 551, in _stringify_state
    if (state := self.state) is None:
  File "/config/custom_components/eufy_security/alarm_control_panel.py", line 240, in state
    return CODES_TO_STATES[current_mode]
KeyError: -1

The Station was set to "Time schedule".

@fuatakgun
I remove v1.1 from the repository, rebooted, then installed v1.3, but still getting this issue 👍
2022-12-24 22:12:05.871  ERROR Data decryption error, invalidating session data and reconnecting...
TypeError  The "data" argument must be of type string or an instance of Buffer, TypedArray, or DataView. Received undefined
details:
{
code: 'ERR_INVALID_ARG_TYPE'
}
error stack:
• errors:387 NodeError
node:internal/errors:387:5
• cipher:176 update
node:internal/crypto/cipher:176:11
• utils.ts:175 decryptAPIData
node_modules/eufy-security-client/src/http/utils.ts:175:16
• api.ts:1027 decryptAPIData
node_modules/eufy-security-client/src/http/api.ts:1027:43
• api.ts:528 getDeviceList
node_modules/eufy-security-client/src/http/api.ts:528:49
• task_queues:96 processTicksAndRejections
node:internal/process/task_queues:96:5
• api.ts:574 refreshDeviceData
node_modules/eufy-security-client/src/http/api.ts:574:25
• api.ts:596 refreshAllData
node_modules/eufy-security-client/src/http/api.ts:596:9
• eufysecurity.ts:619 refreshCloudData
node_modules/eufy-security-client/src/eufysecurity.ts:619:9
• message_handler.ts:60 handle
src/lib/driver/message_handler.ts:60:17
2022-12-24 22:12:05.874  ERROR Tried to re-authenticate to Eufy cloud, but failed in the process. Manual intervention is required!
2022-12-24 22:12:05.875  INFO  No devices found.
I just wonder if it really matters what country code you fill in ? I tried US (default), BE (my country), but same error.

Hello
retype email and password
FR is working on my side

you need to remove the whole add-on, install latest version, put your credentials and start it.
If you are managing your own docker instance, I do not know how to help.


json-schema: use $ref from external definitions file

The json-schema specifictaion allows the use of an external definitions file: https://json-schema.org/understanding-json-schema/structuring.html#id1. This avoids repeating types in all files. Is it possible with graphql-mesh's json-schema handler ?
Example:
{ "$ref": "definitions.json#/address" }

Where definitions.json is a file in the same directory and contains an address type:
{
  "$schema": "http://json-schema.org/draft-04/schema#",
  "address": {
    "type": "object",
    "properties": {
      "street_address": {
        "type": "string"
      },
      "city": {
        "type": "string"
      },
      "state": {
        "type": "string"
      }
    },
    "required": [
      "street_address",
      "city",
      "state"
    ]
  }
}

PRs are welcome!

Available in 0.2.1!

Is external ref available for yaml spec?
I am getting an error saying:
💥 🕸  Mesh - Alerts  Failed to generate the schema Error: Invalid JSON pointer: ./common.yaml/components/schemas/PageInfo
    at Function.parse (C:\Repos\graphql-mesh-demo\node_modules\json-pointer\index.js:219:44)
    at Function.get (C:\Repos\graphql-mesh-demo\node_modules\json-pointer\index.js:49:60)

Yes it works but you should use json pointer syntax.


Removing optional modifier in homomorphic mapped types does not work in generic contexts since 5.5.x

🔎 Search Terms
optional modifier, required fields, generic, NonNullable, strictNullChecks, homomorphic mapped types
🕗 Version & Regression Information

This changed between versions 5.4.5 and 5.5.2
This changed in commit or PR e418f8d12c5f1b6c10fc3127764f34dad44d4586 (as reported by every-ts)

⏯ Playground Link
https://www.typescriptlang.org/play/?ts=5.5.4#code/MYewdgzgLgBApgDwIYFsAOAbOMC8MA8AKvAlHGACYQzQBOAlmAOYB8AFAJQBcMSYAnrhYwA3gCgYMAPRSYAJTiYkwRkxgB3elAAWvATTRwVAM3rAaAVwBGAWij9DMEMZgADOqtcwUSANZxqHWx7Q2pQWlojWCQmJEYAOglpWRDsYjwPZgBuMSTUmABlEBQ4AHk0KHpwJAxcURgAbX9BRhhCAF0Afh4ARhgAXxzJPIdsAEEMDAUARwt6SIo6kUbmmFbm50LisoqqsBr2m26YPsHcyXyZuYWANRqLALqJqbhZ+bgKJrh+Teer94o7RySRkMAAwsUlIxqK0AKzxAAs8QQABoYFYLLBTGBsHD4vCEElQJBYAgeP9bvdHngLJQ4NiPucYJEoBZaGAYAgcoMgA
💻 Code
const example = <T extends string>(): any => {
  // Replacing with any specific sub-type of `string` makes the types correct again.
  // type T = string;

  type SomeOptional = { [key in T]?: 1 };

  type AllRequired = { [key in keyof SomeOptional]-?: 1 };

  type RequiredValues = AllRequired[keyof AllRequired];

  // Complains in 5.4.x, but fine in 5.5.x
  const x: RequiredValues = undefined

  return x;
};

🙁 Actual behavior
Using -? leaves the fields marked as optional, and taking the values of the resulting type gives a union with undefined.
🙂 Expected behavior
Using -? makes all fields required, and taking the values of the resulting type gives a union of field types.
Additional information about the issue
Requires a --strictNullChecks  flag.
Replacing keyof SomeOptional with NonNullable<keyof SomeOptional> or keyof SomeOptional as keyof SomeOptional fixes the issue. It looks like this problem is limited to homomorphic mapped types.
Using Required<{ [P in keyof SomeOptional]: 1; }> in place of { [key in keyof SomeOptional]-?: 1 } results in the same behaviour.

changed in https://github.com/microsoft/TypeScript/pull/57946


How do I shut down a server cleanly?

After spawning a server on a tokio Runtime, then shutting down the runtime (using shutdown_now), recreating a server on the same IP and port with a new Runtime panics, claiming
error creating server listener: Only one usage of each socket address (protocol/network address/port) is normally permitted. (os error 10048)

If I instead recreate the server by restarting the process, it works fine.
This behaviour is being observed on Windows 7. I have tried sleeping the thread for up to 10 seconds before recreating the server and the same error occurs.
Other than shutting down the Runtime, is there something else I must do to cleanly close a server? The documentation mentions the concept of "shutdown" in passing, but does not elaborate on what must be done to achieve that correctly.

TCP ports that are bound often have a property of not fully closing when asked to, so that OS can handle any late packets inbound to that port. There is a socket option to tell the OS "Hey, it's really OK if I reuse the port right away". You could try setting that option to see if that's the issue (it could also just be a bug in hyper or tokio).
And... I just checked, and hyper's built-in listener builder doesn't have a way to set that option, but you could build a custom one (and if it works, we can add that method into hyper directly!):
extern crate net2;
extern crate tokio;
// hyper and stuff of course...

use tokio::net::TcpListener;

fn listener() -> io::Result<TcpListener> {
     // whatever addr
    let addr = SocketAddr::from(([127, 0, 0, 1], 3030));
    net2::TcpBuilder::new_v4()?
        .reuse_address(true)?
        .bind(&addr)?
        .listen(1024).and_then(|listener| {
            TcpListener::from_std(listener, &Default::default())
        })
}

// making a server with a custom listener
let incoming = listener()?.incoming();
let opts = hyper::server::conn::Http::new();
let server = hyper::server::Builder::new(incoming, opts)
  .serve(new_service);

PS, calling Runtime::shutdown_now() is an abortive shutdown. It doesn't provide any of the resources in it a chance to tell peers it's going away. It forcibly closes all sockets at whatever state they are in. Maybe that's what you're looking for, but thought I'd point it out.

Thank you for the quick and in depth reply. I was aware of the existence of SO_REUSEADDR, but I wasn't sure whether it was relevant in this case. I would have expected identical behaviour from restarting the server within the process to just restarting the process, which as noted above is not what I see.
I am using shutdown_now after doing all of the graceful shutdown I can for other tasks, because I cannot find another way of getting the Server future to complete gracefully. That is what I was hoping I might have missed in the docs, since they do mention that for Server, "the future completes when the server has been shutdown". The trouble is that I cannot find how to achieve that.
Anyway, I tried using reuse_address, similarly to how you have described. The main differences are that I have handling for IPv6 addresses as well as IPv4, and I enable nodelay on the TcpStreams that the incoming stream puts out.
With this configuration the setup succeeds, however I find that I cannot connect to a server on a recreated socket. In other words, after running the server and then restarting it within the same process, it does not accept TCP connections. It also no longer accepts connections when bound on IPv6 addresses at all, even for the first creation of the socket.
In conclusion I'm not convinced that the problem that is normally solved by using SO_REUSEADDR is fully responsible here.
Thanks again for this great library, by the way.

Since the Server is just a Future, you could create some other signal to notify shutdown, and then server.select2(shutdown_signal) before spawning it in the runtime.
There is a concept of graceful shutdown in hyper, specifically on individual Connection futures, but we haven't yet come up with an API on Server to signal all connections to gracefully shutdown. I'd like for that API to exist, though!

Here's some infrastructure I built out for a graceful server shutdown: https://gist.github.com/sfackler/77c02d840a9ba08b58a435cab2901809
Each Connection is wrapped in via ShutdownState::wrap_connection in a future that will turn off keepalive when asked. The ShutdownState::shutdown method returns a future that pokes all of the connections and then waits for them to complete.

Likewise, since Conduit is currently using the Connections instead of Server, we make use of graceful_shutdown with this drain::Watch concept.
I think something just like it could be ported to hyper's Server, bringing this to everyone (and Conduit would be one piece closer to not needing the lower-level APIs)!

I have the same behavior with Windows (and Appveyor) and a server implementation based on https://github.com/actix/actix-web which uses tokio. Everything is fine on macOS and Linux (and Travis)!

The server seams to be ok. I think it is the client (reqwest): carllerche/mio#776


Move AppStream metadata description localisation to be inside the tag

This should resolve failed builds in https://github.com/flathub/sh.ppy.osu/pull/155
The build failed with error metainfo-localized-description-tag. The description localisation should be translated by each paragraphs in the description tag, not as a whole in another description tag.

Seems like the new linter PR check is failing even on warnings: https://discourse.flathub.org/t/publish-lint-is-failing-on-a-warning/6145


Allow setting the priorityClassName/topologySpreadConstraints in the console helm chart through the values.yaml

What would you like to be added?
Allow to set priorityClassName and topologySpreadConstraints through the values.yanl similar to how that is available for affinities in the redpanda console chart (https://github.com/redpanda-data/helm-charts/tree/main/charts/console).
Why is this needed?
It allows me to run redpanda console in a HA setup.

Do you mean allow your own topologySpreadConstraints stanza, for priority class name we have
{{- if .Values.statefulset.priorityClassName }}
      priorityClassName: {{ .Values.statefulset.priorityClassName }}
{{- end }}

so you can already change this?

@alejandroEsc Sorry that I was not clear on this, but I am talking about the redpanda console chart (https://github.com/redpanda-data/helm-charts/tree/main/charts/console)
I will update the text accordingly.

@rubenvw-ngdata thank you for clearing that up!

I believe this was fixed by #467. @rubenvw-ngdata Can you please confirm that this satisfies your request?

@joejulian I think it is not. The fix is on the redpanda chart, my request is for the redpanda console chart.

This is already exposed in the values as the affinity key. This is a bare include: https://github.com/redpanda-data/helm-charts/blob/7ddcd331eba27aaed36140de7d6170bcc855b1f0/charts/console/templates/deployment.yaml#L257-L259
mytopo.yaml
affinity:
  topologySpreadConstraints:
  - maxSkew: 1
    topologyKey: zone
    whenUnsatisfiable: DoNotSchedule
    labelSelector:
      matchLabels:
        foo: bar
  affinity:
    nodeAffinity:
      requiredDuringSchedulingIgnoredDuringExecution:
        nodeSelectorTerms:
        - matchExpressions:
          - key: zone
            operator: NotIn
            values:
            - zoneC

if you're setting these via the redpanda chart (console subchart), simply add the console key in front of it, ie:
console:
  affinity:
    ....

@joejulian topologySpreadConstraints are not part of the affinity in the spec,
see https://kubernetes.io/docs/concepts/scheduling-eviction/topology-spread-constraints/#:~:text=You can use topology spread,well as efficient resource utilization.
To resolve this, you should provide something similar to what is currently available for affinity.

Ah, yes. Sorry. I misread the indentation.

@RafalKorepta The merged PR only resolves the topologySpreadConstraints, not the priorityClassName, right?

Hi @rubenvw-ngdata,
You are right. The #493 PR had fixes 460 included. It automatically closed this issue. I will reopen it.


Allow disabling toolbar

Basic implementation of a mechanism to entirely disable the toolbar and front-end editing for logged in staff, with link from admin menu.

Fix #3909
Nice job!

Thanks, glad to help =)


Add Polar to GitHub grammars list

Can you guys make a request (or even implement :smile:) on https://github.com/github/linguist to support Polar as a new language so we can get syntax highlighting from .polar files?

hey @micalevisk thanks for writing in 👋🏻
this is something we have definitely considered in the past. The Github linguist repository imposes some usage/popularity thresholds which languages must past before they quality for inclusion. specifically they require that the extension be used in 200+ unique repositories, which we unfortunately do not meet at this moment.
we have been keeping eye on the usage stats over time and hope to submit as soon as we qualify - we agree it would be a much better experience to have the full syntax highlighting functionality when browsing policies on Github!

the criteria may be about to change:
https://github.com/github/linguist/issues/5756
And you are probably close to meeting the 200+ repos
Also it's a weird requirement as the search cannot index private repo, which may be a good part of your users...

Looking at this again

https://github.com/github/linguist/pull/6101

Done! It's now live!

let's go
Thanks a lot!!


InfluxDB 2 Auth Error

System = Raspberry Pi B3+
OS = Raspbian Lite
InfluxDB = v2.3
Using Docker
Hi,
I've gotten pretty far with this on my own, but I've hit a wall and I'm not exactly sure what's going wrong on my end.
When I run docker start -i ecobee I get the following output:
2022/08/11 13:11:48 latest runtime interval available is 154
Thermostat conditions at 2022-08-11 12:45:00 +0000 UTC:
	current temperature: 74.4 degF
	heat set point: 68.0 degF
	cool set point: 74.0 degF
	demand management offset: -0.2
	current humidity: 65%
	humidity set point: 0
	HVAC mode: heatOff
	fan runtime: 0 seconds
	humidifier runtime: 0 seconds
	heat pump 1 runtime: 0 seconds
	heat pump 2 runtime: 0 seconds
	heat 1 runtime: 0 seconds
	heat 2 runtime: 0 seconds
	cool 1 runtime: 0 seconds
	cool 2 runtime: 0 seconds
2022/08/11 13:11:48 influxdb2client E! Write error: unauthorized: unauthorized access
2022/08/11 13:11:48 influxdb2client E! Write error: unauthorized: unauthorized access

I've tried many variations on the JSON file to try to get things working.
I've verified that the API token is correct, and I've tried changing the bucket from the pretty name to the Bucket ID listed in the dashboard.
I've also tried creating a v1 Auth Token with credentials, as I wasn't certain if this script was compatible with InfluxDB 2.x, but I haven't managed to get past this unauthorized access error.
Any thoughts as to what might be causing this?

I am having this exact issue as well. Any chance this can be addressed?

I am having this exact issue as well. Any chance this can be addressed?

How did you even get past the spammed pin code? I couldn't get it entered fast enough.

This is just a product of poor documentation. I reviewed the code and found that the InfluxUser and InfluxPass need to be null and just token and bucket need their values. This seems to fix the auth error. Make sure your token has access to the bucket.
const influxTimeout = 3 * time.Second 	authString := "" 	if config.InfluxUser != "" || config.InfluxPass != "" { 		authString = fmt.Sprintf("%s:%s", config.InfluxUser, config.InfluxPass) 	} else if config.InfluxToken != "" { 		authString = fmt.Sprintf("%s", config.InfluxToken) 	}

I am having this exact issue as well. Any chance this can be addressed?

How did you even get past the spammed pin code? I couldn't get it entered fast enough.

I had success running this directly from my docker server:
sudo docker run --rm -it -v ~/.appdata/ecobee_influx_connector/:/config cdzombak/ecobee_influx_connector /go/src/app/ecobee_influx_connector -config "/config/config.json" -list-thermostats
Make sure that your 'work_dir' is /config so that the cache is loaded.

Thanks @theonlytruebigmac
I updated my config file to set the UN and PW to null as follows:
"influx_user": "",
"influx_password": "",
Thanks for your help.
Any chance you can figure out how to modify the application to allow for the option to report in Deg C for us metric folks?

@Age83212 I don't see why I couldn't try, it does look like incorporating it might time some time but I'll give it a shot.
Here is an example of an ESP32 project I'm working on. I just use map to convert the existing values to F when they come in C.
from(bucket: "ESPHome")   |> range(start: 0, stop: now())   |> filter(fn: (r) => r.device == "AlphaTest-Office")   |> filter(fn: (r) => r._field == "Temperature")   |> map(fn: (r) => ({r with _value: r._value * 1.8 + 32.0}))

@theonlytruebigmac Grafana is my final destination and I have set it up today with a map function. Either I'll keep it this way or maybe even setup the query as a task to "down sample" to Celsius. I wouldn't spend your time trying to modify on account of my request.
Thanks for the query example as well.
Cheers

@Age83212 well my curiosity (and adhd) has bested me. I'm really interested in trying to use an ESP32 as an ecobee temp sensor so I can get out of paying 80usd for two. I'mma dig into the API and will most likely already use some of this go to do so. Def not high on the list right now but if I do get it working youll be the first to know! cheers!

@theonlytruebigmac @Age83212 I do not currently have an Ecobee or an InfluxDB 2 instance set up to experiment with.
If you could please send a pull request for the README, adding an FAQ about how to set configure the connector with InfluxDB 2, I would really appreciate it!

@Age83212 I added notes in #7 about what it would take to support Celsius.
Please see my comment in https://github.com/cdzombak/ecobee_influx_connector/issues/7#issuecomment-991209993 for a suggested workaround: you could just let the connector write Fahrenheit to your InfluxDB and set up an InfluxDB Task to create new data points with temperatures converted to Celsius. That would avoid having to modify this program at all, and that might be an easier way to do this.
Handling this in Grafana as suggested in https://github.com/cdzombak/ecobee_influx_connector/issues/21#issuecomment-1407834893 might be even easier.

 I submitted a PR, I may still need to double check the humdity/dewpoint values as I'm not sure if those will need adjusting or not.


Possible poor framerate with Morrowind

Game
Morrowind
Engine
OpenMW
Linux Distribution
Steam Deck
Luxtorpeda Version
v61
Bug description
Playing the game with default settings give me between 30-40 FPS. I though it was normal.
But today on discord someone said that he has the same 30-40 fps but that under Flatpak version of OpenMW he his getting 200+fps.
I was told to open an issue here to investigate is case there is something that needs adjusting
Steps To Reproduce

Install Luxtorpeda v61 using protonup-qt
Install Morrowind
Change Morrowind compatibility to use luxtorpeda
Start the game
Select first option to start openmw
Loading my save file that is just outside the house after the character creation at the beginning of the game

Expected Behavior
If both Luxtorpeda and Flatpak use the same openMW engine on the steam deck. Should they not both get the same fps?
Additional Context
No response
Relevant log output
No response

@nokiomanz There should be a settings.cfg file in ~/.config/openmw, can you upload it here, so can see if there's anything interesting there? AS well, please send the launcher.cfg and openmw.log from the last attempt.

Will these do ?
Archive.zip

@nokiomanz Thanks, can you also send the /home/deck/.config/openmw/settings.cfg file?

Same issue, lots of people are having this issue. Something I saw about GUI calls:

The only thing I could tell, and you can check this too is see when you activate the profiler (F3) I forget if you press it twice or 3 times to get the graph. Check what your Gui values are. My draw was normal, but my Gui calls were getting close to 20. I tried to reinstall with Luxtorpeda but to no avail. Installing directly from Discover was the only thing that worked and now my Gui calls are between 0.1 to 0.4 instead of 20.0. I have a feeling there is something wrong with the way Luxtorpeda is delivering the openMW files in a recent update, but I don't know enough about it to tell.

Checked on my Deck and I also have GUI calls at about 20. Whether this is causing the slowdown or just a product of it, I do not know.

@d10sfan Unless I did a mistake. In the zip file you should find 3 files.
All were under the specified folder /home/deck/.config/openmw/
It contains

settings.cfg
openmw.log
openmw.cfg

Ah yes, you're right, sorry got confused there for a bit. Does the openmw-latest one do the same thing?
It might be the version of or how the dependent libraries were built, curious if openmw-latest does the same thing with the draw calls.

I just started with latest. It is the same 30-40 fps. I cannot say about that draw calls things though as I am not sure how to check that correctly. So maybe @Tintin-Asterix can comment on this. But since I seem to have the same behavior I woulld guess that it's the same there as well.

Ok, I'll take a look when I have a chance, thanks

I have this exact issue, I was running openmw through luxtorpeda with fps at 60+
I was about 80 hours into my game when I pressed the steam button to change some controller confit - the GUI flidded out and then the whole deck crashed. Ever since then performance has tanked and I’m getting similar poor performance to what is described here. I also can get great performance through the discover app and manually installing openmw.
I noticed the GUI calls were now extremely high through luxtorpeda and Can’t help but think that some conflict has happened with the steam UI. I’ve tried everything, even reimaging the steam deck and the problem remains. Going to wait for a fix before I carry on as want the shaders that luxtorpeda offers.

Can you all try with the steam overlay disabled? Wondering if something there could be interfering

I opened the setting and unchecked the steam overlay for the game.
Loaded my save, same result. no change.

Yeah same result for me too

I found a few reddit post that are recent and indicate the same behavior.
Not much more info in those. But listing for reference in case that is at all usefull.
https://www.reddit.com/r/SteamDeck/comments/10kvbty/only_getting_around_40fps_on_morrowind_when_the/
https://www.reddit.com/r/SteamDeck/comments/10r3wt8/openmw_suddenly_horrid_fps/

Thanks, I'll take a look when I can

had another blast trying to see if anyone had found a fix for this so I can get back to my game and came across another couple of posts if it helps.
https://www.reddit.com/r/OpenMW/comments/10kcqh0/openmw_047_on_steam_deck_low_fps_after_changing/
https://www.reddit.com/r/SteamDeck/comments/10kowv9/openmwluxtorpeda_issue/
Seems like this is an issue for everyone on steamdeck.

I tried some changes that didn't appear to help, I am able to replicate it on the steam deck as well, it is odd, since I remember it working better like others have mentioned. I'll see what else I can find out.

Thanks mate, appreciate it as keen to carry on with my save. It’s weird, one second working so brilliantly I was impressed then next FPS nose dived

It does not seem directly related to gamescope from a quick test I did on my system, was curious if that was an issue. I'll update once i may know more.

I can report the same issue. After a week of adjusting settings wil little to no result, I tried installing flatpak openmw. Performance is butter smooth with the flatpak, while the luxtorpeda one has drops under 30fps...
Also, could you please add option to download not the latest one? The stable 0.47.0 runs just fine, so it would be nice to have this option also available.

@ramonDexter Not sure what you mean, the stable one (0.47.0) is the one called "openmw"

Also can report that this issue is still occurring on a fresh install of the game and Luxtorpeda v62 on Steam Deck. Regardless of if I use either stable (openmw) or the Latest build, the framerate's unreasonably slow at around the low 15-20 FPS range no matter what settings I use. Even running the game without any extra mods and the shaders on legacy still cause the framerate to be locked below 20. The Flatpak version doesn't have this issue at the moment.
At some point I could test on my desktop running Nobara to see if the issue still occurs outside of the Deck, but is it possible there's some dependency or something about how Luxtorpeda builds OpenMW that's different from the official releases? I remember seeing a comment somewhere that one of the devs behind OpenMW has a script for compiling AppImages on the Discord server that also don't suffer this same performance issue.

It's odd because at least on my desktop, I don't see this issue. I did try some optimizations at one point but need to delve into their release ideas at some point.
This used to work better without any changes on my end from my understanding, so maybe a driver change of some sort messed with it. I have an old laptop with only an integrated gpu and I'm getting 300 fps on the same build.
I haven't had a chance to delve deeply into that yet, but hopefully soon, and also if anyone else has any ideas feel free to jump in.

Confirming issue is still present as of today, luxtorpeda v62. Any settings to tdp or gpu power is completely ineffective

Still don't have anything new on this issue. I've tried a few  things to see, and even the newer openmw-latest has the same problem.
On my desktop and a laptop that's much less powered than the deck I get much better framerate, so still not sure what the issue is.
I'll update once I have something more on this.

This issue is now present on all versions of OpenMW on Deck it seems, Luxtorpeda, Flatpak, Appimage, etc. Something changed in either the SteamOS updates or whatever and now all versions have this exact heavy frame lag bug. I did fresh installs of all OpenMW versions with clean config files.
I suspected it probably wasn't anything to do with Luxtorpeda originally but now I think I was right. OpenMW itself is busted.
Guess I won't be playing Morrowind on the Deck for a while. Shame.

Just chiming in that this is still an issue on v65.1.0

I've updated OpenMW to 0.48.0 and this is now using the binaries provided by the upstream repo, instead of building it here.
The performance on the steam deck is a bit better but still seems worse than it should be. Interestingly, I noticed that running the same exact binaries outside of steam works fine performance wise (100+ fps), but inside seem (either using luxtorpeda, or just creating a non-steam shortcut), the fps drops to 40-50 fps.
So it looks like the problem is with something on steam itself, and not luxtorpeda.
I've created a ticket with SteamOS to see what Valve thinks about this, it may be some sort of issue with OpenMW itself, but seems likely sometime may be wrong with Steam somehow. https://github.com/ValveSoftware/SteamOS/issues/1102
As of this, I'll close this since it isn't our bug, I'll try and update it if I find out more information. Please feel free to comment if you have any questions/issues.

I also created an issue with openmw: https://gitlab.com/OpenMW/openmw/-/issues/7498

Also, it works fine when Morrowind is installed as a non Steam product (e.g. via GOG/Lutris), and OpenMW configured against it. That way, the game runs smoothly. But as soon as I use the Steam version, it is unplayable.
If it can help anyone, once back at home I can provide details of my installation.

Is that referring to running it in desktop mode outside of steam? If so, that tracks with what I'm seeing, where running inside steam is dropping the framerate for some reason.

No, I run it in handheld mode inside Steam.

Not sure why that would be unless there's something in the morrowind assets themselves different steam vs gog, but hopefully one of those issues will help figure out the issue.

Confirming this issue.
Launching OpenMW(GOG version) in Gaming Mode results in 14 FPS, but launching in from Decstop Mode results in 100+ FPS.
Weird bug =//

Confirming this issue. Launching OpenMW(GOG version) in Gaming Mode results in 14 FPS, but launching in from Decstop Mode results in 100+ FPS. Weird bug =//

Oh, wait, just to clarify: you are launching the GOG version from Steam, not OpenMW from GOG Galaxy, resulting in the heavy frame drop, right? If it's the latter, that might actually make it an issue of OpenMW, compared to Steam!

Thanks to a comment here (https://gitlab.com/OpenMW/openmw/-/issues/7498), I've pushed a workaround and now openmw should run at a good framerate in luxtorpeda on the deck. It looks like either openmw or the deck is causing some issue there, the low fps was happening with or without lux.


remove other logos

LGTM!
Browser metadata
Path:      /
Browser:   Chrome 96.0.4664.93 on Mac OS 10.15.7
Viewport:  1792 x 901 @2x
Language:  en-US
Cookies:   Enabled

Open in BrowserStack

Open Deploy Preview · Mark as Resolved

Browser metadata
Path:      /
Browser:   Chrome 96.0.4664.93 on Mac OS 10.15.7
Viewport:  1792 x 901 @2x
Language:  en-US
Cookies:   Enabled

Open in BrowserStack

Open Deploy Preview · Mark as Resolved


Fix the OpenBSD rc script:

The pid_dir variable was not properly propagated into the
template of the OpenBSD service script file.

Pull request acceptance prerequisites:

[x] Signed the CLA (if not already signed)
[x] Rebased/up-to-date with base branch
[x] Tests pass
[x] Updated CHANGELOG.md with patch notes (if necessary)
[x] Updated CONTRIBUTORS (if attribution is requested)

Thanks for catching the mistake @buzzdeee, I really appreciate the contribution. Cheers!


e2e: serial: generalize tmscope-agnostic tests

Some workload placement test do not really depend on the Topology Manager Scope (tmscope).
So we generalize them to gain some more coverage for cheap.

Thanks for the PR.
/lgtm
I'll consider adding test ids in another PR

trivially rebased on top of #238

/lgtm


Error loading task definition in v1.9.0 of extension

I have a VS Code task to run an Azure Functions service locally that has stopped working after updating to v1.9.0 of the Azure Functions extension. Downgrading to v1.8.3 everything works as expected.
I get the following output in the task logs when running the 'Tasks: Configure Task' command:
Error: The func task detection didn't contribute a task for the following configuration:
{
    "type": "func",
    "command": "host start",
    "problemMatcher": "$func-watch",
    "isBackground": true,
    "options": {
        "env": {
            "languageWorkers__python__arguments": "-m debugpy --listen <IP_ADDRESS>:9091"
        }
    }
}
The task will be ignored.

I am running the service in a dev container, if that makes a difference.

It looks like this was something strange with the python extension in the container. Reinstalling everything from scratch seems to have resolved the issue. Apologies.


[BUG] Model 'undefined' not found in any provider

Describe the bug
When testing example given in document about API of AI module, code throws an error reading as follows:
QuickAdd: (ERROR) Could not create file with template:
Model 'undefined' not found in any provider

I have tried different values from api.ai.getModels() for model, but all end up with the same error.
To Reproduce
Steps to reproduce the behavior:

Create an template file with content:

```js quickadd
const promptText = "What is the capital of France?";
const model = "gpt-4";

const settings = {
    variableName: "capital",
    shouldAssignVariables: true,
    modelOptions: {
        temperature: 0.6,
        max_tokens: 60,
        frequency_penalty: 0.5,
        presence_penalty: 0.5
    },
    showAssistantMessages: true,
    systemPrompt: "Please provide the answer"
};

const response = await this.quickAddApi.ai.prompt(promptText, model, settings);
console.log(response);
```

Set up QuickAdd for the template above
Run the template with QuickAdd
See error

Expected behavior
No error is shown and new file is created
Screenshots

Desktop (please complete the following information):

OS: Windows 10

Additional context
QuickAdd version: 1.8.1

It works after setting model to {name: "xxxxx"}
It seems that the example shown in document is not correct according to the source code:
https://github.com/chhoumann/quickadd/blob/5b0e20be3213a2cb894ae6fb2d4216e5f9a25129/src/quickAddApi.ts#L138

It works after setting model to {name: "xxxxx"}
It seems that the example shown in document is not correct according to the source code:
https://github.com/chhoumann/quickadd/blob/5b0e20be3213a2cb894ae6fb2d4216e5f9a25129/src/quickAddApi.ts#L138

worked for me!


[a11y] Add aria-disabled to disabled usage

What and Why
Our accessibility tooling requires explicit directives to ignore contrast/etc. issues on "disabled" content. The HTML disabled attribute is not sufficient, so this PR adds aria-disabled alongside our disabled prop logic (in the outermost element, in the case of a component with multiple disabled prop usages).

Closing for future consideration


Lock Influx to V1

Fixes https://github.com/devopsfaith/krakend-playground/issues/23

thanks for your contribution!


Add Description+Example for snowflake_function

Is your feature request related to a problem? Please describe.
Please add a description+example for snowflake_function. Its always hard to implement something just with the basic information of the parameters.
Describe the solution you'd like
An example with a basic javascript if/else function would be great to understand how your script works.

We are closing this issue as part of a cleanup described in announcement. If you believe that the issue is still valid in v0.89.0, please open a new ticket.


agents will fail to start with v1.19.x k3s

Version (k3OS / kernel)

k3os version v0.19.2-dev.1
5.4.0-48-generic
Architecture

x86_64
Describe the bug

Worked failed to fully upgrade when running the k3s-install.sh for the k3s-service.
To Reproduce
Attempt to upgrade from v0.11.1 to v0.19.2-dev.1, worker k3s will fail to start.
nuc-2 [~]$ sudo k3os --debug config
DEBU[0000] running cmd `rc-service ntpd start`
 * WARNING: ntpd has already been started
DEBU[0000] running cmd `sleep 5`
DEBU[0005] Running /usr/libexec/k3os/k3s-install.sh [/usr/libexec/k3os/k3s-install.sh agent --node-label k3os.io/mode=local --node-label k3os.io/version=v0.19.2-dev.1] [INSTALL_K3S_NAME=service INSTALL_K3S_SKIP_DOWNLOAD=true INSTALL_K3S_BIN_DIR=/sbin INSTALL_K3S_BIN_DIR_READ_ONLY=true K3S_URL="https://nuc-1:6443"
 K3S_CLUSTER_SECRET="demo"
]
[ERROR]  Only https:// URLs are supported for K3S_URL (have "https://nuc-1:6443"
)
ERRO[0005] exit status 1

Expected behavior

All agents start after being upgraded+rebooted.
Actual behavior

Worker agent failed to restart after being upgraded then rebooted.
Additional context

Recent changes in $K3S_URL validation in the install script have broken this weirdness:

https://github.com/rancher/k3os/blob/v0.19.2-dev.1/pkg/cc/funcs.go#L125
https://github.com/rancher/k3os/blob/v0.19.2-dev.1/pkg/cc/funcs.go#L132
https://github.com/rancher/k3os/blob/v0.19.2-dev.1/pkg/cc/funcs.go#L134

The current workaround is to ssh into the worker and invoke the k3s-install.sh directly, e.g.
sudo \
    INSTALL_K3S_NAME=service
    INSTALL_K3S_SKIP_DOWNLOAD=true \
    INSTALL_K3S_BIN_DIR=/sbin \
    INSTALL_K3S_BIN_DIR_READ_ONLY=true \
    K3S_URL="https://nuc-1:6443" \
    K3S_CLUSTER_SECRET="demo" \
/usr/libexec/k3os/k3s-install.sh


docs: add catppuccin-startpage

Hi 👋🏻 @jnmcfly thanks for your review!

Thanks for your contribution


Add support for tmux

When you start a TMUX session (see #9), none of the functions will work.
This is because TMUX swallows all unknown escape sequences.
To allow the sequence to pass through you need to surround it with:
\ePtmux;\e<your original sequence>\e\\
So I replaced all echo statements with a function that will check if we're in a TMUX session and do this.

Thanks 🚢


cnd via unpkg

It is useful, when i am using it in something like JSBin, which i use a lot to give quick demos/tutorials .

Hi @shrynx, I think this is a great idea! Would it be possible to add the non-minified version as well?
Perhaps something like
<!-- unminified -->
<script src="https://unpkg.com/most/dist/most.js"></script>

<!-- minified -->
<script src="https://unpkg.com/most/dist/most.min.js"></script>

Thanks, @shrynx!  I like @TylorS's suggestion to add the example of using the unminified as well.  Will be very happy to merge this if you can add that :)

:shipit:

@briancavalier @TylorS Sure, I'll add it to the pull request.

I know , this isn't anything significant but as everyone say , start with the docs 😃
new to frp and I really love this project for its speed and simplicity, hope to make better contributions to it.

welcome @shrynx 😄


[docs] Add SFR Presse to the Showcase

@RyudoSynbios It's huge! If you have any feedback for us, let me know, I'm more than happy to hear your pain points as well as how would want to see Material-UI evolves.


Typo fix in ARTIFACT_REPO.md

In the non-default artifact repo section, when showing the gcs example the bucket name said 'my-aws-bucket-name'. I've updated this to say 'my-gcs-bucket-name'.
Super minor change but I've been banging my head against artifact repo outputs all day and this was bothering me.
See issue #1424

 Thank you for your submission, we really appreciate it. Like many open source projects, we ask that you sign our Contributor License Agreement before we can accept your contribution.You have signed the CLA already but the status is still pending? Let us recheck it.


Add Arctic Wallet to the list of wallets

Adding a new wallet, supporting DOGE

Hello @burak-terzi urak-terzi , can you please merge all PR #212 to #220 in only one, because they all are the same file but duplicated on every language  :)
You can for exemple remove all (backup first) and send a new PR with all at the same time :)
Much Thanks :)


is ng serve --prod a good choice for deployement ?

is ng serve --prod an alternative to expressjs configuration to deploy angular 2 apps ?

ng serve uses webpack-dev-server which is a development server and not suited for production.

do I need to define my own expressjs configuration file ?

@amineparis you will need to setup your own web server. It can be anything, node, apache etc.

@amineparis both @grizzm0 & @deebloo are correct, you do not want to use ng serve in production even if you use the --prod flag.
The reason that flag exists is to mimic the compilation steps of a production build in a dev environment locally to ease your development process if you so desire.
Summary: use ng serve for development with or without --prod and use a production ready web server for deployments.

Just wanted to add that you can find some deployment information at https://angular.io/docs/ts/latest/guide/deployment.html

URL changed to https://angular.io/guide/deployment
The link above is broken @filipesilva


Fix #4942

Signed-off-by: Utkarsh Srivastava<EMAIL_ADDRESS>Description
This PR fixes #4942
What went wrong?
This is a corner case where meshery has failed to create dynamic client AND the pattern handlers attempts the create one under the assumption that the kubeconfig read from the filesystem was valid, which is not true if kubeconfig is pointing to a cluster which is not reachable.
Notes for Reviewers
Signed commits

[x] Yes, I signed my commits.

Codecov Report

Merging #4960 (de36154) into master (bf18bc1) will not change coverage.
The diff coverage is 72.46%.

@@           Coverage Diff           @@
##           master    #4960   +/-   ##
=======================================
  Coverage   32.45%   32.45%
=======================================
  Files          61       61
  Lines        5025     5025
=======================================
  Hits         1631     1631
  Misses       2990     2990
  Partials      404      404

Flag
Coverage Δ

e2etests
∅ <ø> (∅)

gointegrationtests
9.33% <5.79%> (ø)

integrationtests
∅ <ø> (∅)

unittests
25.87% <72.46%> (ø)

Flags with carried forward coverage won't be shown. Click here to find out more.

Impacted Files
Coverage Δ

mesheryctl/internal/cli/root/perf/apply.go
42.04% <68.42%> (ø)

mesheryctl/internal/cli/root/perf/profile.go
45.71% <73.07%> (ø)

mesheryctl/internal/cli/root/perf/result.go
68.90% <75.00%> (ø)

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update d93f23d...de36154. Read the comment docs.

Do we need this same check for application deployments as well?

Do we need this same check for application deployments as well?

@leecalcote, nope we don't. Applications and filters call processPattern at the moment, so changes in this one place should effect all other components.


chrome mobile on iOS 10 not allowing inline

Hello,  I'm using the most recent version of iphone-inline-video on iOS10 with the following code:
$(document).ready(function() {
        $('video').each(function (index, value) {
             makeVideoPlayableInline(document.getElementById($(this).attr('id')), false,false);
              id=$('video').first().attr('id');
              document.getElementById(id).play();
        });
});
...

document.getElementById(id).play(); //TO PLAY, SURROUNDED BY CODE

The videos do not play unless clicked twice, despite my call above.  When clicked twice they go full screen.  Once I exit full screen they do play programmatically but the play button remains over top.

I was able to get this working by hiding the native play button using CSS and setting autoplay to true when mobile chrome is detected.

Do you have the playsinline and mute attributes? On iOS 10, iphone-inline-video is disabled automatically because this functionality is supported natively with that attribute.

Yes, I do have both these attributes set.

Technically it should be supported so IIV is disabled there. Try StackOverflow since this is an issue with iOS 10 Chrome rather than IIV. Let me know if you find anything

Hello all!
@uotw  i face the same issue on Chrome and Firefox on iOS10. I have to tap to start video playback. When i tap it goes fullscreen and on exit it plays inline.

This should look green in all iOS 10 browsers, does it work? http://codepen.io/anon/pen/xEdwop
Does this work in Chrome/iOS? https://bfred-it.github.io/iphone-inline-video/?enabled=true

Hi bfred-it!

this looks green only on safari. on chrome and firefox is this is red
Actually No. The big play button is there. The video goes fullscreen after click to play and when on fullscreen exit it returns playing inline

So the native inline playback functionality is not enabled in Chrome and Firefox; therefore IIV would have to be enabled there.
Can you try again? The demo was broken

i can see the following:
the second video never starts playback
the first requires has a large delay to start after i click on Play/Pause button

It sounds like this is happening because they broke the manual video.load(). So the first video is loaded after the first tap (instead of being preloaded) and the second video never autoplays because there's no tap and therefore no load() call.
No solution, we just have to wait for the browsers to enable the native playback, also because third-party browsers are not debuggable as far as I know, so I can't even know what is happening exactly.

@giannoudak Here's my working solution.  http://codepen.io/utnuc/pen/mAmEyp

I don't think that works, since IIV is not enabled at all on iOS and you're not forcing it with the third parameter

Both links seem to work here on Chrome, iPhone 6s, iOS10.  Stops working when I remove iphone-inline-video.js.

What's the output of this in Chrome/iOS? http://codepen.io/anon/pen/GjmqxX?editors=1111
You should see a popup

true,,true

Thanks, appreciated. It looks like Safari 10 did not enable the CSS grid, which is what I was using to detect iOS 10, and therefore IIV still runs on iOS 10.
Also for some reason IIV's autoplay support isn't working, but .play() is. So try these two solutions:
Normal play: http://codepen.io/anon/pen/ALRXwO
Autoplay: http://codepen.io/anon/pen/kkyXVk

On Chrome/iOS, the first link does nothing, blank page.  Second link is blank until I hit play, then it plays the video inline w/ audio.

"It looks like Safari 10 did not enable the CSS grid, which is what I was using to detect iOS 10, and therefore IIV still runs on iOS 10."
So we should change the test:
void 0 === document.head.style.grid
to something that detects iOS 10?

There's a media query to detect this behavior specifically, but that doesn't fix the issue, since Chrome/iOS 10 doesn't support IIV natively anyway. The fix is in @uotw's comments but I have no time to implement either at the moment.

Chrome/iOS 10 now supports playsinline natively (this is green)
Demo: https://vid.me/CFDy
Firefox on the other hand still doesn't fully support autoplaying video inline on iOS 10, even with IIV. I'm creating a new issue specific to that.

Actually the is still an issue. The link in your comment above is red on my browser (latest Chrome) and IIV videos are not playing on Chrome iOS (iPhone 6s, iOS 10+).

I don't know what to tell you. Works for me on iOS 10.1. The first demo doesn't work anywhere, it seems, because of connection issues, but the three.js muted autopley demo works natively, without IIV

Ah my bad. Turns out I wasn't on the latest Chrome version on my iPhone. Sorry for the trouble and thanks for the quick reply.

Update: IIV works 100% on Firefox 5.3 (2) on iOS 10.2: https://github.com/bfred-it/iphone-inline-video/issues/84
I did nothing, but they probably fixed something :)


Fix https://github.com/yt-dlp/yt-dlp/issues/8363 by manually adding metadata during ffmpeg split chapters execution

IMPORTANT: PRs without the template will be CLOSED
Description of your pull request and other information

Fixes the bug https://github.com/yt-dlp/yt-dlp/issues/8363.
--split-chapters with --add-metadata enabled produces incorrect metadata for m4a files
Fixes # 8363
Template

Before submitting a pull request make sure you have:

[ X] At least skimmed through contributing guidelines including yt-dlp coding conventions
[ X] Searched the bugtracker for similar pull requests
[ X] Checked the code with flake8 and ran relevant tests

In order to be accepted and merged into yt-dlp each piece of code must be in public domain or released under Unlicense. Check all of the following options that apply:

[ X] I am the original author of this code and I am willing to release it under Unlicense
[ ] I am not the original author of this code but it is in public domain or released under Unlicense (provide reliable evidence)

What is the purpose of your pull request?

[ ] Fix or improvement to an extractor (Make sure to add/update tests)
[ ] New extractor (Piracy websites will not be accepted)
[ X] Core bug fix/improvement
[ ] New feature (It is strongly recommended to open an issue first)

Copilot Summary

🤖 Generated by Copilot at bb9ec9a
Summary
🐛🎧🛠

Fix chapter splitting and metadata for m4a files using FFmpegSplitChaptersPP. Refactor output file options into a separate method.

When splitting m4a files by chapters
We had some metadata disasters
But we fixed the issue
With _set_out_opts new
And now we can stream_copy the rasters

Walkthrough

Fix metadata copying bug for m4a files when splitting by chapters (link, link)

Linter errors:
./yt_dlp/postprocessor/ffmpeg.py:1052:5: E301 expected 1 blank line, found 0
./yt_dlp/postprocessor/ffmpeg.py:1060:32: E231 missing whitespace after ','
./yt_dlp/postprocessor/ffmpeg.py:1062:43: W291 trailing whitespace

I fixed the comments and streamlined implementation.
Now only chapters metadata is removed and all other medata is preserved.
Aparently ffmpeg has dedicated -map_chapters flag just for chapters

Tangentially related: https://github.com/yt-dlp/yt-dlp/issues/951 https://github.com/yt-dlp/yt-dlp/issues/4192

Is it possible to fix the track meta field as well? This could be an opt-in change (since not all use cases want it), but it would be nice to have the chapter_number used as the track number.

Using this as a plugin seems to work perfectly (with a bit of monkey patching to make it work with --split-chapters instead of --use-postprocessor, courtesy of Bashonly)

Plugin:
from yt_dlp.postprocessor.common import PostProcessor
from yt_dlp.postprocessor.ffmpeg import FFmpegSplitChaptersPP

class _FFmpegSplitChaptersMetafixPP(FFmpegSplitChaptersPP):
    # Extends opts with chapter specific metadata for the supported formats.
    #
    # Tested and supported on opus, m4a, webm and mp4.
    def _set_metadata_arg(self, opts, ext, key, value):
        if ext == 'opus':
            # opus file requires a stream to keep title, artist etc metadata.
            # FFmpegMetadataPP already set metadata and created that stream.
            # Futher metadata updates should be set on the stream(:s)
            # -metadata will do nothing and needs to be -metadata:s
            opts.extend(['-metadata:s', f'{key}={value}'])
        elif ext in ['m4a', 'webm', 'mp4']:
            opts.extend(['-metadata', f'{key}={value}'])

    # FFmpeg adds metadata about all chapters from parent file to all split m4a files.
    # This is incorrect since there must be only single chapter in each file after split.
    # Such behavior confuses players who think multiple chapters present
    def _set_out_opts(self, ext, chapter_title, track_number):
        out_opts = [*self.stream_copy_opts()]
        out_opts.extend(['-map_metadata', '0'])
        # exclude chapters metadata but keep everything else
        out_opts.extend(['-map_chapters', '-1'])

        # replace global title with chapter specific title in split files
        if chapter_title:
            self._set_metadata_arg(out_opts, ext, 'title', chapter_title)
        self._set_metadata_arg(out_opts, ext, 'track', track_number)
        return out_opts

    @PostProcessor._restrict_to(images=False)
    def run(self, info):
        self._fixup_chapters(info)
        chapters = info.get('chapters') or []
        if not chapters:
            self.to_screen('Chapter information is unavailable')
            return [], info

        in_file = info['filepath']
        if self._force_keyframes and len(chapters) > 1:
            in_file = self.force_keyframes(in_file, (c['start_time'] for c in chapters))
        self.to_screen('Splitting video by chapters; %d chapters found' % len(chapters))
        for idx, chapter in enumerate(chapters):
            destination, opts = self._ffmpeg_args_for_chapter(idx + 1, chapter, info)
            out_file_opts = self._set_out_opts(info['ext'], chapter.get('title', ''), str(idx + 1))
            self.real_run_ffmpeg([(in_file, opts)], [(destination, out_file_opts)])
        if in_file != info['filepath']:
            self._delete_downloaded_files(in_file, msg=None)
        return [], info

# Monkey patch the plugin methods in
# Note this won't show as a loaded plugin, and remove it once https://github.com/yt-dlp/yt-dlp/pull/8364 is merged
FFmpegSplitChaptersPP._set_metadata_arg = _FFmpegSplitChaptersMetafixPP._set_metadata_arg
FFmpegSplitChaptersPP._set_out_opts = _FFmpegSplitChaptersMetafixPP._set_out_opts
FFmpegSplitChaptersPP.run = _FFmpegSplitChaptersMetafixPP.run

@TheRealGramdalf, I have advanced version of of the plugin here: yt-dlp-split-and-tag
It allows to trigger splitting by providing --regex flag with optional regex value, for example
yt-dlp --extract-audio --regex '%artist-%title' https://www.youtube.com/watch?v=eunsZB9c0eA

which will use title to extract artist from it.


Use mddub/dexcom-share-client-swift master branch

Thanks for these updates. I'm not in a place to verify them right now, so feel free to merge if you're happy with them.


Add documentation for ImagePullBackOff

Added documentation for ImagePullBackOff under /docs/concepts/containers/images/#updating-images. This fixes #62788 on kubernetes/kubernetes.

/cc @sftim

/lgtm

@sftim / @thockin Can you please approve this PR?

/lgtm
/sig node
This could use a different person's LGTM: for changes to the live website, SIG Docs convention is that we want separate people to LGTM and approve. There's an exception for very minor changes and corrections.
I can approve this once someone else LGTMs.

/lgtm

/approve


SparkPost API error messages hidden

Hello again!
I found another minor (but quite significant) problem with errors.
Whenever SparkPost rejects a transmission for whatever reason we get an exception.
It all happens on these two lines.
The problem is that there are additional strings sent from SparkPost and whenever this happens (for example when quotas are exceeded) those are not included in the final exception.
In addition to 'message' APIResponseException includes some additional and critical information in the following two variables: 'apiMessage' and  'apiCode'. Could you please include them in Yii's log and the final thrown exception?

Additionally, while at it, would it be possible to add a setting to allow Mailer to fail gracefully without exceptions? It is quite problematic when the entire application crashes because of something that happened on SparPost's server. Otherwise we need to wrap every single send() call in a try-catch block, because you never know when SparkPost might decide to crash our application. Better yet, make it fail gracefully by default and simply return false when an exception occurs because of SparkPost to indicate the email was not sent successfully.

@vercotux thanks, yeah, I was waiting for https://github.com/SparkPost/php-sparkpost/issues/44 to be fixed, and then just forgot to adjust my code.
Sure, I'll fix that, probably by just throwing the exception we got from sparkpost lib further.

And I like your idea about a graceful fail, sounds reasonable.
I don't think it should be the default behavior, but new setting in the component should do the trick.

That sounds good!

@vercotux Sorry for a long delay! Does it look good?

That's spot on! I've just tried it out and it looks to be working flawlessly. Really loving this project!


[0.8.5b2] Spooler history estimates are actuals not oiriginal estimates.

I had a job with an estimate of 2:11:xx and it completed in 1:02:xx and afterwards the spooler showed the estimate as the same as the actual.
P.S. Estimate was way over due to vertical gaps in the rasters that were skipped.

I seem to recall this happens. It doesn't quite seem like the original estimate that was wrong matters as much when we're done and have the real time.

The way to keep refining the accuracy is to be able to see the inaccuracies.

https://github.com/meerk40t/meerk40t/blob/acd0a39a03cd97b9790e5c7667823d17072fe46f/meerk40t/core/laserjob.py#L193
This turns out to be harder than just fixing it. It's not replacing it at the 11th hour. It's actually replacing it based on pass time. So it's using the previous passes to estimate the future passes. So if you have 10 passes and the first two took X amount of time, our new estimate is that the next pass will take 5x the current amount of time.
This routine gets called when it's done, so its 1/1 for passes and estimates the time it will take to do 1 pass is the time that it took to do 1 pass.

Or not, this looks like if is_running were false it should give the purely estimated time. Will fix.

I'll figure it out. #1955 should fix it, when I check the other stuff. Mostly just simplified the logic flow currently.

Fixed.

Also fixed in Legacy8 and should be fixed for the last bug fix release of that.

I cannot believe that you have created a 0.9 version so quick.
I haven't been following 0.9 development, so what are the big changes?

Yeah, fundamentally changing the underlying datastructure sort of required it, even if I manage to get it to work without too much interruption. Though I did limit the scope currently to front-end geometric objects. Cutcode is just planned to be replaced. It might likewise require 0.10.0 in-so-doing.
Well, the point-inside-polygon check can be done in a fraction of the time with numpy. Though the details are a bit cryptic which was actually a lot of time loss in optimization (which is now basically instant). That was done with the underlying path objects so it already got switched out for a pretty marked improvement of speed there. So building the nested tree of closed shapes is pretty fast.
For greedy we could find the nearest element pretty quickly in a command. The complex numbers are used, in part because they are so much like points, and these store the start, control1, info, control2, and end points. Filter out stuff that is not allowed to be burned yet, and you actually can quickly check the distance from current point to all the start/end points by getting the index of the argument where np.min(np.abs(segments[:][0,4] - current)) or something like that. Where you can absolutely just have all the segments and you're finding the one with the smallest absolute value of the difference which, if we treat complex numbers as points is actually the euclidean distance.
There is already a built-in two-opt for geomstr, so it's currently trivial to find the shortest TSP path (likely, though not provably shortest). In fact, it might be so fast that we'd opt to use it instead of greedy. I clocked it at 6 seconds for the worst thing I could throw at it back when I first wrote the routine. Though usually the rule is to optimize with greedy then additionally optimize with two-opt.
However, really we can't do traditional TSP since we have a bunch of constraints.  At least when inner-first is checked. If we need all items flagged as 3 to occur before any item flagged as 4 then we can't actually do the regular TSP optimizations because it requires that we flip different paths and take them backwards to see if we improved things. And in the case of the constraints we can't flip those which really hampers the algorithm.
Though I did read a paper on TSP with constraints which had some interesting suggestions. It was mostly do TSP and when you run into an issue with a constraint remove it. Then when you finish the optimization reinsert it into the valid location minimizes the path. And each TSP path was measured with those steps entirely. Optimize, remove-constrained, re-insert minimal distance constrained nodes.
We also, probably need a couple things like remove duplicated cut lines and a few other things that would throw big wrenches into the algorithms unless it was notably very fast.

Constraints (Inside first, group inside burns) are easy to keep constrained - you can just do two-opt within the constrained set, but that isn't fully optimised. You can also easily resequence the order that the Inside First/Group Inner Burns constrained sets are burned BUT then you will potentially be entering and exiting at the sub-optimal points. I am not sure that it is possible easily to optimise globally for both the sequence of Grouped burns and the burns inside the groups.
However...
1. Greedy is brilliant at achieving 90% of the savings - without it either the head goes all over the place which takes the laser forever, or you have to spend time in Inkscape manually sequencing the paths which takes you forever.
2. My experience with the Raster optimisations in v0.7 that are missing from 0.8 is that when you don't breaking rasters into separate non-overlapping images, the single large raster can cut across several Outer Cuts, spoiling the quality of the Group Inner Burns optimisation. So reimplementing this in v0.8/9 will improve optimisation where you have raster designs inside multiple separate pieces in one burn.
3. My experience with greedy vector optimisation is that there are two types of burn I do where greedy is significantly sub-optimal. Firstly, for rows of leatherworking stitch holes, when it goes to the nearest hole it sometimes misses one or two at the start of a row of stiches and then needs to do a longish travel to get back to it much later - so if we could find a way to stop these coming much later and insert them somewhere more sensible, that would make a significant difference in the remaining 10% optimisation that is possible. Secondly for Group Inner Burns sometimes it does Group by Group sub-optimally (a macro equivalent of the stitch holes) and then towards the end it to do a long travel to do a later group.

Firstly, whilst some travels (i.e. 0 in this diagram or the ones along the bottom and left side to return to origin) will be long simply because the burns are a long way apart, as greedy gets a smaller and smaller choice of remaining burn segments, so the probability of a longer travel to mop up burn segments that would ideally have been done earlier increases (i.e. 3).
So the idea of this algorithm is to identify a group of burns with relatively long travels before and after and a relatively near earlier burn, and then find a group of burns (with travels either side) that can be moved as a group to an earlier point in the burn, somewhere near the burn immediately following a long travel.
So the idea is to consider only long travels (> than some threshold - perhaps an absolute distance of (say) 1" or perhaps relative to the the largest hull dimension of the group being considered) and then try to find two long travels (3 and 4) where if you cut out the burns between 3 and 4 and reinsert them one side or another of the nearest (earlier) burn (so the group between 1 and 2 in the diagram) such that the lengths of new travels A + B + C is less than the lengths of the travels they replace 1 + 3 + 4.
The concept of the algorithm is as follows:

Make a list of long travels and iterate backwards through the list (because greedy means that the longer optimisable travels will be later in the job) ignoring the return to origin travel. For each of the long travels (e.g. 3)...
First you take the immediately following burn segment (after 3) and find the nearest earlier burn segment (before 3). This is your initial version of B (though this will get modified later) of a known length.
Now we want to iterate forwards to try to find a group of burns and travels such that the extra travels B2 + C is less than 3+4. (If we have this, then we know that travel A <= travels 1 + B and so A+B <= 1 + B2, so A+B+C < 1 + 3 + 4.)
If we have such a group, of burns and travels, then we now need to find the travels either side of the nearest earlier burn segment and then decide which side of the nearest earlier burn segment we should move the group to. i.e. see whether A+B (replacing 1) - 1 is < or > A'+B' (replacing 2) - 2. When deciding this we can also reverse the group we are planning to move if that helps decrease the travel distance, but the rest is left alone.
Then if we move this group of burns as shown, we will have reduced the travel distance/time without changing the burn time.

There will be various complications to ensure that constraints are maintained if outer cuts are included in the group or if the nearest earlier burn segment is part of a Group Inner Burns group (2-Opt travel optimisation is aborted or the definition of 1 and 2 is adjusted so that the earlier burn segment expansion is increased to the full Group Inner Burn group). This will need careful thought, but should be possible to code reasonably easily.
As you can see, for each of a relatively small number of long travels the iterations here are of O(N) rather than O(N^2), and the number of iterations is going to be substantially curtailed beyond that. So the performance of this algorithm should be good.
That said, this feels like a linked-list manipulation algorithm having a sequenced list of burns/travels and cutting a sub-chain from this linked list from one point in the list (possibly reversing them) and inserting them at an earlier point in the list. This doesn't feel like a numpy solution, and a numpy brute force 2-opt might still be quicker than this non-numpy algorithm.

I had previously missed this comment. I made a bunch of things flag any comment seen on github a bit more obviously.

While I think that optimizing subsections between constrained sections is probably leaving a lot on the table it would probably be the way to go and for most practical applications would be good enough. In theory you could optimize a number of don't care elements both between and to either sides of constrained objects and the constraints simply must be kept in the right order. The other objects can flow to optimize.
b. the algorithm there is a bit extreme and typically means doing two-opt removing any objects that is constrained in illegal ways, remove the illegal objects. Then reinsert them in the constrainted version and use that entire system (with the removal and reinsertion in a greedy fashion) as the distance calculation of that two-opt operation.

This division of objects into non-overlapping sections in order to be non-spaghetti needs to basically work outside of cut planning complete. We should be able to call a function and divide an image into reasonably contiguous regions that are good for optimizations. Which could be seen as a kmeans clustering-like problem where you decide which pixels are non-white and simply try to cluster them.

Two-opt within permitted sections would fix the two missing hole problem three. Since two-opt would never be fooled as to the optimal path. It's a bit slower, but with geomstr (which is currently only used on the front end and not the backend during cut planning (but is planned to be used there)) this could be made fast enough that users don't notice.

The given algorithm seems like it's going to at best be like two-opt without being like two-opt. You're performing optimizations but you're specifically just focusing on the longer paths to perform what is, in essense, two-opt. Can a two-opt improve these long sections. Though really the question is whether the two-opt can improve anything and maybe give up when some criteria is met.
In practice linked lists always suck. It's just a weird fact of code, they never out perform lists even for jobs they are ideal for. Here, depending on the ordering replacing we have to, for example, reverse the direction of a long list of cuts. And while that operation is doable it means visiting each of them and reversing the head and tail sort of thing.
Two-opt generally states that we have a path, and this path has a jump-distance value. Then the question two-opt answers is that if we go through this path and we flip (both the segments themselves and the subpaths of segments) something inside can we make this path shorter?
Our geomstr paths are basically:
a[S1I2E]b
c[S1I2E]d
e[S1I2E]f
g[S1I2E]h
i[S1I2E]j

Flipping 2nd - 3rd segments:
a[S1I2E]b
f[E2I1S]e
c[E2I1S]d
g[S1I2E]h
i[S1I2E]j

Blocks of data with start, control 1, info, control 2 and end. can we grab any chunk of these segments pull those blocks out and rotate it 180 degrees (still leaving a valid path) and reduce the overall distance? We can test this by just seeing if b->c + f->g is smaller than b->f + d->g and if it is shorter we keep that.
In numpy we can do this by flipping the actual bits in memory very easily. You're idea feels to be about the same but trying to just do the worst offenders earlier. But usually we're talking about fractions of a second and can just try everything, and then try them all again, and keep trying them until there's no improvement.


Manage Dates: 544 Calendar

I cannot get the 544 calendar configuration to work. Our financial calendar:

544 week structure
Year runs July to June
Week ends on Friday
Fiscal year starts on Saturday
We name our fiscal year by the calendar year of the last date of the fiscal year (ie. July 2021 to June 2022 = Fiscal Year 2022)

When I try to configure this in Bravo the resulting Date table does not match.

Calendar Template = Weekly
Weekly System = 544
Fist Month of Year = July
First Day of the Week = Saturday
First Day of the Fiscal Year = First of the Year
Last Weekday of the Year = Last of the Year
Date Interval (First Year) = 2021
Date Interval (Last Year) = 2023
Regional Format = UK

The resulting Date table starts on 29 May 2021 (one month too soon) and ends on 31 May 2024 (one month too soon).

I installed latest, refreshed date table but I still see the incorrect (for us) Fiscal Year. It uses the year of the start date not the year of the end date in the fiscal year range..

Actually @albertospelta , if I set Fist Day of the Fiscal Year to "Last day of the Year" then it seems to work. I guess it's not clear to me what the exact purpose of this setting is. It seems to fix this issue to use it but I'm not clear if it might have other purpose. The guidance text is not clear to me.

We should improve the documentation for this setting.

Documentation updated in both UI and https://docs.sqlbi.com/bravo/features/manage-dates/


Replace restdoc by swagger

Compile issue, because an old version of Jersey Client (1.13.1) was loaded. Had to manually add and pin the dependency to 1.19.3.


Update concept-compute-target.md

clarifying the note: for idleshutdown related to billing :  While stopping the compute instance stops the billing for compute hours, you'll still be billed for disk, public IP, and standard load balancer. https://learn.microsoft.com/en-us/azure/machine-learning/how-to-manage-compute-instance?view=azureml-api-2&tabs=python#manage

@sdgilley
Can you review the proposed changes?
IMPORTANT: When the changes are ready for publication, adding a #sign-off comment is the best way to signal that the PR is ready for the review team to merge.
#label:"aq-pr-triaged"
@MicrosoftDocs/public-repo-pr-review-team

#sign-off


Doesn't work

It doesn't find nearby devices...
I've tried to build and install the application on two different android devices, allowed the permissions and checked both the bindings but nothing happens (the bluetooth is on)

Have you tried adding the nearby API key to this part of the manifest yet?
 <meta-data             android:name="com.google.android.nearby.messages.API_KEY"             android:value="USER YOUR OWN API KEY" />

yeah, I've already generated (here https://console.developers.google.com/flows/enableapi?apiid=copresence&keyType=CLIENT_SIDE_ANDROID&reusekey=true) and added the key


Loop invariant code motion

@yihozhang anticipates a problem with the invariant analysis:
dead ports make it imprecise.
For example, something that is dead will not be detected as an invariant.

Closed by #166


remove redundant attribute

Type of Change
remove redundant attribute in config, fix ut
Description
remove model in mixed_precision and benchmark config
add docstring for model_name
remove accuracy and tuning criterion in main config
fix ut for config_2.x
change default value of num of instance in benchmark from none to 1
Expected Behavior & Potential Risk
How has this PR been tested?
Dependency Change?

/Azurepipeline run


chore: test performance

Wrap validate test code in a describe to avoid dangling references
Use docker-reuse to run lambdas in localstack. Uses a single docker container for all tests instead of one per lambda.

Memory issues:

[x] jest hangs - node's max memory setting is higher than host memory - ✅ reoslved - changed 8GB to 4GB max memory (7GB on host)
[x] killed when jest runs out of memory - ✅ seems to happen less often with the right amount of memory.
[ ] I think lambdas on localstack are taking too much memory when they stay open. Seeing if destroying stacks will free up the lambda resources after each localstack suite.


Several packages have sbin folders

My understanding was that nix rejected the bin/sbin distinction and we avoided having sbin folders in our outputs.
At the same time, I see that at least the following packages have nontrivial sbin output folders:

iptables
iproute
ebtables
lvm2
udev
probably several more

And that we have workarounds like https://github.com/NixOS/nixpkgs/blob/master/pkgs/development/libraries/libvirt/default.nix#L27 in place to deal with that fact.
Questions:

Are those packages supposed to have sbin output folders? Is the exception policy described somewhere?
What mechanism is suppressing this script in iptables, for example?
It looks like at least for ebtables, the sbin was intentional: https://github.com/NixOS/nixpkgs/blob/master/pkgs/os-specific/linux/ebtables/default.nix#L13

Are you sure they're not symlinks? E.g. for iptables sbin is a symlink: http://hydra.nixos.org/build/28549743/contents/1. The script seems to be working fine here and on Hydra.
For the other examples, they were written before the move-sbin-to-bin script, so they can probably just be fixed to use /bin.
A stricter policy would be to remove /sbin completely; I like that, as the current approach does cause some overhead, particularly in buildEnv (It's not smart enough to merge all the symlinks together)

A stricter policy would be to remove /sbin completely;

That would first need quite some changes in nixpkgs:
$ git grep '}/sbin' | wc -l
315

but it should be safe to sed this without much checking.

What mechanism is suppressing this script in iptables, for example?

All packages on this list do have sbin only as symlink to bin (x86_64-linux, master). Perhaps some buildEnv confused you? (It seems you meant the same platform.)

It looks like at least for ebtables, the sbin was intentional

The sbin string there was added very long ago: bb2bd151af.

(triage) Is there an action item? Are the sbin folders problematic?

i believe there is a fixupPhase that moves all sbin items to bin, but then symlinks sbin to bin incase sbin paths where hard-coded into things
that may be part of what is adding confusion to this

In all the cases above it's just a sbin -> bin symlink, as there's that hook moving stuff around. It doesn't seem likely to me that someone would really want to eliminate all sbin references, as it's nontrivial work with risks of breakage and very little to gain IMHO.
(Also, contrary to /usr merge that is quite common nowadays, I haven't noticed any other distro getting rid of sbin.)


Add time wrapper to test agent delays in CI

Cilium's internal business logic relies on a highly parallel combination of reactive handlers for incoming information, "triggers" that ratelimit requests for processing to ensure Cilium does not over-consume resources, and "controllers" that periodically perform updates or resiliency checks of configured state. While in general most things are "eventually consistent", the presence of time-based triggers and controllers can introduce challenges when evaluating how Cilium will perform once the "eventual consistency" is resolved.
Taking an example of a situation where this eventual consistency caused issues that were not identified during pre-release testing, consider the issue fixed by https://github.com/cilium/cilium/pull/27327 . Cilium v1.14.0 was released with a bug where Cilium appeared to work correctly for the first several minutes following startup, then afterwards introduced connectivity disruption to specific peers. This was traced down to a logic delay tied to a 10 minute timer following startup which caused some state to be recomputed & configured in the system, ultimately causing the packet loss.
While better unit testing for the individual package could have caught this issue earlier, the issue was also triggered by the integration between the specific package and other logic in other packages. It is quite difficult to systematically identify time-based errors across the entire agent by relying purely on such testing in each package. This PR attempts to provide a more systematic safety net for timer-based issues by providing a hidden flag to override all timers within Cilium and ensuring that Cilium's CI runs with these timers set to a minimal value.
One of the interesting challenges with this PR is that it can be tempting for developers to rely on time-based tricks in order to ensure the execution order of specific pieces of logic. However, when the system is highly loaded, such mechanisms can become unreliable as an ordering enforcement mechanism. As a side-objective, this PR also hopes to make such tricks less viable on order to incentivize implementing better ordering mechanisms.
Tasks:

[x] Describe the approach for reviewers
[x] Wrap time.Sleep()
[x] Solve initial identity refcount issue
[x] Wrap time.After()
[ ] Investigate any failures
[ ] Tinker with timer - is 5s good enough? 1s? less?
[x] Add linter to avoid adding new time imports to the tree unless they're in autogenerated codepaths
[x] Re-evaluate the list of excluded packages to see if this should be extended to additional packages
[ ] Extend beyond cilium-agent to other applications

/ci-ginkgo

🎣 f04-agent-policy-multi-node-1 seems to be failing consistently across k8s platforms:
• Failure in Spec Teardown (AfterEach) [130.273 seconds]
K8sAgentPolicyTest
/home/runner/work/cilium/cilium/test/ginkgo-ext/scopes.go:461
  Multi-node policy test
  /home/runner/work/cilium/cilium/test/ginkgo-ext/scopes.go:461
    validates fromEntities policies
    /home/runner/work/cilium/cilium/test/ginkgo-ext/scopes.go:461
      with remote-node identity enabled [AfterEach]
      /home/runner/work/cilium/cilium/test/ginkgo-ext/scopes.go:461
        Validates fromEntities remote-node policy
        /home/runner/work/cilium/cilium/test/ginkgo-ext/scopes.go:515

        Found 1 k8s-app=cilium logs matching list of errors that must be investigated:
        2023-08-03T21:42:49.751308617Z level=error msg="Unable to find identity of previously used CIDR <IP_ADDRESS>/32" subsys=ipcache

/test

/test

/test

/test

/test

(Dropping a couple of autorequested codeowners where their areas were already reviewed)

/test


Name on tab

Submitter: Darren
Email<EMAIL_ADDRESS>Sorry as well as the names needing the additional L, the tab name currently says Gini as opposed to Cybelle.

This has been changed but the domain projectgini.co.nr is still caching this tab title, as seen on http://theginiproject.ddns.net/ this issue does not exist. Can fix this by waiting till the cache expires or using a new domain


Dependabot

This will result in a PR from @dependabot that will supersede https://github.com/pyouroboros/ouroboros/pull/385

Are github-actions and docker actually supported package ecosystems?  I only see pip in the docs, but it's plausible that those are outdated. :)
I also don't see how this relates to #385

Yes they are supported. I've used them both. The docs must not be up to date.
This PR will not directly replace #385 but once this merges @dependabot will create a PR that will bump the apprise version to the latest available, and it will also check if any dependencies need to be bumped daily.


Guide how to create AWS CodeBuild

Hi, I tried to build it with AWS CodeBuild - tried S3 as source but it keep saying that it cant find file/ AccessDenied - I tried to upload zip with this repo and give it public permissions, not sure what I am doing wrong

please see https://github.com/zoellner/sharp-heic-lambda-layer/issues/2#issuecomment-964208097 for a note on how to setup CodeBuild


Mobile Kit on XD - corrections

Small findings along with Figma reviews on the intial draft of Mobile kit in XD

[ ] Checkbox labels in #000000 instead of Trimble Gray like others (light mode), see illustration #1 in comments


500 error when creating new hunt

When a new hunt is created, everything works as expected, EXCEPT this error is thrown at the very end.
The hunt is still created as expected, it's just not displayed well. So must be a problem with the display somewhere at /new
 2024-02-19 11:42:39,269 (PID 7) [ERROR] log
2024-02-19T11:42:39.270483+00:00 app[web.1]: Internal Server Error: /new
2024-02-19T11:42:39.270485+00:00 app[web.1]: Traceback (most recent call last):
2024-02-19T11:42:39.270485+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.10/site-packages/django/core/handlers/exception.py", line 55, in inner
2024-02-19T11:42:39.270486+00:00 app[web.1]: response = get_response(request)
2024-02-19T11:42:39.270486+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.10/site-packages/django/core/handlers/base.py", line 197, in _get_response
2024-02-19T11:42:39.270486+00:00 app[web.1]: response = wrapped_callback(request, *callback_args, **callback_kwargs)
2024-02-19T11:42:39.270487+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.10/site-packages/django/contrib/auth/decorators.py", line 23, in _wrapper_view
2024-02-19T11:42:39.270487+00:00 app[web.1]: return view_func(request, *args, **kwargs)
2024-02-19T11:42:39.270487+00:00 app[web.1]: File "/app/myus/myus/views.py", line 121, in new_hunt
2024-02-19T11:42:39.270488+00:00 app[web.1]: return redirect(urls.reverse("view_hunt", args=[hunt.slug]))
2024-02-19T11:42:39.270488+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.10/site-packages/django/urls/base.py", line 88, in reverse
2024-02-19T11:42:39.270488+00:00 app[web.1]: return resolver._reverse_with_prefix(view, prefix, *args, **kwargs)
2024-02-19T11:42:39.270489+00:00 app[web.1]: File "/app/.heroku/python/lib/python3.10/site-packages/django/urls/resolvers.py", line 851, in _reverse_with_prefix
2024-02-19T11:42:39.270489+00:00 app[web.1]: raise NoReverseMatch(msg)
2024-02-19T11:42:39.270499+00:00 app[web.1]: django.urls.exceptions.NoReverseMatch: Reverse for 'view_hunt' with arguments '('test-6',)' not found. 2 pattern(s) tried: ['hunt/(?P<hunt_id>[0-9]+)\\-(?P<slug>[-a-zA-Z0-9_]+)\\Z', 'hunt/(?P<hunt_id>[0-9]+)\\Z']

Most definitely introduced somewhere in #34 while resolving #5
Should be a simple fix though

Fixed at 2f35403 thanks to DLareau

Alternate way of solving, and other comments from Discord.

kwargs={"slug":hunt.slug, "hunt_id":hunt.pk}
but really the only thing you gain with kwargs is resiliency against people changing the URL parameter ordering.

(For args it must be specifically in id/pk then slug ordering)


Watched/Unwatched problem

When using this application on my tv i noticed that all movies and episodes i watched will not get marked as "watched" in Plex.
There is always about a second or 2 that is "unseen" and so the episode or movie will get labeled "unwatched".
Next to the fact i have to manually mark everything as "watched", else my on deck isn't right. Also my Trakt plugin will not sync the video's as seen.

I also have this same issue. It's quite frustrating and has some knock on glitches.
For the most part, it does get the next episode ready on the deck, but if you manually mark any as watched then it will put the previous episode on the deck and repeat the process until there are no more 99% watched episodes left. It's also problematic with Trakt for me too.


3rd Dose for EU Green Pass Generator

Hi, are you going to add the option for 3rd Dose on the EU Green Pass generator?
Appreciate it.

For the demo website? I am not sure. It doesn't seem that important.

For this one: https://github.pathcheck.org/eu.dgc.html
Would be nice to be updated with the current situation with the booster vaccines.

Yep, that's the demo website. I don't think there is a need to expand it. Once one does 2 vaccines, it's straightforward to do 3

Ah, that’s cool!
Would be great to see that done when possible.
Thanks for quick replies @vitorpamplona

Just for the record: When I got my QR code for the booster vaccination, I actually got 3 QR codes as they re-coded every single vaccination again.
So I now have these QR codes:

vaccination 1/2 - Biontech Comirnaty
vaccination 2/2 - Biontech Comirnaty
vaccination 3/3 - Moderna Spikevax

Only the last one is needed as it proves I've got 3 vaccinations.


Updated link in community projects

Extension moved to a new developer recently, this should fix a broken link.

Can you give an initial comment, if you are interested in merging this PR?
Appreciate any feedback, thanks.


Use default BigNumContext to be compatible with old openssl.

As far as I noticed, this is the only place incompatible with some old OpenSSL versions.
Is it OK to roll back this change to the Ursa code version?
I don't see another usage of the secure OpenSSL heap, so I doubt the value of this particular call of new_secure.
Right next call (BN::new() ) uses the default heap, so I'm confused about this inconsistency.
Please let me know if I missed some critical details.

This defines the openSSL context used in all the BigNum operations, and using new_secure means that it is zeroed out when freed. If there's a need to be compatible with older versions then that could be added as a feature flag, but I can't say that I see the benefit.

To make sure I understand your comment @andrewwhitehead — we should definitely keep new_secure (for the zeroed out feature), and to add new as an option, we’d have to add more complexity, including a config parameter, so we probably should not do this.
I guess the question for @jovfer is if supporting old versions of OpenSSL is worth the added complexity it will take?

@andrewwhitehead, now I'm confused even more. Could you please share more details:

This defines the openSSL context used in all the BigNum operations, and using new_secure means that it is zeroed out when freed.

That's true, but the private keys are stored in regular BNs, not in a context. They may be in a context for some period but would be overwritten almost immediately by other operation artifacts.
Based on that, it seems more important to me to use BN_secure_new calls.
Here is an example:
private key https://github.com/hyperledger/anoncreds-clsignatures-rs/blob/main/src/types.rs#L348C25-L348C25
creation of the key https://github.com/hyperledger/anoncreds-clsignatures-rs/blob/main/src/types.rs#L348C25-L348C25
creation of the p https://github.com/hyperledger/anoncreds-clsignatures-rs/blob/main/src/issuer.rs#L843
allocation of the memory https://github.com/hyperledger/anoncreds-clsignatures-rs/blob/main/src/bn/openssl.rs#L485
PS: that's again incompatible with old OpenSSL, but let's sync on usage of OpenSSL secure heap first. FYI @swcurran

Closing for now, we can revisit a compatibility flag if needed.


pull request for e2e test at 01/24/2017 11:56:09

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


Change WEBAPP version for master branch

Fixing #1923

Codecov Report

Merging #1926 into master will not change coverage.
The diff coverage is 100%.

@@           Coverage Diff           @@
##           master    #1926   +/-   ##
=======================================
  Coverage   66.44%   66.44%
=======================================
  Files          57       57
  Lines        6649     6649
  Branches     1323     1323
=======================================
  Hits         4418     4418
  Misses       2005     2005
  Partials      226      226

Impacted Files
Coverage Δ

webapp/graphite/settings.py
75.15% <100%> (ø)
:arrow_up:

Continue to review full report at Codecov.

Legend - Click here to learn more
Δ = absolute <relative> (impact), ø = not affected, ? = missing data
Powered by Codecov. Last update 8ce51a1...c7ebc2a. Read the comment docs.


New version: pnpm.pnpm version 9.9.0

Pull request has been created with WinGet Releaser v2 :rocket:
Microsoft Reviewers: Open in CodeFlow

<EMAIL_ADDRESS>


Mailing list members doesn't return all members on a first page when using 'address' parameter

Hi, I've got 7 subscribed persons in a mailing list and the  GET /lists/<address>/members/pages route doesn't return all members on a first page when using the address parameter as follows:
    mailgun.get "/lists/#{listAddress}/members/pages" {
      address: "https://api.mailgun.net/v3/lists/#{ listAddress }/members/pages?page=first&limit=1000"
      limit: 1000
    }, (err, body) ->

It returns only 5 users.
But when using the page parameter as follows
    mailgun.get "/lists/#{listAddress}/members/pages" {
      page: "first"
      limit: 1000
    }, (err, body) ->

everything's fine.

Hello @ovvn
There is a method in SDK that you can use to retrieve the list of users from the mailing list.
It allows you to provide a query in an expected way.
Please try to use
await client.lists.members.listMembers('YOUR_List_Address', { limit: 10 })

Link to the code examples for the mailing lists that may be useful :
https://documentation.mailgun.com/en/latest/api-mailinglists.html#examples
If you will have any issues with this method let me know.


Joshua s brown move from gl gh

@renan-souza do you want to finish this together at some point?
Currently, running CI in GitLab is a lot slower than using GitHub actions, by moving as many of our tests as possible into the GitHub actions we will improve the development speed. This PR attempts to move some of the integration tests from GitLab to GitHub. Leaving only end-to-end tests that need globus on GitLab.

@renan-souza do you want to finish this together at some point?

Yes. We need to work on the SSH keys.

I honestly, have no idea why the CI is failing now, GitHub is giving no reason, it doesn't even look like the actions are running :(.

rsync_example
The job was not started because recent account payments have failed or your spending limit needs to be increased. Please check the 'Billing & plans' section in your settings.
I don't know anything about "spending limits". We'll need to figure this out.

@renan-souza I found an issue with our shell test, which I should have picked up on earlier anyway, it needs to be run with a single agent. Otherwise you cannot be sure which agent the a.gif will end up on, it is dependent on which ever agent pings the queue first. Thats why this test is failing, the a.gif file is not showing up on the container that initiated the test.